[Commits] [SCM] claws branch, master, updated. 3.17.0-86-g5a4f5d4

Colin colin at claws-mail.org
Sat Oct 6 13:00:16 CEST 2018


The branch, master has been updated
       via  5a4f5d4e5879f3116149f0a2e859cd28a30e33f6 (commit)
      from  54b9cf143bf5dca96254d16028381f8eec753d61 (commit)

Summary of changes:
 src/Makefile.am                                    |    2 -
 src/addrbook.c                                     |    2 +-
 src/addrindex.c                                    |    2 +-
 src/common/Makefile.am                             |    3 +-
 src/{safe_fclose.c => common/claws_io.c}           |    7 +-
 src/{safe_fclose.h => common/claws_io.h}           |    4 +-
 src/common/log.c                                   |    2 +-
 src/common/prefs.c                                 |    2 +-
 src/common/ssl_certificate.c                       |    2 +-
 src/common/tags.c                                  |    2 +-
 src/common/template.c                              |    2 +-
 src/common/utils.c                                 |    2 +-
 src/compose.c                                      |    2 +-
 src/etpan/imap-thread.c                            |    2 +-
 src/exporthtml.c                                   |    2 +-
 src/exportldif.c                                   |    2 +-
 src/ldapquery.c                                    |    2 +-
 src/log                                            | 2364 +++++++++++++++
 src/main.c                                         |    2 +-
 src/mbox.c                                         |    2 +-
 src/messageview.c                                  |    2 +-
 src/mh.c                                           |    2 +-
 src/msgcache.c                                     |    2 +-
 src/news.c                                         |    2 +-
 src/partial_download.c                             |    2 +-
 src/patch                                          |  182 ++
 src/plugins/acpi_notifier/acpi_notifier.c          |    2 +-
 .../claws-mail-acpi_notifier.metainfo.xml          |    5 +-
 .../claws-mail-address_keeper.metainfo.xml         |    5 +-
 .../archive/claws-mail-archive.metainfo.xml        |    5 +-
 .../claws-mail-att_remover.metainfo.xml            |    5 +-
 .../claws-mail-attachwarner.metainfo.xml           |    5 +-
 src/plugins/bogofilter/bogofilter.c                |    2 +-
 .../bogofilter/claws-mail-bogofilter.metainfo.xml  |    6 +-
 .../bsfilter/claws-mail-bsfilter.metainfo.xml      |    5 +-
 .../plugins/clamd/claws-mail-clamd.metainfo.xml    |    5 +-
 .../plugins/fancy/claws-mail-fancy.metainfo.xml    |    5 +-
 src/plugins/fancy/fancy_viewer.c                   |    2 +-
 .../fetchinfo/claws-mail-fetchinfo.metainfo.xml    |    5 +-
 .../plugins/gdata/claws-mail-gdata.metainfo.xml    |    5 +-
 .../claws-mail-geolocation.metainfo.xml            |    9 +-
 .../libravatar/claws-mail-libravatar.metainfo.xml  |    6 +-
 src/plugins/libravatar/libravatar_image.c          |    2 +-
 src/plugins/libravatar/libravatar_missing.c        |    2 +-
 .../mailmbox/claws-mail-mailmbox.metainfo.xml      |    5 +-
 src/plugins/mailmbox/mailmbox_folder.c             |    2 +-
 .../newmail/claws-mail-newmail.metainfo.xml        |    5 +-
 .../claws-mail-notification.metainfo.xml           |    5 +-
 .../pdf_viewer/claws-mail-pdf_viewer.metainfo.xml  |    5 +-
 .../plugins/perl/claws-mail-perl.metainfo.xml      |    9 +-
 .../pgpcore/claws-mail-pgpcore.metainfo.xml        |    5 +-
 .../pgpinline/claws-mail-pgpinline.metainfo.xml    |    6 +-
 src/plugins/pgpinline/pgpinline.c                  |    2 +-
 .../pgpmime/claws-mail-pgpmime.metainfo.xml        |    6 +-
 src/plugins/pgpmime/pgpmime.c                      |    2 +-
 .../plugins/python/claws-mail-python.metainfo.xml  |    6 +-
 .../plugins/rssyl/claws-mail-rssyl.metainfo.xml    |    5 +-
 src/plugins/rssyl/opml_export.c                    |    2 +-
 src/plugins/rssyl/rssyl_add_item.c                 |    2 +-
 src/plugins/rssyl/rssyl_deleted.c                  |    2 +-
 .../plugins/smime/claws-mail-smime.metainfo.xml    |    9 +-
 src/plugins/smime/smime.c                          |    2 +-
 .../claws-mail-spam_report.metainfo.xml            |    5 +-
 .../claws-mail-spamassasin.metainfo.xml            |   11 +
 .../claws-mail-spamassassin.metainfo.xml           |    6 +-
 .../tnef_parse/claws-mail-tnef_parse.metainfo.xml  |    5 +-
 src/plugins/tnef_parse/out                         | 2395 ++++++++++++++++
 .../vcalendar/claws-mail-vcalendar.metainfo.xml    |    6 +-
 src/plugins/vcalendar/libical/libical/ical.h       | 3002 ++++++++++++++++++++
 .../libical/libical/icalderivedparameter.c         | 1251 ++++++++
 .../libical/libical/icalderivedparameter.h         |  314 ++
 .../libical/libical/icalderivedproperty.c          | 2450 ++++++++++++++++
 .../libical/libical/icalderivedproperty.h          |  403 +++
 .../vcalendar/libical/libical/icalderivedvalue.c   |  950 +++++++
 .../vcalendar/libical/libical/icalderivedvalue.h   |  290 ++
 src/plugins/vcalendar/libical/libical/icallexer.c  | 2006 +++++++++++++
 .../vcalendar/libical/libical/icalrestriction.c    | 1778 ++++++++++++
 .../vcalendar/libical/libical/icalversion.h        |    7 +
 src/plugins/vcalendar/libical/libical/icalyacc.c   | 2169 ++++++++++++++
 src/plugins/vcalendar/libical/libical/icalyacc.h   |  334 +++
 .../vcalendar/libical/libical/icalyacc.output      |  820 ++++++
 src/plugins/vcalendar/vcal_meeting_gtk.c           |    2 +-
 src/pop.c                                          |    2 +-
 src/prefs_common.c                                 |    2 +-
 src/procmsg.c                                      |    2 +-
 85 files changed, 20832 insertions(+), 141 deletions(-)
 rename src/{safe_fclose.c => common/claws_io.c} (88%)
 rename src/{safe_fclose.h => common/claws_io.h} (94%)
 create mode 100644 src/log
 create mode 100644 src/patch
 copy appdata/claws-mail-acpi_notifier.metainfo.xml.in => src/plugins/acpi_notifier/claws-mail-acpi_notifier.metainfo.xml (74%)
 copy appdata/claws-mail-address_keeper.metainfo.xml.in => src/plugins/address_keeper/claws-mail-address_keeper.metainfo.xml (72%)
 copy appdata/claws-mail-archive.metainfo.xml.in => src/plugins/archive/claws-mail-archive.metainfo.xml (75%)
 copy appdata/claws-mail-att_remover.metainfo.xml.in => src/plugins/att_remover/claws-mail-att_remover.metainfo.xml (75%)
 copy appdata/claws-mail-attachwarner.metainfo.xml.in => src/plugins/attachwarner/claws-mail-attachwarner.metainfo.xml (65%)
 copy appdata/claws-mail-bogofilter.metainfo.xml.in => src/plugins/bogofilter/claws-mail-bogofilter.metainfo.xml (59%)
 copy appdata/claws-mail-bsfilter.metainfo.xml.in => src/plugins/bsfilter/claws-mail-bsfilter.metainfo.xml (67%)
 copy appdata/claws-mail-clamd.metainfo.xml.in => src/plugins/clamd/claws-mail-clamd.metainfo.xml (67%)
 copy appdata/claws-mail-fancy.metainfo.xml.in => src/plugins/fancy/claws-mail-fancy.metainfo.xml (74%)
 copy appdata/claws-mail-fetchinfo.metainfo.xml.in => src/plugins/fetchinfo/claws-mail-fetchinfo.metainfo.xml (67%)
 copy appdata/claws-mail-gdata.metainfo.xml.in => src/plugins/gdata/claws-mail-gdata.metainfo.xml (74%)
 copy appdata/claws-mail-gdata.metainfo.xml.in => src/plugins/geolocation/claws-mail-geolocation.metainfo.xml (65%)
 copy appdata/claws-mail-libravatar.metainfo.xml.in => src/plugins/libravatar/claws-mail-libravatar.metainfo.xml (62%)
 copy appdata/claws-mail-mailmbox.metainfo.xml.in => src/plugins/mailmbox/claws-mail-mailmbox.metainfo.xml (74%)
 copy appdata/claws-mail-newmail.metainfo.xml.in => src/plugins/newmail/claws-mail-newmail.metainfo.xml (68%)
 copy appdata/claws-mail-notification.metainfo.xml.in => src/plugins/notification/claws-mail-notification.metainfo.xml (72%)
 copy appdata/claws-mail-pdf_viewer.metainfo.xml.in => src/plugins/pdf_viewer/claws-mail-pdf_viewer.metainfo.xml (75%)
 copy appdata/claws-mail-gdata.metainfo.xml.in => src/plugins/perl/claws-mail-perl.metainfo.xml (65%)
 copy appdata/claws-mail-pgpcore.metainfo.xml.in => src/plugins/pgpcore/claws-mail-pgpcore.metainfo.xml (68%)
 copy appdata/claws-mail-pgpinline.metainfo.xml.in => src/plugins/pgpinline/claws-mail-pgpinline.metainfo.xml (64%)
 copy appdata/claws-mail-pgpmime.metainfo.xml.in => src/plugins/pgpmime/claws-mail-pgpmime.metainfo.xml (64%)
 copy appdata/claws-mail-python.metainfo.xml.in => src/plugins/python/claws-mail-python.metainfo.xml (65%)
 copy appdata/claws-mail-rssyl.metainfo.xml.in => src/plugins/rssyl/claws-mail-rssyl.metainfo.xml (72%)
 copy appdata/claws-mail-gdata.metainfo.xml.in => src/plugins/smime/claws-mail-smime.metainfo.xml (65%)
 copy appdata/claws-mail-spam_report.metainfo.xml.in => src/plugins/spam_report/claws-mail-spam_report.metainfo.xml (76%)
 create mode 100644 src/plugins/spamassassin/claws-mail-spamassasin.metainfo.xml
 copy appdata/claws-mail-spamassassin.metainfo.xml.in => src/plugins/spamassassin/claws-mail-spamassassin.metainfo.xml (59%)
 copy appdata/claws-mail-tnef_parse.metainfo.xml.in => src/plugins/tnef_parse/claws-mail-tnef_parse.metainfo.xml (75%)
 create mode 100644 src/plugins/tnef_parse/out
 copy appdata/claws-mail-vcalendar.metainfo.xml.in => src/plugins/vcalendar/claws-mail-vcalendar.metainfo.xml (60%)
 create mode 100644 src/plugins/vcalendar/libical/libical/ical.h
 create mode 100644 src/plugins/vcalendar/libical/libical/icalderivedparameter.c
 create mode 100644 src/plugins/vcalendar/libical/libical/icalderivedparameter.h
 create mode 100644 src/plugins/vcalendar/libical/libical/icalderivedproperty.c
 create mode 100644 src/plugins/vcalendar/libical/libical/icalderivedproperty.h
 create mode 100644 src/plugins/vcalendar/libical/libical/icalderivedvalue.c
 create mode 100644 src/plugins/vcalendar/libical/libical/icalderivedvalue.h
 create mode 100644 src/plugins/vcalendar/libical/libical/icallexer.c
 create mode 100644 src/plugins/vcalendar/libical/libical/icalrestriction.c
 create mode 100644 src/plugins/vcalendar/libical/libical/icalversion.h
 create mode 100644 src/plugins/vcalendar/libical/libical/icalyacc.c
 create mode 100644 src/plugins/vcalendar/libical/libical/icalyacc.h
 create mode 100644 src/plugins/vcalendar/libical/libical/icalyacc.output


- Log -----------------------------------------------------------------
commit 5a4f5d4e5879f3116149f0a2e859cd28a30e33f6
Author: Colin Leroy <colin at colino.net>
Date:   Sat Oct 6 13:00:00 2018 +0200

    Fix build

diff --git a/src/Makefile.am b/src/Makefile.am
index b19eccd..9844f30 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -228,7 +228,6 @@ claws_mail_SOURCES = \
 	quote_fmt_parse.y \
 	recv.c \
 	remotefolder.c \
-	safe_fclose.c \
 	send_message.c \
 	setup.c \
 	sourcewindow.c \
@@ -349,7 +348,6 @@ claws_mailinclude_HEADERS = \
 	quote_fmt_parse.h \
 	recv.h \
 	remotefolder.h \
-	safe_fclose.h \
 	send_message.h \
 	setup.h \
 	sourcewindow.h \
diff --git a/src/addrbook.c b/src/addrbook.c
index c519eb7..0720c6b 100644
--- a/src/addrbook.c
+++ b/src/addrbook.c
@@ -33,7 +33,7 @@
 #include "addrcache.h"
 #include "addrbook.h"
 #include "adbookbase.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #ifndef DEV_STANDALONE
 #include "prefs_gtk.h"
diff --git a/src/addrindex.c b/src/addrindex.c
index fda0bcd..f1adf01 100644
--- a/src/addrindex.c
+++ b/src/addrindex.c
@@ -43,7 +43,7 @@
 #include "utils.h"
 #include "alertpanel.h"
 #include "passwordstore.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #ifndef DEV_STANDALONE
 #include "prefs_gtk.h"
diff --git a/src/common/Makefile.am b/src/common/Makefile.am
index d1fd799..aa307ae 100644
--- a/src/common/Makefile.am
+++ b/src/common/Makefile.am
@@ -43,6 +43,7 @@ libclawscommon_la_SOURCES = $(arch_sources) \
 	string_match.c \
 	stringtable.c \
 	claws.c \
+	claws_io.c \
 	tags.c \
 	template.c \
 	utils.c \
@@ -74,6 +75,7 @@ clawscommoninclude_HEADERS = $(arch_headers) \
 	string_match.h \
 	stringtable.h \
 	claws.h \
+	claws_io.h \
 	tags.h \
 	template.h \
 	timing.h \
@@ -87,7 +89,6 @@ clawscommoninclude_HEADERS = $(arch_headers) \
 	unmime.h
 
 AM_CPPFLAGS = \
-	-I$(srcdir)/.. \
 	-I$(top_srcdir)/intl \
 	$(GLIB_CFLAGS) \
 	$(VALGRIND_CFLAGS) \
diff --git a/src/safe_fclose.c b/src/common/claws_io.c
similarity index 88%
rename from src/safe_fclose.c
rename to src/common/claws_io.c
index bec77fd..1de8bea 100644
--- a/src/safe_fclose.c
+++ b/src/common/claws_io.c
@@ -24,8 +24,9 @@
 #include <stdio.h>
 #include <unistd.h>
 
-#include "prefs_common.h"
-#include "common/timing.h"
+#include "timing.h"
+
+gboolean prefs_common_get_flush_metadata(void);
 
 int safe_fclose(FILE *fp)
 {
@@ -35,7 +36,7 @@ int safe_fclose(FILE *fp)
 	if (fflush(fp) != 0) {
 		return EOF;
 	}
-	if (prefs_common_get_prefs()->flush_metadata && fsync(fileno(fp)) != 0) {
+	if (prefs_common_get_flush_metadata() && fsync(fileno(fp)) != 0) {
 		return EOF;
 	}
 
diff --git a/src/safe_fclose.h b/src/common/claws_io.h
similarity index 94%
rename from src/safe_fclose.h
rename to src/common/claws_io.h
index f0153a5..e3e0e0c 100644
--- a/src/safe_fclose.h
+++ b/src/common/claws_io.h
@@ -16,8 +16,8 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef __SAFE_FCLOSE_H__
-#define __SAFE_FCLOSE_H__
+#ifndef __CLAWS_IO_H__
+#define __CLAWS_IO_H__
 
 int safe_fclose(FILE *fp);
 
diff --git a/src/common/log.c b/src/common/log.c
index 1003d51..65f284e 100644
--- a/src/common/log.c
+++ b/src/common/log.c
@@ -35,7 +35,7 @@
 #include "utils.h"
 #include "log.h"
 #include "hooks.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #define FWRITE(_b,_s,_n,_f)	if (fwrite(_b,_s,_n,_f) != _n) { \
 					g_message("log fwrite failed!\n"); \
diff --git a/src/common/prefs.c b/src/common/prefs.c
index 362cbb9..77b4213 100644
--- a/src/common/prefs.c
+++ b/src/common/prefs.c
@@ -28,7 +28,7 @@
 
 #include "prefs.h"
 #include "utils.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 static gboolean prefs_is_readonly	(const gchar 	*path);
 
diff --git a/src/common/ssl_certificate.c b/src/common/ssl_certificate.c
index 1f71662..d098ac2 100644
--- a/src/common/ssl_certificate.c
+++ b/src/common/ssl_certificate.c
@@ -46,7 +46,7 @@
 #include "socket.h"
 #include "hooks.h"
 #include "defs.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 static GHashTable *warned_expired = NULL;
 
diff --git a/src/common/tags.c b/src/common/tags.c
index e0f020a..264f139 100644
--- a/src/common/tags.c
+++ b/src/common/tags.c
@@ -40,7 +40,7 @@
 #include "defs.h"
 #include "utils.h"
 #include "tags.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 static GHashTable *tags_table = NULL;
 static GHashTable *tags_reverse_table = NULL;
diff --git a/src/common/template.c b/src/common/template.c
index dfd9603..e8db301 100644
--- a/src/common/template.c
+++ b/src/common/template.c
@@ -29,7 +29,7 @@
 #include "utils.h"
 #include "template.h"
 #include "codeconv.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 static GSList *template_list;
 
diff --git a/src/common/utils.c b/src/common/utils.c
index e3ba80c..977eda4 100644
--- a/src/common/utils.c
+++ b/src/common/utils.c
@@ -86,7 +86,7 @@
 #include "codeconv.h"
 #include "tlds.h"
 #include "timing.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #define BUFFSIZE	8192
 
diff --git a/src/compose.c b/src/compose.c
index 6f17c98..ade8db9 100644
--- a/src/compose.c
+++ b/src/compose.c
@@ -107,7 +107,7 @@
 #include "autofaces.h"
 #include "spell_entry.h"
 #include "headers.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #ifdef USE_LDAP
 #include "password.h"
diff --git a/src/etpan/imap-thread.c b/src/etpan/imap-thread.c
index 29d0380..48823e1 100644
--- a/src/etpan/imap-thread.c
+++ b/src/etpan/imap-thread.c
@@ -44,7 +44,7 @@
 #include "utils.h"
 #include "mainwindow.h"
 #include "proxy.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 #include "ssl.h"
 #include "ssl_certificate.h"
 #include "socket.h"
diff --git a/src/exporthtml.c b/src/exporthtml.c
index 7ed6fc8..d0bfefd 100644
--- a/src/exporthtml.c
+++ b/src/exporthtml.c
@@ -46,7 +46,7 @@
 #include "utils.h"
 #include "exporthtml.h"
 #include "xmlprops.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #ifdef MKDIR_TAKES_ONE_ARG
 #undef mkdir
diff --git a/src/exportldif.c b/src/exportldif.c
index eba8737..ded6a3e 100644
--- a/src/exportldif.c
+++ b/src/exportldif.c
@@ -38,7 +38,7 @@
 #include "exportldif.h"
 #include "xmlprops.h"
 #include "ldif.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 
 #ifdef MKDIR_TAKES_ONE_ARG
diff --git a/src/ldapquery.c b/src/ldapquery.c
index 257ae19..5b0750a 100644
--- a/src/ldapquery.c
+++ b/src/ldapquery.c
@@ -38,7 +38,7 @@
 #include "ldapctrl.h"
 #include "ldapserver.h"
 #include "mgutils.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #include "addritem.h"
 #include "addrcache.h"
diff --git a/src/log b/src/log
new file mode 100644
index 0000000..88711a7
--- /dev/null
+++ b/src/log
@@ -0,0 +1,2364 @@
+==14105== Memcheck, a memory error detector
+==14105== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
+==14105== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
+==14105== Command: claws-mail
+==14105== Parent PID: 32435
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==14105==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x66038F: mgu_list_test_unq_nc (mgutils.c:383)
+==14105==    by 0x63D33A: ldapctl_criteria_list_add (ldapctrl.c:344)
+==14105==    by 0x611855: addrindex_parse_ldap_attrlist (addrindex.c:1331)
+==14105==    by 0x611CD2: addrindex_parse_ldap (addrindex.c:1443)
+==14105==    by 0x612371: addrindex_read_index (addrindex.c:1612)
+==14105==    by 0x6126A6: addrindex_read_file (addrindex.c:1684)
+==14105==    by 0x613DB5: addrindex_read_data (addrindex.c:2307)
+==14105==    by 0x609995: addressbook_read_file (addressbook.c:4170)
+==14105==    by 0x4D8CDA: main (main.c:1265)
+==14105==  Address 0x1192c8f8 is 0 bytes after a block of size 40 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x66038F: mgu_list_test_unq_nc (mgutils.c:383)
+==14105==    by 0x63D33A: ldapctl_criteria_list_add (ldapctrl.c:344)
+==14105==    by 0x611855: addrindex_parse_ldap_attrlist (addrindex.c:1331)
+==14105==    by 0x611CD2: addrindex_parse_ldap (addrindex.c:1443)
+==14105==    by 0x612371: addrindex_read_index (addrindex.c:1612)
+==14105==    by 0x6126A6: addrindex_read_file (addrindex.c:1684)
+==14105==    by 0x613DB5: addrindex_read_data (addrindex.c:2307)
+==14105==    by 0x609995: addressbook_read_file (addressbook.c:4170)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==14105==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x66038F: mgu_list_test_unq_nc (mgutils.c:383)
+==14105==    by 0x63D33A: ldapctl_criteria_list_add (ldapctrl.c:344)
+==14105==    by 0x611855: addrindex_parse_ldap_attrlist (addrindex.c:1331)
+==14105==    by 0x611CD2: addrindex_parse_ldap (addrindex.c:1443)
+==14105==    by 0x612371: addrindex_read_index (addrindex.c:1612)
+==14105==    by 0x6126A6: addrindex_read_file (addrindex.c:1684)
+==14105==    by 0x613DB5: addrindex_read_data (addrindex.c:2307)
+==14105==    by 0x609995: addressbook_read_file (addressbook.c:4170)
+==14105==    by 0x4D8CDA: main (main.c:1265)
+==14105==  Address 0x1192cc78 is 0 bytes after a block of size 40 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x66038F: mgu_list_test_unq_nc (mgutils.c:383)
+==14105==    by 0x63D33A: ldapctl_criteria_list_add (ldapctrl.c:344)
+==14105==    by 0x611855: addrindex_parse_ldap_attrlist (addrindex.c:1331)
+==14105==    by 0x611CD2: addrindex_parse_ldap (addrindex.c:1443)
+==14105==    by 0x612371: addrindex_read_index (addrindex.c:1612)
+==14105==    by 0x6126A6: addrindex_read_file (addrindex.c:1684)
+==14105==    by 0x613DB5: addrindex_read_data (addrindex.c:2307)
+==14105==    by 0x609995: addressbook_read_file (addressbook.c:4170)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA27: wcslen (wcslen.S:55)
+==14105==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==14105==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==14105==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==14105==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==14105==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105==  Address 0x135a8cf8 is 0 bytes after a block of size 56 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==14105==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==14105==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==14105==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==14105==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA27: wcslen (wcslen.S:55)
+==14105==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==14105==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==14105==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==14105==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==14105==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105==  Address 0x135a8d78 is 0 bytes after a block of size 56 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==14105==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==14105==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==14105==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==14105==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==14105==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==14105==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==14105==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==14105==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==14105==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105==  Address 0x135af0f8 is 0 bytes after a block of size 40 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==14105==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==14105==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==14105==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==14105==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==14105==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==14105==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==14105==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==14105==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==14105==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105==  Address 0x135af7e8 is 40 bytes inside a block of size 44 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==14105==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==14105==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==14105==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==14105==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==14105==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5CB0C1: summary_tag_cmp_list (summaryview.c:6190)
+==14105==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80AE3EB: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5CB104: summary_tags_menu_create (summaryview.c:6204)
+==14105==    by 0x5B8A78: summary_init (summaryview.c:997)
+==14105==    by 0x4E6B00: main_window_create (mainwindow.c:2180)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105==  Address 0x152e8bb0 is 32 bytes inside a block of size 36 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5CB0C1: summary_tag_cmp_list (summaryview.c:6190)
+==14105==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80AE3EB: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5CB104: summary_tags_menu_create (summaryview.c:6204)
+==14105==    by 0x5B8A78: summary_init (summaryview.c:997)
+==14105==    by 0x4E6B00: main_window_create (mainwindow.c:2180)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==14105==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5CB0C1: summary_tag_cmp_list (summaryview.c:6190)
+==14105==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5CB104: summary_tags_menu_create (summaryview.c:6204)
+==14105==    by 0x5B8A78: summary_init (summaryview.c:997)
+==14105==    by 0x4E6B00: main_window_create (mainwindow.c:2180)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105==  Address 0x152e8ce0 is 32 bytes inside a block of size 36 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5CB0C1: summary_tag_cmp_list (summaryview.c:6190)
+==14105==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x5CB104: summary_tags_menu_create (summaryview.c:6204)
+==14105==    by 0x5B8A78: summary_init (summaryview.c:997)
+==14105==    by 0x4E6B00: main_window_create (mainwindow.c:2180)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==14105==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4DEFC3: mainwin_tag_cmp_list (mainwindow.c:1246)
+==14105==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80AE3EB: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4DEFFE: mainwindow_tags_menu_create (mainwindow.c:1258)
+==14105==    by 0x4E6C04: main_window_create (mainwindow.c:2202)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105==  Address 0x15371dd0 is 32 bytes inside a block of size 36 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4DEFC3: mainwin_tag_cmp_list (mainwindow.c:1246)
+==14105==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80AE3EB: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4DEFFE: mainwindow_tags_menu_create (mainwindow.c:1258)
+==14105==    by 0x4E6C04: main_window_create (mainwindow.c:2202)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==14105==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4DEFC3: mainwin_tag_cmp_list (mainwindow.c:1246)
+==14105==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4DEFFE: mainwindow_tags_menu_create (mainwindow.c:1258)
+==14105==    by 0x4E6C04: main_window_create (mainwindow.c:2202)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105==  Address 0x15371f00 is 32 bytes inside a block of size 36 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4DEFC3: mainwin_tag_cmp_list (mainwindow.c:1246)
+==14105==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4DEFFE: mainwindow_tags_menu_create (mainwindow.c:1258)
+==14105==    by 0x4E6C04: main_window_create (mainwindow.c:2202)
+==14105==    by 0x4D8D20: main (main.c:1286)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA27: wcslen (wcslen.S:55)
+==14105==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E0180: sink (gtksctree.c:1078)
+==14105==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==14105==  Address 0x15820090 is 48 bytes inside a block of size 52 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E0180: sink (gtksctree.c:1078)
+==14105==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==14105==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E0180: sink (gtksctree.c:1078)
+==14105==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==14105==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==14105==  Address 0x158207a0 is 32 bytes inside a block of size 36 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E0180: sink (gtksctree.c:1078)
+==14105==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==14105==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E01DA: sink (gtksctree.c:1082)
+==14105==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==14105==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==14105==  Address 0x158208c0 is 32 bytes inside a block of size 36 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E01DA: sink (gtksctree.c:1082)
+==14105==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA27: wcslen (wcslen.S:55)
+==14105==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E0180: sink (gtksctree.c:1078)
+==14105==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==14105==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==14105==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==14105==  Address 0x15824748 is 0 bytes after a block of size 56 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E0180: sink (gtksctree.c:1078)
+==14105==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==14105==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==14105==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA3F: wcslen (wcslen.S:62)
+==14105==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E01DA: sink (gtksctree.c:1082)
+==14105==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==14105==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==14105==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==14105==    by 0x4B2AC2: folderview_set_folders (folderview.c:975)
+==14105==  Address 0x15829b88 is 0 bytes after a block of size 72 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E01DA: sink (gtksctree.c:1082)
+==14105==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==14105==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==14105==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA3F: wcslen (wcslen.S:62)
+==14105==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E0180: sink (gtksctree.c:1078)
+==14105==    by 0x6E0320: heap_sort (gtksctree.c:1109)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==14105==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==14105==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==14105==    by 0x4B2AC2: folderview_set_folders (folderview.c:975)
+==14105==  Address 0x1582b5b8 is 0 bytes after a block of size 72 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E0180: sink (gtksctree.c:1078)
+==14105==    by 0x6E0320: heap_sort (gtksctree.c:1109)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==14105==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==14105==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==14105== 
+==14105== Invalid read of size 8
+==14105==    at 0x89AAA6B: wcslen (wcslen.S:75)
+==14105==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==14105==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E01DA: sink (gtksctree.c:1082)
+==14105==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==14105==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==14105==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==14105==    by 0x4B2AC2: folderview_set_folders (folderview.c:975)
+==14105==  Address 0x1698a518 is 0 bytes after a block of size 104 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==14105==    by 0x6E01DA: sink (gtksctree.c:1082)
+==14105==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==14105==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==14105==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==14105==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cc9b020 is 80 bytes inside a block of size 2,731 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cc9b020 is 80 bytes inside a block of size 2,731 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E64A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cc9c020 is 16 bytes inside a block of size 200 free'd
+==14105==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C607ADD: PyList_Append (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67AEBB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67A194: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67A750: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67B257: PyMarshal_ReadObjectFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67B35D: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1ccd4020 is 16 bytes before a block of size 280 alloc'd
+==14105==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C6C13D8: _PyObject_GC_Malloc (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C74CC: _PyObject_GC_New (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6651F3: PyDict_New (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C637FCC: PyModule_New (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6380F1: PyImport_AddModule (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DBB05: PyImport_ExecCodeModuleEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B77: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1ccf4020 is 672 bytes inside a block of size 768 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C6C1EB9: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5806D7: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DBB7C: PyImport_ExecCodeModuleEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B77: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cda7020 is 9,360 bytes inside a block of size 9,383 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cda7020 is 9,360 bytes inside a block of size 9,383 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E64A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cda7020 is 9,360 bytes inside a block of size 9,383 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Use of uninitialised value of size 8
+==14105==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5EA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cc60020 is 64 bytes inside a block of size 1,864 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C6A3544: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67B273: PyMarshal_ReadObjectFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67B35D: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1ce3b020 is 8 bytes after a block of size 280 free'd
+==14105==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C607ADD: PyList_Append (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67AEBB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67A194: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67A73C: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67B257: PyMarshal_ReadObjectFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67B35D: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Use of uninitialised value of size 8
+==14105==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6958EB: PyGrammar_AddAccelerators (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695BD7: PyParser_New (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6802D4: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Use of uninitialised value of size 8
+==14105==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6958EB: PyGrammar_AddAccelerators (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695BD7: PyParser_New (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6802D4: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6958EB: PyGrammar_AddAccelerators (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695BD7: PyParser_New (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6802D4: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1ceeb020 is 384 bytes inside a block of size 676 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C6958EB: PyGrammar_AddAccelerators (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695BD7: PyParser_New (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6802D4: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAED1: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cf4b020 is 16 bytes inside a block of size 384 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C6BF74D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599FE7: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695FD7: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cf58020 is 35,456 bytes inside a block of size 36,032 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695FD7: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cf58020 is 35,456 bytes inside a block of size 36,032 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C695402: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C49D1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DEB40: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5CA9A7: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C598328: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cf58020 is 35,456 bytes inside a block of size 36,032 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C695402: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C49D1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DEB40: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5CBA5B: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5983AB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cf58020 is 35,456 bytes inside a block of size 36,032 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6BF74D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599FE7: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cf59020 is 144 bytes inside a block of size 768 free'd
+==14105==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C6C49D1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DEB40: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5CBA5B: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5983AB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599FE7: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cf58020 is 35,456 bytes inside a block of size 36,032 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C69540B: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695613: PyNode_AddChild (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C620032: PyParser_AddToken (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680351: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Use of uninitialised value of size 8
+==14105==    at 0x1C69541F: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695613: PyNode_AddChild (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C620032: PyParser_AddToken (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680351: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EEA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cf80020 is 34,288 bytes inside a block of size 36,032 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695F14: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cf80020 is 34,288 bytes inside a block of size 36,032 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C695402: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C49D1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DE8A6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5CB707: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5CA973: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5CBA5B: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5CBB29: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5CA9A7: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C598328: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cf82020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A3466: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584771: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DBB7C: PyImport_ExecCodeModuleEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cf74020 is 4,816 bytes inside a block of size 8,192 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C698999: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C698A92: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6ACCCC: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57EDE5: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C695402: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6495E6: _PyString_Resize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5E5804: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599FD5: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cfda020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5E5E42: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599FD5: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1cfda020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C681F75: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C639874: _PyCodec_Lookup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C639A08: PyCodec_Encoder (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C590247: Py_InitializeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B0F6: plugin_init (python_plugin.c:661)
+==14105==  Address 0x1d023020 is 48 bytes inside a block of size 280 free'd
+==14105==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C607ADD: PyList_Append (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67AEBB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67A194: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67A750: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67A194: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67A73C: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67B257: PyMarshal_ReadObjectFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C67B35D: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EC9: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d083020 is 304 bytes inside a block of size 320 free'd
+==14105==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C695613: PyNode_AddChild (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C620220: PyParser_AddToken (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680351: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EEA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d083020 is 304 bytes inside a block of size 320 free'd
+==14105==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C695613: PyNode_AddChild (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C620220: PyParser_AddToken (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680351: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695FD7: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d083020 is 304 bytes inside a block of size 320 free'd
+==14105==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C695613: PyNode_AddChild (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C620220: PyParser_AddToken (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680351: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695F14: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d083020 is 304 bytes inside a block of size 320 free'd
+==14105==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C695613: PyNode_AddChild (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C620220: PyParser_AddToken (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680351: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69601D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==  Address 0x1d083020 is 304 bytes inside a block of size 320 free'd
+==14105==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C695613: PyNode_AddChild (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C620220: PyParser_AddToken (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680351: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C696035: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d083020 is 304 bytes inside a block of size 320 free'd
+==14105==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C695613: PyNode_AddChild (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C620220: PyParser_AddToken (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680351: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695F79: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Use of uninitialised value of size 8
+==14105==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695F79: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695FA8: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d082020 is 34,608 bytes inside a block of size 36,032 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6BF74D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5995B3: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d0cd020 is 96 bytes inside a block of size 384 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C6BF74D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5995B3: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5995B3: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d0cd020 is 96 bytes inside a block of size 384 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C6BF74D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5995B3: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C695402: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C49D1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5CB5AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5CA9A7: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5975F1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A60F: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C598F97: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==  Address 0x1d0cd020 is 96 bytes inside a block of size 384 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C6BF74D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5995B3: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6BF74D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C652DC5: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599C4C: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d0d0020 is 96 bytes inside a block of size 384 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C6BF74D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5995B3: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAED1: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d0d2020 is 624 bytes inside a block of size 768 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C6A369A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6BF896: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C652DC5: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599C4C: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==14105==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C696035: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C3262F9: add_miscstuff (clawsmailmodule.c:898)
+==14105==    by 0x1C3264E7: initclawsmail (clawsmailmodule.c:936)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d0e1020 is 34,784 bytes inside a block of size 36,032 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C3262F9: add_miscstuff (clawsmailmodule.c:898)
+==14105==    by 0x1C3264E7: initclawsmail (clawsmailmodule.c:936)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599FE7: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C3262F9: add_miscstuff (clawsmailmodule.c:898)
+==14105==    by 0x1C3264E7: initclawsmail (clawsmailmodule.c:936)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d0e2020 is 176 bytes inside a block of size 768 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C6A369A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5E22F4: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5972BF: PySymtable_Build (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599EB1: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C3262F9: add_miscstuff (clawsmailmodule.c:898)
+==14105==    by 0x1C3264E7: initclawsmail (clawsmailmodule.c:936)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAED1: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C3262F9: add_miscstuff (clawsmailmodule.c:898)
+==14105==    by 0x1C3264E7: initclawsmail (clawsmailmodule.c:936)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d0e3020 is 16 bytes inside a block of size 40 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C5E4B9C: PyCode_Optimize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5E625E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599FD5: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C3262F9: add_miscstuff (clawsmailmodule.c:898)
+==14105==    by 0x1C3264E7: initclawsmail (clawsmailmodule.c:936)
+==14105==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599FE7: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B137: plugin_init (python_plugin.c:675)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d0ee020 is 34,480 bytes inside a block of size 36,032 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B137: plugin_init (python_plugin.c:675)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAED1: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B137: plugin_init (python_plugin.c:675)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d0ee020 is 34,480 bytes inside a block of size 36,032 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B137: plugin_init (python_plugin.c:675)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C696035: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==14105==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695EEA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==14105==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695F79: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==14105==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d0fc020 is 160 bytes inside a block of size 320 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C695EEA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==14105==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C652DC5: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C599C4C: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==14105==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d0fe020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C695402: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C49D1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C598ACD: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==14105==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==14105==    by 0x6623FB: plugin_load (plugin.c:514)
+==14105==    by 0x662A45: plugin_load_all (plugin.c:618)
+==14105==    by 0x4D907D: main (main.c:1418)
+==14105==  Address 0x1d0fe020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C69540B: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C63F8: _PyObject_GC_Resize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59220B: PyFrame_New (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583DC9: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Use of uninitialised value of size 8
+==14105==    at 0x1C69541F: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C63F8: _PyObject_GC_Resize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59220B: PyFrame_New (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583DC9: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C695402: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C63F8: _PyObject_GC_Resize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C59220B: PyFrame_New (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583DC9: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1d18e020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C681838: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Use of uninitialised value of size 8
+==14105==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C681838: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C655F4A: PyObject_CallFunction (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65A7D9: PyImport_Import (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65BF09: PyImport_ImportModule (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1d113020 is 3,632 bytes inside a block of size 5,410 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C655F4A: PyObject_CallFunction (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65A7D9: PyImport_Import (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65BF09: PyImport_ImportModule (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C655F4A: PyObject_CallFunction (in /usr/lib/libpython2.7.so.1.0)
+==14105==  Address 0x1d113020 is 3,632 bytes inside a block of size 5,410 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C655F4A: PyObject_CallFunction (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65A7D9: PyImport_Import (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65BF09: PyImport_ImportModule (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C655F4A: PyObject_CallFunction (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65A7D9: PyImport_Import (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65BF09: PyImport_ImportModule (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14105== Use of uninitialised value of size 8
+==14105==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C655F4A: PyObject_CallFunction (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65A7D9: PyImport_Import (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65BF09: PyImport_ImportModule (in /usr/lib/libpython2.7.so.1.0)
+==14105== 
+==14161== 
+==14161== HEAP SUMMARY:
+==14161==     in use at exit: 13,046,906 bytes in 71,260 blocks
+==14161==   total heap usage: 246,905 allocs, 175,645 frees, 34,025,273 bytes allocated
+==14161== 
+==14161== LEAK SUMMARY:
+==14161==    definitely lost: 41,363 bytes in 112 blocks
+==14161==    indirectly lost: 6,944 bytes in 218 blocks
+==14161==      possibly lost: 3,317,077 bytes in 20,484 blocks
+==14161==    still reachable: 9,681,522 bytes in 50,446 blocks
+==14161==         suppressed: 0 bytes in 0 blocks
+==14161== Rerun with --leak-check=full to see details of leaked memory
+==14161== 
+==14161== For counts of detected and suppressed errors, rerun with: -v
+==14161== Use --track-origins=yes to see where uninitialised values come from
+==14161== ERROR SUMMARY: 1814 errors from 83 contexts (suppressed: 2 from 2)
+==14166== 
+==14166== HEAP SUMMARY:
+==14166==     in use at exit: 13,046,976 bytes in 71,263 blocks
+==14166==   total heap usage: 246,908 allocs, 175,645 frees, 34,025,343 bytes allocated
+==14166== 
+==14167== 
+==14167== HEAP SUMMARY:
+==14167==     in use at exit: 13,046,976 bytes in 71,263 blocks
+==14167==   total heap usage: 246,908 allocs, 175,645 frees, 34,025,343 bytes allocated
+==14167== 
+==14166== LEAK SUMMARY:
+==14166==    definitely lost: 41,363 bytes in 112 blocks
+==14166==    indirectly lost: 6,944 bytes in 218 blocks
+==14166==      possibly lost: 3,317,077 bytes in 20,484 blocks
+==14166==    still reachable: 9,681,592 bytes in 50,449 blocks
+==14166==         suppressed: 0 bytes in 0 blocks
+==14166== Rerun with --leak-check=full to see details of leaked memory
+==14166== 
+==14166== For counts of detected and suppressed errors, rerun with: -v
+==14166== Use --track-origins=yes to see where uninitialised values come from
+==14166== ERROR SUMMARY: 1814 errors from 83 contexts (suppressed: 2 from 2)
+==14167== LEAK SUMMARY:
+==14167==    definitely lost: 41,363 bytes in 112 blocks
+==14167==    indirectly lost: 6,944 bytes in 218 blocks
+==14167==      possibly lost: 3,317,077 bytes in 20,484 blocks
+==14167==    still reachable: 9,681,592 bytes in 50,449 blocks
+==14167==         suppressed: 0 bytes in 0 blocks
+==14167== Rerun with --leak-check=full to see details of leaked memory
+==14167== 
+==14167== For counts of detected and suppressed errors, rerun with: -v
+==14167== Use --track-origins=yes to see where uninitialised values come from
+==14167== ERROR SUMMARY: 1814 errors from 83 contexts (suppressed: 2 from 2)
+==14168== 
+==14169== 
+==14168== HEAP SUMMARY:
+==14168==     in use at exit: 13,047,041 bytes in 71,265 blocks
+==14168==   total heap usage: 246,910 allocs, 175,645 frees, 34,025,408 bytes allocated
+==14168== 
+==14169== HEAP SUMMARY:
+==14169==     in use at exit: 13,047,041 bytes in 71,265 blocks
+==14169==   total heap usage: 246,910 allocs, 175,645 frees, 34,025,408 bytes allocated
+==14169== 
+==14169== LEAK SUMMARY:
+==14168==    definitely lost: 41,363 bytes in 112 blocks
+==14169==    indirectly lost: 6,944 bytes in 218 blocks
+==14169==      possibly lost: 3,317,077 bytes in 20,484 blocks
+==14168==      possibly lost: 3,317,077 bytes in 20,484 blocks
+==14169==         suppressed: 0 bytes in 0 blocks
+==14169== Rerun with --leak-check=full to see details of leaked==14168===14169== 
+==14168== Rerun with --leak-check=full to see details of leaked memory
+==14168== 
+==14169== For counts of detected and suppressed errors, rerun with: -v
+==14169== Use --track-origins=yes to see where uninitialised values come from
+==14169== ERROR SUMMARY: 1814 errors from 83 contexts (suppressed: 2 from 2)
+==14168== Use --track-origins=yes to see where uninitialised values come from
+==14168== ERROR SUMMARY: 1814 errors from 83 contexts (suppressed: 2 from 2)
+==14170== 
+==14170== HEAP SUMMARY:
+==14170==     in use at exit: 13,047,041 bytes in 71,265 blocks
+==14170==   total heap usage: 246,910 allocs, 175,645 frees, 34,025,408 bytes allocated
+==14170== 
+==14171== 
+==14171== HEAP SUMMARY:
+==14171==     in use at exit: 13,047,041 bytes in 71,265 blocks
+==14171==   total heap usage: 246,910 allocs, 175,645 frees, 34,025,408 bytes allocated
+==14171== 
+==14170== LEAK SUMMARY:
+==14170==    definitely lost: 41,363 bytes in 112 blocks
+==14170==    indirectly lost: 6,944 bytes in 218 blocks
+==14170==      possibly lost: 3,317,077 bytes in 20,484 blocks
+==14170==    still reachable: 9,681,657 bytes in 50,451 blocks
+==14170==         suppressed: 0 bytes in 0 blocks
+==14170== Rerun with --leak-check=full to see details of leaked memory
+==14170== 
+==14170== For counts of detected and suppressed errors, rerun with: -v
+==14170== Use --track-origins=yes to see where uninitialised values come from
+==14170== ERROR SUMMARY: 1814 errors from 83 contexts (suppressed: 2 from 2)
+==14171== LEAK SUMMARY:
+==14171==    definitely lost: 41,363 bytes in 112 blocks
+==14171==    indirectly lost: 6,944 bytes in 218 blocks
+==14171==      possibly lost: 3,317,077 bytes in 20,484 blocks
+==14171==    still reachable: 9,681,657 bytes in 50,451 blocks
+==14171==         suppressed: 0 bytes in 0 blocks
+==14171== Rerun with --leak-check=full to see details of leaked memory
+==14171== 
+==14171== For counts of detected and suppressed errors, rerun with: -v
+==14171== Use --track-origins=yes to see where uninitialised values come from
+==14171== ERROR SUMMARY: 1814 errors from 83 contexts (suppressed: 2 from 2)
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0xB43C9F0: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
+==14105==    by 0xB422076: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
+==14105==    by 0xB3D5810: pixman_image_composite32 (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
+==14105==    by 0x6513C6D: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x6550CA6: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x654362A: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x6543F6E: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x6544A6E: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x65086ED: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x6518932: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x6547C4D: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x650FE24: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0xB43C6E8: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
+==14105==    by 0xB422076: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
+==14105==    by 0xB3D5810: pixman_image_composite32 (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
+==14105==    by 0x6513C6D: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x6550CA6: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x654362A: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x6543F6E: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x6544A6E: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x65086ED: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x6518932: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x6547C4D: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105==    by 0x650FE24: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x336650A7: ??? (in /usr/lib/x86_64-linux-gnu/librsvg-2.so.2.36.3)
+==14105==    by 0x33665D48: rsvg_handle_get_pixbuf_sub (in /usr/lib/x86_64-linux-gnu/librsvg-2.so.2.36.3)
+==14105==    by 0x3340DEAA: ??? (in /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so)
+==14105==    by 0x62D272B: gdk_pixbuf_loader_close (in /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.2600.4)
+==14105==    by 0x62CEA7A: ??? (in /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.2600.4)
+==14105==    by 0x62D02B0: gdk_pixbuf_new_from_stream_at_scale (in /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.2600.4)
+==14105==    by 0x557F5AD: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13)
+==14105==    by 0x5581FB9: gtk_icon_info_load_icon (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13)
+==14105==    by 0x5582166: gtk_icon_theme_load_icon (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13)
+==14105==    by 0x557D650: gtk_icon_set_render_icon (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13)
+==14105==    by 0x56D04B2: gtk_widget_render_icon (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13)
+==14105==    by 0x559165B: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x89DBDB0: re_compile_fastmap_iter.isra.30 (regcomp.c:329)
+==14105==    by 0x89E8669: re_compile_fastmap (regcomp.c:281)
+==14105==    by 0x89E8E8F: regcomp (regcomp.c:517)
+==14105==    by 0x67C2F8: subject_get_prefix_length (utils.c:3805)
+==14105==    by 0x59CB84: subject_hashtable_insert (procmsg.c:141)
+==14105==    by 0x59CF2D: procmsg_get_thread_tree (procmsg.c:242)
+==14105==    by 0x5BFFE2: summary_set_ctree_from_list (summaryview.c:3141)
+==14105==    by 0x5BA939: summary_show (summaryview.c:1463)
+==14105==    by 0x4B6B7E: folderview_selected (folderview.c:2145)
+==14105==    by 0x6FD98A: claws_marshal_VOID__POINTER_INT (claws-marshal.c:348)
+==14105==    by 0x7E0C13F: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
+==14105==    by 0x7E1D54F: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x89DBDB0: re_compile_fastmap_iter.isra.30 (regcomp.c:329)
+==14105==    by 0x89E8689: re_compile_fastmap (regcomp.c:283)
+==14105==    by 0x89E8E8F: regcomp (regcomp.c:517)
+==14105==    by 0x67C2F8: subject_get_prefix_length (utils.c:3805)
+==14105==    by 0x59CB84: subject_hashtable_insert (procmsg.c:141)
+==14105==    by 0x59CF2D: procmsg_get_thread_tree (procmsg.c:242)
+==14105==    by 0x5BFFE2: summary_set_ctree_from_list (summaryview.c:3141)
+==14105==    by 0x5BA939: summary_show (summaryview.c:1463)
+==14105==    by 0x4B6B7E: folderview_selected (folderview.c:2145)
+==14105==    by 0x6FD98A: claws_marshal_VOID__POINTER_INT (claws-marshal.c:348)
+==14105==    by 0x7E0C13F: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
+==14105==    by 0x7E1D54F: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605D15: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105==  Address 0x1cdf7020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E64A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605D15: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==  Address 0x1cdf7020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605D15: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105==  Address 0x1ceca020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==  Address 0x1cdfa020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E8AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105==    by 0x4D95FA: main (main.c:1574)
+==14105==  Address 0x1cdfa020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105==    by 0x4D95FA: main (main.c:1574)
+==14105==  Address 0x1ceb0020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605D15: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==  Address 0x1cc4d020 is 2,048 bytes inside a block of size 2,056 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x7E2C7F4: g_type_free_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
+==14105==    by 0x6A9265: row_delete (gtkcmctree.c:2637)
+==14105==    by 0x6A8C01: tree_delete_row (gtkcmctree.c:2487)
+==14105==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==14105==    by 0x6ACDB7: real_clear (gtkcmctree.c:3295)
+==14105==    by 0x6DF298: gtk_sctree_clear (gtksctree.c:771)
+==14105==    by 0x6C5B85: gtk_cmclist_clear (gtkcmclist.c:2825)
+==14105==    by 0x5BB3A1: summary_clear_list (summaryview.c:1634)
+==14105==    by 0x4DB553: app_will_exit (main.c:2121)
+==14105==    by 0x4ED378: app_exit_cb (mainwindow.c:4021)
+==14105==    by 0x7E0C13F: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105== 
+==14105== Use of uninitialised value of size 8
+==14105==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105==    by 0x4D95FA: main (main.c:1574)
+==14105==  Address 0x1cc48020 is 0 bytes inside a block of size 16 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x684249: xml_free_tag (xml.c:654)
+==14105==    by 0x6840DE: xml_free_node (xml.c:621)
+==14105==    by 0x684126: xml_free_func (xml.c:630)
+==14105==    by 0x809A854: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x809A808: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x809A808: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x809A808: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x809A808: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x809B550: g_node_traverse (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==14105==    by 0x68419F: xml_free_tree (xml.c:638)
+==14105==    by 0x49E625: folder_write_list (folder.c:906)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E2AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==  Address 0x1d1b6020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E63A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E2AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==  Address 0x1d1b6020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== 
+==14105== More than 100 errors detected.  Subsequent errors
+==14105== will still be recorded, but in less detail than before.
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A36BC: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E2AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C606211: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105==  Address 0x1cdc8020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A36BC: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C606412: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C606211: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6147D9: _PyImport_Fini (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EFA4: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105==    by 0x4D95FA: main (main.c:1574)
+==14105== 
+==14105== Use of uninitialised value of size 8
+==14105==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6147D9: _PyImport_Fini (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EFA4: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105==    by 0x4D95FA: main (main.c:1574)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69613B: PyDict_Fini (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58F009: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105==    by 0x4D95FA: main (main.c:1574)
+==14105==  Address 0x1d2b6020 is 1,536 bytes inside a block of size 3,072 free'd
+==14105==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==14105==    by 0x1C6A369A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C65E882: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C606211: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C69613B: PyDict_Fini (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58F009: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105==    by 0x4D95FA: main (main.c:1574)
+==14105== 
+==14105== Invalid read of size 4
+==14105==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695C95: PyGrammar_RemoveAccelerators (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58F01A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105==    by 0x4D95FA: main (main.c:1574)
+==14105==  Address 0x1ceea020 is not stack'd, malloc'd or (recently) free'd
+==14105== 
+==14105== Conditional jump or move depends on uninitialised value(s)
+==14105==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C695C95: PyGrammar_RemoveAccelerators (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C58F01A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==14105==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==14105==    by 0x662665: plugin_unload (plugin.c:545)
+==14105==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==14105==    by 0x4D987B: exit_claws (main.c:1668)
+==14105==    by 0x4D95FA: main (main.c:1574)
+==14105== 
+==14105== 
+==14105== HEAP SUMMARY:
+==14105==     in use at exit: 28,421,190 bytes in 83,097 blocks
+==14105==   total heap usage: 2,288,198 allocs, 2,205,101 frees, 210,685,308 bytes allocated
+==14105== 
+==14105== LEAK SUMMARY:
+==14105==    definitely lost: 48,361 bytes in 134 blocks
+==14105==    indirectly lost: 39,904 bytes in 1,243 blocks
+==14105==      possibly lost: 20,524,016 bytes in 52,169 blocks
+==14105==    still reachable: 7,808,909 bytes in 29,551 blocks
+==14105==         suppressed: 0 bytes in 0 blocks
+==14105== Rerun with --leak-check=full to see details of leaked memory
+==14105== 
+==14105== For counts of detected and suppressed errors, rerun with: -v
+==14105== Use --track-origins=yes to see where uninitialised values come from
+==14105== ERROR SUMMARY: 2494 errors from 108 contexts (suppressed: 2 from 2)
diff --git a/src/main.c b/src/main.c
index 8a0ce23..0bfee71 100644
--- a/src/main.c
+++ b/src/main.c
@@ -132,7 +132,7 @@
 #include "advsearch.h"
 #include "avatars.h"
 #include "passwordstore.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #ifdef HAVE_LIBETPAN
 #include "imap-thread.h"
diff --git a/src/mbox.c b/src/mbox.c
index ea1138a..68b3d01 100644
--- a/src/mbox.c
+++ b/src/mbox.c
@@ -56,7 +56,7 @@
 #include "filtering.h"
 #include "alertpanel.h"
 #include "statusbar.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #define MESSAGEBUFSIZE	8192
 
diff --git a/src/messageview.c b/src/messageview.c
index 1e3d048..0f54089 100644
--- a/src/messageview.c
+++ b/src/messageview.c
@@ -67,7 +67,7 @@
 #include "statusbar.h"
 #include "folder_item_prefs.h"
 #include "avatars.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #ifndef USE_ALT_ADDRBOOK
 	#include "addressbook.h"
diff --git a/src/mh.c b/src/mh.c
index 713ce0d..69d0eca 100644
--- a/src/mh.c
+++ b/src/mh.c
@@ -44,7 +44,7 @@
 #include "gtkutils.h"
 #include "timing.h"
 #include "msgcache.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 /* Define possible missing constants for Windows. */
 #ifdef G_OS_WIN32
diff --git a/src/msgcache.c b/src/msgcache.c
index 871c04a..8909ea7 100644
--- a/src/msgcache.c
+++ b/src/msgcache.c
@@ -47,7 +47,7 @@
 #include "timing.h"
 #include "tags.h"
 #include "prefs_common.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #ifdef HAVE_FWRITE_UNLOCKED
 #define SC_FWRITE fwrite_unlocked
diff --git a/src/news.c b/src/news.c
index 6c29cfb..296a4f6 100644
--- a/src/news.c
+++ b/src/news.c
@@ -62,7 +62,7 @@
 #  include "ssl.h"
 #endif
 #include "main.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #define NNTP_PORT	119
 #ifdef USE_GNUTLS
diff --git a/src/partial_download.c b/src/partial_download.c
index 384393e..9d3c7d2 100644
--- a/src/partial_download.c
+++ b/src/partial_download.c
@@ -63,7 +63,7 @@
 #include "folder.h"
 #include "procheader.h"
 #include "msgcache.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 int partial_msg_in_uidl_list(MsgInfo *msginfo)
 {
diff --git a/src/patch b/src/patch
new file mode 100644
index 0000000..3ad3a54
--- /dev/null
+++ b/src/patch
@@ -0,0 +1,182 @@
+diff --git a/src/folder.c b/src/folder.c
+index 2a8d862..c080f8c 100644
+--- a/src/folder.c
++++ b/src/folder.c
+@@ -969,7 +969,7 @@ void folder_scan_tree(Folder *folder, gboolean rebuild)
+ FolderItem *folder_create_folder(FolderItem *parent, const gchar *name)
+ {
+ 	FolderItem *new_item;
+-	
++
+ 	cm_return_val_if_fail(parent != NULL, NULL);
+ 
+ 	new_item = parent->folder->klass->create_folder(parent->folder, parent, name);
+diff --git a/src/imap.c b/src/imap.c
+index 8870719..9086635 100644
+--- a/src/imap.c
++++ b/src/imap.c
+@@ -290,6 +290,12 @@ static FolderItem *imap_create_special_folder
+ static gint imap_do_copy_msgs		(Folder		*folder,
+ 					 FolderItem	*dest,
+ 					 MsgInfoList	*msglist,
++					 GHashTable	*relation,
++					 gboolean	 same_dest_ok);
++
++static gint imap_do_remove_msgs		(Folder		*folder,
++					 FolderItem	*dest,
++					 MsgInfoList	*msglist,
+ 					 GHashTable	*relation);
+ 
+ static void imap_delete_all_cached_messages	(FolderItem	*item);
+@@ -1810,7 +1816,8 @@ static GSList *flatten_mailimap_set(struct mailimap_set * set)
+ 	return result;
+ }
+ static gint imap_do_copy_msgs(Folder *folder, FolderItem *dest, 
+-			      MsgInfoList *msglist, GHashTable *relation)
++			      MsgInfoList *msglist, GHashTable *relation,
++			      gboolean same_dest_ok)
+ {
+ 	FolderItem *src;
+ 	gchar *destdir;
+@@ -1834,7 +1841,7 @@ static gint imap_do_copy_msgs(Folder *folder, FolderItem *dest,
+ 
+ 	msginfo = (MsgInfo *)msglist->data;
+ 	src = msginfo->folder;
+-	if (src == dest) {
++	if (!same_dest_ok && src == dest) {
+ 		g_warning("the src folder is identical to the dest.\n");
+ 		return -1;
+ 	}
+@@ -2018,10 +2025,32 @@ static gint imap_copy_msgs(Folder *folder, FolderItem *dest,
+ 	msginfo = (MsgInfo *)msglist->data;
+ 	g_return_val_if_fail(msginfo->folder != NULL, -1);
+ 
+-	ret = imap_do_copy_msgs(folder, dest, msglist, relation);
++	ret = imap_do_copy_msgs(folder, dest, msglist, relation, FALSE);
+ 	return ret;
+ }
+ 
++static gboolean imap_renumber_msg(MsgInfo *info)
++{
++	GSList msglist;
++	int ret;
++
++	g_return_val_if_fail(info != NULL, -1);
++
++	msglist.data = info;
++	msglist.next = NULL;
++
++	ret = imap_do_copy_msgs(info->folder->folder, info->folder, &msglist,
++				NULL, TRUE);
++	if (ret == 0)
++		ret = imap_do_remove_msgs(info->folder->folder, info->folder,
++					  &msglist, NULL);
++
++	if (ret == 0)
++		ret = folder_item_scan_full(info->folder, FALSE);
++
++	return ret == 0;
++}
++
+ static gboolean imap_matcher_type_is_local(gint matchertype)
+ {
+ 	switch (matchertype) {
+@@ -3069,6 +3098,17 @@ static FolderItem *imap_create_folder(Folder *folder, FolderItem *parent,
+ 	g_return_val_if_fail(parent != NULL, NULL);
+ 	g_return_val_if_fail(name != NULL, NULL);
+ 
++	if (to_number(name) > 0) {
++		MsgInfo *info = folder_item_get_msginfo(parent, to_number(name));
++		if (info != NULL) {
++			gboolean ok = imap_renumber_msg(info);
++			procmsg_msginfo_free(info);
++			if (!ok) {
++				return NULL;
++			}
++		}
++	}
++
+ 	debug_print("getting session...\n");
+ 	session = imap_session_get(folder);
+ 	if (!session) {
+diff --git a/src/mh.c b/src/mh.c
+index e7b9888..b3fbc9c 100644
+--- a/src/mh.c
++++ b/src/mh.c
+@@ -43,6 +43,7 @@
+ #include "statusbar.h"
+ #include "gtkutils.h"
+ #include "timing.h"
++#include "msgcache.h"
+ 
+ /* Define possible missing constants for Windows. */
+ #ifdef G_OS_WIN32
+@@ -368,6 +369,11 @@ static gchar *mh_get_new_msg_filename(FolderItem *dest)
+ 	destpath = folder_item_get_path(dest);
+ 	cm_return_val_if_fail(destpath != NULL, NULL);
+ 
++	if (dest->last_num < 0) {
++		mh_get_last_num(dest->folder, dest);
++		if (dest->last_num < 0) return NULL;
++	}
++
+ 	if (!is_dir_exist(destpath))
+ 		make_dir_hier(destpath);
+ 
+@@ -867,6 +873,30 @@ static gchar *mh_item_get_path(Folder *folder, FolderItem *item)
+ 	return real_path;
+ }
+ 
++static gboolean mh_renumber_msg(MsgInfo *info)
++{
++	gchar *src, *dest;
++	gboolean result = FALSE;
++	guint num;
++	cm_return_val_if_fail(info != NULL, FALSE);
++
++	src = folder_item_fetch_msg(info->folder, info->msgnum);
++	dest = mh_get_new_msg_filename(info->folder);
++	num = info->folder->last_num + 1;
++
++	if (move_file(src, dest, FALSE) == 0) {
++		msgcache_remove_msg(info->folder->cache, info->msgnum);
++		info->msgnum = num;
++		msgcache_add_msg(info->folder->cache, info);
++		result = TRUE;
++	}
++
++	g_free(src);
++	g_free(dest);
++
++	return result;
++}
++
+ static FolderItem *mh_create_folder(Folder *folder, FolderItem *parent,
+ 				    const gchar *name)
+ {
+@@ -884,12 +914,24 @@ static FolderItem *mh_create_folder(Folder *folder, FolderItem *parent,
+ 	if (!is_dir_exist(path)) 
+ 		if (make_dir_hier(path) != 0)
+ 			return NULL;
+-		
++
+ 	real_name = mh_filename_from_utf8(name);
+ 	fullpath = g_strconcat(path, G_DIR_SEPARATOR_S, real_name, NULL);
+ 	g_free(real_name);
+ 	g_free(path);
+ 
++	if (to_number(name) > 0) {
++		MsgInfo *info = folder_item_get_msginfo(parent, to_number(name));
++		if (info != NULL) {
++			gboolean ok = mh_renumber_msg(info);
++			procmsg_msginfo_free(info);
++			if (!ok) {
++				g_free(fullpath);
++				return NULL;
++			}
++		}
++	}
++
+ 	if (make_dir(fullpath) < 0) {
+ 		g_free(fullpath);
+ 		return NULL;
diff --git a/src/plugins/acpi_notifier/acpi_notifier.c b/src/plugins/acpi_notifier/acpi_notifier.c
index f8abb0b..28e58c8 100644
--- a/src/plugins/acpi_notifier/acpi_notifier.c
+++ b/src/plugins/acpi_notifier/acpi_notifier.c
@@ -47,7 +47,7 @@
 #include "utils.h"
 #include "folder_item_prefs.h"
 #include "gtkcmoptionmenu.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #define PREFS_BLOCK_NAME "AcpiNotifier"
 #define PLUGIN_NAME _("Acpi Notifier")
diff --git a/src/plugins/acpi_notifier/claws-mail-acpi_notifier.metainfo.xml b/src/plugins/acpi_notifier/claws-mail-acpi_notifier.metainfo.xml
new file mode 100644
index 0000000..a8e399a
--- /dev/null
+++ b/src/plugins/acpi_notifier/claws-mail-acpi_notifier.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-acpi_notifier</id>
+<extends>claws-mail.desktop</extends>
+<name>AcpiNotifier</name>
+<summary>Enables mail notification via LEDs on some laptops</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=acpinotifier</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/address_keeper/claws-mail-address_keeper.metainfo.xml b/src/plugins/address_keeper/claws-mail-address_keeper.metainfo.xml
new file mode 100644
index 0000000..c6b927b
--- /dev/null
+++ b/src/plugins/address_keeper/claws-mail-address_keeper.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-address_keeper</id>
+<extends>claws-mail.desktop</extends>
+<name>AddressKeeper</name>
+<summary>Allows saving outgoing addresses to a designated folder in the address book</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/archive/claws-mail-archive.metainfo.xml b/src/plugins/archive/claws-mail-archive.metainfo.xml
new file mode 100644
index 0000000..d8bb982
--- /dev/null
+++ b/src/plugins/archive/claws-mail-archive.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-archive</id>
+<extends>claws-mail.desktop</extends>
+<name>Mail Archiver</name>
+<summary>Allows to make tars or zips of old folders</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/att_remover/claws-mail-att_remover.metainfo.xml b/src/plugins/att_remover/claws-mail-att_remover.metainfo.xml
new file mode 100644
index 0000000..315b130
--- /dev/null
+++ b/src/plugins/att_remover/claws-mail-att_remover.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-att_remover</id>
+<extends>claws-mail.desktop</extends>
+<name>AttRemover</name>
+<summary>Lets you remove attachments from emails</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/attachwarner/claws-mail-attachwarner.metainfo.xml b/src/plugins/attachwarner/claws-mail-attachwarner.metainfo.xml
new file mode 100644
index 0000000..445703a
--- /dev/null
+++ b/src/plugins/attachwarner/claws-mail-attachwarner.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-attachwarner</id>
+<extends>claws-mail.desktop</extends>
+<name>AttachWarner</name>
+<summary>Warns when a message mentioning an attachment in the message body without attaching any files</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=attachwarner</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/bogofilter/bogofilter.c b/src/plugins/bogofilter/bogofilter.c
index 446b652..c6a978d 100644
--- a/src/plugins/bogofilter/bogofilter.c
+++ b/src/plugins/bogofilter/bogofilter.c
@@ -52,7 +52,7 @@
 #include "prefs_common.h"
 #include "alertpanel.h"
 #include "addr_compl.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #ifdef HAVE_SYSEXITS_H
 #include <sysexits.h>
diff --git a/src/plugins/bogofilter/claws-mail-bogofilter.metainfo.xml b/src/plugins/bogofilter/claws-mail-bogofilter.metainfo.xml
new file mode 100644
index 0000000..c1de241
--- /dev/null
+++ b/src/plugins/bogofilter/claws-mail-bogofilter.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-bogofilter</id>
+<extends>claws-mail.desktop</extends>
+<name>Bogofilter</name>
+<summary>Enables the scanning of incoming mail received from a POP, IMAP, or LOCAL account using Bogofilter</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=bogofilter</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/bsfilter/claws-mail-bsfilter.metainfo.xml b/src/plugins/bsfilter/claws-mail-bsfilter.metainfo.xml
new file mode 100644
index 0000000..cb9baff
--- /dev/null
+++ b/src/plugins/bsfilter/claws-mail-bsfilter.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-bsfilter</id>
+<extends>claws-mail.desktop</extends>
+<name>BSfilter</name>
+<summary>Check all messages that are received from an IMAP, LOCAL or POP account for spam using Bsfilter</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/clamd/claws-mail-clamd.metainfo.xml b/src/plugins/clamd/claws-mail-clamd.metainfo.xml
new file mode 100644
index 0000000..9f8b913
--- /dev/null
+++ b/src/plugins/clamd/claws-mail-clamd.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-clamd</id>
+<extends>claws-mail.desktop</extends>
+<name>Clamd</name>
+<summary>Scans all messages that are received from an IMAP, LOCAL or POP account using clamd (Clam AV)</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/fancy/claws-mail-fancy.metainfo.xml b/src/plugins/fancy/claws-mail-fancy.metainfo.xml
new file mode 100644
index 0000000..5fbe341
--- /dev/null
+++ b/src/plugins/fancy/claws-mail-fancy.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-fancy</id>
+<extends>claws-mail.desktop</extends>
+<name>Fancy</name>
+<summary>Renders HTML e-mail using the WebKit library</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/fancy/fancy_viewer.c b/src/plugins/fancy/fancy_viewer.c
index 1823fd4..a1b434f 100644
--- a/src/plugins/fancy/fancy_viewer.c
+++ b/src/plugins/fancy/fancy_viewer.c
@@ -28,7 +28,7 @@
 #include <fancy_viewer.h>
 #include <fancy_prefs.h>
 #include <alertpanel.h>
-#include <safe_fclose.h>
+#include <claws_io.h>
 
 #include <printing.h>
 #include <webkit/webkithittestresult.h>
diff --git a/src/plugins/fetchinfo/claws-mail-fetchinfo.metainfo.xml b/src/plugins/fetchinfo/claws-mail-fetchinfo.metainfo.xml
new file mode 100644
index 0000000..01107b4
--- /dev/null
+++ b/src/plugins/fetchinfo/claws-mail-fetchinfo.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-fetchinfo</id>
+<extends>claws-mail.desktop</extends>
+<name>Fetchinfo</name>
+<summary>Inserts headers containing: UIDL, Claws' account name, POP server, user ID and retrieval time</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/gdata/claws-mail-gdata.metainfo.xml b/src/plugins/gdata/claws-mail-gdata.metainfo.xml
new file mode 100644
index 0000000..b6969f6
--- /dev/null
+++ b/src/plugins/gdata/claws-mail-gdata.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-gdata</id>
+<extends>claws-mail.desktop</extends>
+<name>GData</name>
+<summary>Provides an interface to Google services</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/geolocation/claws-mail-geolocation.metainfo.xml b/src/plugins/geolocation/claws-mail-geolocation.metainfo.xml
new file mode 100644
index 0000000..e8cf99a
--- /dev/null
+++ b/src/plugins/geolocation/claws-mail-geolocation.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-geolocation</id>
+<extends>claws-mail.desktop</extends>
+<name>GeoLocation</name>
+<summary>Provides GeoLocation functionality</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/libravatar/claws-mail-libravatar.metainfo.xml b/src/plugins/libravatar/claws-mail-libravatar.metainfo.xml
new file mode 100644
index 0000000..eda4aaf
--- /dev/null
+++ b/src/plugins/libravatar/claws-mail-libravatar.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-libravatar</id>
+<extends>claws-mail.desktop</extends>
+<name>Libravatar</name>
+<summary>Displays libravatar/gravatar profiles' images or a dynamically generated or predefined alternative</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=libravatar</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/libravatar/libravatar_image.c b/src/plugins/libravatar/libravatar_image.c
index 66a0e1d..1482ae1 100644
--- a/src/plugins/libravatar/libravatar_image.c
+++ b/src/plugins/libravatar/libravatar_image.c
@@ -27,7 +27,7 @@
 
 #include <common/claws.h>
 #include <prefs_common.h>
-#include <safe_fclose.h>
+#include <claws_io.h>
 
 #include "libravatar.h"
 #include "libravatar_prefs.h"
diff --git a/src/plugins/libravatar/libravatar_missing.c b/src/plugins/libravatar/libravatar_missing.c
index 6a01911..a19de48 100644
--- a/src/plugins/libravatar/libravatar_missing.c
+++ b/src/plugins/libravatar/libravatar_missing.c
@@ -21,7 +21,7 @@
 #include "libravatar_missing.h"
 #include "libravatar_prefs.h"
 #include "utils.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 /**
  * Loads the hash table of md5sum → time from the given filename.
diff --git a/src/plugins/mailmbox/claws-mail-mailmbox.metainfo.xml b/src/plugins/mailmbox/claws-mail-mailmbox.metainfo.xml
new file mode 100644
index 0000000..72a39db
--- /dev/null
+++ b/src/plugins/mailmbox/claws-mail-mailmbox.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-mailmbox</id>
+<extends>claws-mail.desktop</extends>
+<name>mailMBOX</name>
+<summary>Direct support for mailboxes in mbox format</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/mailmbox/mailmbox_folder.c b/src/plugins/mailmbox/mailmbox_folder.c
index 1db007b..c8a77d8 100644
--- a/src/plugins/mailmbox/mailmbox_folder.c
+++ b/src/plugins/mailmbox/mailmbox_folder.c
@@ -56,7 +56,7 @@
 #include "mailmbox.h"
 #include "mailmbox_folder.h"
 #include "mailmbox_parse.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #define MAILMBOX_CACHE_DIR           "mailmboxcache"
 
diff --git a/src/plugins/newmail/claws-mail-newmail.metainfo.xml b/src/plugins/newmail/claws-mail-newmail.metainfo.xml
new file mode 100644
index 0000000..b4b31ef
--- /dev/null
+++ b/src/plugins/newmail/claws-mail-newmail.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-newmail</id>
+<extends>claws-mail.desktop</extends>
+<name>NewMail</name>
+<summary>Writes a msg header summary to a log file on arrival of new mail after sorting</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/notification/claws-mail-notification.metainfo.xml b/src/plugins/notification/claws-mail-notification.metainfo.xml
new file mode 100644
index 0000000..ef13e66
--- /dev/null
+++ b/src/plugins/notification/claws-mail-notification.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-notification</id>
+<extends>claws-mail.desktop</extends>
+<name>Notification</name>
+<summary>Provides various ways to notify the user of new and unread email</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=notification</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/pdf_viewer/claws-mail-pdf_viewer.metainfo.xml b/src/plugins/pdf_viewer/claws-mail-pdf_viewer.metainfo.xml
new file mode 100644
index 0000000..5d965b8
--- /dev/null
+++ b/src/plugins/pdf_viewer/claws-mail-pdf_viewer.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-pdf_viewer</id>
+<extends>claws-mail.desktop</extends>
+<name>PDF Viewer</name>
+<summary>Enables the viewing of PDF and PostScript attachments using the Poppler library and GhostScript</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=pdf_viewer</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/perl/claws-mail-perl.metainfo.xml b/src/plugins/perl/claws-mail-perl.metainfo.xml
new file mode 100644
index 0000000..39adc21
--- /dev/null
+++ b/src/plugins/perl/claws-mail-perl.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-perl</id>
+<extends>claws-mail.desktop</extends>
+<name>Perl</name>
+<summary>Allowing the use of full Perl power in email filters</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/pgpcore/claws-mail-pgpcore.metainfo.xml b/src/plugins/pgpcore/claws-mail-pgpcore.metainfo.xml
new file mode 100644
index 0000000..92fea1c
--- /dev/null
+++ b/src/plugins/pgpcore/claws-mail-pgpcore.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-pgpcore</id>
+<extends>claws-mail.desktop</extends>
+<name>PGP/Core</name>
+<summary>Handles core PGP functions and is a dependency of both the PGP/Inline and PGP/MIME plugins.</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=gpg</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/pgpinline/claws-mail-pgpinline.metainfo.xml b/src/plugins/pgpinline/claws-mail-pgpinline.metainfo.xml
new file mode 100644
index 0000000..178bad5
--- /dev/null
+++ b/src/plugins/pgpinline/claws-mail-pgpinline.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-pgpinline</id>
+<extends>claws-mail.desktop</extends>
+<name>PGP/Inline</name>
+<summary>Handles PGP/Inline signed and/or encrypted mails</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=gpg</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/pgpinline/pgpinline.c b/src/plugins/pgpinline/pgpinline.c
index bd2f026..4f8e789 100644
--- a/src/plugins/pgpinline/pgpinline.c
+++ b/src/plugins/pgpinline/pgpinline.c
@@ -28,7 +28,7 @@
 #include <glib/gi18n.h>
 #include <errno.h>
 #include <gpgme.h>
-#include <safe_fclose.h>
+#include <claws_io.h>
 
 #include "utils.h"
 #include "privacy.h"
diff --git a/src/plugins/pgpmime/claws-mail-pgpmime.metainfo.xml b/src/plugins/pgpmime/claws-mail-pgpmime.metainfo.xml
new file mode 100644
index 0000000..748b303
--- /dev/null
+++ b/src/plugins/pgpmime/claws-mail-pgpmime.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-pgpmime</id>
+<extends>claws-mail.desktop</extends>
+<name>PGP/MIME</name>
+<summary>Handles PGP/MIME signed and/or encrypted mails</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=gpg</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/pgpmime/pgpmime.c b/src/plugins/pgpmime/pgpmime.c
index ff01c93..3827487 100644
--- a/src/plugins/pgpmime/pgpmime.c
+++ b/src/plugins/pgpmime/pgpmime.c
@@ -42,7 +42,7 @@
 #include <plugins/pgpcore/pgp_utils.h>
 
 #include "prefs_common.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 typedef struct _PrivacyDataPGP PrivacyDataPGP;
 
diff --git a/src/plugins/python/claws-mail-python.metainfo.xml b/src/plugins/python/claws-mail-python.metainfo.xml
new file mode 100644
index 0000000..4d0d227
--- /dev/null
+++ b/src/plugins/python/claws-mail-python.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-python</id>
+<extends>claws-mail.desktop</extends>
+<name>Python</name>
+<summary>Offers a Python scripting. Code can be entered into an embedded Python console or stored</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=python</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/rssyl/claws-mail-rssyl.metainfo.xml b/src/plugins/rssyl/claws-mail-rssyl.metainfo.xml
new file mode 100644
index 0000000..9d37b0c
--- /dev/null
+++ b/src/plugins/rssyl/claws-mail-rssyl.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-rssyl</id>
+<extends>claws-mail.desktop</extends>
+<name>RSSyl</name>
+<summary>Read your RSS favourite newsfeeds</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=rssyl</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/rssyl/opml_export.c b/src/plugins/rssyl/opml_export.c
index 884f72c..20649db 100644
--- a/src/plugins/rssyl/opml_export.c
+++ b/src/plugins/rssyl/opml_export.c
@@ -32,7 +32,7 @@
 #include <log.h>
 #include <folder.h>
 #include <common/utils.h>
-#include <safe_fclose.h>
+#include <claws_io.h>
 
 /* Local includes */
 #include "libfeed/date.h"
diff --git a/src/plugins/rssyl/rssyl_add_item.c b/src/plugins/rssyl/rssyl_add_item.c
index 048eb04..a7906fd 100644
--- a/src/plugins/rssyl/rssyl_add_item.c
+++ b/src/plugins/rssyl/rssyl_add_item.c
@@ -34,7 +34,7 @@
 #include <codeconv.h>
 #include <procmsg.h>
 #include <common/utils.h>
-#include <safe_fclose.h>
+#include <claws_io.h>
 
 /* Local includes */
 #include "libfeed/date.h"
diff --git a/src/plugins/rssyl/rssyl_deleted.c b/src/plugins/rssyl/rssyl_deleted.c
index f6e6a76..11e2ed1 100644
--- a/src/plugins/rssyl/rssyl_deleted.c
+++ b/src/plugins/rssyl/rssyl_deleted.c
@@ -31,7 +31,7 @@
 /* Claws Mail includes */
 #include <codeconv.h>
 #include <common/utils.h>
-#include <safe_fclose.h>
+#include <claws_io.h>
 
 /* Local includes */
 #include "rssyl.h"
diff --git a/src/plugins/smime/claws-mail-smime.metainfo.xml b/src/plugins/smime/claws-mail-smime.metainfo.xml
new file mode 100644
index 0000000..d453c7d
--- /dev/null
+++ b/src/plugins/smime/claws-mail-smime.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-smime</id>
+<extends>claws-mail.desktop</extends>
+<name>S/MIME</name>
+<summary>Handles S/MIME signed and/or encrypted mails</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/smime/smime.c b/src/plugins/smime/smime.c
index 08d8dc2..abc49c8 100644
--- a/src/plugins/smime/smime.c
+++ b/src/plugins/smime/smime.c
@@ -43,7 +43,7 @@
 #include "prefs_common.h"
 #include "procmime.h"
 #include "plugin.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 typedef struct _PrivacyDataPGP PrivacyDataPGP;
 
diff --git a/src/plugins/spam_report/claws-mail-spam_report.metainfo.xml b/src/plugins/spam_report/claws-mail-spam_report.metainfo.xml
new file mode 100644
index 0000000..0a1c8b7
--- /dev/null
+++ b/src/plugins/spam_report/claws-mail-spam_report.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-spam_report</id>
+<extends>claws-mail.desktop</extends>
+<name>SpamReport</name>
+<summary>Reports spam to various places</summary>
+<url type="homepage">http://claws-mail.org/plugins.php</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/spamassassin/claws-mail-spamassasin.metainfo.xml b/src/plugins/spamassassin/claws-mail-spamassasin.metainfo.xml
new file mode 100644
index 0000000..28ee07a
--- /dev/null
+++ b/src/plugins/spamassassin/claws-mail-spamassasin.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-spamassasin</id>
+<extends>claws-mail.desktop</extends>
+<name>SpamAssasin</name>
+<summary>Enables the scanning of incoming mail received from a POP, IMAP, or LOCAL account using SpamAssassin</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=spamassasin</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/spamassassin/claws-mail-spamassassin.metainfo.xml b/src/plugins/spamassassin/claws-mail-spamassassin.metainfo.xml
new file mode 100644
index 0000000..72b9986
--- /dev/null
+++ b/src/plugins/spamassassin/claws-mail-spamassassin.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-spamassassin</id>
+<extends>claws-mail.desktop</extends>
+<name>SpamAssassin</name>
+<summary>Enables the scanning of incoming mail received from a POP, IMAP, or LOCAL account using SpamAssassin</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=spamassassin</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/tnef_parse/claws-mail-tnef_parse.metainfo.xml b/src/plugins/tnef_parse/claws-mail-tnef_parse.metainfo.xml
new file mode 100644
index 0000000..d6e4a92
--- /dev/null
+++ b/src/plugins/tnef_parse/claws-mail-tnef_parse.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-tnef_parse</id>
+<extends>claws-mail.desktop</extends>
+<name>TNEF parse</name>
+<summary>Enables reading application/ms-tnef attachments</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=tnef_parser</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/tnef_parse/out b/src/plugins/tnef_parse/out
new file mode 100644
index 0000000..bd8cba3
--- /dev/null
+++ b/src/plugins/tnef_parse/out
@@ -0,0 +1,2395 @@
+==30919== Memcheck, a memory error detector
+==30919== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
+==30919== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
+==30919== Command: claws-mail
+==30919== Parent PID: 30876
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==30919==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x66038F: mgu_list_test_unq_nc (mgutils.c:383)
+==30919==    by 0x63D33A: ldapctl_criteria_list_add (ldapctrl.c:344)
+==30919==    by 0x611855: addrindex_parse_ldap_attrlist (addrindex.c:1331)
+==30919==    by 0x611CD2: addrindex_parse_ldap (addrindex.c:1443)
+==30919==    by 0x612371: addrindex_read_index (addrindex.c:1612)
+==30919==    by 0x6126A6: addrindex_read_file (addrindex.c:1684)
+==30919==    by 0x613DB5: addrindex_read_data (addrindex.c:2307)
+==30919==    by 0x609995: addressbook_read_file (addressbook.c:4170)
+==30919==    by 0x4D8CDA: main (main.c:1265)
+==30919==  Address 0x1192ea48 is 0 bytes after a block of size 40 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x66038F: mgu_list_test_unq_nc (mgutils.c:383)
+==30919==    by 0x63D33A: ldapctl_criteria_list_add (ldapctrl.c:344)
+==30919==    by 0x611855: addrindex_parse_ldap_attrlist (addrindex.c:1331)
+==30919==    by 0x611CD2: addrindex_parse_ldap (addrindex.c:1443)
+==30919==    by 0x612371: addrindex_read_index (addrindex.c:1612)
+==30919==    by 0x6126A6: addrindex_read_file (addrindex.c:1684)
+==30919==    by 0x613DB5: addrindex_read_data (addrindex.c:2307)
+==30919==    by 0x609995: addressbook_read_file (addressbook.c:4170)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==30919==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x66038F: mgu_list_test_unq_nc (mgutils.c:383)
+==30919==    by 0x63D33A: ldapctl_criteria_list_add (ldapctrl.c:344)
+==30919==    by 0x611855: addrindex_parse_ldap_attrlist (addrindex.c:1331)
+==30919==    by 0x611CD2: addrindex_parse_ldap (addrindex.c:1443)
+==30919==    by 0x612371: addrindex_read_index (addrindex.c:1612)
+==30919==    by 0x6126A6: addrindex_read_file (addrindex.c:1684)
+==30919==    by 0x613DB5: addrindex_read_data (addrindex.c:2307)
+==30919==    by 0x609995: addressbook_read_file (addressbook.c:4170)
+==30919==    by 0x4D8CDA: main (main.c:1265)
+==30919==  Address 0x1192edc8 is 0 bytes after a block of size 40 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x66038F: mgu_list_test_unq_nc (mgutils.c:383)
+==30919==    by 0x63D33A: ldapctl_criteria_list_add (ldapctrl.c:344)
+==30919==    by 0x611855: addrindex_parse_ldap_attrlist (addrindex.c:1331)
+==30919==    by 0x611CD2: addrindex_parse_ldap (addrindex.c:1443)
+==30919==    by 0x612371: addrindex_read_index (addrindex.c:1612)
+==30919==    by 0x6126A6: addrindex_read_file (addrindex.c:1684)
+==30919==    by 0x613DB5: addrindex_read_data (addrindex.c:2307)
+==30919==    by 0x609995: addressbook_read_file (addressbook.c:4170)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA27: wcslen (wcslen.S:55)
+==30919==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==30919==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==30919==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==30919==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==30919==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919==  Address 0x135afe88 is 0 bytes after a block of size 56 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==30919==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==30919==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==30919==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==30919==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA27: wcslen (wcslen.S:55)
+==30919==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==30919==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==30919==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==30919==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==30919==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919==  Address 0x135aff08 is 0 bytes after a block of size 56 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==30919==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==30919==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==30919==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==30919==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==30919==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==30919==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==30919==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==30919==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==30919==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919==  Address 0x135b6288 is 0 bytes after a block of size 40 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==30919==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==30919==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==30919==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==30919==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==30919==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==30919==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==30919==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==30919==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==30919==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919==  Address 0x135b6978 is 40 bytes inside a block of size 44 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5DCFC2: toolbar_ret_val_from_text (toolbar.c:276)
+==30919==    by 0x5DD50E: toolbar_parse_item (toolbar.c:372)
+==30919==    by 0x5DE331: toolbar_read_config_file (toolbar.c:750)
+==30919==    by 0x5E1ABD: toolbar_create (toolbar.c:1915)
+==30919==    by 0x4E58AA: main_window_create (mainwindow.c:1899)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==30919==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5CB0C1: summary_tag_cmp_list (summaryview.c:6190)
+==30919==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80AE3EB: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5CB104: summary_tags_menu_create (summaryview.c:6204)
+==30919==    by 0x5B8A78: summary_init (summaryview.c:997)
+==30919==    by 0x4E6B00: main_window_create (mainwindow.c:2180)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919==  Address 0x152f2d30 is 32 bytes inside a block of size 36 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5CB0C1: summary_tag_cmp_list (summaryview.c:6190)
+==30919==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80AE3EB: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5CB104: summary_tags_menu_create (summaryview.c:6204)
+==30919==    by 0x5B8A78: summary_init (summaryview.c:997)
+==30919==    by 0x4E6B00: main_window_create (mainwindow.c:2180)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==30919==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5CB0C1: summary_tag_cmp_list (summaryview.c:6190)
+==30919==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5CB104: summary_tags_menu_create (summaryview.c:6204)
+==30919==    by 0x5B8A78: summary_init (summaryview.c:997)
+==30919==    by 0x4E6B00: main_window_create (mainwindow.c:2180)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919==  Address 0x152f2e60 is 32 bytes inside a block of size 36 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5CB0C1: summary_tag_cmp_list (summaryview.c:6190)
+==30919==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x5CB104: summary_tags_menu_create (summaryview.c:6204)
+==30919==    by 0x5B8A78: summary_init (summaryview.c:997)
+==30919==    by 0x4E6B00: main_window_create (mainwindow.c:2180)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==30919==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4DEFC3: mainwin_tag_cmp_list (mainwindow.c:1246)
+==30919==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80AE3EB: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4DEFFE: mainwindow_tags_menu_create (mainwindow.c:1258)
+==30919==    by 0x4E6C04: main_window_create (mainwindow.c:2202)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919==  Address 0x1537c630 is 32 bytes inside a block of size 36 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4DEFC3: mainwin_tag_cmp_list (mainwindow.c:1246)
+==30919==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80AE3EB: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4DEFFE: mainwindow_tags_menu_create (mainwindow.c:1258)
+==30919==    by 0x4E6C04: main_window_create (mainwindow.c:2202)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==30919==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4DEFC3: mainwin_tag_cmp_list (mainwindow.c:1246)
+==30919==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4DEFFE: mainwindow_tags_menu_create (mainwindow.c:1258)
+==30919==    by 0x4E6C04: main_window_create (mainwindow.c:2202)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919==  Address 0x1537c760 is 32 bytes inside a block of size 36 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4DEFC3: mainwin_tag_cmp_list (mainwindow.c:1246)
+==30919==    by 0x80AE419: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4DEFFE: mainwindow_tags_menu_create (mainwindow.c:1258)
+==30919==    by 0x4E6C04: main_window_create (mainwindow.c:2202)
+==30919==    by 0x4D8D20: main (main.c:1286)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA27: wcslen (wcslen.S:55)
+==30919==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E0180: sink (gtksctree.c:1078)
+==30919==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==30919==  Address 0x1582a090 is 48 bytes inside a block of size 52 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E0180: sink (gtksctree.c:1078)
+==30919==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==30919==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E0180: sink (gtksctree.c:1078)
+==30919==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==30919==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==30919==  Address 0x1582a7a0 is 32 bytes inside a block of size 36 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E0180: sink (gtksctree.c:1078)
+==30919==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==30919==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E01DA: sink (gtksctree.c:1082)
+==30919==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==30919==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==30919==  Address 0x1582a8c0 is 32 bytes inside a block of size 36 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E01DA: sink (gtksctree.c:1082)
+==30919==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA27: wcslen (wcslen.S:55)
+==30919==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E0180: sink (gtksctree.c:1078)
+==30919==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==30919==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==30919==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==30919==  Address 0x1582e748 is 0 bytes after a block of size 56 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E0180: sink (gtksctree.c:1078)
+==30919==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6AD12F: gtk_cmctree_post_recursive (gtkcmctree.c:3330)
+==30919==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==30919==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA3F: wcslen (wcslen.S:62)
+==30919==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E01DA: sink (gtksctree.c:1082)
+==30919==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==30919==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==30919==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==30919==    by 0x4B2AC2: folderview_set_folders (folderview.c:975)
+==30919==  Address 0x15833b88 is 0 bytes after a block of size 72 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E01DA: sink (gtksctree.c:1082)
+==30919==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==30919==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==30919==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA3F: wcslen (wcslen.S:62)
+==30919==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E0180: sink (gtksctree.c:1078)
+==30919==    by 0x6E0320: heap_sort (gtksctree.c:1109)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==30919==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==30919==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==30919==    by 0x4B2AC2: folderview_set_folders (folderview.c:975)
+==30919==  Address 0x158355b8 is 0 bytes after a block of size 72 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E0180: sink (gtksctree.c:1078)
+==30919==    by 0x6E0320: heap_sort (gtksctree.c:1109)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==30919==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==30919==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA6B: wcslen (wcslen.S:75)
+==30919==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E01DA: sink (gtksctree.c:1082)
+==30919==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==30919==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==30919==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==30919==    by 0x4B2AC2: folderview_set_folders (folderview.c:975)
+==30919==  Address 0x16991eb8 is 0 bytes after a block of size 104 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x4B7F04: folderview_clist_compare (folderview.c:2498)
+==30919==    by 0x6E01DA: sink (gtksctree.c:1082)
+==30919==    by 0x6E02A2: heap_sort (gtksctree.c:1103)
+==30919==    by 0x6E0462: stree_sort (gtksctree.c:1145)
+==30919==    by 0x6AD172: gtk_cmctree_post_recursive (gtkcmctree.c:3335)
+==30919==    by 0x6E07C7: gtk_sctree_sort_recursive (gtksctree.c:1205)
+==30919==    by 0x4B4F4B: folderview_sort_folders (folderview.c:1715)
+==30919==    by 0x4B50FD: folderview_append_folder (folderview.c:1739)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cca1020 is 2,000 bytes inside a block of size 2,731 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cca1020 is 2,000 bytes inside a block of size 2,731 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E64A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cca1020 is 2,000 bytes inside a block of size 2,731 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1ccd9020 is 2,592 bytes inside a block of size 3,243 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Use of uninitialised value of size 8
+==30919==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cd6c020 is 7,248 bytes inside a block of size 9,383 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cd6c020 is 7,248 bytes inside a block of size 9,383 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E64A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cd6d020 is 48 bytes inside a block of size 368 free'd
+==30919==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C607ADD: PyList_Append (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67AEBB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67A194: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67A750: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67A194: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67A73C: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67A194: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67A73C: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67B257: PyMarshal_ReadObjectFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67B35D: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Use of uninitialised value of size 8
+==30919==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cd86020 is 16 bytes before a block of size 40 free'd
+==30919==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C607ADD: PyList_Append (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C685766: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C68598E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6861CF: PyType_Ready (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C591855: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C64A259: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583D71: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DACB5: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5EA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1b053020 is 1,248 bytes inside a block of size 1,608 free'd
+==30919==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C607ADD: PyList_Append (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67AEBB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67A7E4: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67B257: PyMarshal_ReadObjectFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67B35D: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1ce01020 is 320 bytes inside a block of size 704 free'd
+==30919==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C607ADD: PyList_Append (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67AEBB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67A194: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67A73C: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67B257: PyMarshal_ReadObjectFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67B35D: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Use of uninitialised value of size 8
+==30919==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6958EB: PyGrammar_AddAccelerators (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695BD7: PyParser_New (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6802D4: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1ceb0020 is 16 bytes before a block of size 41 free'd
+==30919==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C5B4602: PyTokenizer_FromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5B488F: PyParser_ParseStringFlagsFilenameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6BF74D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599FE7: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cf10020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599FE7: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cf10020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAED1: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cf10020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x1C69540B: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695613: PyNode_AddChild (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C620032: PyParser_AddToken (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680351: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Use of uninitialised value of size 8
+==30919==    at 0x1C69541F: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695613: PyNode_AddChild (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C620032: PyParser_AddToken (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680351: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695FD7: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cf1d020 is 33,344 bytes inside a block of size 36,032 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695FD7: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cf1d020 is 33,344 bytes inside a block of size 36,032 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C695402: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C49D1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DEB40: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5CA9A7: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C598328: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cf1e020 is 0 bytes after a block of size 32 free'd
+==30919==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C607ADD: PyList_Append (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C607BE0: PyArena_AddPyObject (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5944F8: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59552C: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F3254: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C595B53: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F17A6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1B10: PyAST_FromNode (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ECA: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C695402: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C49D1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DEB40: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5CBA5B: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5983AB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cf1e020 is 0 bytes after a block of size 32 free'd
+==30919==    at 0x4C2B4F0: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C607ADD: PyList_Append (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C607BE0: PyArena_AddPyObject (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5944F8: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59552C: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F3254: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C595B53: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F17A6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1B10: PyAST_FromNode (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ECA: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695F14: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cf45020 is 32,176 bytes inside a block of size 36,032 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C695402: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C49D1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DE8A6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5CB707: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5CA973: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5CBA5B: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5CBB29: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5CA9A7: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C598328: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cf47020 is 128 bytes inside a block of size 768 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C6A369A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5E239A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5972BF: PySymtable_Build (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599EB1: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A3466: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584771: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBB7C: PyImport_ExecCodeModuleEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cf3a020 is 6,800 bytes inside a block of size 8,192 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C698999: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C698A92: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6ACCCC: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57EDE5: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695EEA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1cf5d020 is 35,888 bytes inside a block of size 36,032 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C580537: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695EEA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919==  Address 0x1d047020 is 32,432 bytes inside a block of size 36,032 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695F79: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Use of uninitialised value of size 8
+==30919==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695F79: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695FA8: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919==  Address 0x1d047020 is 32,432 bytes inside a block of size 36,032 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6BF74D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5995B3: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919==  Address 0x1d093020 is 8 bytes after a block of size 8 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C6A3544: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5C9D30: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5C9F81: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C598F02: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C695402: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C49D1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5CB5AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5CA9A7: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5975F1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A60F: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C598F97: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==  Address 0x1d093020 is 8 bytes after a block of size 8 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C6A3544: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5C9D30: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5C9F81: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C598F02: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5995B3: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919==  Address 0x1d093020 is 8 bytes after a block of size 8 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C6A3544: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5C9D30: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5C9F81: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C598F02: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5CB99B: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5CA9A7: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5975F1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C598F97: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==  Address 0x1d096020 is 224 bytes inside a block of size 384 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C6BF74D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5995B3: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6BF74D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C652DC5: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599C4C: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919==  Address 0x1d096020 is 224 bytes inside a block of size 384 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C6BF74D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5995B3: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAED1: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32932C: cmpy_add_node (nodetype.c:88)
+==30919==    by 0x1C3263CF: initclawsmail (clawsmailmodule.c:926)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919==  Address 0x1d098020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C696035: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C3262F9: add_miscstuff (clawsmailmodule.c:898)
+==30919==    by 0x1C3264E7: initclawsmail (clawsmailmodule.c:936)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919==  Address 0x1d0a6020 is 32,608 bytes inside a block of size 36,032 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C3262F9: add_miscstuff (clawsmailmodule.c:898)
+==30919==    by 0x1C3264E7: initclawsmail (clawsmailmodule.c:936)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAED1: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C3262F9: add_miscstuff (clawsmailmodule.c:898)
+==30919==    by 0x1C3264E7: initclawsmail (clawsmailmodule.c:936)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919==  Address 0x1d0a8020 is 96 bytes inside a block of size 768 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C6A369A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6BF896: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599FE7: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C3262F9: add_miscstuff (clawsmailmodule.c:898)
+==30919==    by 0x1C3264E7: initclawsmail (clawsmailmodule.c:936)
+==30919==    by 0x1C32B104: plugin_init (python_plugin.c:669)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599FE7: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B137: plugin_init (python_plugin.c:675)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919==  Address 0x1d0b3020 is 32,304 bytes inside a block of size 36,032 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B137: plugin_init (python_plugin.c:675)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAED1: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B137: plugin_init (python_plugin.c:675)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919==  Address 0x1d0b4020 is 64 bytes inside a block of size 432 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C599FE7: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B137: plugin_init (python_plugin.c:675)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695EEA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==30919==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Use of uninitialised value of size 8
+==30919==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695EEA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==30919==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C696035: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==30919==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Use of uninitialised value of size 8
+==30919==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C696035: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695EB6: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==30919==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695F79: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69607D: PyNode_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1ED7: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==30919==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919==  Address 0x1d0c1020 is 34,080 bytes inside a block of size 36,032 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C680527: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5F1F27: PyParser_ASTFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE5C: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==30919==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C652DC5: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599C4C: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==30919==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919==    by 0x4D907D: main (main.c:1418)
+==30919==  Address 0x1d0c5020 is 64 bytes inside a block of size 68 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C5E4B94: PyCode_Optimize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5E625E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5995A3: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C599BAF: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59A114: PyAST_Compile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DAE76: PyRun_StringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBA6A: PyRun_SimpleStringFlags (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32BA85: parasite_python_init (python-hooks.c:156)
+==30919==    by 0x1C32B160: plugin_init (python_plugin.c:681)
+==30919==    by 0x6623FB: plugin_load (plugin.c:514)
+==30919==    by 0x662A45: plugin_load_all (plugin.c:618)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638689: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Use of uninitialised value of size 8
+==30919==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638689: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C654B06: PyEval_CallObjectWithKeywords (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C57F5C2: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x1C69540B: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C63F8: _PyObject_GC_Resize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59220B: PyFrame_New (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583DC9: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Use of uninitialised value of size 8
+==30919==    at 0x1C69541F: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C63F8: _PyObject_GC_Resize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59220B: PyFrame_New (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583DC9: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C695402: PyObject_Realloc (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C63F8: _PyObject_GC_Resize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C59220B: PyFrame_New (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583DC9: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C583E1A: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58282D: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1ce5b020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C655F4A: PyObject_CallFunction (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65A7D9: PyImport_Import (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65BF09: PyImport_ImportModule (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1d0d8020 is 1,456 bytes inside a block of size 5,410 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C67B36A: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C655F4A: PyObject_CallFunction (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65A7D9: PyImport_Import (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65BF09: PyImport_ImportModule (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C655F4A: PyObject_CallFunction (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1d0d9020 is 64 bytes inside a block of size 613 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C655F4A: PyObject_CallFunction (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65A7D9: PyImport_Import (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65BF09: PyImport_ImportModule (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B8E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C655F4A: PyObject_CallFunction (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65A7D9: PyImport_Import (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65BF09: PyImport_ImportModule (in /usr/lib/libpython2.7.so.1.0)
+==30919==  Address 0x1d0db020 is 96 bytes inside a block of size 1,184 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C6A3544: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67B273: PyMarshal_ReadObjectFromString (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C67B35D: PyMarshal_ReadLastObjectFromFile (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680A0D: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5E06C0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638612: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C655F4A: PyObject_CallFunction (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30938== 
+==30938== HEAP SUMMARY:
+==30938==     in use at exit: 13,046,846 bytes in 71,256 blocks
+==30938==   total heap usage: 246,913 allocs, 175,657 frees, 35,598,488 bytes allocated
+==30938== 
+==30938== LEAK SUMMARY:
+==30938==    definitely lost: 41,107 bytes in 112 blocks
+==30938==    indirectly lost: 10,192 bytes in 320 blocks
+==30938==      possibly lost: 3,343,827 bytes in 20,556 blocks
+==30938==    still reachable: 9,651,720 bytes in 50,268 blocks
+==30938==         suppressed: 0 bytes in 0 blocks
+==30938== Rerun with --leak-check=full to see details of leaked memory
+==30938== 
+==30938== For counts of detected and suppressed errors, rerun with: -v
+==30938== Use --track-origins=yes to see where uninitialised values come from
+==30938== ERROR SUMMARY: 1815 errors from 75 contexts (suppressed: 2 from 2)
+==30940== 
+==30940== HEAP SUMMARY:
+==30940==     in use at exit: 13,046,916 bytes in 71,259 blocks
+==30940==   total heap usage: 246,916 allocs, 175,657 frees, 35,598,558 bytes allocated
+==30940== 
+==30941== 
+==30941== HEAP SUMMARY:
+==30941==     in use at exit: 13,046,916 bytes in 71,259 blocks
+==30941==   total heap usage: 246,916 allocs, 175,657 frees, 35,598,558 bytes allocated
+==30941== 
+==30940== LEAK SUMMARY:
+==30940==    definitely lost: 41,107 bytes in 112 blocks
+==30940==    indirectly lost: 10,192 bytes in 320 blocks
+==30940==      possibly lost: 3,343,827 bytes in 20,556 blocks
+==30940==    still reachable: 9,651,790 bytes in 50,271 blocks
+==30940==         suppressed: 0 bytes in 0 blocks
+==30940== Rerun with --leak-check=full to see details of leaked memory
+==30940== 
+==30940== For counts of detected and suppressed errors, rerun with: -v
+==30940== Use --track-origins=yes to see where uninitialised values come from
+==30940== ERROR SUMMARY: 1815 errors from 75 contexts (suppressed: 2 from 2)
+==30941== LEAK SUMMARY:
+==30941==    definitely lost: 41,107 bytes in 112 blocks
+==30941==    indirectly lost: 10,192 bytes in 320 blocks
+==30941==      possibly lost: 3,343,827 bytes in 20,556 blocks
+==30941==    still reachable: 9,651,790 bytes in 50,271 blocks
+==30941==         suppressed: 0 bytes in 0 blocks
+==30941== Rerun with --leak-check=full to see details of leaked memory
+==30941== 
+==30941== For counts of detected and suppressed errors, rerun with: -v
+==30941== Use --track-origins=yes to see where uninitialised values come from
+==30941== ERROR SUMMARY: 1815 errors from 75 contexts (suppressed: 2 from 2)
+==30942== 
+==30943== 
+==30942== HEAP SUMMARY:
+==30942==     in use at exit: 13,046,981 bytes in 71,261 blocks
+==30942==   total heap usage: 246,918 allocs, 175,657 frees, 35,598,623 bytes allocated
+==30942== 
+==30943== HEAP SUMMARY:
+==30943==     in use at exit: 13,046,981 bytes in 71,261 blocks
+==30943==   total heap usage: 246,918 allocs, 175,657 frees, 35,598,623 bytes allocated
+==30943== 
+==30942== LEAK SUMMARY:
+==30942==    definitely lost: 41,107 bytes in 112 blocks
+==30942==    indirectly lost: 10,192 bytes in 320 blocks
+==30942==      possibly lost: 3,343,827 bytes in 20,556 blocks
+==30942==    still reachable: 9,651,855 bytes in 50,273 blocks
+==30942==         suppressed: 0 bytes in 0 blocks
+==30942== Rerun with --leak-check=full to see details of leaked memory
+==30942== 
+==30942== For counts of detected and suppressed errors, rerun with: -v
+==30942== Use --track-origins=yes to see where uninitialised values come from
+==30942== ERROR SUMMARY: 1815 errors from 75 contexts (suppressed: 2 from 2)
+==30943== LEAK SUMMARY:
+==30943==    definitely lost: 41,107 bytes in 112 blocks
+==30943==    indirectly lost: 10,192 bytes in 320 blocks
+==30943==      possibly lost: 3,343,827 bytes in 20,556 blocks
+==30943==    still reachable: 9,651,855 bytes in 50,273 blocks
+==30943==         suppressed: 0 bytes in 0 blocks
+==30943== Rerun with --leak-check=full to see details of leaked memory
+==30943== 
+==30943== For counts of detected and suppressed errors, rerun with: -v
+==30943== Use --track-origins=yes to see where uninitialised values come from
+==30943== ERROR SUMMARY: 1815 errors from 75 contexts (suppressed: 2 from 2)
+==30944== 
+==30944== HEAP SUMMARY:
+==30944==     in use at exit: 13,046,981 bytes in 71,261 blocks
+==30944==   total heap usage: 246,918 allocs, 175,657 frees, 35,598,623 bytes allocated
+==30944== 
+==30945== 
+==30945== HEAP SUMMARY:
+==30945==     in use at exit: 13,046,981 bytes in 71,261 blocks
+==30945==   total heap usage: 246,918 allocs, 175,657 frees, 35,598,623 bytes allocated
+==30945== 
+==30944== LEAK SUMMARY:
+==30944==    definitely lost: 41,107 bytes in 112 blocks
+==30944==    indirectly lost: 10,192 bytes in 320 blocks
+==30944==      possibly lost: 3,343,827 bytes in 20,556 blocks
+==30944==    still reachable: 9,651,855 bytes in 50,273 blocks
+==30944==         suppressed: 0 bytes in 0 blocks
+==30944== Rerun with --leak-check=full to see details of leaked memory
+==30944== 
+==30944== For counts of detected and suppressed errors, rerun with: -v
+==30944== Use --track-origins=yes to see where uninitialised values come from
+==30944== ERROR SUMMARY: 1815 errors from 75 contexts (suppressed: 2 from 2)
+==30945== LEAK SUMMARY:
+==30945==    definitely lost: 41,107 bytes in 112 blocks
+==30945==    indirectly lost: 10,192 bytes in 320 blocks
+==30945==      possibly lost: 3,343,827 bytes in 20,556 blocks
+==30945==    still reachable: 9,651,855 bytes in 50,273 blocks
+==30945==         suppressed: 0 bytes in 0 blocks
+==30945== Rerun with --leak-check=full to see details of leaked memory
+==30945== 
+==30945== For counts of detected and suppressed errors, rerun with: -v
+==30945== Use --track-origins=yes to see where uninitialised values come from
+==30945== ERROR SUMMARY: 1815 errors from 75 contexts (suppressed: 2 from 2)
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0xB43C9F0: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
+==30919==    by 0xB422076: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
+==30919==    by 0xB3D5810: pixman_image_composite32 (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
+==30919==    by 0x6513C6D: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x6550CA6: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x654362A: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x6543F6E: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x6544A6E: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x65086ED: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x6518932: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x6547C4D: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x650FE24: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0xB43C6E8: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
+==30919==    by 0xB422076: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
+==30919==    by 0xB3D5810: pixman_image_composite32 (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
+==30919==    by 0x6513C6D: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x6550CA6: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x654362A: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x6543F6E: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x6544A6E: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x65086ED: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x6518932: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x6547C4D: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919==    by 0x650FE24: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11200.2)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x334590A7: ??? (in /usr/lib/x86_64-linux-gnu/librsvg-2.so.2.36.3)
+==30919==    by 0x33459D48: rsvg_handle_get_pixbuf_sub (in /usr/lib/x86_64-linux-gnu/librsvg-2.so.2.36.3)
+==30919==    by 0x33201EAA: ??? (in /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so)
+==30919==    by 0x62D272B: gdk_pixbuf_loader_close (in /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.2600.4)
+==30919==    by 0x62CEA7A: ??? (in /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.2600.4)
+==30919==    by 0x62D02B0: gdk_pixbuf_new_from_stream_at_scale (in /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.2600.4)
+==30919==    by 0x557F5AD: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13)
+==30919==    by 0x5581FB9: gtk_icon_info_load_icon (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13)
+==30919==    by 0x5582166: gtk_icon_theme_load_icon (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13)
+==30919==    by 0x557D650: gtk_icon_set_render_icon (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13)
+==30919==    by 0x56D04B2: gtk_widget_render_icon (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13)
+==30919==    by 0x559165B: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x89DBDB0: re_compile_fastmap_iter.isra.30 (regcomp.c:329)
+==30919==    by 0x89E8669: re_compile_fastmap (regcomp.c:281)
+==30919==    by 0x89E8E8F: regcomp (regcomp.c:517)
+==30919==    by 0x67C2F8: subject_get_prefix_length (utils.c:3805)
+==30919==    by 0x59CB84: subject_hashtable_insert (procmsg.c:141)
+==30919==    by 0x59CF2D: procmsg_get_thread_tree (procmsg.c:242)
+==30919==    by 0x5BFFE2: summary_set_ctree_from_list (summaryview.c:3141)
+==30919==    by 0x5BA939: summary_show (summaryview.c:1463)
+==30919==    by 0x4B6B7E: folderview_selected (folderview.c:2145)
+==30919==    by 0x6FD98A: claws_marshal_VOID__POINTER_INT (claws-marshal.c:348)
+==30919==    by 0x7E0C13F: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
+==30919==    by 0x7E1D54F: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x89DBDB0: re_compile_fastmap_iter.isra.30 (regcomp.c:329)
+==30919==    by 0x89E8689: re_compile_fastmap (regcomp.c:283)
+==30919==    by 0x89E8E8F: regcomp (regcomp.c:517)
+==30919==    by 0x67C2F8: subject_get_prefix_length (utils.c:3805)
+==30919==    by 0x59CB84: subject_hashtable_insert (procmsg.c:141)
+==30919==    by 0x59CF2D: procmsg_get_thread_tree (procmsg.c:242)
+==30919==    by 0x5BFFE2: summary_set_ctree_from_list (summaryview.c:3141)
+==30919==    by 0x5BA939: summary_show (summaryview.c:1463)
+==30919==    by 0x4B6B7E: folderview_selected (folderview.c:2145)
+==30919==    by 0x6FD98A: claws_marshal_VOID__POINTER_INT (claws-marshal.c:348)
+==30919==    by 0x7E0C13F: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
+==30919==    by 0x7E1D54F: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1FA5EA49: SwapDWord (ytnef.c:165)
+==30919==    by 0x1FA6009A: TNEFPriority (ytnef.c:660)
+==30919==    by 0x1FA61892: TNEFParse (ytnef.c:1060)
+==30919==    by 0x1FA61176: TNEFParseFile (ytnef.c:923)
+==30919==    by 0x1FA5B6E0: tnef_parse (tnef_parse.c:278)
+==30919==    by 0x59AACE: procmime_mimeparser_parse (procmime.c:2000)
+==30919==    by 0x59AD47: procmime_parse_mimepart (procmime.c:2086)
+==30919==    by 0x59940A: procmime_parse_multipart (procmime.c:1677)
+==30919==    by 0x59AE27: procmime_parse_mimepart (procmime.c:2107)
+==30919==    by 0x598C4F: procmime_parse_message_rfc822 (procmime.c:1501)
+==30919==    by 0x59B089: procmime_scan_file_with_offset (procmime.c:2174)
+==30919==    by 0x59B1D8: procmime_scan_file_full (procmime.c:2187)
+==30919==  Address 0x366d4960 is 0 bytes inside a block of size 2 alloc'd
+==30919==    at 0x4C29E46: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1FA616B2: TNEFParse (ytnef.c:1031)
+==30919==    by 0x1FA61176: TNEFParseFile (ytnef.c:923)
+==30919==    by 0x1FA5B6E0: tnef_parse (tnef_parse.c:278)
+==30919==    by 0x59AACE: procmime_mimeparser_parse (procmime.c:2000)
+==30919==    by 0x59AD47: procmime_parse_mimepart (procmime.c:2086)
+==30919==    by 0x59940A: procmime_parse_multipart (procmime.c:1677)
+==30919==    by 0x59AE27: procmime_parse_mimepart (procmime.c:2107)
+==30919==    by 0x598C4F: procmime_parse_message_rfc822 (procmime.c:1501)
+==30919==    by 0x59B089: procmime_scan_file_with_offset (procmime.c:2174)
+==30919==    by 0x59B1D8: procmime_scan_file_full (procmime.c:2187)
+==30919==    by 0x59B205: procmime_scan_file (procmime.c:2194)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==30919==    by 0x89B4D99: wcscoll_l (strcoll_l.c:509)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x597DE3: procmime_str_equal (procmime.c:1143)
+==30919==    by 0x8082A7E: g_hash_table_lookup (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x597EB7: procmime_get_mime_type_table (procmime.c:1171)
+==30919==    by 0x597C0B: procmime_get_mime_type (procmime.c:1092)
+==30919==    by 0x1FA5ADA9: tnef_dump_file (tnef_parse.c:101)
+==30919==    by 0x1FA5B33A: tnef_parse_rtf (tnef_parse.c:205)
+==30919==    by 0x1FA5B894: tnef_parse (tnef_parse.c:311)
+==30919==    by 0x59AACE: procmime_mimeparser_parse (procmime.c:2000)
+==30919==    by 0x59AD47: procmime_parse_mimepart (procmime.c:2086)
+==30919==  Address 0x3690a1e0 is 32 bytes inside a block of size 36 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE54: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x597DE3: procmime_str_equal (procmime.c:1143)
+==30919==    by 0x8082A7E: g_hash_table_lookup (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x597EB7: procmime_get_mime_type_table (procmime.c:1171)
+==30919==    by 0x597C0B: procmime_get_mime_type (procmime.c:1092)
+==30919==    by 0x1FA5ADA9: tnef_dump_file (tnef_parse.c:101)
+==30919==    by 0x1FA5B33A: tnef_parse_rtf (tnef_parse.c:205)
+==30919==    by 0x1FA5B894: tnef_parse (tnef_parse.c:311)
+==30919==    by 0x59AACE: procmime_mimeparser_parse (procmime.c:2000)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x89AAA0F: wcslen (wcslen.S:48)
+==30919==    by 0x89B4DA8: wcscoll_l (strcoll_l.c:510)
+==30919==    by 0x80BDE79: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x597DE3: procmime_str_equal (procmime.c:1143)
+==30919==    by 0x8082A7E: g_hash_table_lookup (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x597EB7: procmime_get_mime_type_table (procmime.c:1171)
+==30919==    by 0x597C0B: procmime_get_mime_type (procmime.c:1092)
+==30919==    by 0x1FA5ADA9: tnef_dump_file (tnef_parse.c:101)
+==30919==    by 0x1FA5B33A: tnef_parse_rtf (tnef_parse.c:205)
+==30919==    by 0x1FA5B894: tnef_parse (tnef_parse.c:311)
+==30919==    by 0x59AACE: procmime_mimeparser_parse (procmime.c:2000)
+==30919==    by 0x59AD47: procmime_parse_mimepart (procmime.c:2086)
+==30919==  Address 0x3690a250 is 32 bytes inside a block of size 36 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x80986E0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BEB20: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x80BDE6B: g_utf8_collate (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x597DE3: procmime_str_equal (procmime.c:1143)
+==30919==    by 0x8082A7E: g_hash_table_lookup (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
+==30919==    by 0x597EB7: procmime_get_mime_type_table (procmime.c:1171)
+==30919==    by 0x597C0B: procmime_get_mime_type (procmime.c:1092)
+==30919==    by 0x1FA5ADA9: tnef_dump_file (tnef_parse.c:101)
+==30919==    by 0x1FA5B33A: tnef_parse_rtf (tnef_parse.c:205)
+==30919==    by 0x1FA5B894: tnef_parse (tnef_parse.c:311)
+==30919==    by 0x59AACE: procmime_mimeparser_parse (procmime.c:2000)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x1FA5CCBF: SaveVCalendar (tnef_dump.c:392)
+==30919==    by 0x1FA5B07E: tnef_parse_vcal (tnef_parse.c:147)
+==30919==    by 0x1FA5B912: tnef_parse (tnef_parse.c:322)
+==30919==    by 0x59AACE: procmime_mimeparser_parse (procmime.c:2000)
+==30919==    by 0x59AD47: procmime_parse_mimepart (procmime.c:2086)
+==30919==    by 0x59940A: procmime_parse_multipart (procmime.c:1677)
+==30919==    by 0x59AE27: procmime_parse_mimepart (procmime.c:2107)
+==30919==    by 0x598C4F: procmime_parse_message_rfc822 (procmime.c:1501)
+==30919==    by 0x59B089: procmime_scan_file_with_offset (procmime.c:2174)
+==30919==    by 0x59B1D8: procmime_scan_file_full (procmime.c:2187)
+==30919==    by 0x59B205: procmime_scan_file (procmime.c:2194)
+==30919==    by 0x502B45: messageview_show (messageview.c:1337)
+==30919==  Address 0x36c2c320 is 0 bytes inside a block of size 4 alloc'd
+==30919==    at 0x4C29E46: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1FA5F658: TNEFFillMapi (ytnef.c:478)
+==30919==    by 0x1FA5F166: TNEFMapiProperties (ytnef.c:358)
+==30919==    by 0x1FA61892: TNEFParse (ytnef.c:1060)
+==30919==    by 0x1FA61176: TNEFParseFile (ytnef.c:923)
+==30919==    by 0x1FA5B6E0: tnef_parse (tnef_parse.c:278)
+==30919==    by 0x59AACE: procmime_mimeparser_parse (procmime.c:2000)
+==30919==    by 0x59AD47: procmime_parse_mimepart (procmime.c:2086)
+==30919==    by 0x59940A: procmime_parse_multipart (procmime.c:1677)
+==30919==    by 0x59AE27: procmime_parse_mimepart (procmime.c:2107)
+==30919==    by 0x598C4F: procmime_parse_message_rfc822 (procmime.c:1501)
+==30919==    by 0x59B089: procmime_scan_file_with_offset (procmime.c:2174)
+==30919== 
+==30919== Invalid read of size 8
+==30919==    at 0x1FA5EA61: SwapDDWord (ytnef.c:185)
+==30919==    by 0x1FA5D468: SaveVCalendar (tnef_dump.c:556)
+==30919==    by 0x1FA5B07E: tnef_parse_vcal (tnef_parse.c:147)
+==30919==    by 0x1FA5B912: tnef_parse (tnef_parse.c:322)
+==30919==    by 0x59AACE: procmime_mimeparser_parse (procmime.c:2000)
+==30919==    by 0x59AD47: procmime_parse_mimepart (procmime.c:2086)
+==30919==    by 0x59940A: procmime_parse_multipart (procmime.c:1677)
+==30919==    by 0x59AE27: procmime_parse_mimepart (procmime.c:2107)
+==30919==    by 0x598C4F: procmime_parse_message_rfc822 (procmime.c:1501)
+==30919==    by 0x59B089: procmime_scan_file_with_offset (procmime.c:2174)
+==30919==    by 0x59B1D8: procmime_scan_file_full (procmime.c:2187)
+==30919==    by 0x59B205: procmime_scan_file (procmime.c:2194)
+==30919==  Address 0x36d745f0 is 0 bytes inside a block of size 4 alloc'd
+==30919==    at 0x4C29E46: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1FA5F658: TNEFFillMapi (ytnef.c:478)
+==30919==    by 0x1FA5F166: TNEFMapiProperties (ytnef.c:358)
+==30919==    by 0x1FA61892: TNEFParse (ytnef.c:1060)
+==30919==    by 0x1FA61176: TNEFParseFile (ytnef.c:923)
+==30919==    by 0x1FA5B6E0: tnef_parse (tnef_parse.c:278)
+==30919==    by 0x59AACE: procmime_mimeparser_parse (procmime.c:2000)
+==30919==    by 0x59AD47: procmime_parse_mimepart (procmime.c:2086)
+==30919==    by 0x59940A: procmime_parse_multipart (procmime.c:1677)
+==30919==    by 0x59AE27: procmime_parse_mimepart (procmime.c:2107)
+==30919==    by 0x598C4F: procmime_parse_message_rfc822 (procmime.c:1501)
+==30919==    by 0x59B089: procmime_scan_file_with_offset (procmime.c:2174)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605D15: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==  Address 0x1cdbc020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E64A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605D15: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==  Address 0x1cdbd020 is 592 bytes inside a block of size 1,053 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605D15: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605D15: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==  Address 0x1cdca020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==  Address 0x1cdc0020 is 48 bytes inside a block of size 1,205 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E8AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==    by 0x4D95FA: main (main.c:1574)
+==30919==  Address 0x1cdc0020 is 48 bytes inside a block of size 1,205 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==    by 0x4D95FA: main (main.c:1574)
+==30919==  Address 0x1d03b020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==    by 0x4D95FA: main (main.c:1574)
+==30919==  Address 0x1ce75020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37B1: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E65A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605D15: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==  Address 0x1cc85020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919== 
+==30919== Use of uninitialised value of size 8
+==30919==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5B0: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E2AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==  Address 0x1d17b020 is 48 bytes inside a block of size 72 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0xC7ACF82: asn1_delete_structure (in /usr/lib/x86_64-linux-gnu/libtasn1.so.3.1.16)
+==30919==    by 0x6EF9BA3: gnutls_x509_crt_deinit (in /usr/lib/x86_64-linux-gnu/libgnutls.so.26.21.8)
+==30919==    by 0x6EB1D99: gnutls_certificate_free_cas (in /usr/lib/x86_64-linux-gnu/libgnutls.so.26.21.8)
+==30919==    by 0x6EB2B50: gnutls_certificate_free_credentials (in /usr/lib/x86_64-linux-gnu/libgnutls.so.26.21.8)
+==30919==    by 0x66DD1E: ssl_done_socket (ssl.c:400)
+==30919==    by 0x66D128: sock_close (socket.c:1630)
+==30919==    by 0x66551C: session_close (session.c:362)
+==30919==    by 0x664D43: session_disconnect (session.c:210)
+==30919==    by 0x52BCD8: pop3_session_recv_msg (pop.c:1039)
+==30919==    by 0x6667E9: session_read_msg_cb (session.c:605)
+==30919==    by 0x66AD78: ssl_sock_dispatch (socket.c:505)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A37CA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E63A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E2AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==  Address 0x1d17c020 is 288 bytes inside a block of size 997 free'd
+==30919==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C65E5DA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E89A: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E2AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605D15: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==    by 0x4D95FA: main (main.c:1574)
+==30919==  Address 0x1d212020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E2AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==  Address 0x1cffe020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E8AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E2AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C60603D: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==  Address 0x1cffe020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== 
+==30919== More than 100 errors detected.  Subsequent errors
+==30919== will still be recorded, but in less detail than before.
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A36BC: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E2AA: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C606211: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==  Address 0x1d281020 is 0 bytes after a block of size 3,072 alloc'd
+==30919==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==30919==    by 0x1C6C1DB7: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5806D7: PyEval_EvalFrameEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584C37: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C584D71: PyEval_EvalCode (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5DBB7C: PyImport_ExecCodeModuleEx (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C680B77: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6812EB: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C638689: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6817FC: PyImport_ImportModuleLevel (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C5D703E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6541FD: PyObject_Call (in /usr/lib/libpython2.7.so.1.0)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A36BC: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E441: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C606211: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919== 
+==30919== Use of uninitialised value of size 8
+==30919==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A36BC: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C65E441: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C613316: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6C2133: PyDict_SetItem (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C605DAF: _PyModule_Clear (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C606211: PyImport_Cleanup (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EF9A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6147D9: _PyImport_Fini (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EFA4: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==    by 0x4D95FA: main (main.c:1574)
+==30919== 
+==30919== Use of uninitialised value of size 8
+==30919==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6A367E: ??? (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C6147D9: _PyImport_Fini (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58EFA4: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==    by 0x4D95FA: main (main.c:1574)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69613B: PyDict_Fini (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58F009: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==    by 0x4D95FA: main (main.c:1574)
+==30919==  Address 0x1d27c020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== Conditional jump or move depends on uninitialised value(s)
+==30919==    at 0x1C6BCF3B: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69613B: PyDict_Fini (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58F009: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==    by 0x4D95FA: main (main.c:1574)
+==30919== 
+==30919== Use of uninitialised value of size 8
+==30919==    at 0x1C6BCF53: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C69613B: PyDict_Fini (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58F009: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==    by 0x4D95FA: main (main.c:1574)
+==30919== 
+==30919== Invalid read of size 4
+==30919==    at 0x1C6BCF32: PyObject_Free (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C695C95: PyGrammar_RemoveAccelerators (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C58F01A: Py_Finalize (in /usr/lib/libpython2.7.so.1.0)
+==30919==    by 0x1C32B277: plugin_done (python_plugin.c:717)
+==30919==    by 0x662665: plugin_unload (plugin.c:545)
+==30919==    by 0x662B4F: plugin_unload_all (plugin.c:639)
+==30919==    by 0x4D987B: exit_claws (main.c:1668)
+==30919==    by 0x4D95FA: main (main.c:1574)
+==30919==  Address 0x1ceb0020 is not stack'd, malloc'd or (recently) free'd
+==30919== 
+==30919== 
+==30919== HEAP SUMMARY:
+==30919==     in use at exit: 16,207,648 bytes in 81,753 blocks
+==30919==   total heap usage: 5,025,627 allocs, 4,943,874 frees, 368,742,464 bytes allocated
+==30919== 
+==30919== LEAK SUMMARY:
+==30919==    definitely lost: 49,337 bytes in 140 blocks
+==30919==    indirectly lost: 43,152 bytes in 1,345 blocks
+==30919==      possibly lost: 8,769,791 bytes in 55,021 blocks
+==30919==    still reachable: 7,345,368 bytes in 25,247 blocks
+==30919==         suppressed: 0 bytes in 0 blocks
+==30919== Rerun with --leak-check=full to see details of leaked memory
+==30919== 
+==30919== For counts of detected and suppressed errors, rerun with: -v
+==30919== Use --track-origins=yes to see where uninitialised values come from
+==30919== ERROR SUMMARY: 2604 errors from 109 contexts (suppressed: 2 from 2)
diff --git a/src/plugins/vcalendar/claws-mail-vcalendar.metainfo.xml b/src/plugins/vcalendar/claws-mail-vcalendar.metainfo.xml
new file mode 100644
index 0000000..6d3867d
--- /dev/null
+++ b/src/plugins/vcalendar/claws-mail-vcalendar.metainfo.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="addon">
+<id>claws-mail-vcalendar</id>
+<extends>claws-mail.desktop</extends>
+<name>vCalendar</name>
+<summary>Enables vCalendar message handling and handles webCal subscriptions. Provides a calendar import</summary>
+<url type="homepage">http://claws-mail.org/plugin.php?plugin=vcalendar</url>
+<metadata_license>CC0-1.0</metadata_license>
+<project_license>GPL-3.0+</project_license>
+<updatecontact>devel at lists.claws-mail.org</updatecontact>
+</component>
\ No newline at end of file
diff --git a/src/plugins/vcalendar/libical/libical/ical.h b/src/plugins/vcalendar/libical/libical/ical.h
new file mode 100644
index 0000000..403dc6d
--- /dev/null
+++ b/src/plugins/vcalendar/libical/libical/ical.h
@@ -0,0 +1,3002 @@
+#ifndef ICAL_VERSION_H
+#define ICAL_VERSION_H
+
+#define ICAL_PACKAGE "claws-mail"
+#define ICAL_VERSION "3.14.0git18"
+
+#endif
+/* -*- Mode: C -*- */
+/*======================================================================
+ FILE: icaltime.h
+ CREATOR: eric 02 June 2000
+
+
+ $Id$
+ $Locker$
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+ The Original Code is eric. The Initial Developer of the Original
+ Code is Eric Busboom
+
+
+======================================================================*/
+
+#ifndef ICALTIME_H
+#define ICALTIME_H
+
+#include <time.h>
+
+/* icaltime_span is returned by icalcomponent_get_span() */
+struct icaltime_span {
+	time_t start; /* in UTC */
+	time_t end; /* in UTC */
+	int is_busy; /* 1->busy time, 0-> free time */
+};
+
+
+struct icaltimetype
+{
+	int year;
+	int month;
+	int day;
+	int hour;
+	int minute;
+	int second;
+
+	int is_utc; /* 1-> time is in UTC timezone */
+
+	int is_date; /* 1 -> interpret this as date. */
+   
+};	
+
+/* Convert seconds past UNIX epoch to a timetype*/
+struct icaltimetype icaltime_from_timet(time_t v, int is_date);
+
+/* Return the time as seconds past the UNIX epoch */
+time_t icaltime_as_timet(struct icaltimetype);
+
+/* Return a string represention of the time, in RFC2445 format. The
+   string is owned by libical */
+char* icaltime_as_ical_string(struct icaltimetype tt);
+
+/* Like icaltime_from_timet(), except that the input may be in seconds
+   past the epoch in floating time. This routine is deprecated */
+struct icaltimetype icaltime_from_int(int v, int is_date, int is_utc);
+
+/* Like icaltime_as_timet, but in a floating epoch. This routine is deprecated */
+int icaltime_as_int(struct icaltimetype);
+
+/* create a time from an ISO format string */
+struct icaltimetype icaltime_from_string(const char* str);
+
+/* Routines for handling timezones */
+/* Return the offset of the named zone as seconds. tt is a time
+   indicating the date for which you want the offset */
+int icaltime_utc_offset(struct icaltimetype tt, const char* tzid);
+
+/* convert tt, of timezone tzid, into a utc time. Does nothing if the
+   time is already UTC.  */
+struct icaltimetype icaltime_as_utc(struct icaltimetype tt,
+				    const char* tzid);
+
+/* convert tt, a time in UTC, into a time in timezone tzid */
+struct icaltimetype icaltime_as_zone(struct icaltimetype tt,
+				     const char* tzid);
+
+/* Return a null time, which indicates no time has been set. This time represent the beginning of the epoch */
+struct icaltimetype icaltime_null_time(void);
+
+/* Return true of the time is null. */
+int icaltime_is_null_time(struct icaltimetype t);
+
+/* Returns false if the time is clearly invalid, but is not null. This
+   is usually the result of creating a new time type buy not clearing
+   it, or setting one of the flags to an illegal value. */
+int icaltime_is_valid_time(struct icaltimetype t);
+
+/* Reset all of the time components to be in their normal ranges. For
+   instance, given a time with minutes=70, the minutes will be reduces
+   to 10, and the hour incremented. This allows the caller to do
+   arithmetic on times without worrying about overflow or
+   underflow. */
+struct icaltimetype icaltime_normalize(struct icaltimetype t);
+
+/* Return the day of the year of the given time */
+short icaltime_day_of_year(struct icaltimetype t);
+
+/* Create a new time, given a day of year and a year. */
+struct icaltimetype icaltime_from_day_of_year(short doy,  short year);
+
+/* Return the day of the week of the given time. Sunday is 1 */
+short icaltime_day_of_week(struct icaltimetype t);
+
+/* Return the day of the year for the Sunday of the week that the
+   given time is within. */
+short icaltime_start_doy_of_week(struct icaltimetype t);
+
+/* Return a string with the time represented in the same format as ctime(). THe string is owned by libical */
+char* icaltime_as_ctime(struct icaltimetype);
+
+/* Return the week number for the week the given time is within */
+short icaltime_week_number(struct icaltimetype t);
+
+/* Create a new time from a weeknumber and a year. */
+struct icaltimetype icaltime_from_week_number(short week_number, short year);
+
+/* Return -1, 0, or 1 to indicate that a<b, a==b or a>b */
+int icaltime_compare(struct icaltimetype a,struct icaltimetype b);
+
+/* like icaltime_compare, but only use the date parts. */
+int icaltime_compare_date_only(struct icaltimetype a, struct icaltimetype b);
+
+/* Return the number of days in the given month */
+short icaltime_days_in_month(short month,short year);
+
+
+#endif /* !ICALTIME_H */
+
+
+
+/* -*- Mode: C -*- */
+/*======================================================================
+ FILE: icalduration.h
+ CREATOR: eric 26 Jan 2001
+
+
+ $Id$
+ $Locker$
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+ The Original Code is eric. The Initial Developer of the Original
+ Code is Eric Busboom
+
+
+======================================================================*/
+
+#ifndef ICALDURATION_H
+#define ICALDURATION_H
+
+
+struct icaldurationtype
+{
+	int is_neg;
+	unsigned int days;
+	unsigned int weeks;
+	unsigned int hours;
+	unsigned int minutes;
+	unsigned int seconds;
+};
+
+struct icaldurationtype icaldurationtype_from_int(int t);
+struct icaldurationtype icaldurationtype_from_string(const char*);
+int icaldurationtype_as_int(struct icaldurationtype duration);
+char* icaldurationtype_as_ical_string(struct icaldurationtype d);
+struct icaldurationtype icaldurationtype_null_duration();
+int icaldurationtype_is_null_duration(struct icaldurationtype d);
+
+struct icaltimetype  icaltime_add(struct icaltimetype t,
+				  struct icaldurationtype  d);
+
+struct icaldurationtype  icaltime_subtract(struct icaltimetype t1,
+					   struct icaltimetype t2);
+
+#endif /* !ICALDURATION_H */
+
+
+
+/* -*- Mode: C -*- */
+/*======================================================================
+ FILE: icalperiod.h
+ CREATOR: eric 26 Jan 2001
+
+
+ $Id$
+ $Locker$
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+ The Original Code is eric. The Initial Developer of the Original
+ Code is Eric Busboom
+
+
+======================================================================*/
+
+#ifndef ICALPERIOD_H
+#define ICALPERIOD_H
+
+
+struct icalperiodtype 
+{
+	struct icaltimetype start; 
+	struct icaltimetype end; 
+	struct icaldurationtype duration;
+};
+
+struct icalperiodtype icalperiodtype_from_string (const char* str);
+
+const char* icalperiodtype_as_ical_string(struct icalperiodtype p);
+struct icalperiodtype icalperiodtype_null_period();
+int icalperiodtype_is_null_period(struct icalperiodtype p);
+int icalperiodtype_is_valid_period(struct icalperiodtype p);
+
+
+
+
+#endif /* !ICALTIME_H */
+
+
+
+
+/* -*- Mode: C -*-*/
+/*======================================================================
+ FILE: icalenums.h
+
+ 
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalenums.h
+
+  Contributions from:
+     Graham Davison (g.m.davison at computer.org)
+
+======================================================================*/
+
+#ifndef ICALENUMS_H
+#define ICALENUMS_H
+
+
+
+/***********************************************************************
+ * Component enumerations
+**********************************************************************/
+
+typedef enum icalcomponent_kind {
+    ICAL_NO_COMPONENT,
+    ICAL_ANY_COMPONENT,	/* Used to select all components*/
+    ICAL_XROOT_COMPONENT,
+    ICAL_XATTACH_COMPONENT, /* MIME attached data, returned by parser. */
+    ICAL_VEVENT_COMPONENT,
+    ICAL_VTODO_COMPONENT,
+    ICAL_VJOURNAL_COMPONENT,
+    ICAL_VCALENDAR_COMPONENT,
+    ICAL_VFREEBUSY_COMPONENT,
+    ICAL_VALARM_COMPONENT,
+    ICAL_XAUDIOALARM_COMPONENT,  
+    ICAL_XDISPLAYALARM_COMPONENT,
+    ICAL_XEMAILALARM_COMPONENT,
+    ICAL_XPROCEDUREALARM_COMPONENT,
+    ICAL_VTIMEZONE_COMPONENT,
+    ICAL_XSTANDARD_COMPONENT,
+    ICAL_XDAYLIGHT_COMPONENT,
+    ICAL_X_COMPONENT,
+    ICAL_VSCHEDULE_COMPONENT,
+    ICAL_VQUERY_COMPONENT,
+    ICAL_VCAR_COMPONENT,
+    ICAL_VCOMMAND_COMPONENT,
+    ICAL_XLICINVALID_COMPONENT,
+    ICAL_XLICMIMEPART_COMPONENT /* a non-stardard component that mirrors
+				structure of MIME data */
+
+} icalcomponent_kind;
+
+
+
+/***********************************************************************
+ * Request Status codes
+ **********************************************************************/
+
+typedef enum icalrequeststatus {
+    ICAL_UNKNOWN_STATUS,
+    ICAL_2_0_SUCCESS_STATUS,
+    ICAL_2_1_FALLBACK_STATUS,
+    ICAL_2_2_IGPROP_STATUS,
+    ICAL_2_3_IGPARAM_STATUS,
+    ICAL_2_4_IGXPROP_STATUS,
+    ICAL_2_5_IGXPARAM_STATUS,
+    ICAL_2_6_IGCOMP_STATUS,
+    ICAL_2_7_FORWARD_STATUS,
+    ICAL_2_8_ONEEVENT_STATUS,
+    ICAL_2_9_TRUNC_STATUS,
+    ICAL_2_10_ONETODO_STATUS,
+    ICAL_2_11_TRUNCRRULE_STATUS,
+    ICAL_3_0_INVPROPNAME_STATUS,
+    ICAL_3_1_INVPROPVAL_STATUS,
+    ICAL_3_2_INVPARAM_STATUS,
+    ICAL_3_3_INVPARAMVAL_STATUS,
+    ICAL_3_4_INVCOMP_STATUS,
+    ICAL_3_5_INVTIME_STATUS,
+    ICAL_3_6_INVRULE_STATUS,
+    ICAL_3_7_INVCU_STATUS,
+    ICAL_3_8_NOAUTH_STATUS,
+    ICAL_3_9_BADVERSION_STATUS,
+    ICAL_3_10_TOOBIG_STATUS,
+    ICAL_3_11_MISSREQCOMP_STATUS,
+    ICAL_3_12_UNKCOMP_STATUS,
+    ICAL_3_13_BADCOMP_STATUS,
+    ICAL_3_14_NOCAP_STATUS,
+    ICAL_4_0_BUSY_STATUS,
+    ICAL_5_0_MAYBE_STATUS,
+    ICAL_5_1_UNAVAIL_STATUS,
+    ICAL_5_2_NOSERVICE_STATUS,
+    ICAL_5_3_NOSCHED_STATUS
+} icalrequeststatus;
+
+
+const char* icalenum_reqstat_desc(icalrequeststatus stat);
+short icalenum_reqstat_major(icalrequeststatus stat);
+short icalenum_reqstat_minor(icalrequeststatus stat);
+icalrequeststatus icalenum_num_to_reqstat(short major, short minor);
+
+/***********************************************************************
+ * Conversion functions
+**********************************************************************/
+
+
+/* Thse routines used to be in icalenums.c, but were moved into the
+   icalproperty, icalparameter, icalvalue, or icalcomponent modules. */
+
+/* const char* icalproperty_kind_to_string(icalproperty_kind kind);*/
+#define icalenum_property_kind_to_string(x) icalproperty_kind_to_string(x)
+
+/*icalproperty_kind icalproperty_string_to_kind(const char* string)*/
+#define icalenum_string_to_property_kind(x) icalproperty_string_to_kind(x)
+
+/*icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind);*/
+#define icalenum_property_kind_to_value_kind(x) icalproperty_kind_to_value_kind(x)
+
+/*const char* icalenum_method_to_string(icalproperty_method);*/
+#define icalenum_method_to_string(x) icalproperty_method_to_string(x)
+
+/*icalproperty_method icalenum_string_to_method(const char* string);*/
+#define icalenum_string_to_method(x) icalproperty_string_to_method(x)
+
+/*const char* icalenum_status_to_string(icalproperty_status);*/
+#define icalenum_status_to_string(x) icalproperty_status_to_string(x)
+
+/*icalproperty_status icalenum_string_to_status(const char* string);*/
+#define icalenum_string_to_status(x) icalproperty_string_to_status(x)
+
+/*icalvalue_kind icalenum_string_to_value_kind(const char* str);*/
+#define icalenum_string_to_value_kind(x) icalvalue_string_to_kind(x)
+
+/*const char* icalenum_value_kind_to_string(icalvalue_kind kind);*/
+#define icalenum_value_kind_to_string(x) icalvalue_kind_to_string(x)
+
+/*const char* icalenum_component_kind_to_string(icalcomponent_kind kind);*/
+#define icalenum_component_kind_to_string(x) icalcomponent_kind_to_string(x)
+
+/*icalcomponent_kind icalenum_string_to_component_kind(const char* string);*/
+#define icalenum_string_to_component_kind(x) icalcomponent_string_to_kind(x)
+
+
+#endif /* !ICALENUMS_H */
+
+/* -*- Mode: C -*- */
+/*======================================================================
+ FILE: icaltypes.h
+ CREATOR: eric 20 March 1999
+
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icaltypes.h
+
+======================================================================*/
+
+#ifndef ICALTYPES_H
+#define ICALTYPES_H
+
+#include <time.h>
+
+
+/* This type type should probably be an opaque type... */
+struct icalattachtype
+{
+	void* binary;
+	int owns_binary; 
+
+	char* base64;
+	int owns_base64;
+
+	char* url;
+
+	int refcount; 
+
+};
+
+/* converts base64 to binary, fetches url and stores as binary, or
+   just returns data */
+
+struct icalattachtype* icalattachtype_new(void);
+void  icalattachtype_add_reference(struct icalattachtype* v);
+void icalattachtype_free(struct icalattachtype* v);
+
+void icalattachtype_set_url(struct icalattachtype* v, char* url);
+char* icalattachtype_get_url(struct icalattachtype* v);
+
+void icalattachtype_set_base64(struct icalattachtype* v, char* base64,
+				int owns);
+char* icalattachtype_get_base64(struct icalattachtype* v);
+
+void icalattachtype_set_binary(struct icalattachtype* v, char* binary,
+				int owns);
+void* icalattachtype_get_binary(struct icalattachtype* v);
+
+struct icalgeotype 
+{
+	float lat;
+	float lon;
+};
+
+
+struct icaldatetimeperiodtype 
+{
+	struct icaltimetype time;
+	struct icalperiodtype period;
+};
+
+
+struct icaltriggertype 
+{
+	struct icaltimetype time; 
+	struct icaldurationtype duration;
+};
+
+struct icaltriggertype icaltriggertype_from_string(const char* str);
+
+/* struct icalreqstattype. This struct contains two string pointers,
+but don't try to free either of them. The "desc" string is a pointer
+to a static table inside the library.  Don't try to free it. The
+"debug" string is a pointer into the string that the called passed
+into to icalreqstattype_from_string. Don't try to free it either, and
+don't use it after the original string has been freed.
+
+BTW, you would get that original string from
+*icalproperty_get_requeststatus() or icalvalue_get_text(), when
+operating on a the value of a request_status property. */
+
+struct icalreqstattype {
+
+	icalrequeststatus code;
+	const char* desc;
+	const char* debug;
+};
+
+struct icalreqstattype icalreqstattype_from_string(char* str);
+char* icalreqstattype_as_string(struct icalreqstattype);
+
+
+
+struct icaltimezonephase {
+    const char* tzname;
+    int is_stdandard; /* 1 = standard tme, 0 = daylight savings time */
+    struct icaltimetype dtstart;
+    int offsetto;
+    int tzoffsetfrom;
+    const char* comment;
+    struct icaldatetimeperiodtype rdate;
+    const char* rrule;    
+};
+
+
+struct icaltimezonetype {
+    const char* tzid;
+    struct icaltimetype last_mod;
+    const char* tzurl;
+    
+    /* Array of phases. The end of the array is a phase with tzname == 0 */
+    struct icaltimezonephase *phases;
+};
+
+void icaltimezonetype_free(struct icaltimezonetype tzt);
+
+
+#endif /* !ICALTYPES_H */
+/* -*- Mode: C -*- */
+/*======================================================================
+ FILE: icalrecur.h
+ CREATOR: eric 20 March 2000
+
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+How to use: 
+
+1) Get a rule and a start time from a component
+        icalproperty rrule;
+        struct icalrecurrencetype recur;
+        struct icaltimetype dtstart;
+
+	rrule = icalcomponent_get_first_property(comp,ICAL_RRULE_PROPERTY);
+	recur = icalproperty_get_rrule(rrule);
+	start = icalproperty_get_dtstart(dtstart);
+
+Or, just make them up: 
+        recur = icalrecurrencetype_from_string("FREQ=YEARLY;BYDAY=SU,WE");
+        dtstart = icaltime_from_string("19970101T123000")
+
+2) Create an iterator
+        icalrecur_iterator* ritr;
+        ritr = icalrecur_iterator_new(recur,start);
+
+3) Iterator over the occurrences
+        struct icaltimetype next;
+        while (next = icalrecur_iterator_next(ritr) 
+               && !icaltime_is_null_time(next){
+                Do something with next
+        }
+
+Note that that the time returned by icalrecur_iterator_next is in
+whatever timezone that dtstart is in.
+
+======================================================================*/
+
+#ifndef ICALRECUR_H
+#define ICALRECUR_H
+
+#include <time.h>
+
+/***********************************************************************
+ * Recurrance enumerations
+**********************************************************************/
+
+typedef enum icalrecurrencetype_frequency
+{
+    /* These enums are used to index an array, so don't change the
+       order or the integers */
+
+    ICAL_SECONDLY_RECURRENCE=0,
+    ICAL_MINUTELY_RECURRENCE=1,
+    ICAL_HOURLY_RECURRENCE=2,
+    ICAL_DAILY_RECURRENCE=3,
+    ICAL_WEEKLY_RECURRENCE=4,
+    ICAL_MONTHLY_RECURRENCE=5,
+    ICAL_YEARLY_RECURRENCE=6,
+    ICAL_NO_RECURRENCE=7
+
+} icalrecurrencetype_frequency;
+
+typedef enum icalrecurrencetype_weekday
+{
+    ICAL_NO_WEEKDAY,
+    ICAL_SUNDAY_WEEKDAY,
+    ICAL_MONDAY_WEEKDAY,
+    ICAL_TUESDAY_WEEKDAY,
+    ICAL_WEDNESDAY_WEEKDAY,
+    ICAL_THURSDAY_WEEKDAY,
+    ICAL_FRIDAY_WEEKDAY,
+    ICAL_SATURDAY_WEEKDAY
+} icalrecurrencetype_weekday;
+
+enum {
+    ICAL_RECURRENCE_ARRAY_MAX = 0x7f7f,
+    ICAL_RECURRENCE_ARRAY_MAX_BYTE = 0x7f
+};
+
+
+
+/********************** Recurrence type routines **************/
+
+/* See RFC 2445 Section 4.3.10, RECUR Value, for an explaination of
+   the values and fields in struct icalrecurrencetype */
+
+#define ICAL_BY_SECOND_SIZE 61
+#define ICAL_BY_MINUTE_SIZE 61
+#define ICAL_BY_HOUR_SIZE 25
+#define ICAL_BY_DAY_SIZE 364 /* 7 days * 52 weeks */
+#define ICAL_BY_MONTHDAY_SIZE 32
+#define ICAL_BY_YEARDAY_SIZE 367
+#define ICAL_BY_WEEKNO_SIZE 54
+#define ICAL_BY_MONTH_SIZE 13
+#define ICAL_BY_SETPOS_SIZE 367
+
+/* Main struct for holding digested recurrence rules */
+struct icalrecurrencetype 
+{
+	icalrecurrencetype_frequency freq;
+
+
+	/* until and count are mutually exclusive. */
+       	struct icaltimetype until; 
+	int count;
+
+	short interval;
+	
+	icalrecurrencetype_weekday week_start;
+	
+	/* The BY* parameters can each take a list of values. Here I
+	 * assume that the list of values will not be larger than the
+	 * range of the value -- that is, the client will not name a
+	 * value more than once. 
+	 
+	 * Each of the lists is terminated with the value
+	 * ICAL_RECURRENCE_ARRAY_MAX unless the the list is full.
+	 */
+
+	short by_second[ICAL_BY_SECOND_SIZE];
+	short by_minute[ICAL_BY_MINUTE_SIZE];
+	short by_hour[ICAL_BY_HOUR_SIZE];
+	short by_day[ICAL_BY_DAY_SIZE]; /* Encoded value, see below */
+	short by_month_day[ICAL_BY_MONTHDAY_SIZE];
+	short by_year_day[ ICAL_BY_YEARDAY_SIZE];
+	short by_week_no[ICAL_BY_WEEKNO_SIZE];
+	short by_month[ICAL_BY_MONTH_SIZE];
+	short by_set_pos[ICAL_BY_SETPOS_SIZE];
+};
+
+
+void icalrecurrencetype_clear(struct icalrecurrencetype *r);
+
+/* The 'day' element of the by_day array is encoded to allow
+representation of both the day of the week ( Monday, Tueday), but also
+the Nth day of the week ( First tuesday of the month, last thursday of
+the year) These routines decode the day values */
+
+/* 1 == Monday, etc. */
+enum icalrecurrencetype_weekday icalrecurrencetype_day_day_of_week(short day);
+
+/* 0 == any of day of week. 1 == first, 2 = second, -2 == second to last, etc */
+short icalrecurrencetype_day_position(short day);
+
+
+/***********************************************************************
+ * Recurrance rule parser
+**********************************************************************/
+
+/* Convert between strings ans recurrencetype structures. */
+struct icalrecurrencetype icalrecurrencetype_from_string(const char* str);
+char* icalrecurrencetype_as_string(struct icalrecurrencetype *recur);
+
+
+/********** recurrence iteration routines ********************/
+
+typedef void icalrecur_iterator;
+
+/* Create a new recurrence rule iterator */
+icalrecur_iterator* icalrecur_iterator_new(struct icalrecurrencetype rule, 
+                                           struct icaltimetype dtstart);
+
+/* Get the next occurrence from an iterator */
+struct icaltimetype icalrecur_iterator_next(icalrecur_iterator*);
+
+/* Free the iterator */
+void icalrecur_iterator_free(icalrecur_iterator*);
+
+/* Fills array up with at most 'count' time_t values, each
+   representing an occurrence time in seconds past the POSIX epoch */
+int icalrecur_expand_recurrence(char* rule, time_t start, 
+				int count, time_t* array);
+
+
+#endif
+/* -*- Mode: C -*- */
+/*======================================================================
+  FILE: icalvalue.h
+  CREATOR: eric 20 March 1999
+
+
+  $Id$
+  $Locker$
+
+  
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalvalue.h
+
+  ======================================================================*/
+
+#ifndef ICALDERIVEDVALUE_H
+#define ICALDERIVEDVALUE_H
+
+     
+typedef void icalvalue;
+
+
+
+void icalvalue_set_x(icalvalue* value, const char* v);
+icalvalue* icalvalue_new_x(const char* v);
+const char* icalvalue_get_x(icalvalue* value);
+
+icalvalue* icalvalue_new_recur (struct icalrecurrencetype v);
+void icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v);
+struct icalrecurrencetype icalvalue_get_recur(icalvalue* value);
+
+icalvalue* icalvalue_new_trigger (struct icaltriggertype v);
+void icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v);
+struct icaltriggertype icalvalue_get_trigger(icalvalue* value);
+
+icalvalue* icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v);
+void icalvalue_set_datetimeperiod(icalvalue* value, struct icaldatetimeperiodtype v);
+struct icaldatetimeperiodtype icalvalue_get_datetimeperiod(icalvalue* value);
+
+/* Everything below this line is machine generated. Do not edit. */
+typedef enum icalvalue_kind {
+   ICAL_ANY_VALUE=5000,
+    ICAL_TEXT_VALUE=5001,
+    ICAL_BOOLEAN_VALUE=5002,
+    ICAL_DATETIMEPERIOD_VALUE=5003,
+    ICAL_DURATION_VALUE=5004,
+    ICAL_DATETIME_VALUE=5005,
+    ICAL_URI_VALUE=5006,
+    ICAL_X_VALUE=5007,
+    ICAL_FLOAT_VALUE=5008,
+    ICAL_PERIOD_VALUE=5009,
+    ICAL_TRIGGER_VALUE=5010,
+    ICAL_QUERY_VALUE=5011,
+    ICAL_CALADDRESS_VALUE=5012,
+    ICAL_UTCOFFSET_VALUE=5013,
+    ICAL_DATETIMEDATE_VALUE=5014,
+    ICAL_TRANSP_VALUE=5015,
+    ICAL_DATE_VALUE=5016,
+    ICAL_ACTION_VALUE=5017,
+    ICAL_TIME_VALUE=5018,
+    ICAL_METHOD_VALUE=5019,
+    ICAL_STATUS_VALUE=5020,
+    ICAL_GEO_VALUE=5021,
+    ICAL_INTEGER_VALUE=5022,
+    ICAL_CLASS_VALUE=5023,
+    ICAL_ATTACH_VALUE=5024,
+    ICAL_RECUR_VALUE=5025,
+    ICAL_BINARY_VALUE=5026,
+    ICAL_STRING_VALUE=5027,
+   ICAL_NO_VALUE=5028
+} icalvalue_kind ;
+
+#define ICALPROPERTY_FIRST_ENUM 10000
+
+typedef enum icalproperty_action {
+    ICAL_ACTION_X = 10000,
+    ICAL_ACTION_AUDIO = 10001,
+    ICAL_ACTION_DISPLAY = 10002,
+    ICAL_ACTION_EMAIL = 10003,
+    ICAL_ACTION_PROCEDURE = 10004,
+    ICAL_ACTION_NONE = 10005
+} icalproperty_action;
+
+typedef enum icalproperty_class {
+    ICAL_CLASS_X = 10006,
+    ICAL_CLASS_PUBLIC = 10007,
+    ICAL_CLASS_PRIVATE = 10008,
+    ICAL_CLASS_CONFIDENTIAL = 10009,
+    ICAL_CLASS_NONE = 10010
+} icalproperty_class;
+
+typedef enum icalproperty_method {
+    ICAL_METHOD_X = 10011,
+    ICAL_METHOD_PUBLISH = 10012,
+    ICAL_METHOD_REQUEST = 10013,
+    ICAL_METHOD_REPLY = 10014,
+    ICAL_METHOD_ADD = 10015,
+    ICAL_METHOD_CANCEL = 10016,
+    ICAL_METHOD_REFRESH = 10017,
+    ICAL_METHOD_COUNTER = 10018,
+    ICAL_METHOD_DECLINECOUNTER = 10019,
+    ICAL_METHOD_CREATE = 10020,
+    ICAL_METHOD_READ = 10021,
+    ICAL_METHOD_RESPONSE = 10022,
+    ICAL_METHOD_MOVE = 10023,
+    ICAL_METHOD_MODIFY = 10024,
+    ICAL_METHOD_GENERATEUID = 10025,
+    ICAL_METHOD_DELETE = 10026,
+    ICAL_METHOD_NONE = 10027
+} icalproperty_method;
+
+typedef enum icalproperty_status {
+    ICAL_STATUS_X = 10028,
+    ICAL_STATUS_TENTATIVE = 10029,
+    ICAL_STATUS_CONFIRMED = 10030,
+    ICAL_STATUS_COMPLETED = 10031,
+    ICAL_STATUS_NEEDSACTION = 10032,
+    ICAL_STATUS_CANCELLED = 10033,
+    ICAL_STATUS_INPROCESS = 10034,
+    ICAL_STATUS_DRAFT = 10035,
+    ICAL_STATUS_FINAL = 10036,
+    ICAL_STATUS_NONE = 10037
+} icalproperty_status;
+
+typedef enum icalproperty_transp {
+    ICAL_TRANSP_X = 10038,
+    ICAL_TRANSP_OPAQUE = 10039,
+    ICAL_TRANSP_TRANSPARENT = 10040,
+    ICAL_TRANSP_NONE = 10041
+} icalproperty_transp;
+
+#define ICALPROPERTY_LAST_ENUM 10042
+
+
+ /* TEXT */ 
+icalvalue* icalvalue_new_text(const char* v); 
+const char* icalvalue_get_text(icalvalue* value); 
+void icalvalue_set_text(icalvalue* value, const char* v);
+
+
+ /* BOOLEAN */ 
+icalvalue* icalvalue_new_boolean(int v); 
+int icalvalue_get_boolean(icalvalue* value); 
+void icalvalue_set_boolean(icalvalue* value, int v);
+
+
+ /* DURATION */ 
+icalvalue* icalvalue_new_duration(struct icaldurationtype v); 
+struct icaldurationtype icalvalue_get_duration(icalvalue* value); 
+void icalvalue_set_duration(icalvalue* value, struct icaldurationtype v);
+
+
+ /* DATE-TIME */ 
+icalvalue* icalvalue_new_datetime(struct icaltimetype v); 
+struct icaltimetype icalvalue_get_datetime(icalvalue* value); 
+void icalvalue_set_datetime(icalvalue* value, struct icaltimetype v);
+
+
+ /* URI */ 
+icalvalue* icalvalue_new_uri(const char* v); 
+const char* icalvalue_get_uri(icalvalue* value); 
+void icalvalue_set_uri(icalvalue* value, const char* v);
+
+
+ /* FLOAT */ 
+icalvalue* icalvalue_new_float(float v); 
+float icalvalue_get_float(icalvalue* value); 
+void icalvalue_set_float(icalvalue* value, float v);
+
+
+ /* PERIOD */ 
+icalvalue* icalvalue_new_period(struct icalperiodtype v); 
+struct icalperiodtype icalvalue_get_period(icalvalue* value); 
+void icalvalue_set_period(icalvalue* value, struct icalperiodtype v);
+
+
+ /* QUERY */ 
+icalvalue* icalvalue_new_query(const char* v); 
+const char* icalvalue_get_query(icalvalue* value); 
+void icalvalue_set_query(icalvalue* value, const char* v);
+
+
+ /* CAL-ADDRESS */ 
+icalvalue* icalvalue_new_caladdress(const char* v); 
+const char* icalvalue_get_caladdress(icalvalue* value); 
+void icalvalue_set_caladdress(icalvalue* value, const char* v);
+
+
+ /* UTC-OFFSET */ 
+icalvalue* icalvalue_new_utcoffset(int v); 
+int icalvalue_get_utcoffset(icalvalue* value); 
+void icalvalue_set_utcoffset(icalvalue* value, int v);
+
+
+ /* DATE-TIME-DATE */ 
+icalvalue* icalvalue_new_datetimedate(struct icaltimetype v); 
+struct icaltimetype icalvalue_get_datetimedate(icalvalue* value); 
+void icalvalue_set_datetimedate(icalvalue* value, struct icaltimetype v);
+
+
+ /* TRANSP */ 
+icalvalue* icalvalue_new_transp(enum icalproperty_transp v); 
+enum icalproperty_transp icalvalue_get_transp(icalvalue* value); 
+void icalvalue_set_transp(icalvalue* value, enum icalproperty_transp v);
+
+
+ /* DATE */ 
+icalvalue* icalvalue_new_date(struct icaltimetype v); 
+struct icaltimetype icalvalue_get_date(icalvalue* value); 
+void icalvalue_set_date(icalvalue* value, struct icaltimetype v);
+
+
+ /* ACTION */ 
+icalvalue* icalvalue_new_action(enum icalproperty_action v); 
+enum icalproperty_action icalvalue_get_action(icalvalue* value); 
+void icalvalue_set_action(icalvalue* value, enum icalproperty_action v);
+
+
+ /* TIME */ 
+icalvalue* icalvalue_new_time(struct icaltimetype v); 
+struct icaltimetype icalvalue_get_time(icalvalue* value); 
+void icalvalue_set_time(icalvalue* value, struct icaltimetype v);
+
+
+ /* METHOD */ 
+icalvalue* icalvalue_new_method(enum icalproperty_method v); 
+enum icalproperty_method icalvalue_get_method(icalvalue* value); 
+void icalvalue_set_method(icalvalue* value, enum icalproperty_method v);
+
+
+ /* STATUS */ 
+icalvalue* icalvalue_new_status(enum icalproperty_status v); 
+enum icalproperty_status icalvalue_get_status(icalvalue* value); 
+void icalvalue_set_status(icalvalue* value, enum icalproperty_status v);
+
+
+ /* GEO */ 
+icalvalue* icalvalue_new_geo(struct icalgeotype v); 
+struct icalgeotype icalvalue_get_geo(icalvalue* value); 
+void icalvalue_set_geo(icalvalue* value, struct icalgeotype v);
+
+
+ /* INTEGER */ 
+icalvalue* icalvalue_new_integer(int v); 
+int icalvalue_get_integer(icalvalue* value); 
+void icalvalue_set_integer(icalvalue* value, int v);
+
+
+ /* CLASS */ 
+icalvalue* icalvalue_new_class(enum icalproperty_class v); 
+enum icalproperty_class icalvalue_get_class(icalvalue* value); 
+void icalvalue_set_class(icalvalue* value, enum icalproperty_class v);
+
+
+ /* ATTACH */ 
+icalvalue* icalvalue_new_attach(struct icalattachtype v); 
+struct icalattachtype icalvalue_get_attach(icalvalue* value); 
+void icalvalue_set_attach(icalvalue* value, struct icalattachtype v);
+
+
+ /* BINARY */ 
+icalvalue* icalvalue_new_binary(const char* v); 
+const char* icalvalue_get_binary(icalvalue* value); 
+void icalvalue_set_binary(icalvalue* value, const char* v);
+
+
+ /* STRING */ 
+icalvalue* icalvalue_new_string(const char* v); 
+const char* icalvalue_get_string(icalvalue* value); 
+void icalvalue_set_string(icalvalue* value, const char* v);
+
+#endif /*ICALVALUE_H*/
+/* -*- Mode: C -*- */
+/*======================================================================
+  FILE: icalparam.h
+  CREATOR: eric 20 March 1999
+
+
+  $Id$
+  $Locker$
+
+  
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalparam.h
+
+  ======================================================================*/
+
+#ifndef ICALDERIVEDPARAMETER_H
+#define ICALDERIVEDPARAMETER_H
+
+
+typedef void icalparameter;
+
+const char* icalparameter_enum_to_string(int e);
+int icalparameter_string_to_enum(const char* str); 
+
+/* Everything below this line is machine generated. Do not edit. */
+typedef enum icalparameter_kind {
+    ICAL_ANY_PARAMETER = 0,
+    ICAL_ALTREP_PARAMETER, 
+    ICAL_CHARSET_PARAMETER, 
+    ICAL_CN_PARAMETER, 
+    ICAL_CUTYPE_PARAMETER, 
+    ICAL_DELEGATEDFROM_PARAMETER, 
+    ICAL_DELEGATEDTO_PARAMETER, 
+    ICAL_DIR_PARAMETER, 
+    ICAL_ENCODING_PARAMETER, 
+    ICAL_FBTYPE_PARAMETER, 
+    ICAL_FMTTYPE_PARAMETER, 
+    ICAL_LANGUAGE_PARAMETER, 
+    ICAL_MEMBER_PARAMETER, 
+    ICAL_PARTSTAT_PARAMETER, 
+    ICAL_RANGE_PARAMETER, 
+    ICAL_RELATED_PARAMETER, 
+    ICAL_RELTYPE_PARAMETER, 
+    ICAL_ROLE_PARAMETER, 
+    ICAL_RSVP_PARAMETER, 
+    ICAL_SENTBY_PARAMETER, 
+    ICAL_TZID_PARAMETER, 
+    ICAL_VALUE_PARAMETER, 
+    ICAL_X_PARAMETER, 
+    ICAL_XLICCOMPARETYPE_PARAMETER, 
+    ICAL_XLICERRORTYPE_PARAMETER, 
+    ICAL_NO_PARAMETER
+} icalparameter_kind;
+
+#define ICALPARAMETER_FIRST_ENUM 20000
+
+typedef enum icalparameter_cutype {
+    ICAL_CUTYPE_X = 20000,
+    ICAL_CUTYPE_INDIVIDUAL = 20001,
+    ICAL_CUTYPE_GROUP = 20002,
+    ICAL_CUTYPE_RESOURCE = 20003,
+    ICAL_CUTYPE_ROOM = 20004,
+    ICAL_CUTYPE_UNKNOWN = 20005,
+    ICAL_CUTYPE_NONE = 20006
+} icalparameter_cutype;
+
+typedef enum icalparameter_encoding {
+    ICAL_ENCODING_X = 20007,
+    ICAL_ENCODING_8BIT = 20008,
+    ICAL_ENCODING_BASE64 = 20009,
+    ICAL_ENCODING_NONE = 20010
+} icalparameter_encoding;
+
+typedef enum icalparameter_fbtype {
+    ICAL_FBTYPE_X = 20011,
+    ICAL_FBTYPE_FREE = 20012,
+    ICAL_FBTYPE_BUSY = 20013,
+    ICAL_FBTYPE_BUSYUNAVAILABLE = 20014,
+    ICAL_FBTYPE_BUSYTENTATIVE = 20015,
+    ICAL_FBTYPE_NONE = 20016
+} icalparameter_fbtype;
+
+typedef enum icalparameter_partstat {
+    ICAL_PARTSTAT_X = 20017,
+    ICAL_PARTSTAT_NEEDSACTION = 20018,
+    ICAL_PARTSTAT_ACCEPTED = 20019,
+    ICAL_PARTSTAT_DECLINED = 20020,
+    ICAL_PARTSTAT_TENTATIVE = 20021,
+    ICAL_PARTSTAT_DELEGATED = 20022,
+    ICAL_PARTSTAT_COMPLETED = 20023,
+    ICAL_PARTSTAT_INPROCESS = 20024,
+    ICAL_PARTSTAT_NONE = 20025
+} icalparameter_partstat;
+
+typedef enum icalparameter_range {
+    ICAL_RANGE_X = 20026,
+    ICAL_RANGE_THISANDPRIOR = 20027,
+    ICAL_RANGE_THISANDFUTURE = 20028,
+    ICAL_RANGE_NONE = 20029
+} icalparameter_range;
+
+typedef enum icalparameter_related {
+    ICAL_RELATED_X = 20030,
+    ICAL_RELATED_START = 20031,
+    ICAL_RELATED_END  = 20032,
+    ICAL_RELATED_NONE = 20033
+} icalparameter_related;
+
+typedef enum icalparameter_reltype {
+    ICAL_RELTYPE_X = 20034,
+    ICAL_RELTYPE_PARENT = 20035,
+    ICAL_RELTYPE_CHILD = 20036,
+    ICAL_RELTYPE_SIBLING = 20037,
+    ICAL_RELTYPE_NONE = 20038
+} icalparameter_reltype;
+
+typedef enum icalparameter_role {
+    ICAL_ROLE_X = 20039,
+    ICAL_ROLE_CHAIR = 20040,
+    ICAL_ROLE_REQPARTICIPANT = 20041,
+    ICAL_ROLE_OPTPARTICIPANT = 20042,
+    ICAL_ROLE_NONPARTICIPANT = 20043,
+    ICAL_ROLE_NONE = 20044
+} icalparameter_role;
+
+typedef enum icalparameter_rsvp {
+    ICAL_RSVP_X = 20045,
+    ICAL_RSVP_TRUE = 20046,
+    ICAL_RSVP_FALSE = 20047,
+    ICAL_RSVP_NONE = 20048
+} icalparameter_rsvp;
+
+typedef enum icalparameter_value {
+    ICAL_VALUE_X = 20049,
+    ICAL_VALUE_BINARY = 20050,
+    ICAL_VALUE_BOOLEAN = 20051,
+    ICAL_VALUE_DATE = 20052,
+    ICAL_VALUE_DURATION = 20053,
+    ICAL_VALUE_FLOAT = 20054,
+    ICAL_VALUE_INTEGER = 20055,
+    ICAL_VALUE_PERIOD = 20056,
+    ICAL_VALUE_RECUR = 20057,
+    ICAL_VALUE_TEXT = 20058,
+    ICAL_VALUE_TIME = 20059,
+    ICAL_VALUE_URI = 20060,
+    ICAL_VALUE_ERROR = 20061,
+    ICAL_VALUE_DATETIME = 20062,
+    ICAL_VALUE_UTCOFFSET = 20063,
+    ICAL_VALUE_CALADDRESS = 20064,
+    ICAL_VALUE_NONE = 20065
+} icalparameter_value;
+
+typedef enum icalparameter_xliccomparetype {
+    ICAL_XLICCOMPARETYPE_X = 20066,
+    ICAL_XLICCOMPARETYPE_EQUAL = 20067,
+    ICAL_XLICCOMPARETYPE_NOTEQUAL = 20068,
+    ICAL_XLICCOMPARETYPE_LESS = 20069,
+    ICAL_XLICCOMPARETYPE_GREATER = 20070,
+    ICAL_XLICCOMPARETYPE_LESSEQUAL = 20071,
+    ICAL_XLICCOMPARETYPE_GREATEREQUAL = 20072,
+    ICAL_XLICCOMPARETYPE_REGEX = 20073,
+    ICAL_XLICCOMPARETYPE_NONE = 20074
+} icalparameter_xliccomparetype;
+
+typedef enum icalparameter_xlicerrortype {
+    ICAL_XLICERRORTYPE_X = 20075,
+    ICAL_XLICERRORTYPE_COMPONENTPARSEERROR = 20076,
+    ICAL_XLICERRORTYPE_PROPERTYPARSEERROR = 20077,
+    ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR = 20078,
+    ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR = 20079,
+    ICAL_XLICERRORTYPE_VALUEPARSEERROR = 20080,
+    ICAL_XLICERRORTYPE_INVALIDITIP = 20081,
+    ICAL_XLICERRORTYPE_UNKNOWNVCALPROPERROR = 20082,
+    ICAL_XLICERRORTYPE_MIMEPARSEERROR = 20083,
+    ICAL_XLICERRORTYPE_NONE = 20084
+} icalparameter_xlicerrortype;
+
+#define ICALPARAMETER_LAST_ENUM 20085
+
+/* CUTYPE */
+icalparameter* icalparameter_new_cutype(icalparameter_cutype v);
+icalparameter_cutype icalparameter_get_cutype(icalparameter* value);
+void icalparameter_set_cutype(icalparameter* value, icalparameter_cutype v);
+
+/* FMTTYPE */
+icalparameter* icalparameter_new_fmttype(const char* v);
+const char* icalparameter_get_fmttype(icalparameter* value);
+void icalparameter_set_fmttype(icalparameter* value, const char* v);
+
+/* FBTYPE */
+icalparameter* icalparameter_new_fbtype(icalparameter_fbtype v);
+icalparameter_fbtype icalparameter_get_fbtype(icalparameter* value);
+void icalparameter_set_fbtype(icalparameter* value, icalparameter_fbtype v);
+
+/* DELEGATED-FROM */
+icalparameter* icalparameter_new_delegatedfrom(const char* v);
+const char* icalparameter_get_delegatedfrom(icalparameter* value);
+void icalparameter_set_delegatedfrom(icalparameter* value, const char* v);
+
+/* RELTYPE */
+icalparameter* icalparameter_new_reltype(icalparameter_reltype v);
+icalparameter_reltype icalparameter_get_reltype(icalparameter* value);
+void icalparameter_set_reltype(icalparameter* value, icalparameter_reltype v);
+
+/* ROLE */
+icalparameter* icalparameter_new_role(icalparameter_role v);
+icalparameter_role icalparameter_get_role(icalparameter* value);
+void icalparameter_set_role(icalparameter* value, icalparameter_role v);
+
+/* MEMBER */
+icalparameter* icalparameter_new_member(const char* v);
+const char* icalparameter_get_member(icalparameter* value);
+void icalparameter_set_member(icalparameter* value, const char* v);
+
+/* LANGUAGE */
+icalparameter* icalparameter_new_language(const char* v);
+const char* icalparameter_get_language(icalparameter* value);
+void icalparameter_set_language(icalparameter* value, const char* v);
+
+/* PARTSTAT */
+icalparameter* icalparameter_new_partstat(icalparameter_partstat v);
+icalparameter_partstat icalparameter_get_partstat(icalparameter* value);
+void icalparameter_set_partstat(icalparameter* value, icalparameter_partstat v);
+
+/* DELEGATED-TO */
+icalparameter* icalparameter_new_delegatedto(const char* v);
+const char* icalparameter_get_delegatedto(icalparameter* value);
+void icalparameter_set_delegatedto(icalparameter* value, const char* v);
+
+/* RSVP */
+icalparameter* icalparameter_new_rsvp(icalparameter_rsvp v);
+icalparameter_rsvp icalparameter_get_rsvp(icalparameter* value);
+void icalparameter_set_rsvp(icalparameter* value, icalparameter_rsvp v);
+
+/* DIR */
+icalparameter* icalparameter_new_dir(const char* v);
+const char* icalparameter_get_dir(icalparameter* value);
+void icalparameter_set_dir(icalparameter* value, const char* v);
+
+/* X */
+icalparameter* icalparameter_new_x(const char* v);
+const char* icalparameter_get_x(icalparameter* value);
+void icalparameter_set_x(icalparameter* value, const char* v);
+
+/* X-LIC-ERRORTYPE */
+icalparameter* icalparameter_new_xlicerrortype(icalparameter_xlicerrortype v);
+icalparameter_xlicerrortype icalparameter_get_xlicerrortype(icalparameter* value);
+void icalparameter_set_xlicerrortype(icalparameter* value, icalparameter_xlicerrortype v);
+
+/* RELATED */
+icalparameter* icalparameter_new_related(icalparameter_related v);
+icalparameter_related icalparameter_get_related(icalparameter* value);
+void icalparameter_set_related(icalparameter* value, icalparameter_related v);
+
+/* CN */
+icalparameter* icalparameter_new_cn(const char* v);
+const char* icalparameter_get_cn(icalparameter* value);
+void icalparameter_set_cn(icalparameter* value, const char* v);
+
+/* ENCODING */
+icalparameter* icalparameter_new_encoding(icalparameter_encoding v);
+icalparameter_encoding icalparameter_get_encoding(icalparameter* value);
+void icalparameter_set_encoding(icalparameter* value, icalparameter_encoding v);
+
+/* VALUE */
+icalparameter* icalparameter_new_value(icalparameter_value v);
+icalparameter_value icalparameter_get_value(icalparameter* value);
+void icalparameter_set_value(icalparameter* value, icalparameter_value v);
+
+/* ALTREP */
+icalparameter* icalparameter_new_altrep(const char* v);
+const char* icalparameter_get_altrep(icalparameter* value);
+void icalparameter_set_altrep(icalparameter* value, const char* v);
+
+/* RANGE */
+icalparameter* icalparameter_new_range(icalparameter_range v);
+icalparameter_range icalparameter_get_range(icalparameter* value);
+void icalparameter_set_range(icalparameter* value, icalparameter_range v);
+
+/* X-LIC-COMPARETYPE */
+icalparameter* icalparameter_new_xliccomparetype(icalparameter_xliccomparetype v);
+icalparameter_xliccomparetype icalparameter_get_xliccomparetype(icalparameter* value);
+void icalparameter_set_xliccomparetype(icalparameter* value, icalparameter_xliccomparetype v);
+
+/* TZID */
+icalparameter* icalparameter_new_tzid(const char* v);
+const char* icalparameter_get_tzid(icalparameter* value);
+void icalparameter_set_tzid(icalparameter* value, const char* v);
+
+/* CHARSET */
+icalparameter* icalparameter_new_charset( const char * v);
+ const char * icalparameter_get_charset(icalparameter* value);
+void icalparameter_set_charset(icalparameter* value,  const char * v);
+
+/* SENT-BY */
+icalparameter* icalparameter_new_sentby(const char* v);
+const char* icalparameter_get_sentby(icalparameter* value);
+void icalparameter_set_sentby(icalparameter* value, const char* v);
+
+#endif /*ICALPARAMETER_H*/
+
+/* -*- Mode: C -*- */
+/*======================================================================
+  FILE: icalvalue.h
+  CREATOR: eric 20 March 1999
+
+
+  $Id$
+  $Locker$
+
+  
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalvalue.h
+
+  ======================================================================*/
+
+#ifndef ICALVALUE_H
+#define ICALVALUE_H
+
+#include <time.h>
+                          
+/* Defined in icalderivedvalue.h */
+/*typedef void icalvalue;*/
+
+icalvalue* icalvalue_new(icalvalue_kind kind);
+
+icalvalue* icalvalue_new_clone(icalvalue* value);
+
+icalvalue* icalvalue_new_from_string(icalvalue_kind kind, const char* str);
+
+void icalvalue_free(icalvalue* value);
+
+int icalvalue_is_valid(icalvalue* value);
+
+const char* icalvalue_as_ical_string(icalvalue* value);
+
+icalvalue_kind icalvalue_isa(icalvalue* value);
+
+int icalvalue_isa_value(void*);
+
+icalparameter_xliccomparetype icalvalue_compare(icalvalue* a, icalvalue *b);
+
+
+/* Special, non autogenerated value accessors */
+
+icalvalue* icalvalue_new_recur (struct icalrecurrencetype v);
+void icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v);
+struct icalrecurrencetype icalvalue_get_recur(icalvalue* value);
+
+icalvalue* icalvalue_new_trigger (struct icaltriggertype v);
+void icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v);
+struct icaltriggertype icalvalue_get_trigger(icalvalue* value);
+
+icalvalue* icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v);
+void icalvalue_set_datetimeperiod(icalvalue* value, 
+				  struct icaldatetimeperiodtype v);
+struct icaldatetimeperiodtype icalvalue_get_datetimeperiod(icalvalue* value);
+
+/* Convert enumerations */
+
+icalvalue_kind icalvalue_string_to_kind(const char* str);
+const char* icalvalue_kind_to_string(icalvalue_kind kind);
+
+
+#endif /*ICALVALUE_H*/
+/* -*- Mode: C -*- */
+/*======================================================================
+  FILE: icalparam.h
+  CREATOR: eric 20 March 1999
+
+
+  $Id$
+  $Locker$
+
+  
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalparam.h
+
+  ======================================================================*/
+
+#ifndef ICALPARAM_H
+#define ICALPARAM_H
+
+
+/* Declared in icalderivedparameter.h */
+/*typedef void icalparameter;*/
+
+icalparameter* icalparameter_new(icalparameter_kind kind);
+icalparameter* icalparameter_new_clone(icalparameter* p);
+
+/* Create from string of form "PARAMNAME=VALUE" */
+icalparameter* icalparameter_new_from_string(const char* value);
+
+/* Create from just the value, the part after the "=" */
+icalparameter* icalparameter_new_from_value_string(icalparameter_kind kind, const char* value);
+
+void icalparameter_free(icalparameter* parameter);
+
+char* icalparameter_as_ical_string(icalparameter* parameter);
+
+int icalparameter_is_valid(icalparameter* parameter);
+
+icalparameter_kind icalparameter_isa(icalparameter* parameter);
+
+int icalparameter_isa_parameter(void* param);
+
+/* Acess the name of an X parameer */
+void icalparameter_set_xname (icalparameter* param, const char* v);
+const char* icalparameter_get_xname(icalparameter* param);
+void icalparameter_set_xvalue (icalparameter* param, const char* v);
+const char* icalparameter_get_xvalue(icalparameter* param);
+
+/* Convert enumerations */
+
+const char* icalparameter_kind_to_string(icalparameter_kind kind);
+icalparameter_kind icalparameter_string_to_kind(const char* string);
+
+
+
+#endif 
+/* -*- Mode: C -*-
+  ======================================================================
+  FILE: icalderivedproperties.{c,h}
+  CREATOR: eric 09 May 1999
+  
+  $Id$
+    
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+ ======================================================================*/
+
+
+#ifndef ICALDERIVEDPROPERTY_H
+#define ICALDERIVEDPROPERTY_H
+
+#include <time.h>
+
+typedef void icalproperty;
+
+
+/* Everything below this line is machine generated. Do not edit. */
+typedef enum icalproperty_kind {
+    ICAL_ANY_PROPERTY = 0,
+    ICAL_ACTION_PROPERTY, 
+    ICAL_ATTACH_PROPERTY, 
+    ICAL_ATTENDEE_PROPERTY, 
+    ICAL_CALSCALE_PROPERTY, 
+    ICAL_CATEGORIES_PROPERTY, 
+    ICAL_CLASS_PROPERTY, 
+    ICAL_COMMENT_PROPERTY, 
+    ICAL_COMPLETED_PROPERTY, 
+    ICAL_CONTACT_PROPERTY, 
+    ICAL_CREATED_PROPERTY, 
+    ICAL_DESCRIPTION_PROPERTY, 
+    ICAL_DTEND_PROPERTY, 
+    ICAL_DTSTAMP_PROPERTY, 
+    ICAL_DTSTART_PROPERTY, 
+    ICAL_DUE_PROPERTY, 
+    ICAL_DURATION_PROPERTY, 
+    ICAL_EXDATE_PROPERTY, 
+    ICAL_EXRULE_PROPERTY, 
+    ICAL_FREEBUSY_PROPERTY, 
+    ICAL_GEO_PROPERTY, 
+    ICAL_LASTMODIFIED_PROPERTY, 
+    ICAL_LOCATION_PROPERTY, 
+    ICAL_MAXRESULTS_PROPERTY, 
+    ICAL_MAXRESULTSSIZE_PROPERTY, 
+    ICAL_METHOD_PROPERTY, 
+    ICAL_ORGANIZER_PROPERTY, 
+    ICAL_PERCENTCOMPLETE_PROPERTY, 
+    ICAL_PRIORITY_PROPERTY, 
+    ICAL_PRODID_PROPERTY, 
+    ICAL_QUERY_PROPERTY, 
+    ICAL_QUERYNAME_PROPERTY, 
+    ICAL_RDATE_PROPERTY, 
+    ICAL_RECURRENCEID_PROPERTY, 
+    ICAL_RELATEDTO_PROPERTY, 
+    ICAL_REPEAT_PROPERTY, 
+    ICAL_REQUESTSTATUS_PROPERTY, 
+    ICAL_RESOURCES_PROPERTY, 
+    ICAL_RRULE_PROPERTY, 
+    ICAL_SCOPE_PROPERTY, 
+    ICAL_SEQUENCE_PROPERTY, 
+    ICAL_STATUS_PROPERTY, 
+    ICAL_SUMMARY_PROPERTY, 
+    ICAL_TARGET_PROPERTY, 
+    ICAL_TRANSP_PROPERTY, 
+    ICAL_TRIGGER_PROPERTY, 
+    ICAL_TZID_PROPERTY, 
+    ICAL_TZNAME_PROPERTY, 
+    ICAL_TZOFFSETFROM_PROPERTY, 
+    ICAL_TZOFFSETTO_PROPERTY, 
+    ICAL_TZURL_PROPERTY, 
+    ICAL_UID_PROPERTY, 
+    ICAL_URL_PROPERTY, 
+    ICAL_VERSION_PROPERTY, 
+    ICAL_X_PROPERTY, 
+    ICAL_XLICCLUSTERCOUNT_PROPERTY, 
+    ICAL_XLICERROR_PROPERTY, 
+    ICAL_XLICMIMECHARSET_PROPERTY, 
+    ICAL_XLICMIMECID_PROPERTY, 
+    ICAL_XLICMIMECONTENTTYPE_PROPERTY, 
+    ICAL_XLICMIMEENCODING_PROPERTY, 
+    ICAL_XLICMIMEFILENAME_PROPERTY, 
+    ICAL_XLICMIMEOPTINFO_PROPERTY, 
+    ICAL_NO_PROPERTY
+} icalproperty_kind;
+
+
+/* ACTION */
+icalproperty* icalproperty_new_action(enum icalproperty_action v);
+icalproperty* icalproperty_vanew_action(enum icalproperty_action v, ...);
+void icalproperty_set_action(icalproperty* prop, enum icalproperty_action v);
+enum icalproperty_action icalproperty_get_action(icalproperty* prop);
+/* ATTACH */
+icalproperty* icalproperty_new_attach(struct icalattachtype v);
+icalproperty* icalproperty_vanew_attach(struct icalattachtype v, ...);
+void icalproperty_set_attach(icalproperty* prop, struct icalattachtype v);
+struct icalattachtype icalproperty_get_attach(icalproperty* prop);
+/* ATTENDEE */
+icalproperty* icalproperty_new_attendee(const char* v);
+icalproperty* icalproperty_vanew_attendee(const char* v, ...);
+void icalproperty_set_attendee(icalproperty* prop, const char* v);
+const char* icalproperty_get_attendee(icalproperty* prop);
+/* CALSCALE */
+icalproperty* icalproperty_new_calscale(const char* v);
+icalproperty* icalproperty_vanew_calscale(const char* v, ...);
+void icalproperty_set_calscale(icalproperty* prop, const char* v);
+const char* icalproperty_get_calscale(icalproperty* prop);
+/* CATEGORIES */
+icalproperty* icalproperty_new_categories(const char* v);
+icalproperty* icalproperty_vanew_categories(const char* v, ...);
+void icalproperty_set_categories(icalproperty* prop, const char* v);
+const char* icalproperty_get_categories(icalproperty* prop);
+/* CLASS */
+icalproperty* icalproperty_new_class(const char* v);
+icalproperty* icalproperty_vanew_class(const char* v, ...);
+void icalproperty_set_class(icalproperty* prop, const char* v);
+const char* icalproperty_get_class(icalproperty* prop);
+/* COMMENT */
+icalproperty* icalproperty_new_comment(const char* v);
+icalproperty* icalproperty_vanew_comment(const char* v, ...);
+void icalproperty_set_comment(icalproperty* prop, const char* v);
+const char* icalproperty_get_comment(icalproperty* prop);
+/* COMPLETED */
+icalproperty* icalproperty_new_completed(struct icaltimetype v);
+icalproperty* icalproperty_vanew_completed(struct icaltimetype v, ...);
+void icalproperty_set_completed(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_completed(icalproperty* prop);
+/* CONTACT */
+icalproperty* icalproperty_new_contact(const char* v);
+icalproperty* icalproperty_vanew_contact(const char* v, ...);
+void icalproperty_set_contact(icalproperty* prop, const char* v);
+const char* icalproperty_get_contact(icalproperty* prop);
+/* CREATED */
+icalproperty* icalproperty_new_created(struct icaltimetype v);
+icalproperty* icalproperty_vanew_created(struct icaltimetype v, ...);
+void icalproperty_set_created(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_created(icalproperty* prop);
+/* DESCRIPTION */
+icalproperty* icalproperty_new_description(const char* v);
+icalproperty* icalproperty_vanew_description(const char* v, ...);
+void icalproperty_set_description(icalproperty* prop, const char* v);
+const char* icalproperty_get_description(icalproperty* prop);
+/* DTEND */
+icalproperty* icalproperty_new_dtend(struct icaltimetype v);
+icalproperty* icalproperty_vanew_dtend(struct icaltimetype v, ...);
+void icalproperty_set_dtend(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_dtend(icalproperty* prop);
+/* DTSTAMP */
+icalproperty* icalproperty_new_dtstamp(struct icaltimetype v);
+icalproperty* icalproperty_vanew_dtstamp(struct icaltimetype v, ...);
+void icalproperty_set_dtstamp(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_dtstamp(icalproperty* prop);
+/* DTSTART */
+icalproperty* icalproperty_new_dtstart(struct icaltimetype v);
+icalproperty* icalproperty_vanew_dtstart(struct icaltimetype v, ...);
+void icalproperty_set_dtstart(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_dtstart(icalproperty* prop);
+/* DUE */
+icalproperty* icalproperty_new_due(struct icaltimetype v);
+icalproperty* icalproperty_vanew_due(struct icaltimetype v, ...);
+void icalproperty_set_due(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_due(icalproperty* prop);
+/* DURATION */
+icalproperty* icalproperty_new_duration(struct icaldurationtype v);
+icalproperty* icalproperty_vanew_duration(struct icaldurationtype v, ...);
+void icalproperty_set_duration(icalproperty* prop, struct icaldurationtype v);
+struct icaldurationtype icalproperty_get_duration(icalproperty* prop);
+/* EXDATE */
+icalproperty* icalproperty_new_exdate(struct icaltimetype v);
+icalproperty* icalproperty_vanew_exdate(struct icaltimetype v, ...);
+void icalproperty_set_exdate(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_exdate(icalproperty* prop);
+/* EXRULE */
+icalproperty* icalproperty_new_exrule(struct icalrecurrencetype v);
+icalproperty* icalproperty_vanew_exrule(struct icalrecurrencetype v, ...);
+void icalproperty_set_exrule(icalproperty* prop, struct icalrecurrencetype v);
+struct icalrecurrencetype icalproperty_get_exrule(icalproperty* prop);
+/* FREEBUSY */
+icalproperty* icalproperty_new_freebusy(struct icalperiodtype v);
+icalproperty* icalproperty_vanew_freebusy(struct icalperiodtype v, ...);
+void icalproperty_set_freebusy(icalproperty* prop, struct icalperiodtype v);
+struct icalperiodtype icalproperty_get_freebusy(icalproperty* prop);
+/* GEO */
+icalproperty* icalproperty_new_geo(struct icalgeotype v);
+icalproperty* icalproperty_vanew_geo(struct icalgeotype v, ...);
+void icalproperty_set_geo(icalproperty* prop, struct icalgeotype v);
+struct icalgeotype icalproperty_get_geo(icalproperty* prop);
+/* LAST-MODIFIED */
+icalproperty* icalproperty_new_lastmodified(struct icaltimetype v);
+icalproperty* icalproperty_vanew_lastmodified(struct icaltimetype v, ...);
+void icalproperty_set_lastmodified(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_lastmodified(icalproperty* prop);
+/* LOCATION */
+icalproperty* icalproperty_new_location(const char* v);
+icalproperty* icalproperty_vanew_location(const char* v, ...);
+void icalproperty_set_location(icalproperty* prop, const char* v);
+const char* icalproperty_get_location(icalproperty* prop);
+/* MAXRESULTS */
+icalproperty* icalproperty_new_maxresults(int v);
+icalproperty* icalproperty_vanew_maxresults(int v, ...);
+void icalproperty_set_maxresults(icalproperty* prop, int v);
+int icalproperty_get_maxresults(icalproperty* prop);
+/* MAXRESULTSSIZE */
+icalproperty* icalproperty_new_maxresultssize(int v);
+icalproperty* icalproperty_vanew_maxresultssize(int v, ...);
+void icalproperty_set_maxresultssize(icalproperty* prop, int v);
+int icalproperty_get_maxresultssize(icalproperty* prop);
+/* METHOD */
+icalproperty* icalproperty_new_method(enum icalproperty_method v);
+icalproperty* icalproperty_vanew_method(enum icalproperty_method v, ...);
+void icalproperty_set_method(icalproperty* prop, enum icalproperty_method v);
+enum icalproperty_method icalproperty_get_method(icalproperty* prop);
+/* ORGANIZER */
+icalproperty* icalproperty_new_organizer(const char* v);
+icalproperty* icalproperty_vanew_organizer(const char* v, ...);
+void icalproperty_set_organizer(icalproperty* prop, const char* v);
+const char* icalproperty_get_organizer(icalproperty* prop);
+/* PERCENT-COMPLETE */
+icalproperty* icalproperty_new_percentcomplete(int v);
+icalproperty* icalproperty_vanew_percentcomplete(int v, ...);
+void icalproperty_set_percentcomplete(icalproperty* prop, int v);
+int icalproperty_get_percentcomplete(icalproperty* prop);
+/* PRIORITY */
+icalproperty* icalproperty_new_priority(int v);
+icalproperty* icalproperty_vanew_priority(int v, ...);
+void icalproperty_set_priority(icalproperty* prop, int v);
+int icalproperty_get_priority(icalproperty* prop);
+/* PRODID */
+icalproperty* icalproperty_new_prodid(const char* v);
+icalproperty* icalproperty_vanew_prodid(const char* v, ...);
+void icalproperty_set_prodid(icalproperty* prop, const char* v);
+const char* icalproperty_get_prodid(icalproperty* prop);
+/* QUERY */
+icalproperty* icalproperty_new_query(const char* v);
+icalproperty* icalproperty_vanew_query(const char* v, ...);
+void icalproperty_set_query(icalproperty* prop, const char* v);
+const char* icalproperty_get_query(icalproperty* prop);
+/* QUERYNAME */
+icalproperty* icalproperty_new_queryname(const char* v);
+icalproperty* icalproperty_vanew_queryname(const char* v, ...);
+void icalproperty_set_queryname(icalproperty* prop, const char* v);
+const char* icalproperty_get_queryname(icalproperty* prop);
+/* RDATE */
+icalproperty* icalproperty_new_rdate(struct icaldatetimeperiodtype v);
+icalproperty* icalproperty_vanew_rdate(struct icaldatetimeperiodtype v, ...);
+void icalproperty_set_rdate(icalproperty* prop, struct icaldatetimeperiodtype v);
+struct icaldatetimeperiodtype icalproperty_get_rdate(icalproperty* prop);
+/* RECURRENCE-ID */
+icalproperty* icalproperty_new_recurrenceid(struct icaltimetype v);
+icalproperty* icalproperty_vanew_recurrenceid(struct icaltimetype v, ...);
+void icalproperty_set_recurrenceid(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_recurrenceid(icalproperty* prop);
+/* RELATED-TO */
+icalproperty* icalproperty_new_relatedto(const char* v);
+icalproperty* icalproperty_vanew_relatedto(const char* v, ...);
+void icalproperty_set_relatedto(icalproperty* prop, const char* v);
+const char* icalproperty_get_relatedto(icalproperty* prop);
+/* REPEAT */
+icalproperty* icalproperty_new_repeat(int v);
+icalproperty* icalproperty_vanew_repeat(int v, ...);
+void icalproperty_set_repeat(icalproperty* prop, int v);
+int icalproperty_get_repeat(icalproperty* prop);
+/* REQUEST-STATUS */
+icalproperty* icalproperty_new_requeststatus(const char* v);
+icalproperty* icalproperty_vanew_requeststatus(const char* v, ...);
+void icalproperty_set_requeststatus(icalproperty* prop, const char* v);
+const char* icalproperty_get_requeststatus(icalproperty* prop);
+/* RESOURCES */
+icalproperty* icalproperty_new_resources(const char* v);
+icalproperty* icalproperty_vanew_resources(const char* v, ...);
+void icalproperty_set_resources(icalproperty* prop, const char* v);
+const char* icalproperty_get_resources(icalproperty* prop);
+/* RRULE */
+icalproperty* icalproperty_new_rrule(struct icalrecurrencetype v);
+icalproperty* icalproperty_vanew_rrule(struct icalrecurrencetype v, ...);
+void icalproperty_set_rrule(icalproperty* prop, struct icalrecurrencetype v);
+struct icalrecurrencetype icalproperty_get_rrule(icalproperty* prop);
+/* SCOPE */
+icalproperty* icalproperty_new_scope(const char* v);
+icalproperty* icalproperty_vanew_scope(const char* v, ...);
+void icalproperty_set_scope(icalproperty* prop, const char* v);
+const char* icalproperty_get_scope(icalproperty* prop);
+/* SEQUENCE */
+icalproperty* icalproperty_new_sequence(int v);
+icalproperty* icalproperty_vanew_sequence(int v, ...);
+void icalproperty_set_sequence(icalproperty* prop, int v);
+int icalproperty_get_sequence(icalproperty* prop);
+/* STATUS */
+icalproperty* icalproperty_new_status(enum icalproperty_status v);
+icalproperty* icalproperty_vanew_status(enum icalproperty_status v, ...);
+void icalproperty_set_status(icalproperty* prop, enum icalproperty_status v);
+enum icalproperty_status icalproperty_get_status(icalproperty* prop);
+/* SUMMARY */
+icalproperty* icalproperty_new_summary(const char* v);
+icalproperty* icalproperty_vanew_summary(const char* v, ...);
+void icalproperty_set_summary(icalproperty* prop, const char* v);
+const char* icalproperty_get_summary(icalproperty* prop);
+/* TARGET */
+icalproperty* icalproperty_new_target(const char* v);
+icalproperty* icalproperty_vanew_target(const char* v, ...);
+void icalproperty_set_target(icalproperty* prop, const char* v);
+const char* icalproperty_get_target(icalproperty* prop);
+/* TRANSP */
+icalproperty* icalproperty_new_transp(const char* v);
+icalproperty* icalproperty_vanew_transp(const char* v, ...);
+void icalproperty_set_transp(icalproperty* prop, const char* v);
+const char* icalproperty_get_transp(icalproperty* prop);
+/* TRIGGER */
+icalproperty* icalproperty_new_trigger(struct icaltriggertype v);
+icalproperty* icalproperty_vanew_trigger(struct icaltriggertype v, ...);
+void icalproperty_set_trigger(icalproperty* prop, struct icaltriggertype v);
+struct icaltriggertype icalproperty_get_trigger(icalproperty* prop);
+/* TZID */
+icalproperty* icalproperty_new_tzid(const char* v);
+icalproperty* icalproperty_vanew_tzid(const char* v, ...);
+void icalproperty_set_tzid(icalproperty* prop, const char* v);
+const char* icalproperty_get_tzid(icalproperty* prop);
+/* TZNAME */
+icalproperty* icalproperty_new_tzname(const char* v);
+icalproperty* icalproperty_vanew_tzname(const char* v, ...);
+void icalproperty_set_tzname(icalproperty* prop, const char* v);
+const char* icalproperty_get_tzname(icalproperty* prop);
+/* TZOFFSETFROM */
+icalproperty* icalproperty_new_tzoffsetfrom(int v);
+icalproperty* icalproperty_vanew_tzoffsetfrom(int v, ...);
+void icalproperty_set_tzoffsetfrom(icalproperty* prop, int v);
+int icalproperty_get_tzoffsetfrom(icalproperty* prop);
+/* TZOFFSETTO */
+icalproperty* icalproperty_new_tzoffsetto(int v);
+icalproperty* icalproperty_vanew_tzoffsetto(int v, ...);
+void icalproperty_set_tzoffsetto(icalproperty* prop, int v);
+int icalproperty_get_tzoffsetto(icalproperty* prop);
+/* TZURL */
+icalproperty* icalproperty_new_tzurl(const char* v);
+icalproperty* icalproperty_vanew_tzurl(const char* v, ...);
+void icalproperty_set_tzurl(icalproperty* prop, const char* v);
+const char* icalproperty_get_tzurl(icalproperty* prop);
+/* UID */
+icalproperty* icalproperty_new_uid(const char* v);
+icalproperty* icalproperty_vanew_uid(const char* v, ...);
+void icalproperty_set_uid(icalproperty* prop, const char* v);
+const char* icalproperty_get_uid(icalproperty* prop);
+/* URL */
+icalproperty* icalproperty_new_url(const char* v);
+icalproperty* icalproperty_vanew_url(const char* v, ...);
+void icalproperty_set_url(icalproperty* prop, const char* v);
+const char* icalproperty_get_url(icalproperty* prop);
+/* VERSION */
+icalproperty* icalproperty_new_version(const char* v);
+icalproperty* icalproperty_vanew_version(const char* v, ...);
+void icalproperty_set_version(icalproperty* prop, const char* v);
+const char* icalproperty_get_version(icalproperty* prop);
+/* X */
+icalproperty* icalproperty_new_x(const char* v);
+icalproperty* icalproperty_vanew_x(const char* v, ...);
+void icalproperty_set_x(icalproperty* prop, const char* v);
+const char* icalproperty_get_x(icalproperty* prop);
+/* X-LIC-CLUSTERCOUNT */
+icalproperty* icalproperty_new_xlicclustercount(const char* v);
+icalproperty* icalproperty_vanew_xlicclustercount(const char* v, ...);
+void icalproperty_set_xlicclustercount(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicclustercount(icalproperty* prop);
+/* X-LIC-ERROR */
+icalproperty* icalproperty_new_xlicerror(const char* v);
+icalproperty* icalproperty_vanew_xlicerror(const char* v, ...);
+void icalproperty_set_xlicerror(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicerror(icalproperty* prop);
+/* X-LIC-MIMECHARSET */
+icalproperty* icalproperty_new_xlicmimecharset(const char* v);
+icalproperty* icalproperty_vanew_xlicmimecharset(const char* v, ...);
+void icalproperty_set_xlicmimecharset(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicmimecharset(icalproperty* prop);
+/* X-LIC-MIMECID */
+icalproperty* icalproperty_new_xlicmimecid(const char* v);
+icalproperty* icalproperty_vanew_xlicmimecid(const char* v, ...);
+void icalproperty_set_xlicmimecid(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicmimecid(icalproperty* prop);
+/* X-LIC-MIMECONTENTTYPE */
+icalproperty* icalproperty_new_xlicmimecontenttype(const char* v);
+icalproperty* icalproperty_vanew_xlicmimecontenttype(const char* v, ...);
+void icalproperty_set_xlicmimecontenttype(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicmimecontenttype(icalproperty* prop);
+/* X-LIC-MIMEENCODING */
+icalproperty* icalproperty_new_xlicmimeencoding(const char* v);
+icalproperty* icalproperty_vanew_xlicmimeencoding(const char* v, ...);
+void icalproperty_set_xlicmimeencoding(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicmimeencoding(icalproperty* prop);
+/* X-LIC-MIMEFILENAME */
+icalproperty* icalproperty_new_xlicmimefilename(const char* v);
+icalproperty* icalproperty_vanew_xlicmimefilename(const char* v, ...);
+void icalproperty_set_xlicmimefilename(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicmimefilename(icalproperty* prop);
+/* X-LIC-MIMEOPTINFO */
+icalproperty* icalproperty_new_xlicmimeoptinfo(const char* v);
+icalproperty* icalproperty_vanew_xlicmimeoptinfo(const char* v, ...);
+void icalproperty_set_xlicmimeoptinfo(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicmimeoptinfo(icalproperty* prop);
+
+#endif /*ICALPROPERTY_H*/
+/* -*- Mode: C -*- */
+/*======================================================================
+  FILE: icalproperty.h
+  CREATOR: eric 20 March 1999
+
+
+  $Id$
+  $Locker$
+
+  
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalparam.h
+
+  ======================================================================*/
+
+
+#ifndef ICALPROPERTY_H
+#define ICALPROPERTY_H
+
+#include <time.h>
+
+
+
+
+/* Actually in icalderivedproperty.h:
+   typedef void icalproperty; */
+
+
+icalproperty* icalproperty_new(icalproperty_kind kind);
+
+icalproperty* icalproperty_new_clone(icalproperty * prop);
+
+icalproperty* icalproperty_new_from_string(char* str);
+
+char* icalproperty_as_ical_string(icalproperty* prop);
+
+void  icalproperty_free(icalproperty* prop);
+
+icalproperty_kind icalproperty_isa(icalproperty* property);
+int icalproperty_isa_property(void* property);
+
+void icalproperty_add_parameter(icalproperty* prop,icalparameter* parameter);
+void icalproperty_set_parameter(icalproperty* prop,icalparameter* parameter);
+void icalproperty_set_parameter_from_string(icalproperty* prop,
+                                            const char* name, const char* value);
+const char* icalproperty_get_parameter_as_string(icalproperty* prop,
+                                                 const char* name);
+
+void icalproperty_remove_parameter(icalproperty* prop,
+				   icalparameter_kind kind);
+
+int icalproperty_count_parameters(icalproperty* prop);
+
+/* Iterate through the parameters */
+icalparameter* icalproperty_get_first_parameter(icalproperty* prop,
+						icalparameter_kind kind);
+icalparameter* icalproperty_get_next_parameter(icalproperty* prop,
+						icalparameter_kind kind);
+/* Access the value of the property */
+void icalproperty_set_value(icalproperty* prop, icalvalue* value);
+void icalproperty_set_value_from_string(icalproperty* prop,const char* value, const char* kind);
+
+icalvalue* icalproperty_get_value(icalproperty* prop);
+const char* icalproperty_get_value_as_string(icalproperty* prop);
+
+/* Deal with X properties */
+
+void icalproperty_set_x_name(icalproperty* prop, char* name);
+char* icalproperty_get_x_name(icalproperty* prop);
+
+/* Return the name of the property -- the type name converted to a
+   string, or the value of _get_x_name if the type is and X property */
+char* icalproperty_get_name (icalproperty* prop);
+
+icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value);
+
+/* Convert kinds to string and get default value type */
+
+icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind);
+icalvalue_kind icalproperty_value_kind_to_kind(icalvalue_kind kind);
+const char* icalproperty_kind_to_string(icalproperty_kind kind);
+icalproperty_kind icalproperty_string_to_kind(const char* string);
+
+icalproperty_method icalproperty_string_to_method(const char* str);
+const char* icalproperty_method_to_string(icalproperty_method method);
+
+
+const char* icalproperty_enum_to_string(int e);
+int icalproperty_string_to_enum(const char* str);
+
+const char* icalproperty_status_to_string(icalproperty_status);
+icalproperty_status icalproperty_string_to_status(const char* string);
+
+int icalproperty_enum_belongs_to_property(icalproperty_kind kind, int e);
+
+
+
+
+#endif /*ICALPROPERTY_H*/
+/* -*- Mode: C -*- */
+/*======================================================================
+ FILE: icalattendee.h
+ CREATOR: eric 8 Mar 01
+
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icaltypes.h
+
+======================================================================*/
+
+#ifndef ICALATTENDEE_H
+#define ICALATTENDEE_H
+
+#include <time.h>
+
+struct icalorganizertype {
+    const char* value;
+    const char* common_name;
+    const char* dir;
+    const char* sentby;
+    const char* language;
+
+};
+
+/* Create a copy of the given organizer. Libical will not own the
+   memory for the strings in the copy; the call must free them */
+struct icalorganizertype icalorganizertype_new_clone(struct icalorganizertype a);
+
+
+struct icalattendeetype {
+    const char* cuid; /* Cal user id, contents of the property value */
+    /*icalparameter_cutype cutype;*/
+    const char* member;
+    /*icalparameter_role role;*/
+    int rsvp;
+    const char* delto;
+    const char* delfrom;
+    const char* sentby;
+    const char* cn;
+    const char* dir;
+    const char* language;
+};
+
+/* Create a copy of the given attendee. Libical will not own the
+   memory for the strings in the copy; the call must free them */
+struct icalattendeetype icalattendeetype_new_clone(struct icalattendeetype a);
+
+
+#endif /* !ICALATTENDEE_H */
+/*======================================================================
+ FILE: pvl.h
+ CREATOR: eric November, 1995
+
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+======================================================================*/
+
+
+#ifndef __PVL_H__
+#define __PVL_H__
+
+typedef void* pvl_list;
+typedef void* pvl_elem;
+
+/*
+  struct pvl_elem_t
+
+  This type is private. Always use pvl_elem instead. The struct would
+  not even appear in this header except to make code in the USE_MACROS
+  blocks work
+
+  */
+typedef struct pvl_elem_t
+{
+	int MAGIC;			/* Magic Identifier */
+	void *d;			/* Pointer to data user is storing */
+	struct pvl_elem_t *next;	/* Next element */
+	struct pvl_elem_t *prior;	/* prior element */
+} pvl_elem_t;
+
+
+
+/* This global is incremented for each call to pvl_new_element(); it gives each
+ * list a unique identifer */
+
+extern int  pvl_elem_count;
+extern int  pvl_list_count;
+
+/* Create new lists or elements */
+pvl_elem pvl_new_element(void* d, pvl_elem next,pvl_elem prior);
+pvl_list pvl_newlist(void);
+void pvl_free(pvl_list);
+
+/* Add, remove, or get the head of the list */
+void pvl_unshift(pvl_list l,void *d);
+void* pvl_shift(pvl_list l);
+pvl_elem pvl_head(pvl_list);
+
+/* Add, remove or get the tail of the list */
+void pvl_push(pvl_list l,void *d);
+void* pvl_pop(pvl_list l);
+pvl_elem pvl_tail(pvl_list);
+
+/* Insert elements in random places */
+typedef int (*pvl_comparef)(void* a, void* b); /* a, b are of the data type*/
+void pvl_insert_ordered(pvl_list l,pvl_comparef f,void *d);
+void pvl_insert_after(pvl_list l,pvl_elem e,void *d);
+void pvl_insert_before(pvl_list l,pvl_elem e,void *d);
+
+/* Remove an element, or clear the entire list */
+void* pvl_remove(pvl_list,pvl_elem); /* Remove element, return data */
+void pvl_clear(pvl_list); /* Remove all elements, de-allocate all data */
+
+int pvl_count(pvl_list);
+
+/* Navagate the list */
+pvl_elem pvl_next(pvl_elem e);
+pvl_elem pvl_prior(pvl_elem e);
+
+/* get the data in the list */
+#ifndef PVL_USE_MACROS
+void* pvl_data(pvl_elem);
+#else
+#define pvl_data(x) x==0 ? 0 : ((struct pvl_elem_t *)x)->d;
+#endif
+
+
+/* Find an element for which a function returns true */
+typedef int (*pvl_findf)(void* a, void* b); /*a is list elem, b is other data*/
+pvl_elem pvl_find(pvl_list l,pvl_findf f,void* v);
+pvl_elem pvl_find_next(pvl_list l,pvl_findf f,void* v);
+
+/* Pass each element in the list to a function */
+typedef void (*pvl_applyf)(void* a, void* b); /*a is list elem, b is other data*/
+void pvl_apply(pvl_list l,pvl_applyf f, void *v);
+
+
+#endif /* __PVL_H__ */
+
+
+
+
+
+/* -*- Mode: C -*- */
+/*======================================================================
+ FILE: icalcomponent.h
+ CREATOR: eric 20 March 1999
+
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalcomponent.h
+
+======================================================================*/
+
+#ifndef ICALCOMPONENT_H
+#define ICALCOMPONENT_H
+
+
+typedef void icalcomponent;
+
+/* This is exposed so that callers will not have to allocate and
+   deallocate iterators. Pretend that you can't see it. */
+typedef struct icalcompiter
+{
+	icalcomponent_kind kind;
+	pvl_elem iter;
+
+} icalcompiter;
+
+icalcomponent* icalcomponent_new(icalcomponent_kind kind);
+icalcomponent* icalcomponent_new_clone(icalcomponent* component);
+icalcomponent* icalcomponent_new_from_string(char* str);
+icalcomponent* icalcomponent_vanew(icalcomponent_kind kind, ...);
+void icalcomponent_free(icalcomponent* component);
+
+char* icalcomponent_as_ical_string(icalcomponent* component);
+
+int icalcomponent_is_valid(icalcomponent* component);
+
+icalcomponent_kind icalcomponent_isa(icalcomponent* component);
+
+int icalcomponent_isa_component (void* component);
+
+/* 
+ * Working with properties
+ */
+
+void icalcomponent_add_property(icalcomponent* component,
+				icalproperty* property);
+
+void icalcomponent_remove_property(icalcomponent* component,
+				   icalproperty* property);
+
+int icalcomponent_count_properties(icalcomponent* component,
+				   icalproperty_kind kind);
+
+/* Iterate through the properties */
+icalproperty* icalcomponent_get_current_property(icalcomponent* component);
+
+icalproperty* icalcomponent_get_first_property(icalcomponent* component,
+					      icalproperty_kind kind);
+icalproperty* icalcomponent_get_next_property(icalcomponent* component,
+					      icalproperty_kind kind);
+
+
+/* 
+ * Working with components
+ */ 
+
+
+/* Return the first VEVENT, VTODO or VJOURNAL sub-component of cop, or
+   comp if it is one of those types */
+
+icalcomponent* icalcomponent_get_inner(icalcomponent* comp);
+
+
+void icalcomponent_add_component(icalcomponent* parent,
+				icalcomponent* child);
+
+void icalcomponent_remove_component(icalcomponent* parent,
+				icalcomponent* child);
+
+int icalcomponent_count_components(icalcomponent* component,
+				   icalcomponent_kind kind);
+
+/* Iteration Routines. There are two forms of iterators, internal and
+external. The internal ones came first, and are almost completely
+sufficient, but they fail badly when you want to construct a loop that
+removes components from the container.*/
+
+
+/* Iterate through components */
+icalcomponent* icalcomponent_get_current_component (icalcomponent* component);
+
+icalcomponent* icalcomponent_get_first_component(icalcomponent* component,
+					      icalcomponent_kind kind);
+icalcomponent* icalcomponent_get_next_component(icalcomponent* component,
+					      icalcomponent_kind kind);
+
+/* Using external iterators */
+icalcompiter icalcomponent_begin_component(icalcomponent* component,
+					   icalcomponent_kind kind);
+icalcompiter icalcomponent_end_component(icalcomponent* component,
+					 icalcomponent_kind kind);
+icalcomponent* icalcompiter_next(icalcompiter* i);
+icalcomponent* icalcompiter_prior(icalcompiter* i);
+icalcomponent* icalcompiter_deref(icalcompiter* i);
+
+
+
+
+/* Working with embedded error properties */
+
+int icalcomponent_count_errors(icalcomponent* component);
+
+/* Remove all X-LIC-ERROR properties*/
+void icalcomponent_strip_errors(icalcomponent* component);
+
+/* Convert some X-LIC-ERROR properties into RETURN-STATUS properties*/
+void icalcomponent_convert_errors(icalcomponent* component);
+
+/* Internal operations. They are private, and you should not be using them. */
+icalcomponent* icalcomponent_get_parent(icalcomponent* component);
+void icalcomponent_set_parent(icalcomponent* component, 
+			      icalcomponent* parent);
+
+/* Kind conversion routiens */
+
+icalcomponent_kind icalcomponent_string_to_kind(const char* string);
+
+const char* icalcomponent_kind_to_string(icalcomponent_kind kind);
+
+
+/************* Derived class methods.  ****************************
+
+If the code was in an OO language, the remaining routines would be
+members of classes derived from icalcomponent. Don't call them on the
+wrong component subtypes. */
+
+/* For VCOMPONENT: Return a reference to the first VEVENT, VTODO or
+   VJOURNAL */
+icalcomponent* icalcomponent_get_first_real_component(icalcomponent *c);
+
+/* For VEVENT, VTODO, VJOURNAL and VTIMEZONE: report the start and end
+   times of an event in UTC */
+struct icaltime_span icalcomponent_get_span(icalcomponent* comp);
+
+/******************** Convienience routines **********************/
+
+void icalcomponent_set_dtstart(icalcomponent* comp, struct icaltimetype v);
+struct icaltimetype icalcomponent_get_dtstart(icalcomponent* comp);
+
+/* For the icalcomponent routines only, dtend and duration are tied
+   together. If you call the set routine for one and the other exists,
+   the routine will calculate the change to the other. That is, if
+   there is a DTEND and you call set_duration, the routine will modify
+   DTEND to be the sum of DTSTART and the duration. If you call a get
+   routine for one and the other exists, the routine will calculate
+   the return value. If you call a set routine and neither exists, the
+   routine will create the apcompriate comperty */
+
+
+struct icaltimetype icalcomponent_get_dtend(icalcomponent* comp);
+void icalcomponent_set_dtend(icalcomponent* comp, struct icaltimetype v);
+
+void icalcomponent_set_duration(icalcomponent* comp, 
+				struct icaldurationtype v);
+struct icaldurationtype icalcomponent_get_duration(icalcomponent* comp);
+
+void icalcomponent_set_method(icalcomponent* comp, icalproperty_method method);
+icalproperty_method icalcomponent_get_method(icalcomponent* comp);
+
+struct icaltimetype icalcomponent_get_dtstamp(icalcomponent* comp);
+void icalcomponent_set_dtstamp(icalcomponent* comp, struct icaltimetype v);
+
+
+void icalcomponent_set_summary(icalcomponent* comp, const char* v);
+const char* icalcomponent_get_summary(icalcomponent* comp);
+
+void icalcomponent_set_comment(icalcomponent* comp, const char* v);
+const char* icalcomponent_get_comment(icalcomponent* comp);
+
+void icalcomponent_set_uid(icalcomponent* comp, const char* v);
+const char* icalcomponent_get_uid(icalcomponent* comp);
+
+void icalcomponent_set_recurrenceid(icalcomponent* comp, 
+				    struct icaltimetype v);
+struct icaltimetype icalcomponent_get_recurrenceid(icalcomponent* comp);
+
+
+void icalcomponent_set_organizer(icalcomponent* comp, 
+				 struct icalorganizertype org);
+                                 struct icalorganizertype icalcomponent_get_organizer(icalcomponent* comp);
+
+
+void icalcomponent_add_attendee(icalcomponent *comp,
+				struct icalattendeetype attendee);
+
+int icalcomponent_remove_attendee(icalcomponent *comp, char* cuid);
+
+/* Get the Nth attendee. Out of range indices return an attendee
+   with cuid == 0 */
+struct icalattendeetype icalcomponent_get_attendee(icalcomponent *comp,
+  int index);
+
+
+
+
+/*************** Type Specific routines ***************/
+
+icalcomponent* icalcomponent_new_vcalendar();
+icalcomponent* icalcomponent_new_vevent();
+icalcomponent* icalcomponent_new_vtodo();
+icalcomponent* icalcomponent_new_vjournal();
+icalcomponent* icalcomponent_new_valarm();
+icalcomponent* icalcomponent_new_vfreebusy();
+icalcomponent* icalcomponent_new_vtimezone();
+icalcomponent* icalcomponent_new_xstandard();
+icalcomponent* icalcomponent_new_xdaylight();
+
+
+
+#endif /* !ICALCOMPONENT_H */
+
+
+
+/* -*- Mode: C -*- */
+/*======================================================================
+  FILE: icalparser.h
+  CREATOR: eric 20 April 1999
+  
+  $Id$
+
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalparser.h
+
+======================================================================*/
+
+
+#ifndef ICALPARSER_H
+#define ICALPARSER_H
+
+
+#include <stdio.h> /* For FILE* */
+
+typedef void* icalparser;
+
+
+/***********************************************************************
+ * Line-oriented parsing. 
+ * 
+ * Create a new parser via icalparse_new_parser, then add ines one at
+ * a time with icalparse_add_line(). icalparser_add_line() will return
+ * non-zero when it has finished with a component.
+ ***********************************************************************/
+
+typedef enum icalparser_state {
+    ICALPARSER_ERROR,
+    ICALPARSER_SUCCESS,
+    ICALPARSER_BEGIN_COMP,
+    ICALPARSER_END_COMP,
+    ICALPARSER_IN_PROGRESS
+} icalparser_state;
+
+icalparser* icalparser_new(void);
+icalcomponent* icalparser_add_line(icalparser* parser, char* str );
+icalcomponent* icalparser_clean(icalparser* parser);
+icalparser_state icalparser_get_state(icalparser* parser);
+void icalparser_free(icalparser* parser);
+
+
+/***********************************************************************
+ * Message oriented parsing.  icalparser_parse takes a string that
+ * holds the text ( in RFC 2445 format ) and returns a pointer to an
+ * icalcomponent. The caller owns the memory. line_gen_func is a
+ * pointer to a function that returns one content line per invocation
+ **********************************************************************/
+
+icalcomponent* icalparser_parse(icalparser *parser,
+				char* (*line_gen_func)(char *s, size_t size, void *d));
+
+/* Set the data that icalparser_parse will give to the line_gen_func
+   as the parameter 'd'*/
+void icalparser_set_gen_data(icalparser* parser, void* data);
+
+
+icalcomponent* icalparser_parse_string(const char* str);
+
+
+/***********************************************************************
+ * Parser support functions
+ ***********************************************************************/
+
+/* Use the flex/bison parser to turn a string into a value type */
+icalvalue*  icalparser_parse_value(icalvalue_kind kind, 
+				   const char* str, icalcomponent** errors);
+
+/* Given a line generator function, return a single iCal content line.*/
+char* icalparser_get_line(icalparser* parser, char* (*line_gen_func)(char *s, size_t size, void *d));
+
+char* string_line_generator(char *out, size_t buf_size, void *d);
+
+#endif /* !ICALPARSE_H */
+/* -*- Mode: C -*- */
+/*======================================================================
+ FILE: icalmemory.h
+ CREATOR: eric 30 June 1999
+
+
+ $Id$
+ $Locker$
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+ The Initial Developer of the Original Code is Eric Busboom
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+======================================================================*/
+
+#ifndef ICALMEMORY_H
+#define ICALMEMORY_H
+
+#include <sys/types.h> /* for size_t */
+
+
+/* Tmp buffers are managed by ical. References can be returned to the
+   caller, although the caller will not own the memory. */
+
+void* icalmemory_tmp_buffer(size_t size);
+char* icalmemory_tmp_copy(const char* str);
+
+/* Add an externally allocated buffer to the ring. */
+void  icalmemory_add_tmp_buffer(void*);
+
+
+/* Free all memory used in the ring */
+void icalmemory_free_ring(void);
+
+/* Non-tmp buffers must be freed. These are mostly wrappers around
+ * malloc, etc, but are used so the caller can change the memory
+ * allocators in a future version of the library */
+
+void* icalmemory_new_buffer(size_t size);
+void* icalmemory_resize_buffer(void* buf, size_t size);
+void icalmemory_free_buffer(void* buf);
+
+/* icalmemory_append_string will copy the string 'string' to the
+   buffer 'buf' starting at position 'pos', reallocing 'buf' if it is
+   too small. 'buf_size' is the size of 'buf' and will be changed if
+   'buf' is reallocated. 'pos' will point to the last byte of the new
+   string in 'buf', usually a '\0' */
+
+/* THESE ROUTINES CAN NOT BE USED ON TMP BUFFERS. Only use them on
+   normally allocated memory, or on buffers created from
+   icalmemory_new_buffer, never with buffers created by
+   icalmemory_tmp_buffer. If icalmemory_append_string has to resize a
+   buffer on the ring, the ring will loose track of it an you will
+   have memory problems. */
+
+void icalmemory_append_string(char** buf, char** pos, size_t* buf_size, 
+			      const char* string);
+
+/*  icalmemory_append_char is similar, but is appends a character instead of a string */
+void icalmemory_append_char(char** buf, char** pos, size_t* buf_size, 
+			      char ch);
+
+/* A wrapper around strdup. Partly to trap calls to strdup, partly
+   because in -ansi, gcc on Red Hat claims that strudup is undeclared */
+char* icalmemory_strdup(const char *s);
+
+#endif /* !ICALMEMORY_H */
+
+
+
+/* -*- Mode: C -*- */
+/*======================================================================
+  FILE: icalerror.h
+  CREATOR: eric 09 May 1999
+  
+  $Id$
+
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalerror.h
+
+======================================================================*/
+
+
+#ifndef ICALERROR_H
+#define ICALERROR_H
+
+#include <assert.h>
+#include <stdio.h> /* For icalerror_warn() */
+
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+
+/* This routine is called before any error is triggered. It is called
+   by icalerror_set_errno, so it does not appear in all of the macros
+   below */
+void icalerror_stop_here(void);
+
+typedef enum icalerrorenum {
+    
+    ICAL_BADARG_ERROR,
+    ICAL_NEWFAILED_ERROR,
+    ICAL_ALLOCATION_ERROR,
+    ICAL_MALFORMEDDATA_ERROR, 
+    ICAL_PARSE_ERROR,
+    ICAL_INTERNAL_ERROR, /* Like assert --internal consist. prob */
+    ICAL_FILE_ERROR,
+    ICAL_USAGE_ERROR,
+    ICAL_UNIMPLEMENTED_ERROR,
+    ICAL_UNKNOWN_ERROR, /* Used for problems in input to icalerror_strerror()*/
+    ICAL_NO_ERROR
+
+} icalerrorenum;
+
+/* The libical error enumeration, like errno*/
+extern icalerrorenum icalerrno;
+
+/* If true, libicl aborts after a call to icalerror_set_error*/
+extern int icalerror_errors_are_fatal;
+
+/* Warning messages */
+
+#ifdef __GNUC__ca
+#define icalerror_warn(message) {fprintf(stderr,"%s(), %s:%d: %s\n",__FUNCTION__,__FILE__,__LINE__,message);}
+#else /* __GNU_C__ */
+#define icalerror_warn(message) {fprintf(stderr,"%s:%d: %s\n",__FILE__,__LINE__,message);}
+#endif /* __GNU_C__ */
+
+
+void icalerror_clear_errno(void);
+void _icalerror_set_errno(icalerrorenum);
+
+/* Make an individual error fatal or non-fatal. */
+typedef enum icalerrorstate { 
+    ICAL_ERROR_FATAL,     /* Not fata */
+    ICAL_ERROR_NONFATAL,  /* Fatal */
+    ICAL_ERROR_DEFAULT,   /* Use the value of icalerror_errors_are_fatal*/
+    ICAL_ERROR_UNKNOWN    /* Asked state for an unknown error type */
+} icalerrorstate ;
+
+char* icalerror_strerror(icalerrorenum e);
+char* icalerror_perror();
+void icalerror_set_error_state( icalerrorenum error, icalerrorstate);
+icalerrorstate icalerror_get_error_state( icalerrorenum error);
+
+
+#define icalerror_set_errno(x) \
+icalerrno = x; \
+if(icalerror_get_error_state(x)==ICAL_ERROR_FATAL || \
+   (icalerror_get_error_state(x)==ICAL_ERROR_DEFAULT && \
+    icalerror_errors_are_fatal == 1 )){ \
+   icalerror_warn(icalerror_strerror(x)); \
+   assert(0); \
+} 
+
+
+#ifdef ICAL_ERRORS_ARE_FATAL
+#undef NDEBUG
+#endif
+
+#define icalerror_check_value_type(value,type);
+#define icalerror_check_property_type(value,type);
+#define icalerror_check_parameter_type(value,type);
+#define icalerror_check_component_type(value,type);
+
+/* Assert with a message */
+#ifdef ICAL_ERRORS_ARE_FATAL
+
+#ifdef __GNUC__
+#define icalerror_assert(test,message) if(!(test)){fprintf(stderr,"%s(), %s:%d: %s\n",__FUNCTION__,__FILE__,__LINE__,message);icalerror_stop_here(); abort();}
+#else /*__GNUC__*/
+#define icalerror_assert(test,message) if(!(test)){fprintf(stderr,"%s:%d: %s\n",__FILE__,__LINE__,message);icalerror_stop_here(); abort();}
+#endif /*__GNUC__*/
+
+#else /* ICAL_ERRORS_ARE_FATAL */
+#define icalerror_assert(test,message) 
+#endif /* ICAL_ERRORS_ARE_FATAL */
+
+/* Check & abort if check fails */
+#define icalerror_check_arg(test,arg) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); }
+
+/* Check & return void if check fails*/
+#define icalerror_check_arg_rv(test,arg) if(!(test)) {icalerror_set_errno(ICAL_BADARG_ERROR); return; }
+
+/* Check & return 0 if check fails*/
+#define icalerror_check_arg_rz(test,arg) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); return 0;}
+
+/* Check & return an error if check fails*/
+#define icalerror_check_arg_re(test,arg,error) if(!(test)) { icalerror_stop_here(); assert(0); return error;}
+
+/* Check & return something*/
+#define icalerror_check_arg_rx(test,arg,x) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); return x;}
+
+
+
+/* String interfaces to set an error to NONFATAL and restore it to its
+   original value */
+
+icalerrorstate icalerror_supress(const char* error);
+void icalerror_restore(const char* error, icalerrorstate es);
+
+
+#endif /* !ICALERROR_H */
+
+
+
+/* -*- Mode: C -*- */
+/*======================================================================
+  FILE: icalrestriction.h
+  CREATOR: eric 24 April 1999
+  
+  $Id$
+
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalrestriction.h
+
+  Contributions from:
+     Graham Davison (g.m.davison at computer.org)
+
+
+======================================================================*/
+
+
+#ifndef ICALRESTRICTION_H
+#define ICALRESTRICTION_H
+
+/* These must stay in this order for icalrestriction_compare to work */
+typedef enum icalrestriction_kind {
+    ICAL_RESTRICTION_NONE=0,		/* 0 */
+    ICAL_RESTRICTION_ZERO,		/* 1 */
+    ICAL_RESTRICTION_ONE,		/* 2 */
+    ICAL_RESTRICTION_ZEROPLUS,		/* 3 */
+    ICAL_RESTRICTION_ONEPLUS,		/* 4 */
+    ICAL_RESTRICTION_ZEROORONE,		/* 5 */
+    ICAL_RESTRICTION_ONEEXCLUSIVE,	/* 6 */
+    ICAL_RESTRICTION_ONEMUTUAL,		/* 7 */
+    ICAL_RESTRICTION_UNKNOWN		/* 8 */
+} icalrestriction_kind;
+
+int 
+icalrestriction_compare(icalrestriction_kind restr, int count);
+
+
+int
+icalrestriction_is_parameter_allowed(icalproperty_kind property,
+                                       icalparameter_kind parameter);
+
+int icalrestriction_check(icalcomponent* comp);
+
+
+#endif /* !ICALRESTRICTION_H */
+
+
+
+/* -*- Mode: C -*-
+  ======================================================================
+  FILE: sspm.h Mime Parser
+  CREATOR: eric 25 June 2000
+  
+  $Id$
+  $Locker$
+    
+ The contents of this file are subject to the Mozilla Public License
+ Version 1.0 (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and
+ limitations under the License.
+ 
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The Initial Developer of the Original Code is Eric Busboom
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+ ======================================================================*/
+
+#ifndef SSPM_H
+#define SSPM_H
+
+enum sspm_major_type {
+    SSPM_NO_MAJOR_TYPE,
+    SSPM_TEXT_MAJOR_TYPE,
+    SSPM_IMAGE_MAJOR_TYPE,
+    SSPM_AUDIO_MAJOR_TYPE,
+    SSPM_VIDEO_MAJOR_TYPE,
+    SSPM_APPLICATION_MAJOR_TYPE,
+    SSPM_MULTIPART_MAJOR_TYPE,
+    SSPM_MESSAGE_MAJOR_TYPE,
+    SSPM_UNKNOWN_MAJOR_TYPE
+};
+
+enum sspm_minor_type {
+    SSPM_NO_MINOR_TYPE,
+    SSPM_ANY_MINOR_TYPE,
+    SSPM_PLAIN_MINOR_TYPE,
+    SSPM_RFC822_MINOR_TYPE,
+    SSPM_DIGEST_MINOR_TYPE,
+    SSPM_CALENDAR_MINOR_TYPE,
+    SSPM_MIXED_MINOR_TYPE,
+    SSPM_RELATED_MINOR_TYPE,
+    SSPM_ALTERNATIVE_MINOR_TYPE,
+    SSPM_PARALLEL_MINOR_TYPE,
+    SSPM_UNKNOWN_MINOR_TYPE
+};
+
+enum sspm_encoding {
+    SSPM_NO_ENCODING,
+    SSPM_QUOTED_PRINTABLE_ENCODING,
+    SSPM_8BIT_ENCODING,
+    SSPM_7BIT_ENCODING,
+    SSPM_BINARY_ENCODING,
+    SSPM_BASE64_ENCODING,
+    SSPM_UNKNOWN_ENCODING
+};
+
+enum sspm_error{
+    SSPM_NO_ERROR,
+    SSPM_UNEXPECTED_BOUNDARY_ERROR,
+    SSPM_WRONG_BOUNDARY_ERROR,
+    SSPM_NO_BOUNDARY_ERROR,
+    SSPM_NO_HEADER_ERROR,
+    SSPM_MALFORMED_HEADER_ERROR
+};
+
+
+struct sspm_header
+{
+	int def;
+	char* boundary;
+	enum sspm_major_type major;
+	enum sspm_minor_type minor;
+	char *minor_text;
+	char ** content_type_params;
+	char* charset;
+	enum sspm_encoding encoding;
+	char* filename;
+	char* content_id;
+	enum sspm_error error;
+	char* error_text;
+};
+
+struct sspm_part {
+	struct sspm_header header;
+	int level;
+	size_t data_size;
+	void *data;
+};
+
+struct sspm_action_map {
+	enum sspm_major_type major;
+	enum sspm_minor_type minor;
+	void* (*new_part)();
+	void (*add_line)(void *part, struct sspm_header *header, 
+			 char* line, size_t size);
+	void* (*end_part)(void* part);
+	void (*free_part)(void *part);
+};
+
+char* sspm_major_type_string(enum sspm_major_type type);
+char* sspm_minor_type_string(enum sspm_minor_type type);
+char* sspm_encoding_string(enum sspm_encoding type);
+
+int sspm_parse_mime(struct sspm_part *parts, 
+		    size_t max_parts,
+		    struct sspm_action_map *actions,
+		    char* (*get_string)(char *s, size_t size, void* data),
+		    void *get_string_data,
+		    struct sspm_header *first_header
+    );
+
+void sspm_free_parts(struct sspm_part *parts, size_t max_parts);
+
+char *decode_quoted_printable(char *dest, 
+				       char *src,
+				       size_t *size);
+char *decode_base64(char *dest, 
+			     char *src,
+			     size_t *size);
+
+
+int sspm_write_mime(struct sspm_part *parts,size_t num_parts,
+		    char **output_string, char* header);
+
+#endif /*SSPM_H*/
+/* -*- Mode: C -*- */
+/*======================================================================
+ FILE: icalmime.h
+ CREATOR: eric 26 July 2000
+
+
+ $Id$
+ $Locker$
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+======================================================================*/
+
+#ifndef ICALMIME_H
+#define ICALMIME_H
+
+
+icalcomponent* icalmime_parse(	char* (*line_gen_func)(char *s, size_t size, 
+						       void *d),
+				void *data);
+
+/* The inverse of icalmime_parse, not implemented yet. Use sspm.h directly.  */
+char* icalmime_as_mime_string(char* component);
+
+
+
+#endif /* !ICALMIME_H */
+
+
+
+/* -*- Mode: C -*-
+  ======================================================================
+  FILE: icallangbind.h
+  CREATOR: eric 25 jan 2001
+  
+  DESCRIPTION:
+  
+  $Id$
+  $Locker$
+
+  (C) COPYRIGHT 1999 Eric Busboom 
+  http://www.softwarestudio.org
+  
+  This package is free software and is provided "as is" without
+  express or implied warranty.  It may be used, redistributed and/or
+  modified under the same terms as perl itself. ( Either the Artistic
+  License or the GPL. )
+
+  ======================================================================*/
+
+#ifndef __ICALLANGBIND_H__
+#define __ICALLANGBIND_H__
+
+int* icallangbind_new_array(int size);
+void icallangbind_free_array(int* array);
+int icallangbind_access_array(int* array, int index);
+icalproperty* icallangbind_get_property(icalcomponent *c, int n, const char* prop);
+const char* icallangbind_get_property_val(icalproperty* p);
+const char* icallangbind_get_parameter(icalproperty *p, const char* parameter);
+icalcomponent* icallangbind_get_component(icalcomponent *c, const char* comp);
+
+icalproperty* icallangbind_get_first_property(icalcomponent *c,
+                                              const char* prop);
+
+icalproperty* icallangbind_get_next_property(icalcomponent *c,
+                                              const char* prop);
+
+icalcomponent* icallangbind_get_first_component(icalcomponent *c,
+                                              const char* comp);
+
+icalcomponent* icallangbind_get_next_component(icalcomponent *c,
+                                              const char* comp);
+
+
+const char* icallangbind_property_eval_string(icalproperty* prop, char* sep);
+
+
+int icallangbind_string_to_open_flag(const char* str);
+#endif /*__ICALLANGBIND_H__*/
diff --git a/src/plugins/vcalendar/libical/libical/icalderivedparameter.c b/src/plugins/vcalendar/libical/libical/icalderivedparameter.c
new file mode 100644
index 0000000..484f35b
--- /dev/null
+++ b/src/plugins/vcalendar/libical/libical/icalderivedparameter.c
@@ -0,0 +1,1251 @@
+/* -*- Mode: C -*-
+  ======================================================================
+  FILE: icalderivedparameters.{c,h}
+  CREATOR: eric 09 May 1999
+  
+  $Id$
+  $Locker$
+    
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalderivedparameters.{c,h}
+
+  Contributions from:
+     Graham Davison (g.m.davison at computer.org)
+
+ ======================================================================*/
+/*#line 29 "icalparameter.c.in"*/
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+
+#include "icalparameter.h"
+#include "icalparameterimpl.h"
+
+#include "icalproperty.h"
+#include "icalerror.h"
+#include "icalmemory.h"
+
+#include <stdlib.h> /* for malloc() */
+#include <errno.h>
+#include <string.h> /* for memset() */
+
+icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value);
+
+struct icalparameter_impl* icalparameter_new_impl(icalparameter_kind kind);
+
+/* This map associates each of the parameters with the string
+   representation of the paramter's name */
+struct icalparameter_kind_map {
+    icalparameter_kind kind;
+    char *name;
+    
+};
+
+static struct icalparameter_kind_map parameter_map[];
+
+
+const char* icalparameter_kind_to_string(icalparameter_kind kind)
+{
+    int i;
+
+    for (i=0; parameter_map[i].kind != ICAL_NO_PARAMETER; i++) {
+	if (parameter_map[i].kind == kind) {
+	    return parameter_map[i].name;
+	}
+    }
+
+    return 0;
+
+}
+
+icalparameter_kind icalparameter_string_to_kind(const char* string)
+{
+    int i;
+
+    if (string ==0 ) { 
+	return ICAL_NO_PARAMETER;
+    }
+
+    for (i=0; parameter_map[i].kind  != ICAL_NO_PARAMETER; i++) {
+
+	if (strcmp(parameter_map[i].name, string) == 0) {
+	    return parameter_map[i].kind;
+	}
+    }
+
+    if(strncmp(string,"X-",2)==0){
+	return ICAL_X_PARAMETER;
+    }
+
+    return ICAL_NO_PARAMETER;
+}
+
+/* This map associates the enumerations for the VALUE parameter with
+   the kinds of VALUEs. */
+
+struct icalparameter_value_kind_map {
+    icalparameter_value value; 
+    icalvalue_kind kind; 
+};
+
+static struct icalparameter_value_kind_map value_kind_map[];
+
+
+icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value)
+{
+    int i;
+
+    for (i=0; value_kind_map[i].kind  != ICAL_NO_VALUE; i++) {
+
+	if (value_kind_map[i].value == value) {
+	    return value_kind_map[i].kind;
+	}
+    }
+
+    return ICAL_NO_VALUE;
+}
+
+
+/* This map associates the parameter enumerations with a specific parameter and the string representation of the enumeration */
+
+struct icalparameter_map {
+    icalparameter_kind kind;
+    int enumeration;
+    const char* str;
+};
+
+
+static struct icalparameter_map icalparameter_map[];
+
+
+const char* icalparameter_enum_to_string(int e) 
+{
+    int i;
+
+    icalerror_check_arg_rz(e >= ICALPARAMETER_FIRST_ENUM,"e");
+    icalerror_check_arg_rz(e <= ICALPARAMETER_LAST_ENUM,"e");
+
+    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
+        if(e == icalparameter_map[i].enumeration){
+            return icalparameter_map[i].str;
+        }
+    }
+
+    return 0;
+}
+
+int icalparameter_string_to_enum(const char* str)
+{
+    int i;
+
+    icalerror_check_arg_rz(str != 0,"str");
+
+    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
+        if(strcmp(str,icalparameter_map[i].str) == 0) {
+            return icalparameter_map[i].enumeration;
+        }
+    }
+
+    return 0;
+}
+
+icalparameter* icalparameter_new_from_value_string(icalparameter_kind kind,const  char* val)
+{
+
+    struct icalparameter_impl* param=0;
+    int found_kind = 0;
+    int i;
+
+    icalerror_check_arg_rz((val!=0),"val");
+
+    /* Search through the parameter map to find a matching kind */
+
+    param = icalparameter_new_impl(kind);
+
+    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
+        if(kind == icalparameter_map[i].kind) {
+	    char *raw_val = strdup(val);
+	    char *value = raw_val;
+            found_kind = 1;
+	    if(value[0] == '\"' && value[strlen(value) - 1] == '\"') {
+		value++;
+		value[strlen(value) - 1] = '\0';
+	    }
+            if(strcmp(value,icalparameter_map[i].str) == 0) {
+		free(raw_val);
+                param->data = (int)icalparameter_map[i].enumeration;
+                return param;
+            }
+	    free(raw_val);
+        }
+    }
+    
+    if(found_kind == 1){
+        /* The kind was in the parameter map, but the string did not
+           match, so assume that it is an alternate value, like an
+           X-value.*/
+        
+        icalparameter_set_xvalue(param, val);
+
+    } else {
+ 
+        /* If the kind was not found, then it must be a string type */
+        
+        ((struct icalparameter_impl*)param)->string = icalmemory_strdup(val);
+
+    }
+
+   return param;
+}
+
+
+
+
+/* Everything below this line is machine generated. Do not edit. */
+static struct  icalparameter_value_kind_map value_kind_map[] = {
+    {ICAL_VALUE_BINARY,ICAL_BINARY_VALUE},
+    {ICAL_VALUE_BOOLEAN,ICAL_BOOLEAN_VALUE},
+    {ICAL_VALUE_DATE,ICAL_DATE_VALUE},
+    {ICAL_VALUE_DURATION,ICAL_DURATION_VALUE},
+    {ICAL_VALUE_FLOAT,ICAL_FLOAT_VALUE},
+    {ICAL_VALUE_INTEGER,ICAL_INTEGER_VALUE},
+    {ICAL_VALUE_PERIOD,ICAL_PERIOD_VALUE},
+    {ICAL_VALUE_RECUR,ICAL_RECUR_VALUE},
+    {ICAL_VALUE_TEXT,ICAL_TEXT_VALUE},
+    {ICAL_VALUE_TIME,ICAL_TIME_VALUE},
+    {ICAL_VALUE_URI,ICAL_URI_VALUE},
+    {ICAL_VALUE_DATETIME,ICAL_DATETIME_VALUE},
+    {ICAL_VALUE_UTCOFFSET,ICAL_UTCOFFSET_VALUE},
+    {ICAL_VALUE_CALADDRESS,ICAL_CALADDRESS_VALUE},
+    {ICAL_VALUE_X,ICAL_X_VALUE},
+    {ICAL_VALUE_NONE,ICAL_NO_VALUE}
+};
+
+static struct icalparameter_kind_map parameter_map[] = { 
+    {ICAL_ALTREP_PARAMETER,"ALTREP"},
+    {ICAL_CHARSET_PARAMETER,"CHARSET"},
+    {ICAL_CN_PARAMETER,"CN"},
+    {ICAL_CUTYPE_PARAMETER,"CUTYPE"},
+    {ICAL_DELEGATEDFROM_PARAMETER,"DELEGATED-FROM"},
+    {ICAL_DELEGATEDTO_PARAMETER,"DELEGATED-TO"},
+    {ICAL_DIR_PARAMETER,"DIR"},
+    {ICAL_ENCODING_PARAMETER,"ENCODING"},
+    {ICAL_FBTYPE_PARAMETER,"FBTYPE"},
+    {ICAL_FMTTYPE_PARAMETER,"FMTTYPE"},
+    {ICAL_LANGUAGE_PARAMETER,"LANGUAGE"},
+    {ICAL_MEMBER_PARAMETER,"MEMBER"},
+    {ICAL_PARTSTAT_PARAMETER,"PARTSTAT"},
+    {ICAL_RANGE_PARAMETER,"RANGE"},
+    {ICAL_RELATED_PARAMETER,"RELATED"},
+    {ICAL_RELTYPE_PARAMETER,"RELTYPE"},
+    {ICAL_ROLE_PARAMETER,"ROLE"},
+    {ICAL_RSVP_PARAMETER,"RSVP"},
+    {ICAL_SENTBY_PARAMETER,"SENT-BY"},
+    {ICAL_TZID_PARAMETER,"TZID"},
+    {ICAL_VALUE_PARAMETER,"VALUE"},
+    {ICAL_X_PARAMETER,"X"},
+    {ICAL_XLICCOMPARETYPE_PARAMETER,"X-LIC-COMPARETYPE"},
+    {ICAL_XLICERRORTYPE_PARAMETER,"X-LIC-ERRORTYPE"},
+    { ICAL_NO_PARAMETER, ""}
+};
+
+static struct icalparameter_map icalparameter_map[] = {
+{ICAL_ANY_PARAMETER,0,""},
+    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_INDIVIDUAL,"INDIVIDUAL"},
+    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_GROUP,"GROUP"},
+    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_RESOURCE,"RESOURCE"},
+    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_ROOM,"ROOM"},
+    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_UNKNOWN,"UNKNOWN"},
+    {ICAL_ENCODING_PARAMETER,ICAL_ENCODING_8BIT,"8BIT"},
+    {ICAL_ENCODING_PARAMETER,ICAL_ENCODING_BASE64,"BASE64"},
+    {ICAL_FBTYPE_PARAMETER,ICAL_FBTYPE_FREE,"FREE"},
+    {ICAL_FBTYPE_PARAMETER,ICAL_FBTYPE_BUSY,"BUSY"},
+    {ICAL_FBTYPE_PARAMETER,ICAL_FBTYPE_BUSYUNAVAILABLE,"BUSYUNAVAILABLE"},
+    {ICAL_FBTYPE_PARAMETER,ICAL_FBTYPE_BUSYTENTATIVE,"BUSYTENTATIVE"},
+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_NEEDSACTION,"NEEDS-ACTION"},
+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_ACCEPTED,"ACCEPTED"},
+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_DECLINED,"DECLINED"},
+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_TENTATIVE,"TENTATIVE"},
+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_DELEGATED,"DELEGATED"},
+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_COMPLETED,"COMPLETED"},
+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_INPROCESS,"INPROCESS"},
+    {ICAL_RANGE_PARAMETER,ICAL_RANGE_THISANDPRIOR,"THISANDPRIOR"},
+    {ICAL_RANGE_PARAMETER,ICAL_RANGE_THISANDFUTURE,"THISANDFUTURE"},
+    {ICAL_RELATED_PARAMETER,ICAL_RELATED_START,"START"},
+    {ICAL_RELATED_PARAMETER,ICAL_RELATED_END ,"END "},
+    {ICAL_RELTYPE_PARAMETER,ICAL_RELTYPE_PARENT,"PARENT"},
+    {ICAL_RELTYPE_PARAMETER,ICAL_RELTYPE_CHILD,"CHILD"},
+    {ICAL_RELTYPE_PARAMETER,ICAL_RELTYPE_SIBLING,"SIBLING"},
+    {ICAL_ROLE_PARAMETER,ICAL_ROLE_CHAIR,"CHAIR"},
+    {ICAL_ROLE_PARAMETER,ICAL_ROLE_REQPARTICIPANT,"REQ-PARTICIPANT"},
+    {ICAL_ROLE_PARAMETER,ICAL_ROLE_OPTPARTICIPANT,"OPT-PARTICIPANT"},
+    {ICAL_ROLE_PARAMETER,ICAL_ROLE_NONPARTICIPANT,"NON-PARTICIPANT"},
+    {ICAL_RSVP_PARAMETER,ICAL_RSVP_TRUE,"TRUE"},
+    {ICAL_RSVP_PARAMETER,ICAL_RSVP_FALSE,"FALSE"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_BINARY,"BINARY"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_BOOLEAN,"BOOLEAN"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_DATE,"DATE"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_DURATION,"DURATION"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_FLOAT,"FLOAT"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_INTEGER,"INTEGER"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_PERIOD,"PERIOD"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_RECUR,"RECUR"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_TEXT,"TEXT"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_TIME,"TIME"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_URI,"URI"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_ERROR,"ERROR"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_DATETIME,"DATE-TIME"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_UTCOFFSET,"UTC-OFFSET"},
+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_CALADDRESS,"CAL-ADDRESS"},
+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_EQUAL,"EQUAL"},
+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_NOTEQUAL,"NOTEQUAL"},
+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_LESS,"LESS"},
+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_GREATER,"GREATER"},
+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_LESSEQUAL,"LESSEQUAL"},
+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_GREATEREQUAL,"GREATEREQUAL"},
+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_REGEX,"REGEX"},
+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_COMPONENTPARSEERROR,"COMPONENT-PARSE-ERROR"},
+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_PROPERTYPARSEERROR,"PROPERTY-PARSE-ERROR"},
+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR,"PARAMETER-NAME-PARSE-ERROR"},
+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR,"PARAMETER-VALUE-PARSE-ERROR"},
+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_VALUEPARSEERROR,"VALUE-PARSE-ERROR"},
+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_INVALIDITIP,"INVALID-ITIP"},
+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_UNKNOWNVCALPROPERROR,"UNKNOWN-VCAL-PROP-ERROR"},
+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_MIMEPARSEERROR,"MIME-PARSE-ERROR"},
+    {ICAL_NO_PARAMETER,0,""}};
+
+/* PARTSTAT */
+icalparameter* icalparameter_new_partstat(icalparameter_partstat v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz(v >= ICAL_PARTSTAT_X,"v");
+    icalerror_check_arg_rz(v < ICAL_PARTSTAT_NONE,"v");
+   impl = icalparameter_new_impl(ICAL_PARTSTAT_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_partstat((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+icalparameter_partstat icalparameter_get_partstat(icalparameter* param)
+{
+   icalerror_clear_errno();
+icalerror_check_arg( (param!=0), "param");
+     if ( ((struct icalparameter_impl*)param)->string != 0){
+        return ICAL_PARTSTAT_X;
+        }
+
+return (icalparameter_partstat)((struct icalparameter_impl*)param)->data;
+}
+
+void icalparameter_set_partstat(icalparameter* param, icalparameter_partstat v)
+{
+   icalerror_check_arg_rv(v >= ICAL_PARTSTAT_X,"v");
+    icalerror_check_arg_rv(v < ICAL_PARTSTAT_NONE,"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->data = (int)v;
+}
+
+/* RSVP */
+icalparameter* icalparameter_new_rsvp(icalparameter_rsvp v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz(v >= ICAL_RSVP_X,"v");
+    icalerror_check_arg_rz(v < ICAL_RSVP_NONE,"v");
+   impl = icalparameter_new_impl(ICAL_RSVP_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_rsvp((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+icalparameter_rsvp icalparameter_get_rsvp(icalparameter* param)
+{
+   icalerror_clear_errno();
+icalerror_check_arg( (param!=0), "param");
+
+return (icalparameter_rsvp)((struct icalparameter_impl*)param)->data;
+}
+
+void icalparameter_set_rsvp(icalparameter* param, icalparameter_rsvp v)
+{
+   icalerror_check_arg_rv(v >= ICAL_RSVP_X,"v");
+    icalerror_check_arg_rv(v < ICAL_RSVP_NONE,"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->data = (int)v;
+}
+
+/* TZID */
+icalparameter* icalparameter_new_tzid(const char* v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz( (v!=0),"v");
+   impl = icalparameter_new_impl(ICAL_TZID_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_tzid((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+const char* icalparameter_get_tzid(icalparameter* param)
+{
+   icalerror_clear_errno();
+    icalerror_check_arg_rz( (param!=0), "param");
+    return (const char*)((struct icalparameter_impl*)param)->string;
+}
+
+void icalparameter_set_tzid(icalparameter* param, const char* v)
+{
+   icalerror_check_arg_rv( (v!=0),"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
+}
+
+/* X */
+icalparameter* icalparameter_new_x(const char* v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz( (v!=0),"v");
+   impl = icalparameter_new_impl(ICAL_X_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_x((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+const char* icalparameter_get_x(icalparameter* param)
+{
+   icalerror_clear_errno();
+    icalerror_check_arg_rz( (param!=0), "param");
+    return (const char*)((struct icalparameter_impl*)param)->string;
+}
+
+void icalparameter_set_x(icalparameter* param, const char* v)
+{
+   icalerror_check_arg_rv( (v!=0),"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
+}
+
+/* RELTYPE */
+icalparameter* icalparameter_new_reltype(icalparameter_reltype v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz(v >= ICAL_RELTYPE_X,"v");
+    icalerror_check_arg_rz(v < ICAL_RELTYPE_NONE,"v");
+   impl = icalparameter_new_impl(ICAL_RELTYPE_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_reltype((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+icalparameter_reltype icalparameter_get_reltype(icalparameter* param)
+{
+   icalerror_clear_errno();
+icalerror_check_arg( (param!=0), "param");
+     if ( ((struct icalparameter_impl*)param)->string != 0){
+        return ICAL_RELTYPE_X;
+        }
+
+return (icalparameter_reltype)((struct icalparameter_impl*)param)->data;
+}
+
+void icalparameter_set_reltype(icalparameter* param, icalparameter_reltype v)
+{
+   icalerror_check_arg_rv(v >= ICAL_RELTYPE_X,"v");
+    icalerror_check_arg_rv(v < ICAL_RELTYPE_NONE,"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->data = (int)v;
+}
+
+/* RELATED */
+icalparameter* icalparameter_new_related(icalparameter_related v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz(v >= ICAL_RELATED_X,"v");
+    icalerror_check_arg_rz(v < ICAL_RELATED_NONE,"v");
+   impl = icalparameter_new_impl(ICAL_RELATED_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_related((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+icalparameter_related icalparameter_get_related(icalparameter* param)
+{
+   icalerror_clear_errno();
+icalerror_check_arg( (param!=0), "param");
+
+return (icalparameter_related)((struct icalparameter_impl*)param)->data;
+}
+
+void icalparameter_set_related(icalparameter* param, icalparameter_related v)
+{
+   icalerror_check_arg_rv(v >= ICAL_RELATED_X,"v");
+    icalerror_check_arg_rv(v < ICAL_RELATED_NONE,"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->data = (int)v;
+}
+
+/* CHARSET */
+icalparameter* icalparameter_new_charset( const char * v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz( (v!=0),"v");
+   impl = icalparameter_new_impl(ICAL_CHARSET_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_charset((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+ const char * icalparameter_get_charset(icalparameter* param)
+{
+   icalerror_clear_errno();
+    icalerror_check_arg_rz( (param!=0), "param");
+    return ( const char *)((struct icalparameter_impl*)param)->string;
+}
+
+void icalparameter_set_charset(icalparameter* param,  const char * v)
+{
+   icalerror_check_arg_rv( (v!=0),"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
+}
+
+/* FMTTYPE */
+icalparameter* icalparameter_new_fmttype(const char* v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz( (v!=0),"v");
+   impl = icalparameter_new_impl(ICAL_FMTTYPE_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_fmttype((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+const char* icalparameter_get_fmttype(icalparameter* param)
+{
+   icalerror_clear_errno();
+    icalerror_check_arg_rz( (param!=0), "param");
+    return (const char*)((struct icalparameter_impl*)param)->string;
+}
+
+void icalparameter_set_fmttype(icalparameter* param, const char* v)
+{
+   icalerror_check_arg_rv( (v!=0),"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
+}
+
+/* DIR */
+icalparameter* icalparameter_new_dir(const char* v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz( (v!=0),"v");
+   impl = icalparameter_new_impl(ICAL_DIR_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_dir((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+const char* icalparameter_get_dir(icalparameter* param)
+{
+   icalerror_clear_errno();
+    icalerror_check_arg_rz( (param!=0), "param");
+    return (const char*)((struct icalparameter_impl*)param)->string;
+}
+
+void icalparameter_set_dir(icalparameter* param, const char* v)
+{
+   icalerror_check_arg_rv( (v!=0),"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
+}
+
+/* MEMBER */
+icalparameter* icalparameter_new_member(const char* v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz( (v!=0),"v");
+   impl = icalparameter_new_impl(ICAL_MEMBER_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_member((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+const char* icalparameter_get_member(icalparameter* param)
+{
+   icalerror_clear_errno();
+    icalerror_check_arg_rz( (param!=0), "param");
+    return (const char*)((struct icalparameter_impl*)param)->string;
+}
+
+void icalparameter_set_member(icalparameter* param, const char* v)
+{
+   icalerror_check_arg_rv( (v!=0),"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
+}
+
+/* DELEGATED-TO */
+icalparameter* icalparameter_new_delegatedto(const char* v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz( (v!=0),"v");
+   impl = icalparameter_new_impl(ICAL_DELEGATEDTO_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_delegatedto((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+const char* icalparameter_get_delegatedto(icalparameter* param)
+{
+   icalerror_clear_errno();
+    icalerror_check_arg_rz( (param!=0), "param");
+    return (const char*)((struct icalparameter_impl*)param)->string;
+}
+
+void icalparameter_set_delegatedto(icalparameter* param, const char* v)
+{
+   icalerror_check_arg_rv( (v!=0),"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
+}
+
+/* FBTYPE */
+icalparameter* icalparameter_new_fbtype(icalparameter_fbtype v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz(v >= ICAL_FBTYPE_X,"v");
+    icalerror_check_arg_rz(v < ICAL_FBTYPE_NONE,"v");
+   impl = icalparameter_new_impl(ICAL_FBTYPE_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_fbtype((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+icalparameter_fbtype icalparameter_get_fbtype(icalparameter* param)
+{
+   icalerror_clear_errno();
+icalerror_check_arg( (param!=0), "param");
+     if ( ((struct icalparameter_impl*)param)->string != 0){
+        return ICAL_FBTYPE_X;
+        }
+
+return (icalparameter_fbtype)((struct icalparameter_impl*)param)->data;
+}
+
+void icalparameter_set_fbtype(icalparameter* param, icalparameter_fbtype v)
+{
+   icalerror_check_arg_rv(v >= ICAL_FBTYPE_X,"v");
+    icalerror_check_arg_rv(v < ICAL_FBTYPE_NONE,"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->data = (int)v;
+}
+
+/* LANGUAGE */
+icalparameter* icalparameter_new_language(const char* v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz( (v!=0),"v");
+   impl = icalparameter_new_impl(ICAL_LANGUAGE_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_language((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+const char* icalparameter_get_language(icalparameter* param)
+{
+   icalerror_clear_errno();
+    icalerror_check_arg_rz( (param!=0), "param");
+    return (const char*)((struct icalparameter_impl*)param)->string;
+}
+
+void icalparameter_set_language(icalparameter* param, const char* v)
+{
+   icalerror_check_arg_rv( (v!=0),"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
+}
+
+/* DELEGATED-FROM */
+icalparameter* icalparameter_new_delegatedfrom(const char* v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz( (v!=0),"v");
+   impl = icalparameter_new_impl(ICAL_DELEGATEDFROM_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_delegatedfrom((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+const char* icalparameter_get_delegatedfrom(icalparameter* param)
+{
+   icalerror_clear_errno();
+    icalerror_check_arg_rz( (param!=0), "param");
+    return (const char*)((struct icalparameter_impl*)param)->string;
+}
+
+void icalparameter_set_delegatedfrom(icalparameter* param, const char* v)
+{
+   icalerror_check_arg_rv( (v!=0),"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
+}
+
+/* RANGE */
+icalparameter* icalparameter_new_range(icalparameter_range v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz(v >= ICAL_RANGE_X,"v");
+    icalerror_check_arg_rz(v < ICAL_RANGE_NONE,"v");
+   impl = icalparameter_new_impl(ICAL_RANGE_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_range((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+icalparameter_range icalparameter_get_range(icalparameter* param)
+{
+   icalerror_clear_errno();
+icalerror_check_arg( (param!=0), "param");
+
+return (icalparameter_range)((struct icalparameter_impl*)param)->data;
+}
+
+void icalparameter_set_range(icalparameter* param, icalparameter_range v)
+{
+   icalerror_check_arg_rv(v >= ICAL_RANGE_X,"v");
+    icalerror_check_arg_rv(v < ICAL_RANGE_NONE,"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->data = (int)v;
+}
+
+/* X-LIC-ERRORTYPE */
+icalparameter* icalparameter_new_xlicerrortype(icalparameter_xlicerrortype v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz(v >= ICAL_XLICERRORTYPE_X,"v");
+    icalerror_check_arg_rz(v < ICAL_XLICERRORTYPE_NONE,"v");
+   impl = icalparameter_new_impl(ICAL_XLICERRORTYPE_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_xlicerrortype((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+icalparameter_xlicerrortype icalparameter_get_xlicerrortype(icalparameter* param)
+{
+   icalerror_clear_errno();
+icalerror_check_arg( (param!=0), "param");
+
+return (icalparameter_xlicerrortype)((struct icalparameter_impl*)param)->data;
+}
+
+void icalparameter_set_xlicerrortype(icalparameter* param, icalparameter_xlicerrortype v)
+{
+   icalerror_check_arg_rv(v >= ICAL_XLICERRORTYPE_X,"v");
+    icalerror_check_arg_rv(v < ICAL_XLICERRORTYPE_NONE,"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->data = (int)v;
+}
+
+/* CN */
+icalparameter* icalparameter_new_cn(const char* v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz( (v!=0),"v");
+   impl = icalparameter_new_impl(ICAL_CN_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_cn((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+const char* icalparameter_get_cn(icalparameter* param)
+{
+   icalerror_clear_errno();
+    icalerror_check_arg_rz( (param!=0), "param");
+    return (const char*)((struct icalparameter_impl*)param)->string;
+}
+
+void icalparameter_set_cn(icalparameter* param, const char* v)
+{
+   icalerror_check_arg_rv( (v!=0),"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
+}
+
+/* VALUE */
+icalparameter* icalparameter_new_value(icalparameter_value v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz(v >= ICAL_VALUE_X,"v");
+    icalerror_check_arg_rz(v < ICAL_VALUE_NONE,"v");
+   impl = icalparameter_new_impl(ICAL_VALUE_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_value((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+icalparameter_value icalparameter_get_value(icalparameter* param)
+{
+   icalerror_clear_errno();
+icalerror_check_arg( (param!=0), "param");
+     if ( ((struct icalparameter_impl*)param)->string != 0){
+        return ICAL_VALUE_X;
+        }
+
+return (icalparameter_value)((struct icalparameter_impl*)param)->data;
+}
+
+void icalparameter_set_value(icalparameter* param, icalparameter_value v)
+{
+   icalerror_check_arg_rv(v >= ICAL_VALUE_X,"v");
+    icalerror_check_arg_rv(v < ICAL_VALUE_NONE,"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->data = (int)v;
+}
+
+/* ROLE */
+icalparameter* icalparameter_new_role(icalparameter_role v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz(v >= ICAL_ROLE_X,"v");
+    icalerror_check_arg_rz(v < ICAL_ROLE_NONE,"v");
+   impl = icalparameter_new_impl(ICAL_ROLE_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_role((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+icalparameter_role icalparameter_get_role(icalparameter* param)
+{
+   icalerror_clear_errno();
+icalerror_check_arg( (param!=0), "param");
+     if ( ((struct icalparameter_impl*)param)->string != 0){
+        return ICAL_ROLE_X;
+        }
+
+return (icalparameter_role)((struct icalparameter_impl*)param)->data;
+}
+
+void icalparameter_set_role(icalparameter* param, icalparameter_role v)
+{
+   icalerror_check_arg_rv(v >= ICAL_ROLE_X,"v");
+    icalerror_check_arg_rv(v < ICAL_ROLE_NONE,"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->data = (int)v;
+}
+
+/* SENT-BY */
+icalparameter* icalparameter_new_sentby(const char* v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz( (v!=0),"v");
+   impl = icalparameter_new_impl(ICAL_SENTBY_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_sentby((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+const char* icalparameter_get_sentby(icalparameter* param)
+{
+   icalerror_clear_errno();
+    icalerror_check_arg_rz( (param!=0), "param");
+    return (const char*)((struct icalparameter_impl*)param)->string;
+}
+
+void icalparameter_set_sentby(icalparameter* param, const char* v)
+{
+   icalerror_check_arg_rv( (v!=0),"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
+}
+
+/* ALTREP */
+icalparameter* icalparameter_new_altrep(const char* v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz( (v!=0),"v");
+   impl = icalparameter_new_impl(ICAL_ALTREP_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_altrep((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+const char* icalparameter_get_altrep(icalparameter* param)
+{
+   icalerror_clear_errno();
+    icalerror_check_arg_rz( (param!=0), "param");
+    return (const char*)((struct icalparameter_impl*)param)->string;
+}
+
+void icalparameter_set_altrep(icalparameter* param, const char* v)
+{
+   icalerror_check_arg_rv( (v!=0),"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
+}
+
+/* X-LIC-COMPARETYPE */
+icalparameter* icalparameter_new_xliccomparetype(icalparameter_xliccomparetype v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz(v >= ICAL_XLICCOMPARETYPE_X,"v");
+    icalerror_check_arg_rz(v < ICAL_XLICCOMPARETYPE_NONE,"v");
+   impl = icalparameter_new_impl(ICAL_XLICCOMPARETYPE_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_xliccomparetype((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+icalparameter_xliccomparetype icalparameter_get_xliccomparetype(icalparameter* param)
+{
+   icalerror_clear_errno();
+icalerror_check_arg( (param!=0), "param");
+
+return (icalparameter_xliccomparetype)((struct icalparameter_impl*)param)->data;
+}
+
+void icalparameter_set_xliccomparetype(icalparameter* param, icalparameter_xliccomparetype v)
+{
+   icalerror_check_arg_rv(v >= ICAL_XLICCOMPARETYPE_X,"v");
+    icalerror_check_arg_rv(v < ICAL_XLICCOMPARETYPE_NONE,"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->data = (int)v;
+}
+
+/* ENCODING */
+icalparameter* icalparameter_new_encoding(icalparameter_encoding v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz(v >= ICAL_ENCODING_X,"v");
+    icalerror_check_arg_rz(v < ICAL_ENCODING_NONE,"v");
+   impl = icalparameter_new_impl(ICAL_ENCODING_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_encoding((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+icalparameter_encoding icalparameter_get_encoding(icalparameter* param)
+{
+   icalerror_clear_errno();
+icalerror_check_arg( (param!=0), "param");
+     if ( ((struct icalparameter_impl*)param)->string != 0){
+        return ICAL_ENCODING_X;
+        }
+
+return (icalparameter_encoding)((struct icalparameter_impl*)param)->data;
+}
+
+void icalparameter_set_encoding(icalparameter* param, icalparameter_encoding v)
+{
+   icalerror_check_arg_rv(v >= ICAL_ENCODING_X,"v");
+    icalerror_check_arg_rv(v < ICAL_ENCODING_NONE,"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->data = (int)v;
+}
+
+/* CUTYPE */
+icalparameter* icalparameter_new_cutype(icalparameter_cutype v)
+{
+   struct icalparameter_impl *impl;
+   icalerror_clear_errno();
+   icalerror_check_arg_rz(v >= ICAL_CUTYPE_X,"v");
+    icalerror_check_arg_rz(v < ICAL_CUTYPE_NONE,"v");
+   impl = icalparameter_new_impl(ICAL_CUTYPE_PARAMETER);
+   if (impl == 0) {
+      return 0;
+   }
+
+   icalparameter_set_cutype((icalparameter*) impl,v);
+   if (icalerrno != ICAL_NO_ERROR) {
+      icalparameter_free((icalparameter*) impl);
+      return 0;
+   }
+
+   return (icalparameter*) impl;
+}
+
+icalparameter_cutype icalparameter_get_cutype(icalparameter* param)
+{
+   icalerror_clear_errno();
+icalerror_check_arg( (param!=0), "param");
+     if ( ((struct icalparameter_impl*)param)->string != 0){
+        return ICAL_CUTYPE_X;
+        }
+
+return (icalparameter_cutype)((struct icalparameter_impl*)param)->data;
+}
+
+void icalparameter_set_cutype(icalparameter* param, icalparameter_cutype v)
+{
+   icalerror_check_arg_rv(v >= ICAL_CUTYPE_X,"v");
+    icalerror_check_arg_rv(v < ICAL_CUTYPE_NONE,"v");
+   icalerror_check_arg_rv( (param!=0), "param");
+   icalerror_clear_errno();
+   
+   ((struct icalparameter_impl*)param)->data = (int)v;
+}
+
diff --git a/src/plugins/vcalendar/libical/libical/icalderivedparameter.h b/src/plugins/vcalendar/libical/libical/icalderivedparameter.h
new file mode 100644
index 0000000..c5bf74f
--- /dev/null
+++ b/src/plugins/vcalendar/libical/libical/icalderivedparameter.h
@@ -0,0 +1,314 @@
+/* -*- Mode: C -*- */
+/*======================================================================
+  FILE: icalparam.h
+  CREATOR: eric 20 March 1999
+
+
+  $Id$
+  $Locker$
+
+  
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalparam.h
+
+  ======================================================================*/
+
+#ifndef ICALDERIVEDPARAMETER_H
+#define ICALDERIVEDPARAMETER_H
+
+
+typedef void icalparameter;
+
+const char* icalparameter_enum_to_string(int e);
+int icalparameter_string_to_enum(const char* str); 
+
+/* Everything below this line is machine generated. Do not edit. */
+typedef enum icalparameter_kind {
+    ICAL_ANY_PARAMETER = 0,
+    ICAL_ALTREP_PARAMETER, 
+    ICAL_CHARSET_PARAMETER, 
+    ICAL_CN_PARAMETER, 
+    ICAL_CUTYPE_PARAMETER, 
+    ICAL_DELEGATEDFROM_PARAMETER, 
+    ICAL_DELEGATEDTO_PARAMETER, 
+    ICAL_DIR_PARAMETER, 
+    ICAL_ENCODING_PARAMETER, 
+    ICAL_FBTYPE_PARAMETER, 
+    ICAL_FMTTYPE_PARAMETER, 
+    ICAL_LANGUAGE_PARAMETER, 
+    ICAL_MEMBER_PARAMETER, 
+    ICAL_PARTSTAT_PARAMETER, 
+    ICAL_RANGE_PARAMETER, 
+    ICAL_RELATED_PARAMETER, 
+    ICAL_RELTYPE_PARAMETER, 
+    ICAL_ROLE_PARAMETER, 
+    ICAL_RSVP_PARAMETER, 
+    ICAL_SENTBY_PARAMETER, 
+    ICAL_TZID_PARAMETER, 
+    ICAL_VALUE_PARAMETER, 
+    ICAL_X_PARAMETER, 
+    ICAL_XLICCOMPARETYPE_PARAMETER, 
+    ICAL_XLICERRORTYPE_PARAMETER, 
+    ICAL_NO_PARAMETER
+} icalparameter_kind;
+
+#define ICALPARAMETER_FIRST_ENUM 20000
+
+typedef enum icalparameter_cutype {
+    ICAL_CUTYPE_X = 20000,
+    ICAL_CUTYPE_INDIVIDUAL = 20001,
+    ICAL_CUTYPE_GROUP = 20002,
+    ICAL_CUTYPE_RESOURCE = 20003,
+    ICAL_CUTYPE_ROOM = 20004,
+    ICAL_CUTYPE_UNKNOWN = 20005,
+    ICAL_CUTYPE_NONE = 20006
+} icalparameter_cutype;
+
+typedef enum icalparameter_encoding {
+    ICAL_ENCODING_X = 20007,
+    ICAL_ENCODING_8BIT = 20008,
+    ICAL_ENCODING_BASE64 = 20009,
+    ICAL_ENCODING_NONE = 20010
+} icalparameter_encoding;
+
+typedef enum icalparameter_fbtype {
+    ICAL_FBTYPE_X = 20011,
+    ICAL_FBTYPE_FREE = 20012,
+    ICAL_FBTYPE_BUSY = 20013,
+    ICAL_FBTYPE_BUSYUNAVAILABLE = 20014,
+    ICAL_FBTYPE_BUSYTENTATIVE = 20015,
+    ICAL_FBTYPE_NONE = 20016
+} icalparameter_fbtype;
+
+typedef enum icalparameter_partstat {
+    ICAL_PARTSTAT_X = 20017,
+    ICAL_PARTSTAT_NEEDSACTION = 20018,
+    ICAL_PARTSTAT_ACCEPTED = 20019,
+    ICAL_PARTSTAT_DECLINED = 20020,
+    ICAL_PARTSTAT_TENTATIVE = 20021,
+    ICAL_PARTSTAT_DELEGATED = 20022,
+    ICAL_PARTSTAT_COMPLETED = 20023,
+    ICAL_PARTSTAT_INPROCESS = 20024,
+    ICAL_PARTSTAT_NONE = 20025
+} icalparameter_partstat;
+
+typedef enum icalparameter_range {
+    ICAL_RANGE_X = 20026,
+    ICAL_RANGE_THISANDPRIOR = 20027,
+    ICAL_RANGE_THISANDFUTURE = 20028,
+    ICAL_RANGE_NONE = 20029
+} icalparameter_range;
+
+typedef enum icalparameter_related {
+    ICAL_RELATED_X = 20030,
+    ICAL_RELATED_START = 20031,
+    ICAL_RELATED_END  = 20032,
+    ICAL_RELATED_NONE = 20033
+} icalparameter_related;
+
+typedef enum icalparameter_reltype {
+    ICAL_RELTYPE_X = 20034,
+    ICAL_RELTYPE_PARENT = 20035,
+    ICAL_RELTYPE_CHILD = 20036,
+    ICAL_RELTYPE_SIBLING = 20037,
+    ICAL_RELTYPE_NONE = 20038
+} icalparameter_reltype;
+
+typedef enum icalparameter_role {
+    ICAL_ROLE_X = 20039,
+    ICAL_ROLE_CHAIR = 20040,
+    ICAL_ROLE_REQPARTICIPANT = 20041,
+    ICAL_ROLE_OPTPARTICIPANT = 20042,
+    ICAL_ROLE_NONPARTICIPANT = 20043,
+    ICAL_ROLE_NONE = 20044
+} icalparameter_role;
+
+typedef enum icalparameter_rsvp {
+    ICAL_RSVP_X = 20045,
+    ICAL_RSVP_TRUE = 20046,
+    ICAL_RSVP_FALSE = 20047,
+    ICAL_RSVP_NONE = 20048
+} icalparameter_rsvp;
+
+typedef enum icalparameter_value {
+    ICAL_VALUE_X = 20049,
+    ICAL_VALUE_BINARY = 20050,
+    ICAL_VALUE_BOOLEAN = 20051,
+    ICAL_VALUE_DATE = 20052,
+    ICAL_VALUE_DURATION = 20053,
+    ICAL_VALUE_FLOAT = 20054,
+    ICAL_VALUE_INTEGER = 20055,
+    ICAL_VALUE_PERIOD = 20056,
+    ICAL_VALUE_RECUR = 20057,
+    ICAL_VALUE_TEXT = 20058,
+    ICAL_VALUE_TIME = 20059,
+    ICAL_VALUE_URI = 20060,
+    ICAL_VALUE_ERROR = 20061,
+    ICAL_VALUE_DATETIME = 20062,
+    ICAL_VALUE_UTCOFFSET = 20063,
+    ICAL_VALUE_CALADDRESS = 20064,
+    ICAL_VALUE_NONE = 20065
+} icalparameter_value;
+
+typedef enum icalparameter_xliccomparetype {
+    ICAL_XLICCOMPARETYPE_X = 20066,
+    ICAL_XLICCOMPARETYPE_EQUAL = 20067,
+    ICAL_XLICCOMPARETYPE_NOTEQUAL = 20068,
+    ICAL_XLICCOMPARETYPE_LESS = 20069,
+    ICAL_XLICCOMPARETYPE_GREATER = 20070,
+    ICAL_XLICCOMPARETYPE_LESSEQUAL = 20071,
+    ICAL_XLICCOMPARETYPE_GREATEREQUAL = 20072,
+    ICAL_XLICCOMPARETYPE_REGEX = 20073,
+    ICAL_XLICCOMPARETYPE_NONE = 20074
+} icalparameter_xliccomparetype;
+
+typedef enum icalparameter_xlicerrortype {
+    ICAL_XLICERRORTYPE_X = 20075,
+    ICAL_XLICERRORTYPE_COMPONENTPARSEERROR = 20076,
+    ICAL_XLICERRORTYPE_PROPERTYPARSEERROR = 20077,
+    ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR = 20078,
+    ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR = 20079,
+    ICAL_XLICERRORTYPE_VALUEPARSEERROR = 20080,
+    ICAL_XLICERRORTYPE_INVALIDITIP = 20081,
+    ICAL_XLICERRORTYPE_UNKNOWNVCALPROPERROR = 20082,
+    ICAL_XLICERRORTYPE_MIMEPARSEERROR = 20083,
+    ICAL_XLICERRORTYPE_NONE = 20084
+} icalparameter_xlicerrortype;
+
+#define ICALPARAMETER_LAST_ENUM 20085
+
+/* CUTYPE */
+icalparameter* icalparameter_new_cutype(icalparameter_cutype v);
+icalparameter_cutype icalparameter_get_cutype(icalparameter* value);
+void icalparameter_set_cutype(icalparameter* value, icalparameter_cutype v);
+
+/* FMTTYPE */
+icalparameter* icalparameter_new_fmttype(const char* v);
+const char* icalparameter_get_fmttype(icalparameter* value);
+void icalparameter_set_fmttype(icalparameter* value, const char* v);
+
+/* FBTYPE */
+icalparameter* icalparameter_new_fbtype(icalparameter_fbtype v);
+icalparameter_fbtype icalparameter_get_fbtype(icalparameter* value);
+void icalparameter_set_fbtype(icalparameter* value, icalparameter_fbtype v);
+
+/* DELEGATED-FROM */
+icalparameter* icalparameter_new_delegatedfrom(const char* v);
+const char* icalparameter_get_delegatedfrom(icalparameter* value);
+void icalparameter_set_delegatedfrom(icalparameter* value, const char* v);
+
+/* RELTYPE */
+icalparameter* icalparameter_new_reltype(icalparameter_reltype v);
+icalparameter_reltype icalparameter_get_reltype(icalparameter* value);
+void icalparameter_set_reltype(icalparameter* value, icalparameter_reltype v);
+
+/* ROLE */
+icalparameter* icalparameter_new_role(icalparameter_role v);
+icalparameter_role icalparameter_get_role(icalparameter* value);
+void icalparameter_set_role(icalparameter* value, icalparameter_role v);
+
+/* MEMBER */
+icalparameter* icalparameter_new_member(const char* v);
+const char* icalparameter_get_member(icalparameter* value);
+void icalparameter_set_member(icalparameter* value, const char* v);
+
+/* LANGUAGE */
+icalparameter* icalparameter_new_language(const char* v);
+const char* icalparameter_get_language(icalparameter* value);
+void icalparameter_set_language(icalparameter* value, const char* v);
+
+/* PARTSTAT */
+icalparameter* icalparameter_new_partstat(icalparameter_partstat v);
+icalparameter_partstat icalparameter_get_partstat(icalparameter* value);
+void icalparameter_set_partstat(icalparameter* value, icalparameter_partstat v);
+
+/* DELEGATED-TO */
+icalparameter* icalparameter_new_delegatedto(const char* v);
+const char* icalparameter_get_delegatedto(icalparameter* value);
+void icalparameter_set_delegatedto(icalparameter* value, const char* v);
+
+/* RSVP */
+icalparameter* icalparameter_new_rsvp(icalparameter_rsvp v);
+icalparameter_rsvp icalparameter_get_rsvp(icalparameter* value);
+void icalparameter_set_rsvp(icalparameter* value, icalparameter_rsvp v);
+
+/* DIR */
+icalparameter* icalparameter_new_dir(const char* v);
+const char* icalparameter_get_dir(icalparameter* value);
+void icalparameter_set_dir(icalparameter* value, const char* v);
+
+/* X */
+icalparameter* icalparameter_new_x(const char* v);
+const char* icalparameter_get_x(icalparameter* value);
+void icalparameter_set_x(icalparameter* value, const char* v);
+
+/* X-LIC-ERRORTYPE */
+icalparameter* icalparameter_new_xlicerrortype(icalparameter_xlicerrortype v);
+icalparameter_xlicerrortype icalparameter_get_xlicerrortype(icalparameter* value);
+void icalparameter_set_xlicerrortype(icalparameter* value, icalparameter_xlicerrortype v);
+
+/* RELATED */
+icalparameter* icalparameter_new_related(icalparameter_related v);
+icalparameter_related icalparameter_get_related(icalparameter* value);
+void icalparameter_set_related(icalparameter* value, icalparameter_related v);
+
+/* CN */
+icalparameter* icalparameter_new_cn(const char* v);
+const char* icalparameter_get_cn(icalparameter* value);
+void icalparameter_set_cn(icalparameter* value, const char* v);
+
+/* ENCODING */
+icalparameter* icalparameter_new_encoding(icalparameter_encoding v);
+icalparameter_encoding icalparameter_get_encoding(icalparameter* value);
+void icalparameter_set_encoding(icalparameter* value, icalparameter_encoding v);
+
+/* VALUE */
+icalparameter* icalparameter_new_value(icalparameter_value v);
+icalparameter_value icalparameter_get_value(icalparameter* value);
+void icalparameter_set_value(icalparameter* value, icalparameter_value v);
+
+/* ALTREP */
+icalparameter* icalparameter_new_altrep(const char* v);
+const char* icalparameter_get_altrep(icalparameter* value);
+void icalparameter_set_altrep(icalparameter* value, const char* v);
+
+/* RANGE */
+icalparameter* icalparameter_new_range(icalparameter_range v);
+icalparameter_range icalparameter_get_range(icalparameter* value);
+void icalparameter_set_range(icalparameter* value, icalparameter_range v);
+
+/* X-LIC-COMPARETYPE */
+icalparameter* icalparameter_new_xliccomparetype(icalparameter_xliccomparetype v);
+icalparameter_xliccomparetype icalparameter_get_xliccomparetype(icalparameter* value);
+void icalparameter_set_xliccomparetype(icalparameter* value, icalparameter_xliccomparetype v);
+
+/* TZID */
+icalparameter* icalparameter_new_tzid(const char* v);
+const char* icalparameter_get_tzid(icalparameter* value);
+void icalparameter_set_tzid(icalparameter* value, const char* v);
+
+/* CHARSET */
+icalparameter* icalparameter_new_charset( const char * v);
+ const char * icalparameter_get_charset(icalparameter* value);
+void icalparameter_set_charset(icalparameter* value,  const char * v);
+
+/* SENT-BY */
+icalparameter* icalparameter_new_sentby(const char* v);
+const char* icalparameter_get_sentby(icalparameter* value);
+void icalparameter_set_sentby(icalparameter* value, const char* v);
+
+#endif /*ICALPARAMETER_H*/
+
diff --git a/src/plugins/vcalendar/libical/libical/icalderivedproperty.c b/src/plugins/vcalendar/libical/libical/icalderivedproperty.c
new file mode 100644
index 0000000..1f63bd5
--- /dev/null
+++ b/src/plugins/vcalendar/libical/libical/icalderivedproperty.c
@@ -0,0 +1,2450 @@
+/* -*- Mode: C -*- */
+
+/*======================================================================
+  FILE: icalderivedproperty.c
+  CREATOR: eric 15 Feb 2001
+  
+  $Id$
+
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalproperty.c
+
+======================================================================*/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "icalproperty.h"
+#include "icalcomponent.h"
+#include "pvl.h"
+#include "icalenums.h"
+#include "icalerror.h"
+#include "icalmemory.h"
+#include "icalparser.h"
+
+#include <string.h> /* For icalmemory_strdup, rindex */
+#include <assert.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <stdio.h> /* for printf */
+#include <stdarg.h> /* for va_list, va_start, etc. */
+                                               
+#define TMP_BUF_SIZE 1024
+
+struct icalproperty_impl*
+icalproperty_new_impl (icalproperty_kind kind);
+
+void icalproperty_add_parameters (struct icalproperty_impl *prop, va_list args);
+
+/* This map associates the property kinds with the string
+   representation of the property name and the kind of VALUE that the
+   property uses as a default */
+
+struct  icalproperty_map {
+	icalproperty_kind kind;
+	const char *name;
+	icalvalue_kind value;
+
+};
+
+static struct icalproperty_map property_map[];
+
+const char* icalproperty_kind_to_string(icalproperty_kind kind)
+{
+    int i;
+
+    for (i=0; property_map[i].kind != ICAL_NO_PROPERTY; i++) {
+	if (property_map[i].kind == kind) {
+	    return property_map[i].name;
+	}
+    }
+
+    return 0;
+
+}
+
+
+icalproperty_kind icalproperty_string_to_kind(const char* string)
+{
+    int i;
+
+    if (string ==0 ) { 
+	return ICAL_NO_PROPERTY;
+    }
+
+
+    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
+	if (strcmp(property_map[i].name, string) == 0) {
+	    return property_map[i].kind;
+	}
+    }
+
+    if(strncmp(string,"X-",2)==0){
+	return ICAL_X_PROPERTY;
+    }
+
+
+    return ICAL_NO_PROPERTY;
+}
+
+
+icalvalue_kind icalproperty_value_kind_to_kind(icalvalue_kind kind)
+{
+    int i;
+
+    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
+	if ( property_map[i].value == kind ) {
+	    return property_map[i].kind;
+	}
+    }
+
+    return ICAL_NO_VALUE;
+}
+
+
+
+icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind)
+{
+    int i;
+
+    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
+	if ( property_map[i].kind == kind ) {
+	    return property_map[i].value;
+	}
+    }
+
+    return ICAL_NO_VALUE;
+}
+
+
+/* This map associates the property enumerations with the king of
+   property that they are used in and the string representation of the
+   enumeration */
+
+struct icalproperty_enum_map {
+    icalproperty_kind prop;
+    int prop_enum;
+    const char* str;
+}; 
+
+static struct icalproperty_enum_map enum_map[];
+
+
+const char* icalproperty_enum_to_string(int e)
+{
+    icalerror_check_arg_rz(e >= ICALPROPERTY_FIRST_ENUM,"e");
+    icalerror_check_arg_rz(e <= ICALPROPERTY_LAST_ENUM,"e");
+
+    return enum_map[e-ICALPROPERTY_FIRST_ENUM].str;
+}
+
+int icalproperty_string_to_enum(const char* str)
+{
+    int i;
+
+    icalerror_check_arg_rz(str!=0,"str")
+
+    while(*str == ' '){
+	str++;
+    }
+
+    for (i=ICALPROPERTY_FIRST_ENUM; i != ICALPROPERTY_LAST_ENUM; i++) {
+	if ( strcmp(enum_map[i-ICALPROPERTY_FIRST_ENUM].str, str) == 0) {
+	    return enum_map[i-ICALPROPERTY_FIRST_ENUM].prop_enum;
+	}
+    }
+
+    return 0;
+}
+
+int icalproperty_enum_belongs_to_property(icalproperty_kind kind, int e)
+{
+    int i;
+
+
+    for (i=ICALPROPERTY_FIRST_ENUM; i != ICALPROPERTY_LAST_ENUM; i++) {
+        if(enum_map[i-ICALPROPERTY_FIRST_ENUM].prop_enum == e && 
+           enum_map[i-ICALPROPERTY_FIRST_ENUM].prop == kind ){
+            return 1;
+        }
+    }
+
+    return 0;
+}
+
+
+const char* icalproperty_method_to_string(icalproperty_method method)
+{
+    icalerror_check_arg_rz(method >= ICAL_METHOD_X,"method");
+    icalerror_check_arg_rz(method <= ICAL_METHOD_NONE,"method");
+
+    return enum_map[method-ICALPROPERTY_FIRST_ENUM].str;
+}
+
+icalproperty_method icalproperty_string_to_method(const char* str)
+{
+    int i;
+
+    icalerror_check_arg_rx(str!=0,"str",ICAL_METHOD_NONE)
+
+    while(*str == ' '){
+	str++;
+    }
+
+    for (i=ICAL_METHOD_X-ICALPROPERTY_FIRST_ENUM; 
+         i != ICAL_METHOD_NONE-ICALPROPERTY_FIRST_ENUM;
+         i++) {
+	if ( strcmp(enum_map[i].str, str) == 0) {
+	    return (icalproperty_method)enum_map[i].prop_enum;
+	}
+    }
+
+    return ICAL_METHOD_NONE;
+}
+
+
+const char* icalenum_status_to_string(icalproperty_status status)
+{
+    icalerror_check_arg_rz(status >= ICAL_STATUS_X,"status");
+    icalerror_check_arg_rz(status <= ICAL_STATUS_NONE,"status");
+
+    return enum_map[status-ICALPROPERTY_FIRST_ENUM].str;
+}
+
+icalproperty_status icalenum_string_to_status(const char* str)
+{
+    int i;
+
+    icalerror_check_arg_rx(str!=0,"str",ICAL_STATUS_NONE)
+
+    while(*str == ' '){
+	str++;
+    }
+
+    for (i=ICAL_STATUS_X-ICALPROPERTY_FIRST_ENUM; 
+         i != ICAL_STATUS_NONE-ICALPROPERTY_FIRST_ENUM;
+         i++) {
+	if ( strcmp(enum_map[i].str, str) == 0) {
+	    return (icalproperty_method)enum_map[i].prop_enum;
+	}
+    }
+
+    return ICAL_STATUS_NONE;
+
+}
+
+
+
+/* Everything below this line is machine generated. Do not edit. */
+static struct icalproperty_map property_map[] = {
+{ICAL_ACTION_PROPERTY,"ACTION",ICAL_ACTION_VALUE},
+{ICAL_ANY_PROPERTY,"ANY",ICAL_NO_VALUE},
+{ICAL_ATTACH_PROPERTY,"ATTACH",ICAL_ATTACH_VALUE},
+{ICAL_ATTENDEE_PROPERTY,"ATTENDEE",ICAL_CALADDRESS_VALUE},
+{ICAL_CALSCALE_PROPERTY,"CALSCALE",ICAL_TEXT_VALUE},
+{ICAL_CATEGORIES_PROPERTY,"CATEGORIES",ICAL_TEXT_VALUE},
+{ICAL_CLASS_PROPERTY,"CLASS",ICAL_TEXT_VALUE},
+{ICAL_COMMENT_PROPERTY,"COMMENT",ICAL_TEXT_VALUE},
+{ICAL_COMPLETED_PROPERTY,"COMPLETED",ICAL_DATETIME_VALUE},
+{ICAL_CONTACT_PROPERTY,"CONTACT",ICAL_TEXT_VALUE},
+{ICAL_CREATED_PROPERTY,"CREATED",ICAL_DATETIME_VALUE},
+{ICAL_DESCRIPTION_PROPERTY,"DESCRIPTION",ICAL_TEXT_VALUE},
+{ICAL_DTEND_PROPERTY,"DTEND",ICAL_DATETIME_VALUE},
+{ICAL_DTSTAMP_PROPERTY,"DTSTAMP",ICAL_DATETIME_VALUE},
+{ICAL_DTSTART_PROPERTY,"DTSTART",ICAL_DATETIME_VALUE},
+{ICAL_DUE_PROPERTY,"DUE",ICAL_DATETIME_VALUE},
+{ICAL_DURATION_PROPERTY,"DURATION",ICAL_DURATION_VALUE},
+{ICAL_EXDATE_PROPERTY,"EXDATE",ICAL_DATETIME_VALUE},
+{ICAL_EXRULE_PROPERTY,"EXRULE",ICAL_RECUR_VALUE},
+{ICAL_FREEBUSY_PROPERTY,"FREEBUSY",ICAL_PERIOD_VALUE},
+{ICAL_GEO_PROPERTY,"GEO",ICAL_GEO_VALUE},
+{ICAL_LASTMODIFIED_PROPERTY,"LAST-MODIFIED",ICAL_DATETIME_VALUE},
+{ICAL_LOCATION_PROPERTY,"LOCATION",ICAL_TEXT_VALUE},
+{ICAL_MAXRESULTS_PROPERTY,"MAXRESULTS",ICAL_INTEGER_VALUE},
+{ICAL_MAXRESULTSSIZE_PROPERTY,"MAXRESULTSSIZE",ICAL_INTEGER_VALUE},
+{ICAL_METHOD_PROPERTY,"METHOD",ICAL_METHOD_VALUE},
+{ICAL_ORGANIZER_PROPERTY,"ORGANIZER",ICAL_CALADDRESS_VALUE},
+{ICAL_PERCENTCOMPLETE_PROPERTY,"PERCENT-COMPLETE",ICAL_INTEGER_VALUE},
+{ICAL_PRIORITY_PROPERTY,"PRIORITY",ICAL_INTEGER_VALUE},
+{ICAL_PRODID_PROPERTY,"PRODID",ICAL_TEXT_VALUE},
+{ICAL_QUERY_PROPERTY,"QUERY",ICAL_QUERY_VALUE},
+{ICAL_QUERYNAME_PROPERTY,"QUERYNAME",ICAL_TEXT_VALUE},
+{ICAL_RDATE_PROPERTY,"RDATE",ICAL_DATETIMEPERIOD_VALUE},
+{ICAL_RECURRENCEID_PROPERTY,"RECURRENCE-ID",ICAL_DATETIME_VALUE},
+{ICAL_RELATEDTO_PROPERTY,"RELATED-TO",ICAL_TEXT_VALUE},
+{ICAL_REPEAT_PROPERTY,"REPEAT",ICAL_INTEGER_VALUE},
+{ICAL_REQUESTSTATUS_PROPERTY,"REQUEST-STATUS",ICAL_STRING_VALUE},
+{ICAL_RESOURCES_PROPERTY,"RESOURCES",ICAL_TEXT_VALUE},
+{ICAL_RRULE_PROPERTY,"RRULE",ICAL_RECUR_VALUE},
+{ICAL_SCOPE_PROPERTY,"SCOPE",ICAL_TEXT_VALUE},
+{ICAL_SEQUENCE_PROPERTY,"SEQUENCE",ICAL_INTEGER_VALUE},
+{ICAL_STATUS_PROPERTY,"STATUS",ICAL_STATUS_VALUE},
+{ICAL_SUMMARY_PROPERTY,"SUMMARY",ICAL_TEXT_VALUE},
+{ICAL_TARGET_PROPERTY,"TARGET",ICAL_CALADDRESS_VALUE},
+{ICAL_TRANSP_PROPERTY,"TRANSP",ICAL_TEXT_VALUE},
+{ICAL_TRIGGER_PROPERTY,"TRIGGER",ICAL_TRIGGER_VALUE},
+{ICAL_TZID_PROPERTY,"TZID",ICAL_TEXT_VALUE},
+{ICAL_TZNAME_PROPERTY,"TZNAME",ICAL_TEXT_VALUE},
+{ICAL_TZOFFSETFROM_PROPERTY,"TZOFFSETFROM",ICAL_UTCOFFSET_VALUE},
+{ICAL_TZOFFSETTO_PROPERTY,"TZOFFSETTO",ICAL_UTCOFFSET_VALUE},
+{ICAL_TZURL_PROPERTY,"TZURL",ICAL_URI_VALUE},
+{ICAL_UID_PROPERTY,"UID",ICAL_TEXT_VALUE},
+{ICAL_URL_PROPERTY,"URL",ICAL_URI_VALUE},
+{ICAL_VERSION_PROPERTY,"VERSION",ICAL_TEXT_VALUE},
+{ICAL_X_PROPERTY,"X",ICAL_TEXT_VALUE},
+{ICAL_XLICCLUSTERCOUNT_PROPERTY,"X-LIC-CLUSTERCOUNT",ICAL_STRING_VALUE},
+{ICAL_XLICERROR_PROPERTY,"X-LIC-ERROR",ICAL_TEXT_VALUE},
+{ICAL_XLICMIMECHARSET_PROPERTY,"X-LIC-MIMECHARSET",ICAL_STRING_VALUE},
+{ICAL_XLICMIMECID_PROPERTY,"X-LIC-MIMECID",ICAL_STRING_VALUE},
+{ICAL_XLICMIMECONTENTTYPE_PROPERTY,"X-LIC-MIMECONTENTTYPE",ICAL_STRING_VALUE},
+{ICAL_XLICMIMEENCODING_PROPERTY,"X-LIC-MIMEENCODING",ICAL_STRING_VALUE},
+{ICAL_XLICMIMEFILENAME_PROPERTY,"X-LIC-MIMEFILENAME",ICAL_STRING_VALUE},
+{ICAL_XLICMIMEOPTINFO_PROPERTY,"X-LIC-MIMEOPTINFO",ICAL_STRING_VALUE},
+{ICAL_NO_PROPERTY,"",ICAL_NO_VALUE}};
+
+static struct icalproperty_enum_map enum_map[] = {
+    {ICAL_ACTION_PROPERTY,ICAL_ACTION_X,"" }, /*10000*/
+    {ICAL_ACTION_PROPERTY,ICAL_ACTION_AUDIO,"AUDIO" }, /*10001*/
+    {ICAL_ACTION_PROPERTY,ICAL_ACTION_DISPLAY,"DISPLAY" }, /*10002*/
+    {ICAL_ACTION_PROPERTY,ICAL_ACTION_EMAIL,"EMAIL" }, /*10003*/
+    {ICAL_ACTION_PROPERTY,ICAL_ACTION_PROCEDURE,"PROCEDURE" }, /*10004*/
+    {ICAL_ACTION_PROPERTY,ICAL_ACTION_NONE,"" }, /*10005*/
+    {ICAL_CLASS_PROPERTY,ICAL_CLASS_X,"" }, /*10006*/
+    {ICAL_CLASS_PROPERTY,ICAL_CLASS_PUBLIC,"PUBLIC" }, /*10007*/
+    {ICAL_CLASS_PROPERTY,ICAL_CLASS_PRIVATE,"PRIVATE" }, /*10008*/
+    {ICAL_CLASS_PROPERTY,ICAL_CLASS_CONFIDENTIAL,"CONFIDENTIAL" }, /*10009*/
+    {ICAL_CLASS_PROPERTY,ICAL_CLASS_NONE,"" }, /*10010*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_X,"" }, /*10011*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_PUBLISH,"PUBLISH" }, /*10012*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_REQUEST,"REQUEST" }, /*10013*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_REPLY,"REPLY" }, /*10014*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_ADD,"ADD" }, /*10015*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_CANCEL,"CANCEL" }, /*10016*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_REFRESH,"REFRESH" }, /*10017*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_COUNTER,"COUNTER" }, /*10018*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_DECLINECOUNTER,"DECLINECOUNTER" }, /*10019*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_CREATE,"CREATE" }, /*10020*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_READ,"READ" }, /*10021*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_RESPONSE,"RESPONSE" }, /*10022*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_MOVE,"MOVE" }, /*10023*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_MODIFY,"MODIFY" }, /*10024*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_GENERATEUID,"GENERATEUID" }, /*10025*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_DELETE,"DELETE" }, /*10026*/
+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_NONE,"" }, /*10027*/
+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_X,"" }, /*10028*/
+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_TENTATIVE,"TENTATIVE" }, /*10029*/
+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_CONFIRMED,"CONFIRMED" }, /*10030*/
+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_COMPLETED,"COMPLETED" }, /*10031*/
+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_NEEDSACTION,"NEEDS-ACTION" }, /*10032*/
+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_CANCELLED,"CANCELLED" }, /*10033*/
+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_INPROCESS,"IN-PROCESS" }, /*10034*/
+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_DRAFT,"DRAFT" }, /*10035*/
+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_FINAL,"FINAL" }, /*10036*/
+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_NONE,"" }, /*10037*/
+    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_X,"" }, /*10038*/
+    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_OPAQUE,"OPAQUE" }, /*10039*/
+    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_TRANSPARENT,"TRANSPARENT" }, /*10040*/
+    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_NONE,"" }, /*10041*/
+    {ICAL_NO_PROPERTY,0,""}
+};
+
+/* ACTION */
+icalproperty* icalproperty_new_action(enum icalproperty_action v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_ACTION_PROPERTY);
+   icalproperty_set_action((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_action(enum icalproperty_action v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_ACTION_PROPERTY);
+   icalproperty_set_action((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_action(icalproperty* prop, enum icalproperty_action v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_action(v);
+    icalproperty_set_value(prop,value);
+}
+enum icalproperty_action icalproperty_get_action(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_action(value);
+}
+/* ATTACH */
+icalproperty* icalproperty_new_attach(struct icalattachtype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_ATTACH_PROPERTY);
+   icalproperty_set_attach((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_attach(struct icalattachtype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_ATTACH_PROPERTY);
+   icalproperty_set_attach((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_attach(icalproperty* prop, struct icalattachtype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_attach(v);
+    icalproperty_set_value(prop,value);
+}
+struct icalattachtype icalproperty_get_attach(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_attach(value);
+}
+/* ATTENDEE */
+icalproperty* icalproperty_new_attendee(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_ATTENDEE_PROPERTY);
+   icalproperty_set_attendee((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_attendee(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_ATTENDEE_PROPERTY);
+   icalproperty_set_attendee((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_attendee(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_caladdress(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_attendee(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_caladdress(value);
+}
+/* CALSCALE */
+icalproperty* icalproperty_new_calscale(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_CALSCALE_PROPERTY);
+   icalproperty_set_calscale((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_calscale(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_CALSCALE_PROPERTY);
+   icalproperty_set_calscale((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_calscale(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_calscale(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* CATEGORIES */
+icalproperty* icalproperty_new_categories(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_CATEGORIES_PROPERTY);
+   icalproperty_set_categories((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_categories(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_CATEGORIES_PROPERTY);
+   icalproperty_set_categories((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_categories(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_categories(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* CLASS */
+icalproperty* icalproperty_new_class(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_CLASS_PROPERTY);
+   icalproperty_set_class((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_class(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_CLASS_PROPERTY);
+   icalproperty_set_class((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_class(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_class(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* COMMENT */
+icalproperty* icalproperty_new_comment(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_COMMENT_PROPERTY);
+   icalproperty_set_comment((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_comment(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_COMMENT_PROPERTY);
+   icalproperty_set_comment((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_comment(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_comment(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* COMPLETED */
+icalproperty* icalproperty_new_completed(struct icaltimetype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_COMPLETED_PROPERTY);
+   icalproperty_set_completed((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_completed(struct icaltimetype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_COMPLETED_PROPERTY);
+   icalproperty_set_completed((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_completed(icalproperty* prop, struct icaltimetype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_datetime(v);
+    icalproperty_set_value(prop,value);
+}
+struct icaltimetype icalproperty_get_completed(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_datetime(value);
+}
+/* CONTACT */
+icalproperty* icalproperty_new_contact(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_CONTACT_PROPERTY);
+   icalproperty_set_contact((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_contact(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_CONTACT_PROPERTY);
+   icalproperty_set_contact((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_contact(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_contact(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* CREATED */
+icalproperty* icalproperty_new_created(struct icaltimetype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_CREATED_PROPERTY);
+   icalproperty_set_created((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_created(struct icaltimetype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_CREATED_PROPERTY);
+   icalproperty_set_created((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_created(icalproperty* prop, struct icaltimetype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_datetime(v);
+    icalproperty_set_value(prop,value);
+}
+struct icaltimetype icalproperty_get_created(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_datetime(value);
+}
+/* DESCRIPTION */
+icalproperty* icalproperty_new_description(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_DESCRIPTION_PROPERTY);
+   icalproperty_set_description((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_description(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_DESCRIPTION_PROPERTY);
+   icalproperty_set_description((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_description(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_description(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* DTEND */
+icalproperty* icalproperty_new_dtend(struct icaltimetype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_DTEND_PROPERTY);
+   icalproperty_set_dtend((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_dtend(struct icaltimetype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_DTEND_PROPERTY);
+   icalproperty_set_dtend((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_dtend(icalproperty* prop, struct icaltimetype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_datetime(v);
+    icalproperty_set_value(prop,value);
+}
+struct icaltimetype icalproperty_get_dtend(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_datetime(value);
+}
+/* DTSTAMP */
+icalproperty* icalproperty_new_dtstamp(struct icaltimetype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_DTSTAMP_PROPERTY);
+   icalproperty_set_dtstamp((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_dtstamp(struct icaltimetype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_DTSTAMP_PROPERTY);
+   icalproperty_set_dtstamp((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_dtstamp(icalproperty* prop, struct icaltimetype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_datetime(v);
+    icalproperty_set_value(prop,value);
+}
+struct icaltimetype icalproperty_get_dtstamp(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_datetime(value);
+}
+/* DTSTART */
+icalproperty* icalproperty_new_dtstart(struct icaltimetype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_DTSTART_PROPERTY);
+   icalproperty_set_dtstart((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_dtstart(struct icaltimetype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_DTSTART_PROPERTY);
+   icalproperty_set_dtstart((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_dtstart(icalproperty* prop, struct icaltimetype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_datetime(v);
+    icalproperty_set_value(prop,value);
+}
+struct icaltimetype icalproperty_get_dtstart(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_datetime(value);
+}
+/* DUE */
+icalproperty* icalproperty_new_due(struct icaltimetype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_DUE_PROPERTY);
+   icalproperty_set_due((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_due(struct icaltimetype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_DUE_PROPERTY);
+   icalproperty_set_due((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_due(icalproperty* prop, struct icaltimetype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_datetime(v);
+    icalproperty_set_value(prop,value);
+}
+struct icaltimetype icalproperty_get_due(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_datetime(value);
+}
+/* DURATION */
+icalproperty* icalproperty_new_duration(struct icaldurationtype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_DURATION_PROPERTY);
+   icalproperty_set_duration((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_duration(struct icaldurationtype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_DURATION_PROPERTY);
+   icalproperty_set_duration((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_duration(icalproperty* prop, struct icaldurationtype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_duration(v);
+    icalproperty_set_value(prop,value);
+}
+struct icaldurationtype icalproperty_get_duration(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_duration(value);
+}
+/* EXDATE */
+icalproperty* icalproperty_new_exdate(struct icaltimetype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_EXDATE_PROPERTY);
+   icalproperty_set_exdate((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_exdate(struct icaltimetype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_EXDATE_PROPERTY);
+   icalproperty_set_exdate((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_exdate(icalproperty* prop, struct icaltimetype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_datetime(v);
+    icalproperty_set_value(prop,value);
+}
+struct icaltimetype icalproperty_get_exdate(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_datetime(value);
+}
+/* EXRULE */
+icalproperty* icalproperty_new_exrule(struct icalrecurrencetype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_EXRULE_PROPERTY);
+   icalproperty_set_exrule((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_exrule(struct icalrecurrencetype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_EXRULE_PROPERTY);
+   icalproperty_set_exrule((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_exrule(icalproperty* prop, struct icalrecurrencetype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_recur(v);
+    icalproperty_set_value(prop,value);
+}
+struct icalrecurrencetype icalproperty_get_exrule(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_recur(value);
+}
+/* FREEBUSY */
+icalproperty* icalproperty_new_freebusy(struct icalperiodtype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_FREEBUSY_PROPERTY);
+   icalproperty_set_freebusy((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_freebusy(struct icalperiodtype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_FREEBUSY_PROPERTY);
+   icalproperty_set_freebusy((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_freebusy(icalproperty* prop, struct icalperiodtype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_period(v);
+    icalproperty_set_value(prop,value);
+}
+struct icalperiodtype icalproperty_get_freebusy(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_period(value);
+}
+/* GEO */
+icalproperty* icalproperty_new_geo(struct icalgeotype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_GEO_PROPERTY);
+   icalproperty_set_geo((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_geo(struct icalgeotype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_GEO_PROPERTY);
+   icalproperty_set_geo((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_geo(icalproperty* prop, struct icalgeotype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_geo(v);
+    icalproperty_set_value(prop,value);
+}
+struct icalgeotype icalproperty_get_geo(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_geo(value);
+}
+/* LAST-MODIFIED */
+icalproperty* icalproperty_new_lastmodified(struct icaltimetype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_LASTMODIFIED_PROPERTY);
+   icalproperty_set_lastmodified((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_lastmodified(struct icaltimetype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_LASTMODIFIED_PROPERTY);
+   icalproperty_set_lastmodified((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_lastmodified(icalproperty* prop, struct icaltimetype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_datetime(v);
+    icalproperty_set_value(prop,value);
+}
+struct icaltimetype icalproperty_get_lastmodified(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_datetime(value);
+}
+/* LOCATION */
+icalproperty* icalproperty_new_location(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_LOCATION_PROPERTY);
+   icalproperty_set_location((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_location(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_LOCATION_PROPERTY);
+   icalproperty_set_location((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_location(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_location(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* MAXRESULTS */
+icalproperty* icalproperty_new_maxresults(int v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_MAXRESULTS_PROPERTY);
+   icalproperty_set_maxresults((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_maxresults(int v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_MAXRESULTS_PROPERTY);
+   icalproperty_set_maxresults((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_maxresults(icalproperty* prop, int v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_integer(v);
+    icalproperty_set_value(prop,value);
+}
+int icalproperty_get_maxresults(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_integer(value);
+}
+/* MAXRESULTSSIZE */
+icalproperty* icalproperty_new_maxresultssize(int v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_MAXRESULTSSIZE_PROPERTY);
+   icalproperty_set_maxresultssize((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_maxresultssize(int v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_MAXRESULTSSIZE_PROPERTY);
+   icalproperty_set_maxresultssize((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_maxresultssize(icalproperty* prop, int v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_integer(v);
+    icalproperty_set_value(prop,value);
+}
+int icalproperty_get_maxresultssize(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_integer(value);
+}
+/* METHOD */
+icalproperty* icalproperty_new_method(enum icalproperty_method v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_METHOD_PROPERTY);
+   icalproperty_set_method((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_method(enum icalproperty_method v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_METHOD_PROPERTY);
+   icalproperty_set_method((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_method(icalproperty* prop, enum icalproperty_method v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_method(v);
+    icalproperty_set_value(prop,value);
+}
+enum icalproperty_method icalproperty_get_method(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_method(value);
+}
+/* ORGANIZER */
+icalproperty* icalproperty_new_organizer(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_ORGANIZER_PROPERTY);
+   icalproperty_set_organizer((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_organizer(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_ORGANIZER_PROPERTY);
+   icalproperty_set_organizer((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_organizer(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_caladdress(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_organizer(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_caladdress(value);
+}
+/* PERCENT-COMPLETE */
+icalproperty* icalproperty_new_percentcomplete(int v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_PERCENTCOMPLETE_PROPERTY);
+   icalproperty_set_percentcomplete((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_percentcomplete(int v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_PERCENTCOMPLETE_PROPERTY);
+   icalproperty_set_percentcomplete((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_percentcomplete(icalproperty* prop, int v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_integer(v);
+    icalproperty_set_value(prop,value);
+}
+int icalproperty_get_percentcomplete(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_integer(value);
+}
+/* PRIORITY */
+icalproperty* icalproperty_new_priority(int v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_PRIORITY_PROPERTY);
+   icalproperty_set_priority((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_priority(int v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_PRIORITY_PROPERTY);
+   icalproperty_set_priority((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_priority(icalproperty* prop, int v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_integer(v);
+    icalproperty_set_value(prop,value);
+}
+int icalproperty_get_priority(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_integer(value);
+}
+/* PRODID */
+icalproperty* icalproperty_new_prodid(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_PRODID_PROPERTY);
+   icalproperty_set_prodid((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_prodid(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_PRODID_PROPERTY);
+   icalproperty_set_prodid((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_prodid(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_prodid(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* QUERY */
+icalproperty* icalproperty_new_query(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_QUERY_PROPERTY);
+   icalproperty_set_query((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_query(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_QUERY_PROPERTY);
+   icalproperty_set_query((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_query(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_query(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_query(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_query(value);
+}
+/* QUERYNAME */
+icalproperty* icalproperty_new_queryname(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_QUERYNAME_PROPERTY);
+   icalproperty_set_queryname((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_queryname(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_QUERYNAME_PROPERTY);
+   icalproperty_set_queryname((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_queryname(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_queryname(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* RDATE */
+icalproperty* icalproperty_new_rdate(struct icaldatetimeperiodtype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_RDATE_PROPERTY);
+   icalproperty_set_rdate((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_rdate(struct icaldatetimeperiodtype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_RDATE_PROPERTY);
+   icalproperty_set_rdate((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_rdate(icalproperty* prop, struct icaldatetimeperiodtype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_datetimeperiod(v);
+    icalproperty_set_value(prop,value);
+}
+struct icaldatetimeperiodtype icalproperty_get_rdate(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_datetimeperiod(value);
+}
+/* RECURRENCE-ID */
+icalproperty* icalproperty_new_recurrenceid(struct icaltimetype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_RECURRENCEID_PROPERTY);
+   icalproperty_set_recurrenceid((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_recurrenceid(struct icaltimetype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_RECURRENCEID_PROPERTY);
+   icalproperty_set_recurrenceid((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_recurrenceid(icalproperty* prop, struct icaltimetype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_datetime(v);
+    icalproperty_set_value(prop,value);
+}
+struct icaltimetype icalproperty_get_recurrenceid(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_datetime(value);
+}
+/* RELATED-TO */
+icalproperty* icalproperty_new_relatedto(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_RELATEDTO_PROPERTY);
+   icalproperty_set_relatedto((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_relatedto(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_RELATEDTO_PROPERTY);
+   icalproperty_set_relatedto((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_relatedto(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_relatedto(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* REPEAT */
+icalproperty* icalproperty_new_repeat(int v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_REPEAT_PROPERTY);
+   icalproperty_set_repeat((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_repeat(int v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_REPEAT_PROPERTY);
+   icalproperty_set_repeat((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_repeat(icalproperty* prop, int v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_integer(v);
+    icalproperty_set_value(prop,value);
+}
+int icalproperty_get_repeat(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_integer(value);
+}
+/* REQUEST-STATUS */
+icalproperty* icalproperty_new_requeststatus(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_REQUESTSTATUS_PROPERTY);
+   icalproperty_set_requeststatus((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_requeststatus(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_REQUESTSTATUS_PROPERTY);
+   icalproperty_set_requeststatus((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_requeststatus(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_string(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_requeststatus(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_string(value);
+}
+/* RESOURCES */
+icalproperty* icalproperty_new_resources(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_RESOURCES_PROPERTY);
+   icalproperty_set_resources((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_resources(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_RESOURCES_PROPERTY);
+   icalproperty_set_resources((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_resources(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_resources(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* RRULE */
+icalproperty* icalproperty_new_rrule(struct icalrecurrencetype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_RRULE_PROPERTY);
+   icalproperty_set_rrule((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_rrule(struct icalrecurrencetype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_RRULE_PROPERTY);
+   icalproperty_set_rrule((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_rrule(icalproperty* prop, struct icalrecurrencetype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_recur(v);
+    icalproperty_set_value(prop,value);
+}
+struct icalrecurrencetype icalproperty_get_rrule(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_recur(value);
+}
+/* SCOPE */
+icalproperty* icalproperty_new_scope(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_SCOPE_PROPERTY);
+   icalproperty_set_scope((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_scope(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_SCOPE_PROPERTY);
+   icalproperty_set_scope((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_scope(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_scope(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* SEQUENCE */
+icalproperty* icalproperty_new_sequence(int v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_SEQUENCE_PROPERTY);
+   icalproperty_set_sequence((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_sequence(int v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_SEQUENCE_PROPERTY);
+   icalproperty_set_sequence((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_sequence(icalproperty* prop, int v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_integer(v);
+    icalproperty_set_value(prop,value);
+}
+int icalproperty_get_sequence(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_integer(value);
+}
+/* STATUS */
+icalproperty* icalproperty_new_status(enum icalproperty_status v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_STATUS_PROPERTY);
+   icalproperty_set_status((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_status(enum icalproperty_status v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_STATUS_PROPERTY);
+   icalproperty_set_status((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_status(icalproperty* prop, enum icalproperty_status v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_status(v);
+    icalproperty_set_value(prop,value);
+}
+enum icalproperty_status icalproperty_get_status(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_status(value);
+}
+/* SUMMARY */
+icalproperty* icalproperty_new_summary(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_SUMMARY_PROPERTY);
+   icalproperty_set_summary((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_summary(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_SUMMARY_PROPERTY);
+   icalproperty_set_summary((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_summary(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_summary(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* TARGET */
+icalproperty* icalproperty_new_target(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_TARGET_PROPERTY);
+   icalproperty_set_target((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_target(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_TARGET_PROPERTY);
+   icalproperty_set_target((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_target(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_caladdress(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_target(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_caladdress(value);
+}
+/* TRANSP */
+icalproperty* icalproperty_new_transp(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_TRANSP_PROPERTY);
+   icalproperty_set_transp((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_transp(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_TRANSP_PROPERTY);
+   icalproperty_set_transp((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_transp(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_transp(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* TRIGGER */
+icalproperty* icalproperty_new_trigger(struct icaltriggertype v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_TRIGGER_PROPERTY);
+   icalproperty_set_trigger((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_trigger(struct icaltriggertype v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_TRIGGER_PROPERTY);
+   icalproperty_set_trigger((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_trigger(icalproperty* prop, struct icaltriggertype v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_trigger(v);
+    icalproperty_set_value(prop,value);
+}
+struct icaltriggertype icalproperty_get_trigger(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_trigger(value);
+}
+/* TZID */
+icalproperty* icalproperty_new_tzid(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_TZID_PROPERTY);
+   icalproperty_set_tzid((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_tzid(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_TZID_PROPERTY);
+   icalproperty_set_tzid((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_tzid(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_tzid(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* TZNAME */
+icalproperty* icalproperty_new_tzname(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_TZNAME_PROPERTY);
+   icalproperty_set_tzname((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_tzname(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_TZNAME_PROPERTY);
+   icalproperty_set_tzname((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_tzname(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_tzname(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* TZOFFSETFROM */
+icalproperty* icalproperty_new_tzoffsetfrom(int v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_TZOFFSETFROM_PROPERTY);
+   icalproperty_set_tzoffsetfrom((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_tzoffsetfrom(int v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_TZOFFSETFROM_PROPERTY);
+   icalproperty_set_tzoffsetfrom((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_tzoffsetfrom(icalproperty* prop, int v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_utcoffset(v);
+    icalproperty_set_value(prop,value);
+}
+int icalproperty_get_tzoffsetfrom(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_utcoffset(value);
+}
+/* TZOFFSETTO */
+icalproperty* icalproperty_new_tzoffsetto(int v) {
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_TZOFFSETTO_PROPERTY);
+   icalproperty_set_tzoffsetto((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_tzoffsetto(int v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   
+   impl = icalproperty_new_impl(ICAL_TZOFFSETTO_PROPERTY);
+   icalproperty_set_tzoffsetto((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_tzoffsetto(icalproperty* prop, int v){
+    icalvalue *value;
+    
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_utcoffset(v);
+    icalproperty_set_value(prop,value);
+}
+int icalproperty_get_tzoffsetto(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_utcoffset(value);
+}
+/* TZURL */
+icalproperty* icalproperty_new_tzurl(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_TZURL_PROPERTY);
+   icalproperty_set_tzurl((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_tzurl(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_TZURL_PROPERTY);
+   icalproperty_set_tzurl((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_tzurl(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_uri(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_tzurl(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_uri(value);
+}
+/* UID */
+icalproperty* icalproperty_new_uid(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_UID_PROPERTY);
+   icalproperty_set_uid((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_uid(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_UID_PROPERTY);
+   icalproperty_set_uid((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_uid(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_uid(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* URL */
+icalproperty* icalproperty_new_url(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_URL_PROPERTY);
+   icalproperty_set_url((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_url(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_URL_PROPERTY);
+   icalproperty_set_url((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_url(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_uri(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_url(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_uri(value);
+}
+/* VERSION */
+icalproperty* icalproperty_new_version(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_VERSION_PROPERTY);
+   icalproperty_set_version((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_version(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_VERSION_PROPERTY);
+   icalproperty_set_version((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_version(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_version(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* X */
+icalproperty* icalproperty_new_x(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_X_PROPERTY);
+   icalproperty_set_x((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_x(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_X_PROPERTY);
+   icalproperty_set_x((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_x(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_x(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* X-LIC-CLUSTERCOUNT */
+icalproperty* icalproperty_new_xlicclustercount(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICCLUSTERCOUNT_PROPERTY);
+   icalproperty_set_xlicclustercount((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_xlicclustercount(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICCLUSTERCOUNT_PROPERTY);
+   icalproperty_set_xlicclustercount((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_xlicclustercount(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_string(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_xlicclustercount(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_string(value);
+}
+/* X-LIC-ERROR */
+icalproperty* icalproperty_new_xlicerror(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICERROR_PROPERTY);
+   icalproperty_set_xlicerror((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_xlicerror(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICERROR_PROPERTY);
+   icalproperty_set_xlicerror((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_xlicerror(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_text(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_xlicerror(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_text(value);
+}
+/* X-LIC-MIMECHARSET */
+icalproperty* icalproperty_new_xlicmimecharset(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICMIMECHARSET_PROPERTY);
+   icalproperty_set_xlicmimecharset((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_xlicmimecharset(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICMIMECHARSET_PROPERTY);
+   icalproperty_set_xlicmimecharset((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_xlicmimecharset(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_string(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_xlicmimecharset(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_string(value);
+}
+/* X-LIC-MIMECID */
+icalproperty* icalproperty_new_xlicmimecid(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICMIMECID_PROPERTY);
+   icalproperty_set_xlicmimecid((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_xlicmimecid(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICMIMECID_PROPERTY);
+   icalproperty_set_xlicmimecid((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_xlicmimecid(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_string(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_xlicmimecid(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_string(value);
+}
+/* X-LIC-MIMECONTENTTYPE */
+icalproperty* icalproperty_new_xlicmimecontenttype(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICMIMECONTENTTYPE_PROPERTY);
+   icalproperty_set_xlicmimecontenttype((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_xlicmimecontenttype(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICMIMECONTENTTYPE_PROPERTY);
+   icalproperty_set_xlicmimecontenttype((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_xlicmimecontenttype(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_string(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_xlicmimecontenttype(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_string(value);
+}
+/* X-LIC-MIMEENCODING */
+icalproperty* icalproperty_new_xlicmimeencoding(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICMIMEENCODING_PROPERTY);
+   icalproperty_set_xlicmimeencoding((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_xlicmimeencoding(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICMIMEENCODING_PROPERTY);
+   icalproperty_set_xlicmimeencoding((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_xlicmimeencoding(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_string(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_xlicmimeencoding(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_string(value);
+}
+/* X-LIC-MIMEFILENAME */
+icalproperty* icalproperty_new_xlicmimefilename(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICMIMEFILENAME_PROPERTY);
+   icalproperty_set_xlicmimefilename((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_xlicmimefilename(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICMIMEFILENAME_PROPERTY);
+   icalproperty_set_xlicmimefilename((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_xlicmimefilename(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_string(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_xlicmimefilename(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_string(value);
+}
+/* X-LIC-MIMEOPTINFO */
+icalproperty* icalproperty_new_xlicmimeoptinfo(const char* v) {
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICMIMEOPTINFO_PROPERTY);
+   icalproperty_set_xlicmimeoptinfo((icalproperty*)impl,v);
+   return (icalproperty*)impl;
+}
+icalproperty* icalproperty_vanew_xlicmimeoptinfo(const char* v, ...){
+   va_list args;
+   struct icalproperty_impl *impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalproperty_new_impl(ICAL_XLICMIMEOPTINFO_PROPERTY);
+   icalproperty_set_xlicmimeoptinfo((icalproperty*)impl,v);
+   va_start(args,v);
+   icalproperty_add_parameters(impl, args);
+   va_end(args);
+   return (icalproperty*)impl;
+}
+void icalproperty_set_xlicmimeoptinfo(icalproperty* prop, const char* v){
+    icalvalue *value;
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_arg_rv( (prop!=0),"prop");
+    value = icalvalue_new_string(v);
+    icalproperty_set_value(prop,value);
+}
+const char* icalproperty_get_xlicmimeoptinfo(icalproperty* prop){
+    icalvalue *value;
+    icalerror_check_arg( (prop!=0),"prop");
+    value = icalproperty_get_value(prop);
+    return icalvalue_get_string(value);
+}
diff --git a/src/plugins/vcalendar/libical/libical/icalderivedproperty.h b/src/plugins/vcalendar/libical/libical/icalderivedproperty.h
new file mode 100644
index 0000000..4473ef5
--- /dev/null
+++ b/src/plugins/vcalendar/libical/libical/icalderivedproperty.h
@@ -0,0 +1,403 @@
+/* -*- Mode: C -*-
+  ======================================================================
+  FILE: icalderivedproperties.{c,h}
+  CREATOR: eric 09 May 1999
+  
+  $Id$
+    
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+ ======================================================================*/
+
+
+#ifndef ICALDERIVEDPROPERTY_H
+#define ICALDERIVEDPROPERTY_H
+
+#include <time.h>
+#include "icalparameter.h"
+#include "icalderivedvalue.h"  
+#include "icalrecur.h"
+
+typedef void icalproperty;
+
+
+/* Everything below this line is machine generated. Do not edit. */
+typedef enum icalproperty_kind {
+    ICAL_ANY_PROPERTY = 0,
+    ICAL_ACTION_PROPERTY, 
+    ICAL_ATTACH_PROPERTY, 
+    ICAL_ATTENDEE_PROPERTY, 
+    ICAL_CALSCALE_PROPERTY, 
+    ICAL_CATEGORIES_PROPERTY, 
+    ICAL_CLASS_PROPERTY, 
+    ICAL_COMMENT_PROPERTY, 
+    ICAL_COMPLETED_PROPERTY, 
+    ICAL_CONTACT_PROPERTY, 
+    ICAL_CREATED_PROPERTY, 
+    ICAL_DESCRIPTION_PROPERTY, 
+    ICAL_DTEND_PROPERTY, 
+    ICAL_DTSTAMP_PROPERTY, 
+    ICAL_DTSTART_PROPERTY, 
+    ICAL_DUE_PROPERTY, 
+    ICAL_DURATION_PROPERTY, 
+    ICAL_EXDATE_PROPERTY, 
+    ICAL_EXRULE_PROPERTY, 
+    ICAL_FREEBUSY_PROPERTY, 
+    ICAL_GEO_PROPERTY, 
+    ICAL_LASTMODIFIED_PROPERTY, 
+    ICAL_LOCATION_PROPERTY, 
+    ICAL_MAXRESULTS_PROPERTY, 
+    ICAL_MAXRESULTSSIZE_PROPERTY, 
+    ICAL_METHOD_PROPERTY, 
+    ICAL_ORGANIZER_PROPERTY, 
+    ICAL_PERCENTCOMPLETE_PROPERTY, 
+    ICAL_PRIORITY_PROPERTY, 
+    ICAL_PRODID_PROPERTY, 
+    ICAL_QUERY_PROPERTY, 
+    ICAL_QUERYNAME_PROPERTY, 
+    ICAL_RDATE_PROPERTY, 
+    ICAL_RECURRENCEID_PROPERTY, 
+    ICAL_RELATEDTO_PROPERTY, 
+    ICAL_REPEAT_PROPERTY, 
+    ICAL_REQUESTSTATUS_PROPERTY, 
+    ICAL_RESOURCES_PROPERTY, 
+    ICAL_RRULE_PROPERTY, 
+    ICAL_SCOPE_PROPERTY, 
+    ICAL_SEQUENCE_PROPERTY, 
+    ICAL_STATUS_PROPERTY, 
+    ICAL_SUMMARY_PROPERTY, 
+    ICAL_TARGET_PROPERTY, 
+    ICAL_TRANSP_PROPERTY, 
+    ICAL_TRIGGER_PROPERTY, 
+    ICAL_TZID_PROPERTY, 
+    ICAL_TZNAME_PROPERTY, 
+    ICAL_TZOFFSETFROM_PROPERTY, 
+    ICAL_TZOFFSETTO_PROPERTY, 
+    ICAL_TZURL_PROPERTY, 
+    ICAL_UID_PROPERTY, 
+    ICAL_URL_PROPERTY, 
+    ICAL_VERSION_PROPERTY, 
+    ICAL_X_PROPERTY, 
+    ICAL_XLICCLUSTERCOUNT_PROPERTY, 
+    ICAL_XLICERROR_PROPERTY, 
+    ICAL_XLICMIMECHARSET_PROPERTY, 
+    ICAL_XLICMIMECID_PROPERTY, 
+    ICAL_XLICMIMECONTENTTYPE_PROPERTY, 
+    ICAL_XLICMIMEENCODING_PROPERTY, 
+    ICAL_XLICMIMEFILENAME_PROPERTY, 
+    ICAL_XLICMIMEOPTINFO_PROPERTY, 
+    ICAL_NO_PROPERTY
+} icalproperty_kind;
+
+
+/* ACTION */
+icalproperty* icalproperty_new_action(enum icalproperty_action v);
+icalproperty* icalproperty_vanew_action(enum icalproperty_action v, ...);
+void icalproperty_set_action(icalproperty* prop, enum icalproperty_action v);
+enum icalproperty_action icalproperty_get_action(icalproperty* prop);
+/* ATTACH */
+icalproperty* icalproperty_new_attach(struct icalattachtype v);
+icalproperty* icalproperty_vanew_attach(struct icalattachtype v, ...);
+void icalproperty_set_attach(icalproperty* prop, struct icalattachtype v);
+struct icalattachtype icalproperty_get_attach(icalproperty* prop);
+/* ATTENDEE */
+icalproperty* icalproperty_new_attendee(const char* v);
+icalproperty* icalproperty_vanew_attendee(const char* v, ...);
+void icalproperty_set_attendee(icalproperty* prop, const char* v);
+const char* icalproperty_get_attendee(icalproperty* prop);
+/* CALSCALE */
+icalproperty* icalproperty_new_calscale(const char* v);
+icalproperty* icalproperty_vanew_calscale(const char* v, ...);
+void icalproperty_set_calscale(icalproperty* prop, const char* v);
+const char* icalproperty_get_calscale(icalproperty* prop);
+/* CATEGORIES */
+icalproperty* icalproperty_new_categories(const char* v);
+icalproperty* icalproperty_vanew_categories(const char* v, ...);
+void icalproperty_set_categories(icalproperty* prop, const char* v);
+const char* icalproperty_get_categories(icalproperty* prop);
+/* CLASS */
+icalproperty* icalproperty_new_class(const char* v);
+icalproperty* icalproperty_vanew_class(const char* v, ...);
+void icalproperty_set_class(icalproperty* prop, const char* v);
+const char* icalproperty_get_class(icalproperty* prop);
+/* COMMENT */
+icalproperty* icalproperty_new_comment(const char* v);
+icalproperty* icalproperty_vanew_comment(const char* v, ...);
+void icalproperty_set_comment(icalproperty* prop, const char* v);
+const char* icalproperty_get_comment(icalproperty* prop);
+/* COMPLETED */
+icalproperty* icalproperty_new_completed(struct icaltimetype v);
+icalproperty* icalproperty_vanew_completed(struct icaltimetype v, ...);
+void icalproperty_set_completed(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_completed(icalproperty* prop);
+/* CONTACT */
+icalproperty* icalproperty_new_contact(const char* v);
+icalproperty* icalproperty_vanew_contact(const char* v, ...);
+void icalproperty_set_contact(icalproperty* prop, const char* v);
+const char* icalproperty_get_contact(icalproperty* prop);
+/* CREATED */
+icalproperty* icalproperty_new_created(struct icaltimetype v);
+icalproperty* icalproperty_vanew_created(struct icaltimetype v, ...);
+void icalproperty_set_created(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_created(icalproperty* prop);
+/* DESCRIPTION */
+icalproperty* icalproperty_new_description(const char* v);
+icalproperty* icalproperty_vanew_description(const char* v, ...);
+void icalproperty_set_description(icalproperty* prop, const char* v);
+const char* icalproperty_get_description(icalproperty* prop);
+/* DTEND */
+icalproperty* icalproperty_new_dtend(struct icaltimetype v);
+icalproperty* icalproperty_vanew_dtend(struct icaltimetype v, ...);
+void icalproperty_set_dtend(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_dtend(icalproperty* prop);
+/* DTSTAMP */
+icalproperty* icalproperty_new_dtstamp(struct icaltimetype v);
+icalproperty* icalproperty_vanew_dtstamp(struct icaltimetype v, ...);
+void icalproperty_set_dtstamp(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_dtstamp(icalproperty* prop);
+/* DTSTART */
+icalproperty* icalproperty_new_dtstart(struct icaltimetype v);
+icalproperty* icalproperty_vanew_dtstart(struct icaltimetype v, ...);
+void icalproperty_set_dtstart(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_dtstart(icalproperty* prop);
+/* DUE */
+icalproperty* icalproperty_new_due(struct icaltimetype v);
+icalproperty* icalproperty_vanew_due(struct icaltimetype v, ...);
+void icalproperty_set_due(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_due(icalproperty* prop);
+/* DURATION */
+icalproperty* icalproperty_new_duration(struct icaldurationtype v);
+icalproperty* icalproperty_vanew_duration(struct icaldurationtype v, ...);
+void icalproperty_set_duration(icalproperty* prop, struct icaldurationtype v);
+struct icaldurationtype icalproperty_get_duration(icalproperty* prop);
+/* EXDATE */
+icalproperty* icalproperty_new_exdate(struct icaltimetype v);
+icalproperty* icalproperty_vanew_exdate(struct icaltimetype v, ...);
+void icalproperty_set_exdate(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_exdate(icalproperty* prop);
+/* EXRULE */
+icalproperty* icalproperty_new_exrule(struct icalrecurrencetype v);
+icalproperty* icalproperty_vanew_exrule(struct icalrecurrencetype v, ...);
+void icalproperty_set_exrule(icalproperty* prop, struct icalrecurrencetype v);
+struct icalrecurrencetype icalproperty_get_exrule(icalproperty* prop);
+/* FREEBUSY */
+icalproperty* icalproperty_new_freebusy(struct icalperiodtype v);
+icalproperty* icalproperty_vanew_freebusy(struct icalperiodtype v, ...);
+void icalproperty_set_freebusy(icalproperty* prop, struct icalperiodtype v);
+struct icalperiodtype icalproperty_get_freebusy(icalproperty* prop);
+/* GEO */
+icalproperty* icalproperty_new_geo(struct icalgeotype v);
+icalproperty* icalproperty_vanew_geo(struct icalgeotype v, ...);
+void icalproperty_set_geo(icalproperty* prop, struct icalgeotype v);
+struct icalgeotype icalproperty_get_geo(icalproperty* prop);
+/* LAST-MODIFIED */
+icalproperty* icalproperty_new_lastmodified(struct icaltimetype v);
+icalproperty* icalproperty_vanew_lastmodified(struct icaltimetype v, ...);
+void icalproperty_set_lastmodified(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_lastmodified(icalproperty* prop);
+/* LOCATION */
+icalproperty* icalproperty_new_location(const char* v);
+icalproperty* icalproperty_vanew_location(const char* v, ...);
+void icalproperty_set_location(icalproperty* prop, const char* v);
+const char* icalproperty_get_location(icalproperty* prop);
+/* MAXRESULTS */
+icalproperty* icalproperty_new_maxresults(int v);
+icalproperty* icalproperty_vanew_maxresults(int v, ...);
+void icalproperty_set_maxresults(icalproperty* prop, int v);
+int icalproperty_get_maxresults(icalproperty* prop);
+/* MAXRESULTSSIZE */
+icalproperty* icalproperty_new_maxresultssize(int v);
+icalproperty* icalproperty_vanew_maxresultssize(int v, ...);
+void icalproperty_set_maxresultssize(icalproperty* prop, int v);
+int icalproperty_get_maxresultssize(icalproperty* prop);
+/* METHOD */
+icalproperty* icalproperty_new_method(enum icalproperty_method v);
+icalproperty* icalproperty_vanew_method(enum icalproperty_method v, ...);
+void icalproperty_set_method(icalproperty* prop, enum icalproperty_method v);
+enum icalproperty_method icalproperty_get_method(icalproperty* prop);
+/* ORGANIZER */
+icalproperty* icalproperty_new_organizer(const char* v);
+icalproperty* icalproperty_vanew_organizer(const char* v, ...);
+void icalproperty_set_organizer(icalproperty* prop, const char* v);
+const char* icalproperty_get_organizer(icalproperty* prop);
+/* PERCENT-COMPLETE */
+icalproperty* icalproperty_new_percentcomplete(int v);
+icalproperty* icalproperty_vanew_percentcomplete(int v, ...);
+void icalproperty_set_percentcomplete(icalproperty* prop, int v);
+int icalproperty_get_percentcomplete(icalproperty* prop);
+/* PRIORITY */
+icalproperty* icalproperty_new_priority(int v);
+icalproperty* icalproperty_vanew_priority(int v, ...);
+void icalproperty_set_priority(icalproperty* prop, int v);
+int icalproperty_get_priority(icalproperty* prop);
+/* PRODID */
+icalproperty* icalproperty_new_prodid(const char* v);
+icalproperty* icalproperty_vanew_prodid(const char* v, ...);
+void icalproperty_set_prodid(icalproperty* prop, const char* v);
+const char* icalproperty_get_prodid(icalproperty* prop);
+/* QUERY */
+icalproperty* icalproperty_new_query(const char* v);
+icalproperty* icalproperty_vanew_query(const char* v, ...);
+void icalproperty_set_query(icalproperty* prop, const char* v);
+const char* icalproperty_get_query(icalproperty* prop);
+/* QUERYNAME */
+icalproperty* icalproperty_new_queryname(const char* v);
+icalproperty* icalproperty_vanew_queryname(const char* v, ...);
+void icalproperty_set_queryname(icalproperty* prop, const char* v);
+const char* icalproperty_get_queryname(icalproperty* prop);
+/* RDATE */
+icalproperty* icalproperty_new_rdate(struct icaldatetimeperiodtype v);
+icalproperty* icalproperty_vanew_rdate(struct icaldatetimeperiodtype v, ...);
+void icalproperty_set_rdate(icalproperty* prop, struct icaldatetimeperiodtype v);
+struct icaldatetimeperiodtype icalproperty_get_rdate(icalproperty* prop);
+/* RECURRENCE-ID */
+icalproperty* icalproperty_new_recurrenceid(struct icaltimetype v);
+icalproperty* icalproperty_vanew_recurrenceid(struct icaltimetype v, ...);
+void icalproperty_set_recurrenceid(icalproperty* prop, struct icaltimetype v);
+struct icaltimetype icalproperty_get_recurrenceid(icalproperty* prop);
+/* RELATED-TO */
+icalproperty* icalproperty_new_relatedto(const char* v);
+icalproperty* icalproperty_vanew_relatedto(const char* v, ...);
+void icalproperty_set_relatedto(icalproperty* prop, const char* v);
+const char* icalproperty_get_relatedto(icalproperty* prop);
+/* REPEAT */
+icalproperty* icalproperty_new_repeat(int v);
+icalproperty* icalproperty_vanew_repeat(int v, ...);
+void icalproperty_set_repeat(icalproperty* prop, int v);
+int icalproperty_get_repeat(icalproperty* prop);
+/* REQUEST-STATUS */
+icalproperty* icalproperty_new_requeststatus(const char* v);
+icalproperty* icalproperty_vanew_requeststatus(const char* v, ...);
+void icalproperty_set_requeststatus(icalproperty* prop, const char* v);
+const char* icalproperty_get_requeststatus(icalproperty* prop);
+/* RESOURCES */
+icalproperty* icalproperty_new_resources(const char* v);
+icalproperty* icalproperty_vanew_resources(const char* v, ...);
+void icalproperty_set_resources(icalproperty* prop, const char* v);
+const char* icalproperty_get_resources(icalproperty* prop);
+/* RRULE */
+icalproperty* icalproperty_new_rrule(struct icalrecurrencetype v);
+icalproperty* icalproperty_vanew_rrule(struct icalrecurrencetype v, ...);
+void icalproperty_set_rrule(icalproperty* prop, struct icalrecurrencetype v);
+struct icalrecurrencetype icalproperty_get_rrule(icalproperty* prop);
+/* SCOPE */
+icalproperty* icalproperty_new_scope(const char* v);
+icalproperty* icalproperty_vanew_scope(const char* v, ...);
+void icalproperty_set_scope(icalproperty* prop, const char* v);
+const char* icalproperty_get_scope(icalproperty* prop);
+/* SEQUENCE */
+icalproperty* icalproperty_new_sequence(int v);
+icalproperty* icalproperty_vanew_sequence(int v, ...);
+void icalproperty_set_sequence(icalproperty* prop, int v);
+int icalproperty_get_sequence(icalproperty* prop);
+/* STATUS */
+icalproperty* icalproperty_new_status(enum icalproperty_status v);
+icalproperty* icalproperty_vanew_status(enum icalproperty_status v, ...);
+void icalproperty_set_status(icalproperty* prop, enum icalproperty_status v);
+enum icalproperty_status icalproperty_get_status(icalproperty* prop);
+/* SUMMARY */
+icalproperty* icalproperty_new_summary(const char* v);
+icalproperty* icalproperty_vanew_summary(const char* v, ...);
+void icalproperty_set_summary(icalproperty* prop, const char* v);
+const char* icalproperty_get_summary(icalproperty* prop);
+/* TARGET */
+icalproperty* icalproperty_new_target(const char* v);
+icalproperty* icalproperty_vanew_target(const char* v, ...);
+void icalproperty_set_target(icalproperty* prop, const char* v);
+const char* icalproperty_get_target(icalproperty* prop);
+/* TRANSP */
+icalproperty* icalproperty_new_transp(const char* v);
+icalproperty* icalproperty_vanew_transp(const char* v, ...);
+void icalproperty_set_transp(icalproperty* prop, const char* v);
+const char* icalproperty_get_transp(icalproperty* prop);
+/* TRIGGER */
+icalproperty* icalproperty_new_trigger(struct icaltriggertype v);
+icalproperty* icalproperty_vanew_trigger(struct icaltriggertype v, ...);
+void icalproperty_set_trigger(icalproperty* prop, struct icaltriggertype v);
+struct icaltriggertype icalproperty_get_trigger(icalproperty* prop);
+/* TZID */
+icalproperty* icalproperty_new_tzid(const char* v);
+icalproperty* icalproperty_vanew_tzid(const char* v, ...);
+void icalproperty_set_tzid(icalproperty* prop, const char* v);
+const char* icalproperty_get_tzid(icalproperty* prop);
+/* TZNAME */
+icalproperty* icalproperty_new_tzname(const char* v);
+icalproperty* icalproperty_vanew_tzname(const char* v, ...);
+void icalproperty_set_tzname(icalproperty* prop, const char* v);
+const char* icalproperty_get_tzname(icalproperty* prop);
+/* TZOFFSETFROM */
+icalproperty* icalproperty_new_tzoffsetfrom(int v);
+icalproperty* icalproperty_vanew_tzoffsetfrom(int v, ...);
+void icalproperty_set_tzoffsetfrom(icalproperty* prop, int v);
+int icalproperty_get_tzoffsetfrom(icalproperty* prop);
+/* TZOFFSETTO */
+icalproperty* icalproperty_new_tzoffsetto(int v);
+icalproperty* icalproperty_vanew_tzoffsetto(int v, ...);
+void icalproperty_set_tzoffsetto(icalproperty* prop, int v);
+int icalproperty_get_tzoffsetto(icalproperty* prop);
+/* TZURL */
+icalproperty* icalproperty_new_tzurl(const char* v);
+icalproperty* icalproperty_vanew_tzurl(const char* v, ...);
+void icalproperty_set_tzurl(icalproperty* prop, const char* v);
+const char* icalproperty_get_tzurl(icalproperty* prop);
+/* UID */
+icalproperty* icalproperty_new_uid(const char* v);
+icalproperty* icalproperty_vanew_uid(const char* v, ...);
+void icalproperty_set_uid(icalproperty* prop, const char* v);
+const char* icalproperty_get_uid(icalproperty* prop);
+/* URL */
+icalproperty* icalproperty_new_url(const char* v);
+icalproperty* icalproperty_vanew_url(const char* v, ...);
+void icalproperty_set_url(icalproperty* prop, const char* v);
+const char* icalproperty_get_url(icalproperty* prop);
+/* VERSION */
+icalproperty* icalproperty_new_version(const char* v);
+icalproperty* icalproperty_vanew_version(const char* v, ...);
+void icalproperty_set_version(icalproperty* prop, const char* v);
+const char* icalproperty_get_version(icalproperty* prop);
+/* X */
+icalproperty* icalproperty_new_x(const char* v);
+icalproperty* icalproperty_vanew_x(const char* v, ...);
+void icalproperty_set_x(icalproperty* prop, const char* v);
+const char* icalproperty_get_x(icalproperty* prop);
+/* X-LIC-CLUSTERCOUNT */
+icalproperty* icalproperty_new_xlicclustercount(const char* v);
+icalproperty* icalproperty_vanew_xlicclustercount(const char* v, ...);
+void icalproperty_set_xlicclustercount(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicclustercount(icalproperty* prop);
+/* X-LIC-ERROR */
+icalproperty* icalproperty_new_xlicerror(const char* v);
+icalproperty* icalproperty_vanew_xlicerror(const char* v, ...);
+void icalproperty_set_xlicerror(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicerror(icalproperty* prop);
+/* X-LIC-MIMECHARSET */
+icalproperty* icalproperty_new_xlicmimecharset(const char* v);
+icalproperty* icalproperty_vanew_xlicmimecharset(const char* v, ...);
+void icalproperty_set_xlicmimecharset(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicmimecharset(icalproperty* prop);
+/* X-LIC-MIMECID */
+icalproperty* icalproperty_new_xlicmimecid(const char* v);
+icalproperty* icalproperty_vanew_xlicmimecid(const char* v, ...);
+void icalproperty_set_xlicmimecid(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicmimecid(icalproperty* prop);
+/* X-LIC-MIMECONTENTTYPE */
+icalproperty* icalproperty_new_xlicmimecontenttype(const char* v);
+icalproperty* icalproperty_vanew_xlicmimecontenttype(const char* v, ...);
+void icalproperty_set_xlicmimecontenttype(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicmimecontenttype(icalproperty* prop);
+/* X-LIC-MIMEENCODING */
+icalproperty* icalproperty_new_xlicmimeencoding(const char* v);
+icalproperty* icalproperty_vanew_xlicmimeencoding(const char* v, ...);
+void icalproperty_set_xlicmimeencoding(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicmimeencoding(icalproperty* prop);
+/* X-LIC-MIMEFILENAME */
+icalproperty* icalproperty_new_xlicmimefilename(const char* v);
+icalproperty* icalproperty_vanew_xlicmimefilename(const char* v, ...);
+void icalproperty_set_xlicmimefilename(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicmimefilename(icalproperty* prop);
+/* X-LIC-MIMEOPTINFO */
+icalproperty* icalproperty_new_xlicmimeoptinfo(const char* v);
+icalproperty* icalproperty_vanew_xlicmimeoptinfo(const char* v, ...);
+void icalproperty_set_xlicmimeoptinfo(icalproperty* prop, const char* v);
+const char* icalproperty_get_xlicmimeoptinfo(icalproperty* prop);
+
+#endif /*ICALPROPERTY_H*/
diff --git a/src/plugins/vcalendar/libical/libical/icalderivedvalue.c b/src/plugins/vcalendar/libical/libical/icalderivedvalue.c
new file mode 100644
index 0000000..25876bc
--- /dev/null
+++ b/src/plugins/vcalendar/libical/libical/icalderivedvalue.c
@@ -0,0 +1,950 @@
+/* -*- Mode: C -*- */
+/*======================================================================
+  FILE: icalvalue.c
+  CREATOR: eric 02 May 1999
+  
+  $Id$
+
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalvalue.c
+
+  Contributions from:
+     Graham Davison (g.m.davison at computer.org)
+
+
+======================================================================*/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "icalerror.h"
+#include "icalmemory.h"
+#include "icalparser.h"
+#include "icalenums.h"
+
+#include "icalvalueimpl.h"
+
+#include <stdlib.h> /* for malloc */
+#include <stdio.h> /* for sprintf */
+#include <string.h> /* For memset, others */
+#include <stddef.h> /* For offsetof() macro */
+#include <errno.h>
+#include <time.h> /* for mktime */
+#include <stdlib.h> /* for atoi and atof */
+#include <limits.h> /* for SHRT_MAX */         
+
+
+
+#define TMP_BUF_SIZE 1024
+
+struct icalvalue_impl*  icalvalue_new_impl(icalvalue_kind kind);
+
+/* This map associates each of the value types with its string
+   representation */
+struct icalvalue_kind_map {
+	icalvalue_kind kind;
+	char name[20];
+};
+
+static struct icalvalue_kind_map value_map[]; 
+
+const char* icalvalue_kind_to_string(icalvalue_kind kind)
+{
+    int i;
+
+    for (i=0; value_map[i].kind != ICAL_NO_VALUE; i++) {
+	if (value_map[i].kind == kind) {
+	    return value_map[i].name;
+	}
+    }
+
+    return 0;
+}
+
+icalvalue_kind icalvalue_string_to_kind(const char* str)
+{
+    int i;
+
+    for (i=0; value_map[i].kind != ICAL_NO_VALUE; i++) {
+	if (strcmp(value_map[i].name,str) == 0) {
+	    return value_map[i].kind;
+	}
+    }
+
+    return  value_map[i].kind;
+
+}
+
+icalvalue* icalvalue_new_x (const char* v){
+   struct icalvalue_impl* impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+   impl = icalvalue_new_impl(ICAL_X_VALUE);
+   icalvalue_set_x((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_x(icalvalue* value, const char* v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    impl = (struct icalvalue_impl*)value;
+    if(impl->x_value!=0) {free((void*)impl->x_value);}
+
+    impl->x_value = icalmemory_strdup(v);
+
+    if (impl->x_value == 0){
+      errno = ENOMEM;
+    }
+ 
+ }
+const char* icalvalue_get_x(icalvalue* value) {
+
+    icalerror_check_arg_rz( (value!=0),"value");
+    icalerror_check_value_type(value, ICAL_X_VALUE);
+    return ((struct icalvalue_impl*)value)->x_value;
+}
+
+/* Recur is a special case, so it is not auto generated. */
+icalvalue*
+icalvalue_new_recur (struct icalrecurrencetype v)
+{
+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_RECUR_VALUE);
+    
+   icalvalue_set_recur((icalvalue*)impl,v);
+
+   return (icalvalue*)impl;
+}
+
+void
+icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v)
+{
+    struct icalvalue_impl* impl; 
+    
+    icalerror_check_arg_rv( (value!=0),"value");
+    icalerror_check_value_type(value, ICAL_RECUR_VALUE);
+
+    impl = (struct icalvalue_impl*)value;
+
+    if (impl->data.v_recur != 0){
+	free(impl->data.v_recur);
+	impl->data.v_recur = 0;
+    }
+
+    impl->data.v_recur = malloc(sizeof(struct icalrecurrencetype));
+
+    if (impl->data.v_recur == 0){
+	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
+	return;
+    } else {
+	memcpy(impl->data.v_recur, &v, sizeof(struct icalrecurrencetype));
+    }
+	       
+}
+
+struct icalrecurrencetype
+icalvalue_get_recur(icalvalue* value)
+{
+    icalerror_check_arg( (value!=0),"value");
+    icalerror_check_value_type(value, ICAL_RECUR_VALUE);
+  
+    return *(((struct icalvalue_impl*)value)->data.v_recur);
+}
+
+
+
+
+icalvalue*
+icalvalue_new_trigger (struct icaltriggertype v)
+{
+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_TRIGGER_VALUE);
+ 
+   icalvalue_set_trigger((icalvalue*)impl,v);
+
+   return (icalvalue*)impl;
+}
+
+void
+icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v)
+{
+    struct icalvalue_impl* impl; 
+    
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    impl = (struct icalvalue_impl*)value;
+
+   if(!icaltime_is_null_time(v.time)){
+       icalvalue_set_datetime((icalvalue*)impl,v.time);
+       impl->kind = ICAL_DATETIME_VALUE;
+   } else {
+       icalvalue_set_duration((icalvalue*)impl,v.duration);
+       impl->kind = ICAL_DURATION_VALUE;
+   }
+
+}
+
+struct icaltriggertype
+icalvalue_get_trigger(icalvalue* value)
+{
+    struct icalvalue_impl *impl = (struct icalvalue_impl*)value;
+    struct icaltriggertype tr;
+
+    icalerror_check_arg( (value!=0),"value");
+
+    if(impl->kind == ICAL_DATETIME_VALUE){
+	 tr.duration = icaldurationtype_from_int(0);
+	 tr.time = impl->data.v_time;
+    } else if(impl->kind == ICAL_DURATION_VALUE){
+	tr.time = icaltime_null_time();
+	tr.duration = impl->data.v_duration;
+    } else {
+	tr.duration = icaldurationtype_from_int(0);
+	tr.time = icaltime_null_time();
+	icalerror_set_errno(ICAL_BADARG_ERROR);
+    }
+
+    return tr;
+}
+
+/* DATE-TIME-PERIOD is a special case, and is not auto generated */
+
+icalvalue*
+icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v)
+{
+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_DATETIMEPERIOD_VALUE);
+
+   icalvalue_set_datetimeperiod((icalvalue*)impl,v);
+
+   return (icalvalue*)impl;
+}
+
+void
+icalvalue_set_datetimeperiod(icalvalue* value, struct icaldatetimeperiodtype v)
+{
+    struct icalvalue_impl* impl = (struct icalvalue_impl*)value;
+    
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_DATETIMEPERIOD_VALUE);
+
+    if(!icaltime_is_null_time(v.time)){
+	if(!icaltime_is_valid_time(v.time)){
+	    icalerror_set_errno(ICAL_BADARG_ERROR);
+	    return;
+	}
+	impl->kind = ICAL_DATETIME_VALUE;
+	icalvalue_set_datetime(impl,v.time);
+    } else if (!icalperiodtype_is_null_period(v.period)) {
+	if(!icalperiodtype_is_valid_period(v.period)){
+	    icalerror_set_errno(ICAL_BADARG_ERROR);
+	    return;
+	}
+	impl->kind = ICAL_PERIOD_VALUE;
+	icalvalue_set_period(impl,v.period);
+    } else {
+	icalerror_set_errno(ICAL_BADARG_ERROR);
+    }
+}
+
+struct icaldatetimeperiodtype
+icalvalue_get_datetimeperiod(icalvalue* value)
+{
+  struct icaldatetimeperiodtype dtp;
+  
+  struct icalvalue_impl* impl = (struct icalvalue_impl*)value;
+  icalerror_check_arg( (value!=0),"value");
+  icalerror_check_value_type(value, ICAL_DATETIMEPERIOD_VALUE);
+  
+  if(impl->kind == ICAL_DATETIME_VALUE){
+      dtp.period = icalperiodtype_null_period();
+      dtp.time = impl->data.v_time;
+  } else if(impl->kind == ICAL_PERIOD_VALUE) {
+      dtp.period = impl->data.v_period;
+      dtp.time = icaltime_null_time();
+  } else {
+      dtp.period = icalperiodtype_null_period();
+      dtp.time = icaltime_null_time();
+      icalerror_set_errno(ICAL_BADARG_ERROR);
+  }	
+
+  return dtp;
+}
+
+
+
+
+
+
+
+
+
+/* The remaining interfaces are 'new', 'set' and 'get' for each of the value
+   types */
+
+
+/* Everything below this line is machine generated. Do not edit. */
+static struct icalvalue_kind_map value_map[]={
+    {ICAL_RECUR_VALUE,"RECUR"},
+    {ICAL_DATETIMEDATE_VALUE,"DATE-TIME-DATE"},
+    {ICAL_DATETIMEPERIOD_VALUE,"DATE-TIME-PERIOD"},
+    {ICAL_CALADDRESS_VALUE,"CAL-ADDRESS"},
+    {ICAL_BOOLEAN_VALUE,"BOOLEAN"},
+    {ICAL_DATETIME_VALUE,"DATE-TIME"},
+    {ICAL_DURATION_VALUE,"DURATION"},
+    {ICAL_TRIGGER_VALUE,"TRIGGER"},
+    {ICAL_UTCOFFSET_VALUE,"UTC-OFFSET"},
+    {ICAL_TRANSP_VALUE,"TRANSP"},
+    {ICAL_DATE_VALUE,"DATE"},
+    {ICAL_GEO_VALUE,"GEO"},
+    {ICAL_PERIOD_VALUE,"PERIOD"},
+    {ICAL_INTEGER_VALUE,"INTEGER"},
+    {ICAL_X_VALUE,"X"},
+    {ICAL_TIME_VALUE,"TIME"},
+    {ICAL_QUERY_VALUE,"QUERY"},
+    {ICAL_ATTACH_VALUE,"ATTACH"},
+    {ICAL_FLOAT_VALUE,"FLOAT"},
+    {ICAL_BINARY_VALUE,"BINARY"},
+    {ICAL_STRING_VALUE,"STRING"},
+    {ICAL_URI_VALUE,"URI"},
+    {ICAL_ACTION_VALUE,"ACTION"},
+    {ICAL_CLASS_VALUE,"CLASS"},
+    {ICAL_METHOD_VALUE,"METHOD"},
+    {ICAL_TEXT_VALUE,"TEXT"},
+    {ICAL_STATUS_VALUE,"STATUS"},
+    {ICAL_NO_VALUE,""}
+};
+
+
+icalvalue* icalvalue_new_datetimedate (struct icaltimetype v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_DATETIMEDATE_VALUE);
+   icalvalue_set_datetimedate((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_datetimedate(icalvalue* value, struct icaltimetype v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_DATETIMEDATE_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_time = v; 
+ }
+struct icaltimetype icalvalue_get_datetimedate(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_DATETIMEDATE_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_time;
+}
+
+
+
+icalvalue* icalvalue_new_caladdress (const char* v){
+   struct icalvalue_impl* impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalvalue_new_impl(ICAL_CALADDRESS_VALUE);
+   icalvalue_set_caladdress((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_caladdress(icalvalue* value, const char* v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_value_type(value, ICAL_CALADDRESS_VALUE);
+    impl = (struct icalvalue_impl*)value;
+    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
+
+    impl->data.v_string = icalmemory_strdup(v);
+
+    if (impl->data.v_string == 0){
+      errno = ENOMEM;
+    }
+ 
+ }
+const char* icalvalue_get_caladdress(icalvalue* value) {
+
+	icalerror_check_arg_rz( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_CALADDRESS_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_string;
+}
+
+
+
+icalvalue* icalvalue_new_boolean (int v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_BOOLEAN_VALUE);
+   icalvalue_set_boolean((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_boolean(icalvalue* value, int v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_BOOLEAN_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_int = v; 
+ }
+int icalvalue_get_boolean(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_BOOLEAN_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_int;
+}
+
+
+
+icalvalue* icalvalue_new_datetime (struct icaltimetype v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_DATETIME_VALUE);
+   icalvalue_set_datetime((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_datetime(icalvalue* value, struct icaltimetype v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_DATETIME_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_time = v; 
+ }
+struct icaltimetype icalvalue_get_datetime(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_DATETIME_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_time;
+}
+
+
+
+icalvalue* icalvalue_new_duration (struct icaldurationtype v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_DURATION_VALUE);
+   icalvalue_set_duration((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_duration(icalvalue* value, struct icaldurationtype v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_DURATION_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_duration = v; 
+ }
+struct icaldurationtype icalvalue_get_duration(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_DURATION_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_duration;
+}
+
+
+
+icalvalue* icalvalue_new_utcoffset (int v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_UTCOFFSET_VALUE);
+   icalvalue_set_utcoffset((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_utcoffset(icalvalue* value, int v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_UTCOFFSET_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_int = v; 
+ }
+int icalvalue_get_utcoffset(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_UTCOFFSET_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_int;
+}
+
+
+
+icalvalue* icalvalue_new_transp (enum icalproperty_transp v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_TRANSP_VALUE);
+   icalvalue_set_transp((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_transp(icalvalue* value, enum icalproperty_transp v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_TRANSP_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_enum = v; 
+ }
+enum icalproperty_transp icalvalue_get_transp(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_TRANSP_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_enum;
+}
+
+
+
+icalvalue* icalvalue_new_date (struct icaltimetype v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_DATE_VALUE);
+   icalvalue_set_date((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_date(icalvalue* value, struct icaltimetype v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_DATE_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_time = v; 
+ }
+struct icaltimetype icalvalue_get_date(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_DATE_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_time;
+}
+
+
+
+icalvalue* icalvalue_new_geo (struct icalgeotype v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_GEO_VALUE);
+   icalvalue_set_geo((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_geo(icalvalue* value, struct icalgeotype v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_GEO_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_geo = v; 
+ }
+struct icalgeotype icalvalue_get_geo(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_GEO_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_geo;
+}
+
+
+
+icalvalue* icalvalue_new_period (struct icalperiodtype v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_PERIOD_VALUE);
+   icalvalue_set_period((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_period(icalvalue* value, struct icalperiodtype v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_PERIOD_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_period = v; 
+ }
+struct icalperiodtype icalvalue_get_period(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_PERIOD_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_period;
+}
+
+
+
+icalvalue* icalvalue_new_integer (int v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_INTEGER_VALUE);
+   icalvalue_set_integer((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_integer(icalvalue* value, int v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_INTEGER_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_int = v; 
+ }
+int icalvalue_get_integer(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_INTEGER_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_int;
+}
+
+
+
+icalvalue* icalvalue_new_time (struct icaltimetype v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_TIME_VALUE);
+   icalvalue_set_time((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_time(icalvalue* value, struct icaltimetype v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_TIME_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_time = v; 
+ }
+struct icaltimetype icalvalue_get_time(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_TIME_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_time;
+}
+
+
+
+icalvalue* icalvalue_new_query (const char* v){
+   struct icalvalue_impl* impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalvalue_new_impl(ICAL_QUERY_VALUE);
+   icalvalue_set_query((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_query(icalvalue* value, const char* v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_value_type(value, ICAL_QUERY_VALUE);
+    impl = (struct icalvalue_impl*)value;
+    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
+
+    impl->data.v_string = icalmemory_strdup(v);
+
+    if (impl->data.v_string == 0){
+      errno = ENOMEM;
+    }
+ 
+ }
+const char* icalvalue_get_query(icalvalue* value) {
+
+	icalerror_check_arg_rz( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_QUERY_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_string;
+}
+
+
+
+icalvalue* icalvalue_new_attach (struct icalattachtype v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_ATTACH_VALUE);
+   icalvalue_set_attach((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_attach(icalvalue* value, struct icalattachtype v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_ATTACH_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_attach = v; 
+ }
+struct icalattachtype icalvalue_get_attach(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_ATTACH_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_attach;
+}
+
+
+
+icalvalue* icalvalue_new_float (float v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_FLOAT_VALUE);
+   icalvalue_set_float((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_float(icalvalue* value, float v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_FLOAT_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_float = v; 
+ }
+float icalvalue_get_float(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_FLOAT_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_float;
+}
+
+
+
+icalvalue* icalvalue_new_binary (const char* v){
+   struct icalvalue_impl* impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalvalue_new_impl(ICAL_BINARY_VALUE);
+   icalvalue_set_binary((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_binary(icalvalue* value, const char* v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_value_type(value, ICAL_BINARY_VALUE);
+    impl = (struct icalvalue_impl*)value;
+    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
+
+    impl->data.v_string = icalmemory_strdup(v);
+
+    if (impl->data.v_string == 0){
+      errno = ENOMEM;
+    }
+ 
+ }
+const char* icalvalue_get_binary(icalvalue* value) {
+
+	icalerror_check_arg_rz( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_BINARY_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_string;
+}
+
+
+
+icalvalue* icalvalue_new_string (const char* v){
+   struct icalvalue_impl* impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalvalue_new_impl(ICAL_STRING_VALUE);
+   icalvalue_set_string((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_string(icalvalue* value, const char* v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_value_type(value, ICAL_STRING_VALUE);
+    impl = (struct icalvalue_impl*)value;
+    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
+
+    impl->data.v_string = icalmemory_strdup(v);
+
+    if (impl->data.v_string == 0){
+      errno = ENOMEM;
+    }
+ 
+ }
+const char* icalvalue_get_string(icalvalue* value) {
+
+	icalerror_check_arg_rz( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_STRING_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_string;
+}
+
+
+
+icalvalue* icalvalue_new_uri (const char* v){
+   struct icalvalue_impl* impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalvalue_new_impl(ICAL_URI_VALUE);
+   icalvalue_set_uri((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_uri(icalvalue* value, const char* v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_value_type(value, ICAL_URI_VALUE);
+    impl = (struct icalvalue_impl*)value;
+    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
+
+    impl->data.v_string = icalmemory_strdup(v);
+
+    if (impl->data.v_string == 0){
+      errno = ENOMEM;
+    }
+ 
+ }
+const char* icalvalue_get_uri(icalvalue* value) {
+
+	icalerror_check_arg_rz( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_URI_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_string;
+}
+
+
+
+icalvalue* icalvalue_new_action (enum icalproperty_action v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_ACTION_VALUE);
+   icalvalue_set_action((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_action(icalvalue* value, enum icalproperty_action v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_ACTION_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_enum = v; 
+ }
+enum icalproperty_action icalvalue_get_action(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_ACTION_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_enum;
+}
+
+
+
+icalvalue* icalvalue_new_class (enum icalproperty_class v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_CLASS_VALUE);
+   icalvalue_set_class((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_class(icalvalue* value, enum icalproperty_class v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_CLASS_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_enum = v; 
+ }
+enum icalproperty_class icalvalue_get_class(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_CLASS_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_enum;
+}
+
+
+
+icalvalue* icalvalue_new_method (enum icalproperty_method v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_METHOD_VALUE);
+   icalvalue_set_method((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_method(icalvalue* value, enum icalproperty_method v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_METHOD_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_enum = v; 
+ }
+enum icalproperty_method icalvalue_get_method(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_METHOD_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_enum;
+}
+
+
+
+icalvalue* icalvalue_new_text (const char* v){
+   struct icalvalue_impl* impl;
+   icalerror_check_arg_rz( (v!=0),"v");
+
+   impl = icalvalue_new_impl(ICAL_TEXT_VALUE);
+   icalvalue_set_text((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_text(icalvalue* value, const char* v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    icalerror_check_arg_rv( (v!=0),"v");
+
+    icalerror_check_value_type(value, ICAL_TEXT_VALUE);
+    impl = (struct icalvalue_impl*)value;
+    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
+
+    impl->data.v_string = icalmemory_strdup(v);
+
+    if (impl->data.v_string == 0){
+      errno = ENOMEM;
+    }
+ 
+ }
+const char* icalvalue_get_text(icalvalue* value) {
+
+	icalerror_check_arg_rz( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_TEXT_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_string;
+}
+
+
+
+icalvalue* icalvalue_new_status (enum icalproperty_status v){
+   struct icalvalue_impl* impl;
+   
+   impl = icalvalue_new_impl(ICAL_STATUS_VALUE);
+   icalvalue_set_status((icalvalue*)impl,v);
+   return (icalvalue*)impl;
+}
+void icalvalue_set_status(icalvalue* value, enum icalproperty_status v) {
+    struct icalvalue_impl* impl; 
+    icalerror_check_arg_rv( (value!=0),"value");
+    
+    icalerror_check_value_type(value, ICAL_STATUS_VALUE);
+    impl = (struct icalvalue_impl*)value;
+
+    impl->data.v_enum = v; 
+ }
+enum icalproperty_status icalvalue_get_status(icalvalue* value) {
+
+	icalerror_check_arg( (value!=0),"value");
+	icalerror_check_value_type(value, ICAL_STATUS_VALUE);
+	return ((struct icalvalue_impl*)value)->data.v_enum;
+}
diff --git a/src/plugins/vcalendar/libical/libical/icalderivedvalue.h b/src/plugins/vcalendar/libical/libical/icalderivedvalue.h
new file mode 100644
index 0000000..8601e71
--- /dev/null
+++ b/src/plugins/vcalendar/libical/libical/icalderivedvalue.h
@@ -0,0 +1,290 @@
+/* -*- Mode: C -*- */
+/*======================================================================
+  FILE: icalvalue.h
+  CREATOR: eric 20 March 1999
+
+
+  $Id$
+  $Locker$
+
+  
+
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either: 
+
+    The LGPL as published by the Free Software Foundation, version
+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
+
+  Or:
+
+    The Mozilla Public License Version 1.0. You may obtain a copy of
+    the License at http://www.mozilla.org/MPL/
+
+  The original code is icalvalue.h
+
+  ======================================================================*/
+
+#ifndef ICALDERIVEDVALUE_H
+#define ICALDERIVEDVALUE_H
+
+#include "icaltypes.h"
+#include "icalrecur.h"
+#include "icaltime.h"
+#include "icalduration.h"
+#include "icalperiod.h"
+     
+typedef void icalvalue;
+
+
+
+void icalvalue_set_x(icalvalue* value, const char* v);
+icalvalue* icalvalue_new_x(const char* v);
+const char* icalvalue_get_x(icalvalue* value);
+
+icalvalue* icalvalue_new_recur (struct icalrecurrencetype v);
+void icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v);
+struct icalrecurrencetype icalvalue_get_recur(icalvalue* value);
+
+icalvalue* icalvalue_new_trigger (struct icaltriggertype v);
+void icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v);
+struct icaltriggertype icalvalue_get_trigger(icalvalue* value);
+
+icalvalue* icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v);
+void icalvalue_set_datetimeperiod(icalvalue* value, struct icaldatetimeperiodtype v);
+struct icaldatetimeperiodtype icalvalue_get_datetimeperiod(icalvalue* value);
+
+/* Everything below this line is machine generated. Do not edit. */
+typedef enum icalvalue_kind {
+   ICAL_ANY_VALUE=5000,
+    ICAL_TEXT_VALUE=5001,
+    ICAL_BOOLEAN_VALUE=5002,
+    ICAL_DATETIMEPERIOD_VALUE=5003,
+    ICAL_DURATION_VALUE=5004,
+    ICAL_DATETIME_VALUE=5005,
+    ICAL_URI_VALUE=5006,
+    ICAL_X_VALUE=5007,
+    ICAL_FLOAT_VALUE=5008,
+    ICAL_PERIOD_VALUE=5009,
+    ICAL_TRIGGER_VALUE=5010,
+    ICAL_QUERY_VALUE=5011,
+    ICAL_CALADDRESS_VALUE=5012,
+    ICAL_UTCOFFSET_VALUE=5013,
+    ICAL_DATETIMEDATE_VALUE=5014,
+    ICAL_TRANSP_VALUE=5015,
+    ICAL_DATE_VALUE=5016,
+    ICAL_ACTION_VALUE=5017,
+    ICAL_TIME_VALUE=5018,
+    ICAL_METHOD_VALUE=5019,
+    ICAL_STATUS_VALUE=5020,
+    ICAL_GEO_VALUE=5021,
+    ICAL_INTEGER_VALUE=5022,
+    ICAL_CLASS_VALUE=5023,
+    ICAL_ATTACH_VALUE=5024,
+    ICAL_RECUR_VALUE=5025,
+    ICAL_BINARY_VALUE=5026,
+    ICAL_STRING_VALUE=5027,
+   ICAL_NO_VALUE=5028
+} icalvalue_kind ;
+
+#define ICALPROPERTY_FIRST_ENUM 10000
+
+typedef enum icalproperty_action {
+    ICAL_ACTION_X = 10000,
+    ICAL_ACTION_AUDIO = 10001,
+    ICAL_ACTION_DISPLAY = 10002,
+    ICAL_ACTION_EMAIL = 10003,
+    ICAL_ACTION_PROCEDURE = 10004,
+    ICAL_ACTION_NONE = 10005
+} icalproperty_action;
+
+typedef enum icalproperty_class {
+    ICAL_CLASS_X = 10006,
+    ICAL_CLASS_PUBLIC = 10007,
+    ICAL_CLASS_PRIVATE = 10008,
+    ICAL_CLASS_CONFIDENTIAL = 10009,
+    ICAL_CLASS_NONE = 10010
+} icalproperty_class;
+
+typedef enum icalproperty_method {
+    ICAL_METHOD_X = 10011,
+    ICAL_METHOD_PUBLISH = 10012,
+    ICAL_METHOD_REQUEST = 10013,
+    ICAL_METHOD_REPLY = 10014,
+    ICAL_METHOD_ADD = 10015,
+    ICAL_METHOD_CANCEL = 10016,
+    ICAL_METHOD_REFRESH = 10017,
+    ICAL_METHOD_COUNTER = 10018,
+    ICAL_METHOD_DECLINECOUNTER = 10019,
+    ICAL_METHOD_CREATE = 10020,
+    ICAL_METHOD_READ = 10021,
+    ICAL_METHOD_RESPONSE = 10022,
+    ICAL_METHOD_MOVE = 10023,
+    ICAL_METHOD_MODIFY = 10024,
+    ICAL_METHOD_GENERATEUID = 10025,
+    ICAL_METHOD_DELETE = 10026,
+    ICAL_METHOD_NONE = 10027
+} icalproperty_method;
+
+typedef enum icalproperty_status {
+    ICAL_STATUS_X = 10028,
+    ICAL_STATUS_TENTATIVE = 10029,
+    ICAL_STATUS_CONFIRMED = 10030,
+    ICAL_STATUS_COMPLETED = 10031,
+    ICAL_STATUS_NEEDSACTION = 10032,
+    ICAL_STATUS_CANCELLED = 10033,
+    ICAL_STATUS_INPROCESS = 10034,
+    ICAL_STATUS_DRAFT = 10035,
+    ICAL_STATUS_FINAL = 10036,
+    ICAL_STATUS_NONE = 10037
+} icalproperty_status;
+
+typedef enum icalproperty_transp {
+    ICAL_TRANSP_X = 10038,
+    ICAL_TRANSP_OPAQUE = 10039,
+    ICAL_TRANSP_TRANSPARENT = 10040,
+    ICAL_TRANSP_NONE = 10041
+} icalproperty_transp;
+
+#define ICALPROPERTY_LAST_ENUM 10042
+
+
+ /* TEXT */ 
+icalvalue* icalvalue_new_text(const char* v); 
+const char* icalvalue_get_text(icalvalue* value); 
+void icalvalue_set_text(icalvalue* value, const char* v);
+
+
+ /* BOOLEAN */ 
+icalvalue* icalvalue_new_boolean(int v); 
+int icalvalue_get_boolean(icalvalue* value); 
+void icalvalue_set_boolean(icalvalue* value, int v);
+
+
+ /* DURATION */ 
+icalvalue* icalvalue_new_duration(struct icaldurationtype v); 
+struct icaldurationtype icalvalue_get_duration(icalvalue* value); 
+void icalvalue_set_duration(icalvalue* value, struct icaldurationtype v);
+
+
+ /* DATE-TIME */ 
+icalvalue* icalvalue_new_datetime(struct icaltimetype v); 
+struct icaltimetype icalvalue_get_datetime(icalvalue* value); 
+void icalvalue_set_datetime(icalvalue* value, struct icaltimetype v);
+
+
+ /* URI */ 
+icalvalue* icalvalue_new_uri(const char* v); 
+const char* icalvalue_get_uri(icalvalue* value); 
+void icalvalue_set_uri(icalvalue* value, const char* v);
+
+
+ /* FLOAT */ 
+icalvalue* icalvalue_new_float(float v); 
+float icalvalue_get_float(icalvalue* value); 
+void icalvalue_set_float(icalvalue* value, float v);
+
+
+ /* PERIOD */ 
+icalvalue* icalvalue_new_period(struct icalperiodtype v); 
+struct icalperiodtype icalvalue_get_period(icalvalue* value); 
+void icalvalue_set_period(icalvalue* value, struct icalperiodtype v);
+
+
+ /* QUERY */ 
+icalvalue* icalvalue_new_query(const char* v); 
+const char* icalvalue_get_query(icalvalue* value); 
+void icalvalue_set_query(icalvalue* value, const char* v);
+
+
+ /* CAL-ADDRESS */ 
+icalvalue* icalvalue_new_caladdress(const char* v); 
+const char* icalvalue_get_caladdress(icalvalue* value); 
+void icalvalue_set_caladdress(icalvalue* value, const char* v);
+
+
+ /* UTC-OFFSET */ 
+icalvalue* icalvalue_new_utcoffset(int v); 
+int icalvalue_get_utcoffset(icalvalue* value); 
+void icalvalue_set_utcoffset(icalvalue* value, int v);
+
+
+ /* DATE-TIME-DATE */ 
+icalvalue* icalvalue_new_datetimedate(struct icaltimetype v); 
+struct icaltimetype icalvalue_get_datetimedate(icalvalue* value); 
+void icalvalue_set_datetimedate(icalvalue* value, struct icaltimetype v);
+
+
+ /* TRANSP */ 
+icalvalue* icalvalue_new_transp(enum icalproperty_transp v); 
+enum icalproperty_transp icalvalue_get_transp(icalvalue* value); 
+void icalvalue_set_transp(icalvalue* value, enum icalproperty_transp v);
+
+
+ /* DATE */ 
+icalvalue* icalvalue_new_date(struct icaltimetype v); 
+struct icaltimetype icalvalue_get_date(icalvalue* value); 
+void icalvalue_set_date(icalvalue* value, struct icaltimetype v);
+
+
+ /* ACTION */ 
+icalvalue* icalvalue_new_action(enum icalproperty_action v); 
+enum icalproperty_action icalvalue_get_action(icalvalue* value); 
+void icalvalue_set_action(icalvalue* value, enum icalproperty_action v);
+
+
+ /* TIME */ 
+icalvalue* icalvalue_new_time(struct icaltimetype v); 
+struct icaltimetype icalvalue_get_time(icalvalue* value); 
+void icalvalue_set_time(icalvalue* value, struct icaltimetype v);
+
+
+ /* METHOD */ 
+icalvalue* icalvalue_new_method(enum icalproperty_method v); 
+enum icalproperty_method icalvalue_get_method(icalvalue* value); 
+void icalvalue_set_method(icalvalue* value, enum icalproperty_method v);
+
+
+ /* STATUS */ 
+icalvalue* icalvalue_new_status(enum icalproperty_status v); 
+enum icalproperty_status icalvalue_get_status(icalvalue* value); 
+void icalvalue_set_status(icalvalue* value, enum icalproperty_status v);
+
+
+ /* GEO */ 
+icalvalue* icalvalue_new_geo(struct icalgeotype v); 
+struct icalgeotype icalvalue_get_geo(icalvalue* value); 
+void icalvalue_set_geo(icalvalue* value, struct icalgeotype v);
+
+
+ /* INTEGER */ 
+icalvalue* icalvalue_new_integer(int v); 
+int icalvalue_get_integer(icalvalue* value); 
+void icalvalue_set_integer(icalvalue* value, int v);
+
+
+ /* CLASS */ 
+icalvalue* icalvalue_new_class(enum icalproperty_class v); 
+enum icalproperty_class icalvalue_get_class(icalvalue* value); 
+void icalvalue_set_class(icalvalue* value, enum icalproperty_class v);
+
+
+ /* ATTACH */ 
+icalvalue* icalvalue_new_attach(struct icalattachtype v); 
+struct icalattachtype icalvalue_get_attach(icalvalue* value); 
+void icalvalue_set_attach(icalvalue* value, struct icalattachtype v);
+
+
+ /* BINARY */ 
+icalvalue* icalvalue_new_binary(const char* v); 
+const char* icalvalue_get_binary(icalvalue* value); 
+void icalvalue_set_binary(icalvalue* value, const char* v);
+
+
+ /* STRING */ 
+icalvalue* icalvalue_new_string(const char* v); 
+const char* icalvalue_get_string(icalvalue* value); 
+void icalvalue_set_string(icalvalue* value, const char* v);
+
+#endif /*ICALVALUE_H*/
diff --git a/src/plugins/vcalendar/libical/libical/icallexer.c b/src/plugins/vcalendar/libical/libical/icallexer.c
new file mode 100644
index 0000000..fe87ffe
--- /dev/null
+++ b/src/plugins/vcalendar/libical/libical/icallexer.c
@@ -0,0 +1,2006 @@
+
+#line 3 "icallexer.c"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define yy_create_buffer ical_yy_create_buffer
+#define yy_delete_buffer ical_yy_delete_buffer
+#define yy_flex_debug ical_yy_flex_debug
+#define yy_init_buffer ical_yy_init_buffer
+#define yy_flush_buffer ical_yy_flush_buffer
+#define yy_load_buffer_state ical_yy_load_buffer_state
+#define yy_switch_to_buffer ical_yy_switch_to_buffer
+#define yyin ical_yyin
+#define yyleng ical_yyleng
+#define yylex ical_yylex
+#define yylineno ical_yylineno
+#define yyout ical_yyout
+#define yyrestart ical_yyrestart
+#define yytext ical_yytext
+#define yywrap ical_yywrap
+#define yyalloc ical_yyalloc
+#define yyrealloc ical_yyrealloc
+#define yyfree ical_yyfree
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 35
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE ical_yyrestart(ical_yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k.
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
+ * Ditto for the __ia64__ case accordingly.
+ */
+#define YY_BUF_SIZE 32768
+#else
+#define YY_BUF_SIZE 16384
+#endif /* __ia64__ */
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+extern int ical_yyleng;
+
+extern FILE *ical_yyin, *ical_yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up ical_yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up ical_yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	int yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via ical_yyrestart()), so that the user can continue scanning by
+	 * just pointing ical_yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when ical_yytext is formed. */
+static char yy_hold_char;
+static int yy_n_chars;		/* number of characters read into yy_ch_buf */
+int ical_yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow ical_yywrap()'s to do buffer switches
+ * instead of setting up a fresh ical_yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void ical_yyrestart (FILE *input_file  );
+void ical_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE ical_yy_create_buffer (FILE *file,int size  );
+void ical_yy_delete_buffer (YY_BUFFER_STATE b  );
+void ical_yy_flush_buffer (YY_BUFFER_STATE b  );
+void ical_yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void ical_yypop_buffer_state (void );
+
+static void ical_yyensure_buffer_stack (void );
+static void ical_yy_load_buffer_state (void );
+static void ical_yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER ical_yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE ical_yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE ical_yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE ical_yy_scan_bytes (yyconst char *bytes,int len  );
+
+void *ical_yyalloc (yy_size_t  );
+void *ical_yyrealloc (void *,yy_size_t  );
+void ical_yyfree (void *  );
+
+#define yy_new_buffer ical_yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        ical_yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            ical_yy_create_buffer(ical_yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        ical_yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            ical_yy_create_buffer(ical_yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+typedef unsigned char YY_CHAR;
+
+FILE *ical_yyin = (FILE *) 0, *ical_yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int ical_yylineno;
+
+int ical_yylineno = 1;
+
+extern char ical_yytext[];
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up ical_yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	ical_yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	if ( ical_yyleng >= YYLMAX ) \
+		YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \
+	yy_flex_strncpy( ical_yytext, (yytext_ptr), ical_yyleng + 1 ); \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 12
+#define YY_END_OF_BUFFER 13
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[67] =
+    {   0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   13,   12,    5,   12,    4,    1,
+        2,    3,    6,   12,    7,   12,    9,   10,    9,   11,
+        5,    1,    6,    8,   10,    0
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    3,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    4,    5,    6,    1,    7,    8,    8,    8,
+        8,    8,    8,    8,    8,    8,    8,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    7,    1,    1,
+        1,    7,    1,    1,    1,    1,    7,    1,    1,    7,
+        1,    1,    7,    9,    1,    1,    7,    1,    1,   10,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    7,
+
+        1,    1,    1,    7,    1,    1,    1,    1,    7,    1,
+        1,    7,    1,    1,    7,   11,    1,    1,    7,    1,
+        1,   12,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yyconst flex_int32_t yy_meta[13] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1
+    } ;
+
+static yyconst flex_int16_t yy_base[69] =
+    {   0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   11,    0,   18,   20,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   27,   26,    0,    0,
+        0,    0,    0,    0,   30,   33,   33,   27,   33,   20,
+       33,   33,   33,   25,   33,   18,   33,   33,   23,   33,
+       33,   16,   33,   33,   33,   33,   17,   15
+    } ;
+
+static yyconst flex_int16_t yy_def[69] =
+    {   0,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       66,   11,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   23,   68,   68,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,    0,   66,   66
+    } ;
+
+static yyconst flex_int16_t yy_nxt[46] =
+    {   0,
+       46,   47,   48,   49,   46,   49,   49,   50,   51,   52,
+       51,   52,   53,   54,   55,   57,   55,   46,   56,   58,
+       59,   58,   59,   62,   65,   64,   63,   62,   61,   66,
+       60,   60,   45,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66
+    } ;
+
+static yyconst flex_int16_t yy_chk[46] =
+    {   0,
+       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
+       11,   11,   23,   23,   23,   68,   23,   67,   23,   25,
+       25,   26,   26,   62,   59,   56,   54,   50,   48,   45,
+       38,   37,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int ical_yy_flex_debug;
+int ical_yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+#ifndef YYLMAX
+#define YYLMAX 8192
+#endif
+
+char ical_yytext[YYLMAX];
+char *yytext_ptr;
+#line 1 "icallexer.l"
+#line 2 "icallexer.l"
+/* -*- Mode: C -*-
+  ======================================================================
+  FILE: icallexer.l
+  CREATOR: eric 10 June 1999
+  
+  DESCRIPTION:
+  
+  $Id$
+  $Locker$
+
+  (C) COPYRIGHT 1999 Eric Busboom 
+  http://www.softwarestudio.org
+
+  The contents of this file are subject to the Mozilla Public License
+  Version 1.0 (the "License"); you may not use this file except in
+  compliance with the License. You may obtain a copy of the License at
+  http://www.mozilla.org/MPL/
+ 
+  Software distributed under the License is distributed on an "AS IS"
+  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+  the License for the specific language governing rights and
+  limitations under the License.
+
+  The original author is Eric Busboom
+  The original code is icalitip.y
+
+
+
+  ======================================================================*/
+#include "icalparser.h"
+#include "icalenums.h"
+#include "icalmemory.h"
+#include "assert.h"
+#include "icalyacc.h"
+
+#include <string.h> /* For strdup() */
+
+int icalparser_flex_input(char* buf, int max_size);
+void icalparser_clear_flex_input(void);
+
+
+#define ICAL_MAX_STR_CONST 1024
+
+#undef YY_INPUT
+#define YY_INPUT(b,r,ms) ( r= icalparser_flex_input(b,ms))
+#undef ical_yywrap
+
+#undef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) ical_yyerror(msg)
+
+icalvalue_kind value_kind=ICAL_NO_VALUE;
+void set_parser_value_state(icalvalue_kind kind);
+extern int yydebug; 
+
+void ical_yyerror(char *s);
+
+void init_str_buf(void);
+
+int last_state;
+
+char *str_buf;
+char *str_buf_p;
+size_t buf_sz; /* = ICAL_MAX_STR_CONST;*/
+
+
+
+
+#line 579 "icallexer.c"
+
+#define INITIAL 0
+#define quoted_string 1
+#define binary_value 2
+#define boolean_value 3
+#define uri_value 4
+#define time_value 5
+#define duration_value 6
+#define number_value 7
+#define period_value 8
+#define recur_value 9
+#define text_value 10
+#define utcoffset_value 11
+#define enum_param_value 12
+#define string_param_value 13
+#define stringlist_param_value 14
+#define keyword 15
+#define line_start 16
+#define component 17
+#define seperator 18
+#define parameter 19
+#define end_of_value 20
+#define paramtext 21
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int ical_yylex_destroy (void );
+
+int ical_yyget_debug (void );
+
+void ical_yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE ical_yyget_extra (void );
+
+void ical_yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *ical_yyget_in (void );
+
+void ical_yyset_in  (FILE * in_str  );
+
+FILE *ical_yyget_out (void );
+
+void ical_yyset_out  (FILE * out_str  );
+
+int ical_yyget_leng (void );
+
+char *ical_yyget_text (void );
+
+int ical_yyget_lineno (void );
+
+void ical_yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int ical_yywrap (void );
+#else
+extern int ical_yywrap (void );
+#endif
+#endif
+
+    static void yyunput (int c,char *buf_ptr  );
+    
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k */
+#define YY_READ_BUF_SIZE 16384
+#else
+#define YY_READ_BUF_SIZE 8192
+#endif /* __ia64__ */
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( ical_yytext, ical_yyleng, 1, ical_yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
+		{ \
+		int c = '*'; \
+		size_t n; \
+		for ( n = 0; n < max_size && \
+			     (c = getc( ical_yyin )) != EOF && c != '\n'; ++n ) \
+			buf[n] = (char) c; \
+		if ( c == '\n' ) \
+			buf[n++] = (char) c; \
+		if ( c == EOF && ferror( ical_yyin ) ) \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+		result = n; \
+		} \
+	else \
+		{ \
+		errno=0; \
+		while ( (result = fread(buf, 1, max_size, ical_yyin))==0 && ferror(ical_yyin)) \
+			{ \
+			if( errno != EINTR) \
+				{ \
+				YY_FATAL_ERROR( "input in flex scanner failed" ); \
+				break; \
+				} \
+			errno=0; \
+			clearerr(ical_yyin); \
+			} \
+		}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int ical_yylex (void);
+
+#define YY_DECL int ical_yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after ical_yytext and ical_yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+#line 91 "icallexer.l"
+
+
+
+
+
+
+
+#line 795 "icallexer.c"
+
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! ical_yyin )
+			ical_yyin = stdin;
+
+		if ( ! ical_yyout )
+			ical_yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			ical_yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				ical_yy_create_buffer(ical_yyin,YY_BUF_SIZE );
+		}
+
+		ical_yy_load_buffer_state( );
+		}
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of ical_yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		do
+			{
+			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+				{
+				yy_current_state = (int) yy_def[yy_current_state];
+				if ( yy_current_state >= 67 )
+					yy_c = yy_meta[(unsigned int) yy_c];
+				}
+			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+			++yy_cp;
+			}
+		while ( yy_base[yy_current_state] != 33 );
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+		if ( yy_act == 0 )
+			{ /* have to back up */
+			yy_cp = (yy_last_accepting_cpos);
+			yy_current_state = (yy_last_accepting_state);
+			yy_act = yy_accept[yy_current_state];
+			}
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos);
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 99 "icallexer.l"
+{ ical_yylval.v_string =icalmemory_tmp_copy(ical_yytext) ;
+                           return DIGITS; }
+	YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 101 "icallexer.l"
+{ return TIME_CHAR; }
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 102 "icallexer.l"
+{ return UTC_CHAR; }
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 103 "icallexer.l"
+{ return ical_yytext[0]; }
+	YY_BREAK
+case 5:
+/* rule 5 can match eol */
+YY_RULE_SETUP
+#line 104 "icallexer.l"
+{ return EOL;}
+	YY_BREAK
+
+
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 109 "icallexer.l"
+{ return EOL;}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 110 "icallexer.l"
+{ return ical_yytext[0]; }
+	YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 111 "icallexer.l"
+{ ical_yylval.v_int=atoi(ical_yytext); return INTNUMBER; }
+	YY_BREAK
+
+
+case 9:
+YY_RULE_SETUP
+#line 116 "icallexer.l"
+{ return CHARACTER; }
+	YY_BREAK
+case 10:
+/* rule 10 can match eol */
+YY_RULE_SETUP
+#line 117 "icallexer.l"
+{ return EOL;}
+	YY_BREAK
+
+
+case 11:
+YY_RULE_SETUP
+#line 122 "icallexer.l"
+{ BEGIN(last_state); return COMMA; } 
+	YY_BREAK
+
+case 12:
+YY_RULE_SETUP
+#line 126 "icallexer.l"
+ECHO;
+	YY_BREAK
+#line 949 "icallexer.c"
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(quoted_string):
+case YY_STATE_EOF(binary_value):
+case YY_STATE_EOF(boolean_value):
+case YY_STATE_EOF(uri_value):
+case YY_STATE_EOF(time_value):
+case YY_STATE_EOF(duration_value):
+case YY_STATE_EOF(number_value):
+case YY_STATE_EOF(period_value):
+case YY_STATE_EOF(recur_value):
+case YY_STATE_EOF(text_value):
+case YY_STATE_EOF(utcoffset_value):
+case YY_STATE_EOF(enum_param_value):
+case YY_STATE_EOF(string_param_value):
+case YY_STATE_EOF(stringlist_param_value):
+case YY_STATE_EOF(keyword):
+case YY_STATE_EOF(line_start):
+case YY_STATE_EOF(component):
+case YY_STATE_EOF(seperator):
+case YY_STATE_EOF(parameter):
+case YY_STATE_EOF(end_of_value):
+case YY_STATE_EOF(paramtext):
+	yyterminate();
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed ical_yyin at a new source and called
+			 * ical_yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = ical_yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( ical_yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * ical_yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+} /* end of ical_yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			int num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				int new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					ical_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), (size_t) num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			ical_yyrestart(ical_yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) ical_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+			{
+			yy_current_state = (int) yy_def[yy_current_state];
+			if ( yy_current_state >= 67 )
+				yy_c = yy_meta[(unsigned int) yy_c];
+			}
+		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	register YY_CHAR yy_c = 1;
+	if ( yy_accept[yy_current_state] )
+		{
+		(yy_last_accepting_state) = yy_current_state;
+		(yy_last_accepting_cpos) = yy_cp;
+		}
+	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+		{
+		yy_current_state = (int) yy_def[yy_current_state];
+		if ( yy_current_state >= 67 )
+			yy_c = yy_meta[(unsigned int) yy_c];
+		}
+	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+	yy_is_jam = (yy_current_state == 66);
+
+	return yy_is_jam ? 0 : yy_current_state;
+}
+
+    static void yyunput (int c, register char * yy_bp )
+{
+	register char *yy_cp;
+    
+    yy_cp = (yy_c_buf_p);
+
+	/* undo effects of setting up ical_yytext */
+	*yy_cp = (yy_hold_char);
+
+	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+		{ /* need to shift things up to make room */
+		/* +2 for EOB chars. */
+		register int number_to_move = (yy_n_chars) + 2;
+		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+		register char *source =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+
+		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			*--dest = *--source;
+
+		yy_cp += (int) (dest - source);
+		yy_bp += (int) (dest - source);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
+
+		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+			YY_FATAL_ERROR( "flex scanner push-back overflow" );
+		}
+
+	*--yy_cp = (char) c;
+
+	(yytext_ptr) = yy_bp;
+	(yy_hold_char) = *yy_cp;
+	(yy_c_buf_p) = yy_cp;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			int offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					ical_yyrestart(ical_yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( ical_yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve ical_yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void ical_yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        ical_yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            ical_yy_create_buffer(ical_yyin,YY_BUF_SIZE );
+	}
+
+	ical_yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	ical_yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void ical_yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		ical_yypop_buffer_state();
+	 *		ical_yypush_buffer_state(new_buffer);
+     */
+	ical_yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	ical_yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (ical_yywrap()) processing, but the only time this flag
+	 * is looked at is after ical_yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void ical_yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	ical_yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE ical_yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) ical_yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in ical_yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) ical_yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in ical_yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	ical_yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with ical_yy_create_buffer()
+ * 
+ */
+    void ical_yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		ical_yyfree((void *) b->yy_ch_buf  );
+
+	ical_yyfree((void *) b  );
+}
+
+#ifndef __cplusplus
+extern int isatty (int );
+#endif /* __cplusplus */
+    
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a ical_yyrestart() or at EOF.
+ */
+    static void ical_yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	ical_yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then ical_yy_init_buffer was _probably_
+     * called from ical_yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void ical_yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		ical_yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void ical_yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	ical_yyensure_buffer_stack();
+
+	/* This block is copied from ical_yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from ical_yy_switch_to_buffer. */
+	ical_yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void ical_yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	ical_yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		ical_yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void ical_yyensure_buffer_stack (void)
+{
+	int num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)ical_yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in ical_yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)ical_yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in ical_yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE ical_yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) ical_yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in ical_yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	ical_yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to ical_yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       ical_yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE ical_yy_scan_string (yyconst char * yystr )
+{
+    
+	return ical_yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to ical_yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE ical_yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	int i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) ical_yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in ical_yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = ical_yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in ical_yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up ical_yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		ical_yytext[ical_yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = ical_yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		ical_yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int ical_yyget_lineno  (void)
+{
+        
+    return ical_yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *ical_yyget_in  (void)
+{
+        return ical_yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *ical_yyget_out  (void)
+{
+        return ical_yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+int ical_yyget_leng  (void)
+{
+        return ical_yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *ical_yyget_text  (void)
+{
+        return ical_yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void ical_yyset_lineno (int  line_number )
+{
+    
+    ical_yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see ical_yy_switch_to_buffer
+ */
+void ical_yyset_in (FILE *  in_str )
+{
+        ical_yyin = in_str ;
+}
+
+void ical_yyset_out (FILE *  out_str )
+{
+        ical_yyout = out_str ;
+}
+
+int ical_yyget_debug  (void)
+{
+        return ical_yy_flex_debug;
+}
+
+void ical_yyset_debug (int  bdebug )
+{
+        ical_yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from ical_yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    ical_yyin = stdin;
+    ical_yyout = stdout;
+#else
+    ical_yyin = (FILE *) 0;
+    ical_yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * ical_yylex_init()
+     */
+    return 0;
+}
+
+/* ical_yylex_destroy is for both reentrant and non-reentrant scanners. */
+int ical_yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		ical_yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		ical_yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	ical_yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * ical_yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *ical_yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *ical_yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void ical_yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see ical_yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 126 "icallexer.l"
+
+
+
+int ical_yywrap()
+{
+     return 1;
+}
+
+
+void set_parser_value_state(icalvalue_kind kind)
+{
+
+    switch (kind){
+
+	case ICAL_UTCOFFSET_VALUE:
+	    {BEGIN(utcoffset_value);break;}
+
+	case ICAL_DATETIMEPERIOD_VALUE:
+	case ICAL_DURATION_VALUE:
+	case ICAL_PERIOD_VALUE:
+	    {BEGIN(time_value);break;}
+
+	default:
+	{
+	   assert(1==0);
+	}
+    }
+}
+
+void init_str_buf(void)
+{
+   str_buf = icalmemory_tmp_buffer(ICAL_MAX_STR_CONST);
+   str_buf_p = str_buf;
+   buf_sz = ICAL_MAX_STR_CONST;
+
+
+}
+
+
diff --git a/src/plugins/vcalendar/libical/libical/icalrestriction.c b/src/plugins/vcalendar/libical/libical/icalrestriction.c
new file mode 100644
index 0000000..cf65e0e
--- /dev/null
+++ b/src/plugins/vcalendar/libical/libical/icalrestriction.c
@@ -0,0 +1,1778 @@
+/*  -*- Mode: C -*- */
+/*  ======================================================================
+  File: icalrestriction.c
+    
+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
+ ======================================================================*/
+/*#line 7 "icalrestriction.c.in"*/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "icalrestriction.h"
+#include "icalenums.h"
+#include "icalerror.h"
+
+#include <assert.h>
+#include <stdio.h> /* For snprintf */   
+
+#define TMP_BUF_SIZE 1024
+
+
+/* Define the structs for the restrictions. these data are filled out
+in machine generated code below */
+
+struct icalrestriction_property_record;
+
+typedef char* (*restriction_func)(struct icalrestriction_property_record* rec,icalcomponent* comp,icalproperty* prop);
+
+
+typedef struct icalrestriction_property_record {
+	icalproperty_method method;
+	icalcomponent_kind component;
+	icalproperty_kind property;
+	icalrestriction_kind restriction;
+	restriction_func function;
+} icalrestriction_property_record;
+
+
+typedef struct icalrestriction_component_record {
+	icalproperty_method method;
+	icalcomponent_kind component;
+	icalcomponent_kind subcomponent;
+	icalrestriction_kind restriction;
+	restriction_func function;
+} icalrestriction_component_record;
+
+icalrestriction_property_record*
+icalrestriction_get_property_restriction(icalproperty_method method,
+					 icalcomponent_kind component,
+					 icalproperty_kind property);
+icalrestriction_component_record*
+icalrestriction_get_component_restriction(icalproperty_method method,
+					  icalcomponent_kind component,
+					  icalcomponent_kind subcomponent);
+
+icalrestriction_component_record icalrestriction_component_records[];
+icalrestriction_property_record icalrestriction_property_records[]; 
+
+icalrestriction_property_record null_prop_record =   {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_PROPERTY,ICAL_RESTRICTION_UNKNOWN,0};
+icalrestriction_component_record null_comp_record =   {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_COMPONENT,ICAL_RESTRICTION_UNKNOWN,0};
+
+
+/* The each row gives the result of comparing a restriction against a
+   count. The columns in each row represent 0,1,2+. '-1' indicates
+   'invalid, 'don't care' or 'needs more analysis' So, for
+   ICAL_RESTRICTION_ONE, if there is 1 of a property with that
+   restriction, it passes, but if there are 0 or 2+, it fails. */
+
+char compare_map[ICAL_RESTRICTION_UNKNOWN+1][3] = {
+    { 1, 1, 1},/*ICAL_RESTRICTION_NONE*/
+    { 1, 0, 0},/*ICAL_RESTRICTION_ZERO*/
+    { 0, 1, 0},/*ICAL_RESTRICTION_ONE*/
+    { 1, 1, 1},/*ICAL_RESTRICTION_ZEROPLUS*/
+    { 0, 1, 1},/*ICAL_RESTRICTION_ONEPLUS*/
+    { 1, 1, 0},/*ICAL_RESTRICTION_ZEROORONE*/
+    { 1, 1, 0},/*ICAL_RESTRICTION_ONEEXCLUSIVE*/
+    { 1, 1, 0},/*ICAL_RESTRICTION_ONEMUTUAL*/
+    { 1, 1, 1} /*ICAL_RESTRICTION_UNKNOWN*/
+};
+
+char restr_string_map[ICAL_RESTRICTION_UNKNOWN+1][60] = {
+    "unknown number",/*ICAL_RESTRICTION_NONE*/
+    "0",/*ICAL_RESTRICTION_ZERO*/
+    "1",/*ICAL_RESTRICTION_ONE*/
+    "zero or more",/*ICAL_RESTRICTION_ZEROPLUS*/
+    "one or more" ,/*ICAL_RESTRICTION_ONEPLUS*/
+    "zero or one",/*ICAL_RESTRICTION_ZEROORONE*/
+    "zero or one, exclusive with another property",/*ICAL_RESTRICTION_ONEEXCLUSIVE*/
+    "zero or one, mutual with another property",/*ICAL_RESTRICTION_ONEMUTUAL*/
+    "unknown number" /*ICAL_RESTRICTION_UNKNOWN*/
+};
+
+
+int
+icalrestriction_compare(icalrestriction_kind restr, int count){
+
+    if ( restr < ICAL_RESTRICTION_NONE || restr > ICAL_RESTRICTION_UNKNOWN
+	 || count < 0){
+	return -1;
+    }
+
+    if (count > 2) {
+	count = 2;
+    }
+
+    return compare_map[restr][count];
+
+}
+
+/* Special case routines */
+
+char* icalrestriction_may_be_draft_final_canceled(
+    icalrestriction_property_record *rec,
+    icalcomponent* comp, 
+    icalproperty* prop)
+{
+
+    icalproperty_status stat = icalproperty_get_status(prop);
+
+    if( !( stat == ICAL_STATUS_DRAFT ||
+	   stat == ICAL_STATUS_FINAL ||
+	   stat == ICAL_STATUS_CANCELLED )){
+
+	return "Failed iTIP restrictions for STATUS property. Value must be one of DRAFT, FINAL, or CANCELED";
+
+    }
+
+    return 0;    
+}
+
+char* icalrestriction_may_be_comp_need_process(
+    icalrestriction_property_record *rec,
+    icalcomponent* comp, 
+    icalproperty* prop)
+{
+    icalproperty_status stat = icalproperty_get_status(prop);
+
+    if( !( stat == ICAL_STATUS_COMPLETED ||
+	   stat == ICAL_STATUS_NEEDSACTION ||
+	   stat == ICAL_STATUS_INPROCESS )){
+
+	return "Failed iTIP restrictions for STATUS property. Value must be one of COMPLETED, NEEDS-ACTION or IN-PROCESS";
+
+    }
+
+    return 0;    
+}
+char* icalrestriction_may_be_tent_conf(icalrestriction_property_record *rec,
+				       icalcomponent* comp, 
+				       icalproperty* prop){
+    icalproperty_status stat = icalproperty_get_status(prop);
+
+    if( !( stat == ICAL_STATUS_TENTATIVE ||
+	   stat == ICAL_STATUS_CONFIRMED )){
+
+	return "Failed iTIP restrictions for STATUS property. Value must be one of TENTATIVE or CONFIRMED";
+
+    }
+
+    return 0;    
+}
+char* icalrestriction_may_be_tent_conf_cancel(
+    icalrestriction_property_record *rec,
+    icalcomponent* comp, 
+    icalproperty* prop)
+{
+    icalproperty_status stat = icalproperty_get_status(prop);
+
+    if( !( stat == ICAL_STATUS_TENTATIVE ||
+	   stat == ICAL_STATUS_CONFIRMED ||
+	   stat == ICAL_STATUS_CANCELLED )){
+
+	return "Failed iTIP restrictions for STATUS property. Value must be one of TENTATIVE, CONFIRMED or CANCELED";
+
+    }
+
+    return 0;    
+}
+
+char* icalrestriction_must_be_cancel_if_present(
+    icalrestriction_property_record *rec,
+    icalcomponent* comp, 
+    icalproperty* prop)
+{
+    /* This routine will not be called if prop == 0 */
+    icalproperty_status stat = icalproperty_get_status(prop);
+
+    if( stat != ICAL_STATUS_CANCELLED)
+    {
+	return "Failed iTIP restrictions for STATUS property. Value must be CANCELLED";
+
+    }
+ 
+
+    return 0;    
+}
+
+char* icalrestriction_must_be_canceled_no_attendee(
+    icalrestriction_property_record *rec,
+    icalcomponent* comp, 
+    icalproperty* prop)
+{
+
+    /* Hack. see rfc2446, 3.2.5 CANCEL for porperty STATUS. I don't
+       understand the note */
+
+    return 0;    
+}
+char* icalrestriction_must_be_recurring(icalrestriction_property_record *rec,
+					icalcomponent* comp, 
+					icalproperty* prop){
+    /* Hack */
+    return 0;    
+}
+char* icalrestriction_must_have_duration(icalrestriction_property_record *rec,
+					 icalcomponent* comp, 
+					 icalproperty* prop){
+    
+    if( !icalcomponent_get_first_property(comp,ICAL_DURATION_PROPERTY)){
+
+	return "Failed iTIP restrictions for STATUS property. This component must have a DURATION property";
+
+    }
+
+    return 0;    
+}
+char* icalrestriction_must_have_repeat(icalrestriction_property_record *rec,
+				       icalcomponent* comp, 
+				       icalproperty* prop){
+    if( !icalcomponent_get_first_property(comp,ICAL_REPEAT_PROPERTY)){
+
+	return "Failed iTIP restrictions for STATUS property. This component must have a REPEAT property";
+
+    }
+
+    return 0;    
+}
+char* icalrestriction_must_if_tz_ref(icalrestriction_property_record *rec,
+				     icalcomponent* comp, 
+				     icalproperty* prop){
+
+    /* Hack */
+    return 0;    
+}
+char* icalrestriction_no_dtend(icalrestriction_property_record *rec,
+			       icalcomponent* comp, 
+			       icalproperty* prop){
+
+    if( !icalcomponent_get_first_property(comp,ICAL_DTEND_PROPERTY)){
+
+	return "Failed iTIP restrictions for STATUS property. The component must not have both DURATION and DTEND";
+
+    }
+
+    return 0;    
+}
+char* icalrestriction_no_duration(icalrestriction_property_record *rec,
+				icalcomponent* comp, 
+				  icalproperty* prop){
+
+    /* _no_dtend takes care of this one */
+    return 0;    
+}                                     
+
+
+int icalrestriction_check_component(icalproperty_method method,
+				    icalcomponent* comp)
+{
+    icalproperty_kind kind;
+    icalcomponent_kind comp_kind;
+    icalrestriction_kind restr;
+    icalrestriction_property_record *prop_record;
+    char* funcr = 0;
+    icalproperty *prop;
+
+    int count;
+    int compare;
+    int valid = 1;
+
+    comp_kind = icalcomponent_isa(comp);
+
+    /* Check all of the properties in this component */
+
+    for(kind = ICAL_ANY_PROPERTY+1; kind != ICAL_NO_PROPERTY; kind++){
+	count = icalcomponent_count_properties(comp, kind);
+	
+	prop_record = icalrestriction_get_property_restriction(method, 
+							 comp_kind,
+							 kind);
+
+	restr = prop_record->restriction;
+
+	if(restr == ICAL_RESTRICTION_ONEEXCLUSIVE ||
+	    restr == ICAL_RESTRICTION_ONEMUTUAL) {
+
+	    /* First treat is as a 0/1 restriction */
+	    restr = ICAL_RESTRICTION_ZEROORONE;
+	    compare = icalrestriction_compare(restr,count);
+
+	} else {
+
+	    compare = icalrestriction_compare(restr,count);
+	}
+
+	assert(compare != -1);
+
+	if (compare == 0){
+	    char temp[TMP_BUF_SIZE];
+	    
+	    snprintf(temp, TMP_BUF_SIZE,"Failed iTIP restrictions for %s property. Expected %s instances of the property and got %d",
+		    icalenum_property_kind_to_string(kind),
+		    restr_string_map[restr], count);
+	    
+	    icalcomponent_add_property
+		(comp,
+		 icalproperty_vanew_xlicerror(
+		     temp,
+		     icalparameter_new_xlicerrortype(ICAL_XLICERRORTYPE_INVALIDITIP),
+		     0));   
+	} 
+
+
+	prop = icalcomponent_get_first_property(comp, kind);
+
+	if (prop != 0 && prop_record->function !=0  ){
+	    funcr =  prop_record->function(prop_record,comp,prop);
+	}
+
+	if(funcr !=0){
+	    icalcomponent_add_property
+		(comp,
+		 icalproperty_vanew_xlicerror(
+		     funcr,
+		     icalparameter_new_xlicerrortype(
+			 ICAL_XLICERRORTYPE_INVALIDITIP),
+		     0));   
+
+	    compare = 0;
+	}
+
+	valid = valid && compare;
+    }
+
+
+
+    return valid;
+
+
+}
+
+int icalrestriction_check(icalcomponent* outer_comp)
+{
+    icalcomponent_kind comp_kind;
+    icalproperty_method method;
+    icalcomponent* inner_comp;
+    icalproperty *method_prop;
+    int valid;
+    
+    icalerror_check_arg_rz( (outer_comp!=0), "outer comp");
+
+
+    /* Get the Method value from the outer component */
+
+    comp_kind = icalcomponent_isa(outer_comp);
+
+    if (comp_kind != ICAL_VCALENDAR_COMPONENT){
+	icalerror_set_errno(ICAL_BADARG_ERROR);
+	return 0;
+    }
+
+    method_prop = icalcomponent_get_first_property(outer_comp,
+						   ICAL_METHOD_PROPERTY);
+
+    if (method_prop == 0){
+	method = ICAL_METHOD_NONE;
+    } else {
+	method = icalproperty_get_method(method_prop);
+    }
+   
+
+    /* Check the VCALENDAR wrapper */
+    valid = icalrestriction_check_component(ICAL_METHOD_NONE,outer_comp);
+
+
+    /* Now check the inner components */
+
+    for(inner_comp= icalcomponent_get_first_component(outer_comp,
+						      ICAL_ANY_COMPONENT);
+	inner_comp != 0;
+	inner_comp= icalcomponent_get_next_component(outer_comp,
+						     ICAL_ANY_COMPONENT)){
+
+	valid = valid && icalrestriction_check_component(method,inner_comp);
+
+    }
+
+
+    return valid;
+
+}
+
+icalrestriction_property_record*
+icalrestriction_get_property_restriction(icalproperty_method method,
+					 icalcomponent_kind component,
+					 icalproperty_kind property)
+{
+    int i;
+
+    for(i = 0;
+	icalrestriction_property_records[i].restriction != ICAL_RESTRICTION_NONE;
+	i++){
+
+	if (method == icalrestriction_property_records[i].method &&
+	    component == icalrestriction_property_records[i].component &&
+	    property ==  icalrestriction_property_records[i].property ){
+	    return  &icalrestriction_property_records[i];
+	}
+    }
+	
+    return &null_prop_record;
+}
+
+
+icalrestriction_component_record*
+icalrestriction_get_component_restriction(icalproperty_method method,
+					  icalcomponent_kind component,
+					  icalcomponent_kind subcomponent)
+{
+
+    int i;
+
+    for(i = 0;
+	icalrestriction_component_records[i].restriction != ICAL_RESTRICTION_NONE;
+	i++){
+
+	if (method == icalrestriction_component_records[i].method &&
+	    component == icalrestriction_component_records[i].component &&
+	    subcomponent ==  icalrestriction_component_records[i].subcomponent ){
+	    return  &icalrestriction_component_records[i];
+	}
+    }
+	
+    return &null_comp_record;
+}
+
+/* Everything below this line is machine generated. Do not edit. */
+icalrestriction_property_record icalrestriction_property_records[] = {
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_tent_conf_cancel},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_tent_conf},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_tent_conf},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE ,icalrestriction_no_duration},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_canceled_no_attendee},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_tent_conf_cancel},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_comp_need_process},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_comp_need_process},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_canceled_no_attendee},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_comp_need_process},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_draft_final_canceled},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_cancel_if_present},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_repeat},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_duration},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_repeat},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_duration},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_repeat},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_duration},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_repeat},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_duration},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ONE,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_PROPERTY,ICAL_RESTRICTION_NONE}
+};
+icalrestriction_component_record icalrestriction_component_records[] = {
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_if_tz_ref},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,icalrestriction_must_if_tz_ref},
+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,icalrestriction_must_if_tz_ref},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,icalrestriction_must_if_tz_ref},
+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
+    {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_COMPONENT,ICAL_RESTRICTION_NONE}
+};
diff --git a/src/plugins/vcalendar/libical/libical/icalversion.h b/src/plugins/vcalendar/libical/libical/icalversion.h
new file mode 100644
index 0000000..a20a5b1
--- /dev/null
+++ b/src/plugins/vcalendar/libical/libical/icalversion.h
@@ -0,0 +1,7 @@
+#ifndef ICAL_VERSION_H
+#define ICAL_VERSION_H
+
+#define ICAL_PACKAGE "claws-mail"
+#define ICAL_VERSION "3.14.0git18"
+
+#endif
diff --git a/src/plugins/vcalendar/libical/libical/icalyacc.c b/src/plugins/vcalendar/libical/libical/icalyacc.c
new file mode 100644
index 0000000..e696fbe
--- /dev/null
+++ b/src/plugins/vcalendar/libical/libical/icalyacc.c
@@ -0,0 +1,2169 @@
+/* A Bison parser, made by GNU Bison 3.0.2.  */
+
+/* Bison implementation for Yacc-like parsers in C
+
+   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+   simplifying the original so-called "semantic" parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Bison version.  */
+#define YYBISON_VERSION "3.0.2"
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 0
+
+/* Push parsers.  */
+#define YYPUSH 0
+
+/* Pull parsers.  */
+#define YYPULL 1
+
+
+/* Substitute the variable and function names.  */
+#define yyparse         ical_yyparse
+#define yylex           ical_yylex
+#define yyerror         ical_yyerror
+#define yydebug         ical_yydebug
+#define yynerrs         ical_yynerrs
+
+#define yylval          ical_yylval
+#define yychar          ical_yychar
+
+/* Copy the first part of user declarations.  */
+#line 1 "icalyacc.y" /* yacc.c:339  */
+
+/* -*- Mode: C -*-
+  ======================================================================
+  FILE: icalitip.y
+  CREATOR: eric 10 June 1999
+  
+  DESCRIPTION:
+  
+  $Id$
+  $Locker$
+
+  (C) COPYRIGHT 1999 Eric Busboom 
+  http://www.softwarestudio.org
+
+  The contents of this file are subject to the Mozilla Public License
+  Version 1.0 (the "License"); you may not use this file except in
+  compliance with the License. You may obtain a copy of the License at
+  http://www.mozilla.org/MPL/
+ 
+  Software distributed under the License is distributed on an "AS IS"
+  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+  the License for the specific language governing rights and
+  limitations under the License.
+
+  The original author is Eric Busboom
+  The original code is icalitip.y
+
+
+
+  =======================================================================*/
+
+#include <stdlib.h>
+#include <string.h> /* for strdup() */
+#include "icalparser.h"
+#include "pvl.h"
+
+icalvalue *icalparser_yy_value; /* Current Value */
+
+void ical_yyerror(char* s);
+void icalparser_clear_flex_input();  
+int ical_yy_lex(void);
+
+/* Globals for UTCOFFSET values */
+int utc; 
+int utc_b; 
+int utcsign;
+
+/* Globals for DURATION values */
+struct icaldurationtype duration;
+
+/* Globals for TRIGGER values */
+struct icaltriggertype trigger;
+
+void copy_list(short* array, size_t size);
+void add_prop(icalproperty_kind);
+void icalparser_fill_date(struct tm* t, char* dstr);
+void icalparser_fill_time(struct tm* t, char* tstr);
+void set_value_type(icalvalue_kind kind);
+void set_parser_value_state();
+struct icaltimetype fill_datetime(char* d, char* t);
+void ical_yy_error(char *s); /* Don't know why I need this.... */
+int yylex(void); /* Or this. */
+
+
+
+/* Set the state of the lexer so it will interpret values ( iCAL
+   VALUEs, that is, ) correctly. */
+
+
+#line 144 "icalyacc.c" /* yacc.c:339  */
+
+# ifndef YY_NULLPTR
+#  if defined __cplusplus && 201103L <= __cplusplus
+#   define YY_NULLPTR nullptr
+#  else
+#   define YY_NULLPTR 0
+#  endif
+# endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* In a future release of Bison, this section will be replaced
+   by #include "y.tab.h".  */
+#ifndef YY_ICAL_YY_Y_TAB_H_INCLUDED
+# define YY_ICAL_YY_Y_TAB_H_INCLUDED
+/* Debug traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 1
+#endif
+#if YYDEBUG
+extern int ical_yydebug;
+#endif
+
+/* Token type.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+  enum yytokentype
+  {
+    DIGITS = 258,
+    INTNUMBER = 259,
+    FLOATNUMBER = 260,
+    STRING = 261,
+    EOL = 262,
+    EQUALS = 263,
+    CHARACTER = 264,
+    COLON = 265,
+    COMMA = 266,
+    SEMICOLON = 267,
+    MINUS = 268,
+    TIMESEPERATOR = 269,
+    TRUE = 270,
+    FALSE = 271,
+    FREQ = 272,
+    BYDAY = 273,
+    BYHOUR = 274,
+    BYMINUTE = 275,
+    BYMONTH = 276,
+    BYMONTHDAY = 277,
+    BYSECOND = 278,
+    BYSETPOS = 279,
+    BYWEEKNO = 280,
+    BYYEARDAY = 281,
+    DAILY = 282,
+    MINUTELY = 283,
+    MONTHLY = 284,
+    SECONDLY = 285,
+    WEEKLY = 286,
+    HOURLY = 287,
+    YEARLY = 288,
+    INTERVAL = 289,
+    COUNT = 290,
+    UNTIL = 291,
+    WKST = 292,
+    MO = 293,
+    SA = 294,
+    SU = 295,
+    TU = 296,
+    WE = 297,
+    TH = 298,
+    FR = 299,
+    BIT8 = 300,
+    ACCEPTED = 301,
+    ADD = 302,
+    AUDIO = 303,
+    BASE64 = 304,
+    BINARY = 305,
+    BOOLEAN = 306,
+    BUSY = 307,
+    BUSYTENTATIVE = 308,
+    BUSYUNAVAILABLE = 309,
+    CALADDRESS = 310,
+    CANCEL = 311,
+    CANCELLED = 312,
+    CHAIR = 313,
+    CHILD = 314,
+    COMPLETED = 315,
+    CONFIDENTIAL = 316,
+    CONFIRMED = 317,
+    COUNTER = 318,
+    DATE = 319,
+    DATETIME = 320,
+    DECLINECOUNTER = 321,
+    DECLINED = 322,
+    DELEGATED = 323,
+    DISPLAY = 324,
+    DRAFT = 325,
+    DURATION = 326,
+    EMAIL = 327,
+    END = 328,
+    FINAL = 329,
+    FLOAT = 330,
+    FREE = 331,
+    GREGORIAN = 332,
+    GROUP = 333,
+    INDIVIDUAL = 334,
+    INPROCESS = 335,
+    INTEGER = 336,
+    NEEDSACTION = 337,
+    NONPARTICIPANT = 338,
+    OPAQUE = 339,
+    OPTPARTICIPANT = 340,
+    PARENT = 341,
+    PERIOD = 342,
+    PRIVATE = 343,
+    PROCEDURE = 344,
+    PUBLIC = 345,
+    PUBLISH = 346,
+    RECUR = 347,
+    REFRESH = 348,
+    REPLY = 349,
+    REQPARTICIPANT = 350,
+    REQUEST = 351,
+    RESOURCE = 352,
+    ROOM = 353,
+    SIBLING = 354,
+    START = 355,
+    TENTATIVE = 356,
+    TEXT = 357,
+    THISANDFUTURE = 358,
+    THISANDPRIOR = 359,
+    TIME = 360,
+    TRANSPAENT = 361,
+    UNKNOWN = 362,
+    UTCOFFSET = 363,
+    XNAME = 364,
+    ALTREP = 365,
+    CN = 366,
+    CUTYPE = 367,
+    DAYLIGHT = 368,
+    DIR = 369,
+    ENCODING = 370,
+    EVENT = 371,
+    FBTYPE = 372,
+    FMTTYPE = 373,
+    LANGUAGE = 374,
+    MEMBER = 375,
+    PARTSTAT = 376,
+    RANGE = 377,
+    RELATED = 378,
+    RELTYPE = 379,
+    ROLE = 380,
+    RSVP = 381,
+    SENTBY = 382,
+    STANDARD = 383,
+    URI = 384,
+    CHARSET = 385,
+    TIME_CHAR = 386,
+    UTC_CHAR = 387
+  };
+#endif
+/* Tokens.  */
+#define DIGITS 258
+#define INTNUMBER 259
+#define FLOATNUMBER 260
+#define STRING 261
+#define EOL 262
+#define EQUALS 263
+#define CHARACTER 264
+#define COLON 265
+#define COMMA 266
+#define SEMICOLON 267
+#define MINUS 268
+#define TIMESEPERATOR 269
+#define TRUE 270
+#define FALSE 271
+#define FREQ 272
+#define BYDAY 273
+#define BYHOUR 274
+#define BYMINUTE 275
+#define BYMONTH 276
+#define BYMONTHDAY 277
+#define BYSECOND 278
+#define BYSETPOS 279
+#define BYWEEKNO 280
+#define BYYEARDAY 281
+#define DAILY 282
+#define MINUTELY 283
+#define MONTHLY 284
+#define SECONDLY 285
+#define WEEKLY 286
+#define HOURLY 287
+#define YEARLY 288
+#define INTERVAL 289
+#define COUNT 290
+#define UNTIL 291
+#define WKST 292
+#define MO 293
+#define SA 294
+#define SU 295
+#define TU 296
+#define WE 297
+#define TH 298
+#define FR 299
+#define BIT8 300
+#define ACCEPTED 301
+#define ADD 302
+#define AUDIO 303
+#define BASE64 304
+#define BINARY 305
+#define BOOLEAN 306
+#define BUSY 307
+#define BUSYTENTATIVE 308
+#define BUSYUNAVAILABLE 309
+#define CALADDRESS 310
+#define CANCEL 311
+#define CANCELLED 312
+#define CHAIR 313
+#define CHILD 314
+#define COMPLETED 315
+#define CONFIDENTIAL 316
+#define CONFIRMED 317
+#define COUNTER 318
+#define DATE 319
+#define DATETIME 320
+#define DECLINECOUNTER 321
+#define DECLINED 322
+#define DELEGATED 323
+#define DISPLAY 324
+#define DRAFT 325
+#define DURATION 326
+#define EMAIL 327
+#define END 328
+#define FINAL 329
+#define FLOAT 330
+#define FREE 331
+#define GREGORIAN 332
+#define GROUP 333
+#define INDIVIDUAL 334
+#define INPROCESS 335
+#define INTEGER 336
+#define NEEDSACTION 337
+#define NONPARTICIPANT 338
+#define OPAQUE 339
+#define OPTPARTICIPANT 340
+#define PARENT 341
+#define PERIOD 342
+#define PRIVATE 343
+#define PROCEDURE 344
+#define PUBLIC 345
+#define PUBLISH 346
+#define RECUR 347
+#define REFRESH 348
+#define REPLY 349
+#define REQPARTICIPANT 350
+#define REQUEST 351
+#define RESOURCE 352
+#define ROOM 353
+#define SIBLING 354
+#define START 355
+#define TENTATIVE 356
+#define TEXT 357
+#define THISANDFUTURE 358
+#define THISANDPRIOR 359
+#define TIME 360
+#define TRANSPAENT 361
+#define UNKNOWN 362
+#define UTCOFFSET 363
+#define XNAME 364
+#define ALTREP 365
+#define CN 366
+#define CUTYPE 367
+#define DAYLIGHT 368
+#define DIR 369
+#define ENCODING 370
+#define EVENT 371
+#define FBTYPE 372
+#define FMTTYPE 373
+#define LANGUAGE 374
+#define MEMBER 375
+#define PARTSTAT 376
+#define RANGE 377
+#define RELATED 378
+#define RELTYPE 379
+#define ROLE 380
+#define RSVP 381
+#define SENTBY 382
+#define STANDARD 383
+#define URI 384
+#define CHARSET 385
+#define TIME_CHAR 386
+#define UTC_CHAR 387
+
+/* Value type.  */
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE YYSTYPE;
+union YYSTYPE
+{
+#line 71 "icalyacc.y" /* yacc.c:355  */
+
+	float v_float;
+	int   v_int;
+	char* v_string;
+
+#line 454 "icalyacc.c" /* yacc.c:355  */
+};
+# define YYSTYPE_IS_TRIVIAL 1
+# define YYSTYPE_IS_DECLARED 1
+#endif
+
+
+extern YYSTYPE ical_yylval;
+
+int ical_yyparse (void);
+
+#endif /* !YY_ICAL_YY_Y_TAB_H_INCLUDED  */
+
+/* Copy the second part of user declarations.  */
+
+#line 469 "icalyacc.c" /* yacc.c:358  */
+
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#else
+typedef signed char yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+#  define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+#  define YYSIZE_T size_t
+# elif ! defined YYSIZE_T
+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T size_t
+# else
+#  define YYSIZE_T unsigned int
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if defined YYENABLE_NLS && YYENABLE_NLS
+#  if ENABLE_NLS
+#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
+#  endif
+# endif
+# ifndef YY_
+#  define YY_(Msgid) Msgid
+# endif
+#endif
+
+#ifndef YY_ATTRIBUTE
+# if (defined __GNUC__                                               \
+      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
+     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
+#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
+# else
+#  define YY_ATTRIBUTE(Spec) /* empty */
+# endif
+#endif
+
+#ifndef YY_ATTRIBUTE_PURE
+# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
+#endif
+
+#ifndef YY_ATTRIBUTE_UNUSED
+# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
+#endif
+
+#if !defined _Noreturn \
+     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
+# if defined _MSC_VER && 1200 <= _MSC_VER
+#  define _Noreturn __declspec (noreturn)
+# else
+#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E.  */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(E) ((void) (E))
+#else
+# define YYUSE(E) /* empty */
+#endif
+
+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+    _Pragma ("GCC diagnostic push") \
+    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
+    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
+    _Pragma ("GCC diagnostic pop")
+#else
+# define YY_INITIAL_VALUE(Value) Value
+#endif
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
+#endif
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
+#endif
+
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# ifdef YYSTACK_USE_ALLOCA
+#  if YYSTACK_USE_ALLOCA
+#   ifdef __GNUC__
+#    define YYSTACK_ALLOC __builtin_alloca
+#   elif defined __BUILTIN_VA_ARG_INCR
+#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+#   elif defined _AIX
+#    define YYSTACK_ALLOC __alloca
+#   elif defined _MSC_VER
+#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+#    define alloca _alloca
+#   else
+#    define YYSTACK_ALLOC alloca
+#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
+#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
+#     ifndef EXIT_SUCCESS
+#      define EXIT_SUCCESS 0
+#     endif
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's 'empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+    /* The OS might guarantee only one guard page at the bottom of the stack,
+       and a page size can be as small as 4096 bytes.  So we cannot safely
+       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
+       to allow for a few compiler-allocated temporary stack slots.  */
+#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+#  endif
+# else
+#  define YYSTACK_ALLOC YYMALLOC
+#  define YYSTACK_FREE YYFREE
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+#  endif
+#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
+       && ! ((defined YYMALLOC || defined malloc) \
+             && (defined YYFREE || defined free)))
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   ifndef EXIT_SUCCESS
+#    define EXIT_SUCCESS 0
+#   endif
+#  endif
+#  ifndef YYMALLOC
+#   define YYMALLOC malloc
+#   if ! defined malloc && ! defined EXIT_SUCCESS
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+#  ifndef YYFREE
+#   define YYFREE free
+#   if ! defined free && ! defined EXIT_SUCCESS
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+# endif
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+#if (! defined yyoverflow \
+     && (! defined __cplusplus \
+         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  yytype_int16 yyss_alloc;
+  YYSTYPE yyvs_alloc;
+};
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+      + YYSTACK_GAP_MAXIMUM)
+
+# define YYCOPY_NEEDED 1
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
+    do                                                                  \
+      {                                                                 \
+        YYSIZE_T yynewbytes;                                            \
+        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
+        Stack = &yyptr->Stack_alloc;                                    \
+        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+        yyptr += yynewbytes / sizeof (*yyptr);                          \
+      }                                                                 \
+    while (0)
+
+#endif
+
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* Copy COUNT objects from SRC to DST.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if defined __GNUC__ && 1 < __GNUC__
+#   define YYCOPY(Dst, Src, Count) \
+      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
+#  else
+#   define YYCOPY(Dst, Src, Count)              \
+      do                                        \
+        {                                       \
+          YYSIZE_T yyi;                         \
+          for (yyi = 0; yyi < (Count); yyi++)   \
+            (Dst)[yyi] = (Src)[yyi];            \
+        }                                       \
+      while (0)
+#  endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
+/* YYFINAL -- State number of the termination state.  */
+#define YYFINAL  14
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   141
+
+/* YYNTOKENS -- Number of terminals.  */
+#define YYNTOKENS  142
+/* YYNNTS -- Number of nonterminals.  */
+#define YYNNTS  18
+/* YYNRULES -- Number of rules.  */
+#define YYNRULES  37
+/* YYNSTATES -- Number of states.  */
+#define YYNSTATES  51
+
+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
+   by yylex, with out-of-bounds checking.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   387
+
+#define YYTRANSLATE(YYX)                                                \
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
+   as returned by yylex, without out-of-bounds checking.  */
+static const yytype_uint8 yytranslate[] =
+{
+       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,   138,     2,   139,     2,   141,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,   137,     2,
+       2,     2,   134,     2,     2,     2,     2,   135,     2,     2,
+     140,     2,     2,   136,     2,     2,     2,   133,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131,   132
+};
+
+#if YYDEBUG
+  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
+static const yytype_uint16 yyrline[] =
+{
+       0,   179,   179,   180,   181,   182,   183,   184,   191,   207,
+     208,   212,   213,   216,   231,   232,   234,   239,   242,   245,
+     249,   253,   258,   262,   267,   272,   278,   281,   285,   290,
+     295,   300,   309,   330,   361,   362,   365,   370
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE || 0
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
+static const char *const yytname[] =
+{
+  "$end", "error", "$undefined", "DIGITS", "INTNUMBER", "FLOATNUMBER",
+  "STRING", "EOL", "EQUALS", "CHARACTER", "COLON", "COMMA", "SEMICOLON",
+  "MINUS", "TIMESEPERATOR", "TRUE", "FALSE", "FREQ", "BYDAY", "BYHOUR",
+  "BYMINUTE", "BYMONTH", "BYMONTHDAY", "BYSECOND", "BYSETPOS", "BYWEEKNO",
+  "BYYEARDAY", "DAILY", "MINUTELY", "MONTHLY", "SECONDLY", "WEEKLY",
+  "HOURLY", "YEARLY", "INTERVAL", "COUNT", "UNTIL", "WKST", "MO", "SA",
+  "SU", "TU", "WE", "TH", "FR", "BIT8", "ACCEPTED", "ADD", "AUDIO",
+  "BASE64", "BINARY", "BOOLEAN", "BUSY", "BUSYTENTATIVE",
+  "BUSYUNAVAILABLE", "CALADDRESS", "CANCEL", "CANCELLED", "CHAIR", "CHILD",
+  "COMPLETED", "CONFIDENTIAL", "CONFIRMED", "COUNTER", "DATE", "DATETIME",
+  "DECLINECOUNTER", "DECLINED", "DELEGATED", "DISPLAY", "DRAFT",
+  "DURATION", "EMAIL", "END", "FINAL", "FLOAT", "FREE", "GREGORIAN",
+  "GROUP", "INDIVIDUAL", "INPROCESS", "INTEGER", "NEEDSACTION",
+  "NONPARTICIPANT", "OPAQUE", "OPTPARTICIPANT", "PARENT", "PERIOD",
+  "PRIVATE", "PROCEDURE", "PUBLIC", "PUBLISH", "RECUR", "REFRESH", "REPLY",
+  "REQPARTICIPANT", "REQUEST", "RESOURCE", "ROOM", "SIBLING", "START",
+  "TENTATIVE", "TEXT", "THISANDFUTURE", "THISANDPRIOR", "TIME",
+  "TRANSPAENT", "UNKNOWN", "UTCOFFSET", "XNAME", "ALTREP", "CN", "CUTYPE",
+  "DAYLIGHT", "DIR", "ENCODING", "EVENT", "FBTYPE", "FMTTYPE", "LANGUAGE",
+  "MEMBER", "PARTSTAT", "RANGE", "RELATED", "RELTYPE", "ROLE", "RSVP",
+  "SENTBY", "STANDARD", "URI", "CHARSET", "TIME_CHAR", "UTC_CHAR", "'W'",
+  "'H'", "'M'", "'S'", "'D'", "'+'", "'-'", "'P'", "'/'", "$accept",
+  "value", "date_value", "utc_char", "utc_char_b", "datetime_value",
+  "dur_date", "dur_week", "dur_time", "dur_hour", "dur_minute",
+  "dur_second", "dur_day", "dur_prefix", "duration_value", "period_value",
+  "plusminus", "utcoffset_value", YY_NULLPTR
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[NUM] -- (External) token number corresponding to the
+   (internal) symbol number NUM (which must be that of a token).  */
+static const yytype_uint16 yytoknum[] =
+{
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
+     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
+     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
+     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
+     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
+     385,   386,   387,    87,    72,    77,    83,    68,    43,    45,
+      80,    47
+};
+# endif
+
+#define YYPACT_NINF -131
+
+#define yypact_value_is_default(Yystate) \
+  (!!((Yystate) == (-131)))
+
+#define YYTABLE_NINF -36
+
+#define yytable_value_is_error(Yytable_value) \
+  0
+
+  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+     STATE-NUM.  */
+static const yytype_int16 yypact[] =
+{
+      -1,  -131,  -127,     7,     8,     6,  -131,  -131,  -125,  -131,
+    -131,     9,  -131,    11,  -131,    -2,    12,  -115,  -130,    15,
+    -131,  -131,  -131,  -112,    16,  -131,  -120,  -131,  -131,  -126,
+    -131,  -131,  -131,  -131,  -131,     2,    19,    20,  -131,  -107,
+    -131,  -131,  -131,  -110,  -131,  -109,  -131,    23,  -104,  -131,
+    -131
+};
+
+  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+     Performed when YYTABLE does not specify something else to do.  Zero
+     means the default is an error.  */
+static const yytype_uint8 yydefact[] =
+{
+       0,     7,     8,    27,    28,     0,     2,     3,     0,     4,
+       5,     0,     6,     0,     1,     0,     0,     9,     0,     0,
+      29,    31,    30,    14,    36,    10,    13,    16,    25,     0,
+      17,    18,    19,    15,    37,    26,    20,    22,    24,     0,
+      27,    28,    33,     0,    21,     0,    23,     0,    11,    12,
+      32
+};
+
+  /* YYPGOTO[NTERM-NUM].  */
+static const yytype_int16 yypgoto[] =
+{
+    -131,  -131,  -131,  -131,  -131,  -131,  -131,  -131,    10,  -131,
+      -7,    -6,  -131,  -131,    -5,  -131,  -131,  -131
+};
+
+  /* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int8 yydefgoto[] =
+{
+      -1,     5,     6,    26,    50,     7,    20,    21,    22,    30,
+      31,    32,    23,     8,     9,    10,    11,    12
+};
+
+  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
+     positive, shift that token.  If negative, reduce the rule whose
+     number is the opposite.  If YYTABLE_NINF, syntax error.  */
+static const yytype_int8 yytable[] =
+{
+       1,    18,     2,    27,    13,    39,    14,    28,    36,    37,
+      38,   -34,   -35,    16,    17,    15,    24,    25,    29,    19,
+      34,    35,    43,    45,    47,    37,    48,    38,    49,    44,
+      42,    46,     0,    33,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    19,
+       0,     0,     0,     0,     0,     0,     0,     3,     4,   -26,
+      40,    41
+};
+
+static const yytype_int16 yycheck[] =
+{
+       1,     3,     3,   133,   131,     3,     0,   137,   134,   135,
+     136,     4,     4,     4,     3,   140,     4,   132,     3,   131,
+       4,   141,     3,     3,   131,   135,     3,   136,   132,    36,
+      35,    37,    -1,    23,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,
+     138,   139
+};
+
+  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+     symbol of state STATE-NUM.  */
+static const yytype_uint8 yystos[] =
+{
+       0,     1,     3,   138,   139,   143,   144,   147,   155,   156,
+     157,   158,   159,   131,     0,   140,     4,     3,     3,   131,
+     148,   149,   150,   154,     4,   132,   145,   133,   137,     3,
+     151,   152,   153,   150,     4,   141,   134,   135,   136,     3,
+     138,   139,   156,     3,   152,     3,   153,   131,     3,   132,
+     146
+};
+
+  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const yytype_uint8 yyr1[] =
+{
+       0,   142,   143,   143,   143,   143,   143,   143,   144,   145,
+     145,   146,   146,   147,   148,   148,   149,   150,   150,   150,
+     151,   151,   152,   152,   153,   154,   155,   155,   155,   156,
+     156,   156,   157,   157,   158,   158,   159,   159
+};
+
+  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
+static const yytype_uint8 yyr2[] =
+{
+       0,     2,     1,     1,     1,     1,     1,     1,     1,     0,
+       1,     0,     1,     4,     1,     2,     2,     2,     2,     2,
+       2,     3,     2,     3,     2,     2,     0,     1,     1,     3,
+       3,     3,     9,     6,     1,     1,     3,     4
+};
+
+
+#define yyerrok         (yyerrstatus = 0)
+#define yyclearin       (yychar = YYEMPTY)
+#define YYEMPTY         (-2)
+#define YYEOF           0
+
+#define YYACCEPT        goto yyacceptlab
+#define YYABORT         goto yyabortlab
+#define YYERROR         goto yyerrorlab
+
+
+#define YYRECOVERING()  (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value)                                  \
+do                                                              \
+  if (yychar == YYEMPTY)                                        \
+    {                                                           \
+      yychar = (Token);                                         \
+      yylval = (Value);                                         \
+      YYPOPSTACK (yylen);                                       \
+      yystate = *yyssp;                                         \
+      goto yybackup;                                            \
+    }                                                           \
+  else                                                          \
+    {                                                           \
+      yyerror (YY_("syntax error: cannot back up")); \
+      YYERROR;                                                  \
+    }                                                           \
+while (0)
+
+/* Error token number */
+#define YYTERROR        1
+#define YYERRCODE       256
+
+
+
+/* Enable debugging if requested.  */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args)                        \
+do {                                            \
+  if (yydebug)                                  \
+    YYFPRINTF Args;                             \
+} while (0)
+
+/* This macro is provided for backward compatibility. */
+#ifndef YY_LOCATION_PRINT
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+#endif
+
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
+do {                                                                      \
+  if (yydebug)                                                            \
+    {                                                                     \
+      YYFPRINTF (stderr, "%s ", Title);                                   \
+      yy_symbol_print (stderr,                                            \
+                  Type, Value); \
+      YYFPRINTF (stderr, "\n");                                           \
+    }                                                                     \
+} while (0)
+
+
+/*----------------------------------------.
+| Print this symbol's value on YYOUTPUT.  |
+`----------------------------------------*/
+
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+{
+  FILE *yyo = yyoutput;
+  YYUSE (yyo);
+  if (!yyvaluep)
+    return;
+# ifdef YYPRINT
+  if (yytype < YYNTOKENS)
+    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+  YYUSE (yytype);
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+{
+  YYFPRINTF (yyoutput, "%s %s (",
+             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
+
+  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+  YYFPRINTF (yyoutput, ")");
+}
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included).                                                   |
+`------------------------------------------------------------------*/
+
+static void
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (; yybottom <= yytop; yybottom++)
+    {
+      int yybot = *yybottom;
+      YYFPRINTF (stderr, " %d", yybot);
+    }
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)                            \
+do {                                                            \
+  if (yydebug)                                                  \
+    yy_stack_print ((Bottom), (Top));                           \
+} while (0)
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+static void
+yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
+{
+  unsigned long int yylno = yyrline[yyrule];
+  int yynrhs = yyr2[yyrule];
+  int yyi;
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+             yyrule - 1, yylno);
+  /* The symbols being reduced.  */
+  for (yyi = 0; yyi < yynrhs; yyi++)
+    {
+      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
+      yy_symbol_print (stderr,
+                       yystos[yyssp[yyi + 1 - yynrhs]],
+                       &(yyvsp[(yyi + 1) - (yynrhs)])
+                                              );
+      YYFPRINTF (stderr, "\n");
+    }
+}
+
+# define YY_REDUCE_PRINT(Rule)          \
+do {                                    \
+  if (yydebug)                          \
+    yy_reduce_print (yyssp, yyvsp, Rule); \
+} while (0)
+
+/* Nonzero means print parse trace.  It is left uninitialized so that
+   multiple parsers can coexist.  */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks.  */
+#ifndef YYINITDEPTH
+# define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+   if the built-in stack extension method is used).
+
+   Do not make this value too large; the results are undefined if
+   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+   evaluated with infinite-precision integer arithmetic.  */
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH 10000
+#endif
+
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+#  if defined __GLIBC__ && defined _STRING_H
+#   define yystrlen strlen
+#  else
+/* Return the length of YYSTR.  */
+static YYSIZE_T
+yystrlen (const char *yystr)
+{
+  YYSIZE_T yylen;
+  for (yylen = 0; yystr[yylen]; yylen++)
+    continue;
+  return yylen;
+}
+#  endif
+# endif
+
+# ifndef yystpcpy
+#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+#   define yystpcpy stpcpy
+#  else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+   YYDEST.  */
+static char *
+yystpcpy (char *yydest, const char *yysrc)
+{
+  char *yyd = yydest;
+  const char *yys = yysrc;
+
+  while ((*yyd++ = *yys++) != '\0')
+    continue;
+
+  return yyd - 1;
+}
+#  endif
+# endif
+
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+   quotes and backslashes, so that it's suitable for yyerror.  The
+   heuristic is that double-quoting is unnecessary unless the string
+   contains an apostrophe, a comma, or backslash (other than
+   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
+   null, do not copy; instead, return the length of what the result
+   would have been.  */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+  if (*yystr == '"')
+    {
+      YYSIZE_T yyn = 0;
+      char const *yyp = yystr;
+
+      for (;;)
+        switch (*++yyp)
+          {
+          case '\'':
+          case ',':
+            goto do_not_strip_quotes;
+
+          case '\\':
+            if (*++yyp != '\\')
+              goto do_not_strip_quotes;
+            /* Fall through.  */
+          default:
+            if (yyres)
+              yyres[yyn] = *yyp;
+            yyn++;
+            break;
+
+          case '"':
+            if (yyres)
+              yyres[yyn] = '\0';
+            return yyn;
+          }
+    do_not_strip_quotes: ;
+    }
+
+  if (! yyres)
+    return yystrlen (yystr);
+
+  return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+   about the unexpected token YYTOKEN for the state stack whose top is
+   YYSSP.
+
+   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
+   not large enough to hold the message.  In that case, also set
+   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
+   required number of bytes is too large to store.  */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+                yytype_int16 *yyssp, int yytoken)
+{
+  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
+  YYSIZE_T yysize = yysize0;
+  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+  /* Internationalized format string. */
+  const char *yyformat = YY_NULLPTR;
+  /* Arguments of yyformat. */
+  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+  /* Number of reported tokens (one for the "unexpected", one per
+     "expected"). */
+  int yycount = 0;
+
+  /* There are many possibilities here to consider:
+     - If this state is a consistent state with a default action, then
+       the only way this function was invoked is if the default action
+       is an error action.  In that case, don't check for expected
+       tokens because there are none.
+     - The only way there can be no lookahead present (in yychar) is if
+       this state is a consistent state with a default action.  Thus,
+       detecting the absence of a lookahead is sufficient to determine
+       that there is no unexpected or expected token to report.  In that
+       case, just report a simple "syntax error".
+     - Don't assume there isn't a lookahead just because this state is a
+       consistent state with a default action.  There might have been a
+       previous inconsistent state, consistent state with a non-default
+       action, or user semantic action that manipulated yychar.
+     - Of course, the expected token list depends on states to have
+       correct lookahead information, and it depends on the parser not
+       to perform extra reductions after fetching a lookahead from the
+       scanner and before detecting a syntax error.  Thus, state merging
+       (from LALR or IELR) and default reductions corrupt the expected
+       token list.  However, the list is correct for canonical LR with
+       one exception: it will still contain any token that will not be
+       accepted due to an error action in a later state.
+  */
+  if (yytoken != YYEMPTY)
+    {
+      int yyn = yypact[*yyssp];
+      yyarg[yycount++] = yytname[yytoken];
+      if (!yypact_value_is_default (yyn))
+        {
+          /* Start YYX at -YYN if negative to avoid negative indexes in
+             YYCHECK.  In other words, skip the first -YYN actions for
+             this state because they are default actions.  */
+          int yyxbegin = yyn < 0 ? -yyn : 0;
+          /* Stay within bounds of both yycheck and yytname.  */
+          int yychecklim = YYLAST - yyn + 1;
+          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+          int yyx;
+
+          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+                && !yytable_value_is_error (yytable[yyx + yyn]))
+              {
+                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+                  {
+                    yycount = 1;
+                    yysize = yysize0;
+                    break;
+                  }
+                yyarg[yycount++] = yytname[yyx];
+                {
+                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
+                  if (! (yysize <= yysize1
+                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+                    return 2;
+                  yysize = yysize1;
+                }
+              }
+        }
+    }
+
+  switch (yycount)
+    {
+# define YYCASE_(N, S)                      \
+      case N:                               \
+        yyformat = S;                       \
+      break
+      YYCASE_(0, YY_("syntax error"));
+      YYCASE_(1, YY_("syntax error, unexpected %s"));
+      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+    }
+
+  {
+    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
+    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+      return 2;
+    yysize = yysize1;
+  }
+
+  if (*yymsg_alloc < yysize)
+    {
+      *yymsg_alloc = 2 * yysize;
+      if (! (yysize <= *yymsg_alloc
+             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+      return 1;
+    }
+
+  /* Avoid sprintf, as that infringes on the user's name space.
+     Don't have undefined behavior even if the translation
+     produced a string with the wrong number of "%s"s.  */
+  {
+    char *yyp = *yymsg;
+    int yyi = 0;
+    while ((*yyp = *yyformat) != '\0')
+      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+        {
+          yyp += yytnamerr (yyp, yyarg[yyi++]);
+          yyformat += 2;
+        }
+      else
+        {
+          yyp++;
+          yyformat++;
+        }
+  }
+  return 0;
+}
+#endif /* YYERROR_VERBOSE */
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+{
+  YYUSE (yyvaluep);
+  if (!yymsg)
+    yymsg = "Deleting";
+  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+  YYUSE (yytype);
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
+}
+
+
+
+
+/* The lookahead symbol.  */
+int yychar;
+
+/* The semantic value of the lookahead symbol.  */
+YYSTYPE yylval;
+/* Number of syntax errors so far.  */
+int yynerrs;
+
+
+/*----------.
+| yyparse.  |
+`----------*/
+
+int
+yyparse (void)
+{
+    int yystate;
+    /* Number of tokens to shift before error messages enabled.  */
+    int yyerrstatus;
+
+    /* The stacks and their tools:
+       'yyss': related to states.
+       'yyvs': related to semantic values.
+
+       Refer to the stacks through separate pointers, to allow yyoverflow
+       to reallocate them elsewhere.  */
+
+    /* The state stack.  */
+    yytype_int16 yyssa[YYINITDEPTH];
+    yytype_int16 *yyss;
+    yytype_int16 *yyssp;
+
+    /* The semantic value stack.  */
+    YYSTYPE yyvsa[YYINITDEPTH];
+    YYSTYPE *yyvs;
+    YYSTYPE *yyvsp;
+
+    YYSIZE_T yystacksize;
+
+  int yyn;
+  int yyresult;
+  /* Lookahead token as an internal (translated) token number.  */
+  int yytoken = 0;
+  /* The variables used to return semantic value and location from the
+     action routines.  */
+  YYSTYPE yyval;
+
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
+
+  /* The number of symbols on the RHS of the reduced rule.
+     Keep to zero when no symbol should be popped.  */
+  int yylen = 0;
+
+  yyssp = yyss = yyssa;
+  yyvsp = yyvs = yyvsa;
+  yystacksize = YYINITDEPTH;
+
+  YYDPRINTF ((stderr, "Starting parse\n"));
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY; /* Cause a token to be read.  */
+  goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate.  |
+`------------------------------------------------------------*/
+ yynewstate:
+  /* In all cases, when you get here, the value and location stacks
+     have just been pushed.  So pushing a state here evens the stacks.  */
+  yyssp++;
+
+ yysetstate:
+  *yyssp = yystate;
+
+  if (yyss + yystacksize - 1 <= yyssp)
+    {
+      /* Get the current used size of the three stacks, in elements.  */
+      YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      {
+        /* Give user a chance to reallocate the stack.  Use copies of
+           these so that the &'s don't force the real ones into
+           memory.  */
+        YYSTYPE *yyvs1 = yyvs;
+        yytype_int16 *yyss1 = yyss;
+
+        /* Each stack pointer address is followed by the size of the
+           data in use in that stack, in bytes.  This used to be a
+           conditional around just the two extra args, but that might
+           be undefined if yyoverflow is a macro.  */
+        yyoverflow (YY_("memory exhausted"),
+                    &yyss1, yysize * sizeof (*yyssp),
+                    &yyvs1, yysize * sizeof (*yyvsp),
+                    &yystacksize);
+
+        yyss = yyss1;
+        yyvs = yyvs1;
+      }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+      goto yyexhaustedlab;
+# else
+      /* Extend the stack our own way.  */
+      if (YYMAXDEPTH <= yystacksize)
+        goto yyexhaustedlab;
+      yystacksize *= 2;
+      if (YYMAXDEPTH < yystacksize)
+        yystacksize = YYMAXDEPTH;
+
+      {
+        yytype_int16 *yyss1 = yyss;
+        union yyalloc *yyptr =
+          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+        if (! yyptr)
+          goto yyexhaustedlab;
+        YYSTACK_RELOCATE (yyss_alloc, yyss);
+        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+#  undef YYSTACK_RELOCATE
+        if (yyss1 != yyssa)
+          YYSTACK_FREE (yyss1);
+      }
+# endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + yysize - 1;
+      yyvsp = yyvs + yysize - 1;
+
+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+                  (unsigned long int) yystacksize));
+
+      if (yyss + yystacksize - 1 <= yyssp)
+        YYABORT;
+    }
+
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+  if (yystate == YYFINAL)
+    YYACCEPT;
+
+  goto yybackup;
+
+/*-----------.
+| yybackup.  |
+`-----------*/
+yybackup:
+
+  /* Do appropriate processing given the current state.  Read a
+     lookahead token if we need one and don't already have one.  */
+
+  /* First try to decide what to do without reference to lookahead token.  */
+  yyn = yypact[yystate];
+  if (yypact_value_is_default (yyn))
+    goto yydefault;
+
+  /* Not known => get a lookahead token if don't already have one.  */
+
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
+  if (yychar == YYEMPTY)
+    {
+      YYDPRINTF ((stderr, "Reading a token: "));
+      yychar = yylex ();
+    }
+
+  if (yychar <= YYEOF)
+    {
+      yychar = yytoken = YYEOF;
+      YYDPRINTF ((stderr, "Now at end of input.\n"));
+    }
+  else
+    {
+      yytoken = YYTRANSLATE (yychar);
+      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+    }
+
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+    goto yydefault;
+  yyn = yytable[yyn];
+  if (yyn <= 0)
+    {
+      if (yytable_value_is_error (yyn))
+        goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+
+  /* Count tokens shifted since error; after three, turn off error
+     status.  */
+  if (yyerrstatus)
+    yyerrstatus--;
+
+  /* Shift the lookahead token.  */
+  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+  /* Discard the shifted token.  */
+  yychar = YYEMPTY;
+
+  yystate = yyn;
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+  *++yyvsp = yylval;
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
+
+  goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state.  |
+`-----------------------------------------------------------*/
+yydefault:
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+  goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction.  |
+`-----------------------------*/
+yyreduce:
+  /* yyn is the number of a rule to reduce with.  */
+  yylen = yyr2[yyn];
+
+  /* If YYLEN is nonzero, implement the default value of the action:
+     '$$ = $1'.
+
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
+     users should not rely upon it.  Assigning to YYVAL
+     unconditionally makes the parser a bit smaller, and it avoids a
+     GCC warning that YYVAL may be used uninitialized.  */
+  yyval = yyvsp[1-yylen];
+
+
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
+    {
+        case 7:
+#line 184 "icalyacc.y" /* yacc.c:1646  */
+    { 
+                  icalparser_yy_value = 0;
+		  icalparser_clear_flex_input();
+                  yyclearin;
+                  }
+#line 1643 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 8:
+#line 192 "icalyacc.y" /* yacc.c:1646  */
+    {
+	    struct icaltimetype stm;
+
+	    stm = fill_datetime((yyvsp[0].v_string),0);
+
+	    stm.hour = -1;
+	    stm.minute = -1;
+	    stm.second = -1;
+	    stm.is_utc = 0;
+	    stm.is_date = 1;
+
+	    icalparser_yy_value = icalvalue_new_date(stm);
+	}
+#line 1661 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 9:
+#line 207 "icalyacc.y" /* yacc.c:1646  */
+    {utc = 0;}
+#line 1667 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 10:
+#line 208 "icalyacc.y" /* yacc.c:1646  */
+    {utc = 1;}
+#line 1673 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 11:
+#line 212 "icalyacc.y" /* yacc.c:1646  */
+    {utc_b = 0;}
+#line 1679 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 12:
+#line 213 "icalyacc.y" /* yacc.c:1646  */
+    {utc_b = 1;}
+#line 1685 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 13:
+#line 217 "icalyacc.y" /* yacc.c:1646  */
+    {
+	    struct  icaltimetype stm;
+	    stm = fill_datetime((yyvsp[-3].v_string), (yyvsp[-1].v_string));
+	    stm.is_utc = utc;
+	    stm.is_date = 0;
+
+	    icalparser_yy_value = 
+		icalvalue_new_datetime(stm);
+	}
+#line 1699 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 16:
+#line 235 "icalyacc.y" /* yacc.c:1646  */
+    {
+	    duration.weeks = atoi((yyvsp[-1].v_string));
+	}
+#line 1707 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 17:
+#line 240 "icalyacc.y" /* yacc.c:1646  */
+    {
+	}
+#line 1714 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 18:
+#line 243 "icalyacc.y" /* yacc.c:1646  */
+    {
+	}
+#line 1721 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 19:
+#line 246 "icalyacc.y" /* yacc.c:1646  */
+    {
+	}
+#line 1728 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 20:
+#line 250 "icalyacc.y" /* yacc.c:1646  */
+    {
+	    duration.hours = atoi((yyvsp[-1].v_string));
+	}
+#line 1736 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 21:
+#line 254 "icalyacc.y" /* yacc.c:1646  */
+    {
+	    duration.hours = atoi((yyvsp[-2].v_string));
+	}
+#line 1744 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 22:
+#line 259 "icalyacc.y" /* yacc.c:1646  */
+    {
+	    duration.minutes = atoi((yyvsp[-1].v_string));
+	}
+#line 1752 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 23:
+#line 263 "icalyacc.y" /* yacc.c:1646  */
+    {
+	    duration.minutes = atoi((yyvsp[-2].v_string));
+	}
+#line 1760 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 24:
+#line 268 "icalyacc.y" /* yacc.c:1646  */
+    {
+	    duration.seconds = atoi((yyvsp[-1].v_string));
+	}
+#line 1768 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 25:
+#line 273 "icalyacc.y" /* yacc.c:1646  */
+    {
+	    duration.days = atoi((yyvsp[-1].v_string));
+	}
+#line 1776 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 26:
+#line 278 "icalyacc.y" /* yacc.c:1646  */
+    {
+	    duration.is_neg = 0;
+	}
+#line 1784 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 27:
+#line 282 "icalyacc.y" /* yacc.c:1646  */
+    {
+	    duration.is_neg = 0;
+	}
+#line 1792 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 28:
+#line 286 "icalyacc.y" /* yacc.c:1646  */
+    { 
+	    duration.is_neg = 1;
+	}
+#line 1800 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 29:
+#line 291 "icalyacc.y" /* yacc.c:1646  */
+    { 
+	    icalparser_yy_value = icalvalue_new_duration(duration); 
+	    memset(&duration,0, sizeof(duration));
+	}
+#line 1809 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 30:
+#line 296 "icalyacc.y" /* yacc.c:1646  */
+    { 
+	    icalparser_yy_value = icalvalue_new_duration(duration); 
+	    memset(&duration,0, sizeof(duration));
+	}
+#line 1818 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 31:
+#line 301 "icalyacc.y" /* yacc.c:1646  */
+    { 
+	    icalparser_yy_value = icalvalue_new_duration(duration); 
+	    memset(&duration,0, sizeof(duration));
+	}
+#line 1827 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 32:
+#line 310 "icalyacc.y" /* yacc.c:1646  */
+    {
+            struct icalperiodtype p;
+        
+	    p.start = fill_datetime((yyvsp[-8].v_string),(yyvsp[-6].v_string));
+	    p.start.is_utc = utc;
+	    p.start.is_date = 0;
+
+
+	    p.end = fill_datetime((yyvsp[-3].v_string),(yyvsp[-1].v_string));
+	    p.end.is_utc = utc_b;
+	    p.end.is_date = 0;
+		
+	    p.duration.days = -1;
+	    p.duration.weeks = -1;
+	    p.duration.hours = -1;
+	    p.duration.minutes = -1;
+	    p.duration.seconds = -1;
+
+	    icalparser_yy_value = icalvalue_new_period(p);
+	}
+#line 1852 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 33:
+#line 331 "icalyacc.y" /* yacc.c:1646  */
+    {
+            struct icalperiodtype p;
+	    
+	    p.start = fill_datetime((yyvsp[-5].v_string),(yyvsp[-3].v_string));
+	    p.start.is_utc = utc;
+	    p.start.is_date = 0;
+
+	    p.end.year = -1;
+	    p.end.month = -1;
+	    p.end.day = -1;
+	    p.end.hour = -1;
+	    p.end.minute = -1;
+	    p.end.second = -1;
+		   
+	    /* The duration_value rule setes the global 'duration'
+               variable, but it also creates a new value in
+               icalparser_yy_value. So, free that, then copy
+               'duration' into the icalperiodtype struct. */
+
+	    p.duration = icalvalue_get_duration(icalparser_yy_value);
+	    icalvalue_free(icalparser_yy_value);
+	    icalparser_yy_value = 0;
+
+	    icalparser_yy_value = icalvalue_new_period(p);
+
+	}
+#line 1883 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 34:
+#line 361 "icalyacc.y" /* yacc.c:1646  */
+    { utcsign = 1; }
+#line 1889 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 35:
+#line 362 "icalyacc.y" /* yacc.c:1646  */
+    { utcsign = -1; }
+#line 1895 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 36:
+#line 366 "icalyacc.y" /* yacc.c:1646  */
+    {
+	    icalparser_yy_value = icalvalue_new_utcoffset( utcsign * ((yyvsp[-1].v_int)*3600) + ((yyvsp[0].v_int)*60) );
+  	}
+#line 1903 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+  case 37:
+#line 371 "icalyacc.y" /* yacc.c:1646  */
+    {
+	    icalparser_yy_value = icalvalue_new_utcoffset(utcsign * ((yyvsp[-2].v_int)*3600) + ((yyvsp[-1].v_int)*60) +((yyvsp[0].v_int)));
+  	}
+#line 1911 "icalyacc.c" /* yacc.c:1646  */
+    break;
+
+
+#line 1915 "icalyacc.c" /* yacc.c:1646  */
+      default: break;
+    }
+  /* User semantic actions sometimes alter yychar, and that requires
+     that yytoken be updated with the new translation.  We take the
+     approach of translating immediately before every use of yytoken.
+     One alternative is translating here after every semantic action,
+     but that translation would be missed if the semantic action invokes
+     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
+     incorrect destructor might then be invoked immediately.  In the
+     case of YYERROR or YYBACKUP, subsequent parser actions might lead
+     to an incorrect destructor call or verbose syntax error message
+     before the lookahead is translated.  */
+  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+  YYPOPSTACK (yylen);
+  yylen = 0;
+  YY_STACK_PRINT (yyss, yyssp);
+
+  *++yyvsp = yyval;
+
+  /* Now 'shift' the result of the reduction.  Determine what state
+     that goes to, based on the state we popped back to and the rule
+     number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTOKENS];
+
+  goto yynewstate;
+
+
+/*--------------------------------------.
+| yyerrlab -- here on detecting error.  |
+`--------------------------------------*/
+yyerrlab:
+  /* Make sure we have latest lookahead translation.  See comments at
+     user semantic actions for why this is necessary.  */
+  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
+  /* If not already recovering from an error, report this error.  */
+  if (!yyerrstatus)
+    {
+      ++yynerrs;
+#if ! YYERROR_VERBOSE
+      yyerror (YY_("syntax error"));
+#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+                                        yyssp, yytoken)
+      {
+        char const *yymsgp = YY_("syntax error");
+        int yysyntax_error_status;
+        yysyntax_error_status = YYSYNTAX_ERROR;
+        if (yysyntax_error_status == 0)
+          yymsgp = yymsg;
+        else if (yysyntax_error_status == 1)
+          {
+            if (yymsg != yymsgbuf)
+              YYSTACK_FREE (yymsg);
+            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+            if (!yymsg)
+              {
+                yymsg = yymsgbuf;
+                yymsg_alloc = sizeof yymsgbuf;
+                yysyntax_error_status = 2;
+              }
+            else
+              {
+                yysyntax_error_status = YYSYNTAX_ERROR;
+                yymsgp = yymsg;
+              }
+          }
+        yyerror (yymsgp);
+        if (yysyntax_error_status == 2)
+          goto yyexhaustedlab;
+      }
+# undef YYSYNTAX_ERROR
+#endif
+    }
+
+
+
+  if (yyerrstatus == 3)
+    {
+      /* If just tried and failed to reuse lookahead token after an
+         error, discard it.  */
+
+      if (yychar <= YYEOF)
+        {
+          /* Return failure if at end of input.  */
+          if (yychar == YYEOF)
+            YYABORT;
+        }
+      else
+        {
+          yydestruct ("Error: discarding",
+                      yytoken, &yylval);
+          yychar = YYEMPTY;
+        }
+    }
+
+  /* Else will try to reuse lookahead token after shifting the error
+     token.  */
+  goto yyerrlab1;
+
+
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR.  |
+`---------------------------------------------------*/
+yyerrorlab:
+
+  /* Pacify compilers like GCC when the user code never invokes
+     YYERROR and the label yyerrorlab therefore never appears in user
+     code.  */
+  if (/*CONSTCOND*/ 0)
+     goto yyerrorlab;
+
+  /* Do not reclaim the symbols of the rule whose action triggered
+     this YYERROR.  */
+  YYPOPSTACK (yylen);
+  yylen = 0;
+  YY_STACK_PRINT (yyss, yyssp);
+  yystate = *yyssp;
+  goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR.  |
+`-------------------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
+
+  for (;;)
+    {
+      yyn = yypact[yystate];
+      if (!yypact_value_is_default (yyn))
+        {
+          yyn += YYTERROR;
+          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+            {
+              yyn = yytable[yyn];
+              if (0 < yyn)
+                break;
+            }
+        }
+
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+        YYABORT;
+
+
+      yydestruct ("Error: popping",
+                  yystos[yystate], yyvsp);
+      YYPOPSTACK (1);
+      yystate = *yyssp;
+      YY_STACK_PRINT (yyss, yyssp);
+    }
+
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+  *++yyvsp = yylval;
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
+
+
+  /* Shift the error token.  */
+  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
+  yystate = yyn;
+  goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here.  |
+`-------------------------------------*/
+yyacceptlab:
+  yyresult = 0;
+  goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here.  |
+`-----------------------------------*/
+yyabortlab:
+  yyresult = 1;
+  goto yyreturn;
+
+#if !defined yyoverflow || YYERROR_VERBOSE
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here.  |
+`-------------------------------------------------*/
+yyexhaustedlab:
+  yyerror (YY_("memory exhausted"));
+  yyresult = 2;
+  /* Fall through.  */
+#endif
+
+yyreturn:
+  if (yychar != YYEMPTY)
+    {
+      /* Make sure we have latest lookahead translation.  See comments at
+         user semantic actions for why this is necessary.  */
+      yytoken = YYTRANSLATE (yychar);
+      yydestruct ("Cleanup: discarding lookahead",
+                  yytoken, &yylval);
+    }
+  /* Do not reclaim the symbols of the rule whose action triggered
+     this YYABORT or YYACCEPT.  */
+  YYPOPSTACK (yylen);
+  YY_STACK_PRINT (yyss, yyssp);
+  while (yyssp != yyss)
+    {
+      yydestruct ("Cleanup: popping",
+                  yystos[*yyssp], yyvsp);
+      YYPOPSTACK (1);
+    }
+#ifndef yyoverflow
+  if (yyss != yyssa)
+    YYSTACK_FREE (yyss);
+#endif
+#if YYERROR_VERBOSE
+  if (yymsg != yymsgbuf)
+    YYSTACK_FREE (yymsg);
+#endif
+  return yyresult;
+}
+#line 375 "icalyacc.y" /* yacc.c:1906  */
+
+
+struct icaltimetype fill_datetime(char* datestr, char* timestr)
+{
+	    struct icaltimetype stm;
+
+	    memset(&stm,0,sizeof(stm));
+
+	    if (datestr != 0){
+		sscanf(datestr,"%4d%2d%2d",&(stm.year), &(stm.month), 
+		       &(stm.day));
+	    }
+
+	    if (timestr != 0){
+		sscanf(timestr,"%2d%2d%2d", &(stm.hour), &(stm.minute), 
+		       &(stm.second));
+	    }
+
+	    return stm;
+
+}
+
+void ical_yyerror(char* s)
+{
+    /*fprintf(stderr,"Parse error \'%s\'\n", s);*/
+}
+
diff --git a/src/plugins/vcalendar/libical/libical/icalyacc.h b/src/plugins/vcalendar/libical/libical/icalyacc.h
new file mode 100644
index 0000000..30f2ba3
--- /dev/null
+++ b/src/plugins/vcalendar/libical/libical/icalyacc.h
@@ -0,0 +1,334 @@
+/* A Bison parser, made by GNU Bison 3.0.2.  */
+
+/* Bison interface for Yacc-like parsers in C
+
+   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+#ifndef YY_ICAL_YY_ICALYACC_H_INCLUDED
+# define YY_ICAL_YY_ICALYACC_H_INCLUDED
+/* Debug traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 1
+#endif
+#if YYDEBUG
+extern int ical_yydebug;
+#endif
+
+/* Token type.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+  enum yytokentype
+  {
+    DIGITS = 258,
+    INTNUMBER = 259,
+    FLOATNUMBER = 260,
+    STRING = 261,
+    EOL = 262,
+    EQUALS = 263,
+    CHARACTER = 264,
+    COLON = 265,
+    COMMA = 266,
+    SEMICOLON = 267,
+    MINUS = 268,
+    TIMESEPERATOR = 269,
+    TRUE = 270,
+    FALSE = 271,
+    FREQ = 272,
+    BYDAY = 273,
+    BYHOUR = 274,
+    BYMINUTE = 275,
+    BYMONTH = 276,
+    BYMONTHDAY = 277,
+    BYSECOND = 278,
+    BYSETPOS = 279,
+    BYWEEKNO = 280,
+    BYYEARDAY = 281,
+    DAILY = 282,
+    MINUTELY = 283,
+    MONTHLY = 284,
+    SECONDLY = 285,
+    WEEKLY = 286,
+    HOURLY = 287,
+    YEARLY = 288,
+    INTERVAL = 289,
+    COUNT = 290,
+    UNTIL = 291,
+    WKST = 292,
+    MO = 293,
+    SA = 294,
+    SU = 295,
+    TU = 296,
+    WE = 297,
+    TH = 298,
+    FR = 299,
+    BIT8 = 300,
+    ACCEPTED = 301,
+    ADD = 302,
+    AUDIO = 303,
+    BASE64 = 304,
+    BINARY = 305,
+    BOOLEAN = 306,
+    BUSY = 307,
+    BUSYTENTATIVE = 308,
+    BUSYUNAVAILABLE = 309,
+    CALADDRESS = 310,
+    CANCEL = 311,
+    CANCELLED = 312,
+    CHAIR = 313,
+    CHILD = 314,
+    COMPLETED = 315,
+    CONFIDENTIAL = 316,
+    CONFIRMED = 317,
+    COUNTER = 318,
+    DATE = 319,
+    DATETIME = 320,
+    DECLINECOUNTER = 321,
+    DECLINED = 322,
+    DELEGATED = 323,
+    DISPLAY = 324,
+    DRAFT = 325,
+    DURATION = 326,
+    EMAIL = 327,
+    END = 328,
+    FINAL = 329,
+    FLOAT = 330,
+    FREE = 331,
+    GREGORIAN = 332,
+    GROUP = 333,
+    INDIVIDUAL = 334,
+    INPROCESS = 335,
+    INTEGER = 336,
+    NEEDSACTION = 337,
+    NONPARTICIPANT = 338,
+    OPAQUE = 339,
+    OPTPARTICIPANT = 340,
+    PARENT = 341,
+    PERIOD = 342,
+    PRIVATE = 343,
+    PROCEDURE = 344,
+    PUBLIC = 345,
+    PUBLISH = 346,
+    RECUR = 347,
+    REFRESH = 348,
+    REPLY = 349,
+    REQPARTICIPANT = 350,
+    REQUEST = 351,
+    RESOURCE = 352,
+    ROOM = 353,
+    SIBLING = 354,
+    START = 355,
+    TENTATIVE = 356,
+    TEXT = 357,
+    THISANDFUTURE = 358,
+    THISANDPRIOR = 359,
+    TIME = 360,
+    TRANSPAENT = 361,
+    UNKNOWN = 362,
+    UTCOFFSET = 363,
+    XNAME = 364,
+    ALTREP = 365,
+    CN = 366,
+    CUTYPE = 367,
+    DAYLIGHT = 368,
+    DIR = 369,
+    ENCODING = 370,
+    EVENT = 371,
+    FBTYPE = 372,
+    FMTTYPE = 373,
+    LANGUAGE = 374,
+    MEMBER = 375,
+    PARTSTAT = 376,
+    RANGE = 377,
+    RELATED = 378,
+    RELTYPE = 379,
+    ROLE = 380,
+    RSVP = 381,
+    SENTBY = 382,
+    STANDARD = 383,
+    URI = 384,
+    CHARSET = 385,
+    TIME_CHAR = 386,
+    UTC_CHAR = 387
+  };
+#endif
+/* Tokens.  */
+#define DIGITS 258
+#define INTNUMBER 259
+#define FLOATNUMBER 260
+#define STRING 261
+#define EOL 262
+#define EQUALS 263
+#define CHARACTER 264
+#define COLON 265
+#define COMMA 266
+#define SEMICOLON 267
+#define MINUS 268
+#define TIMESEPERATOR 269
+#define TRUE 270
+#define FALSE 271
+#define FREQ 272
+#define BYDAY 273
+#define BYHOUR 274
+#define BYMINUTE 275
+#define BYMONTH 276
+#define BYMONTHDAY 277
+#define BYSECOND 278
+#define BYSETPOS 279
+#define BYWEEKNO 280
+#define BYYEARDAY 281
+#define DAILY 282
+#define MINUTELY 283
+#define MONTHLY 284
+#define SECONDLY 285
+#define WEEKLY 286
+#define HOURLY 287
+#define YEARLY 288
+#define INTERVAL 289
+#define COUNT 290
+#define UNTIL 291
+#define WKST 292
+#define MO 293
+#define SA 294
+#define SU 295
+#define TU 296
+#define WE 297
+#define TH 298
+#define FR 299
+#define BIT8 300
+#define ACCEPTED 301
+#define ADD 302
+#define AUDIO 303
+#define BASE64 304
+#define BINARY 305
+#define BOOLEAN 306
+#define BUSY 307
+#define BUSYTENTATIVE 308
+#define BUSYUNAVAILABLE 309
+#define CALADDRESS 310
+#define CANCEL 311
+#define CANCELLED 312
+#define CHAIR 313
+#define CHILD 314
+#define COMPLETED 315
+#define CONFIDENTIAL 316
+#define CONFIRMED 317
+#define COUNTER 318
+#define DATE 319
+#define DATETIME 320
+#define DECLINECOUNTER 321
+#define DECLINED 322
+#define DELEGATED 323
+#define DISPLAY 324
+#define DRAFT 325
+#define DURATION 326
+#define EMAIL 327
+#define END 328
+#define FINAL 329
+#define FLOAT 330
+#define FREE 331
+#define GREGORIAN 332
+#define GROUP 333
+#define INDIVIDUAL 334
+#define INPROCESS 335
+#define INTEGER 336
+#define NEEDSACTION 337
+#define NONPARTICIPANT 338
+#define OPAQUE 339
+#define OPTPARTICIPANT 340
+#define PARENT 341
+#define PERIOD 342
+#define PRIVATE 343
+#define PROCEDURE 344
+#define PUBLIC 345
+#define PUBLISH 346
+#define RECUR 347
+#define REFRESH 348
+#define REPLY 349
+#define REQPARTICIPANT 350
+#define REQUEST 351
+#define RESOURCE 352
+#define ROOM 353
+#define SIBLING 354
+#define START 355
+#define TENTATIVE 356
+#define TEXT 357
+#define THISANDFUTURE 358
+#define THISANDPRIOR 359
+#define TIME 360
+#define TRANSPAENT 361
+#define UNKNOWN 362
+#define UTCOFFSET 363
+#define XNAME 364
+#define ALTREP 365
+#define CN 366
+#define CUTYPE 367
+#define DAYLIGHT 368
+#define DIR 369
+#define ENCODING 370
+#define EVENT 371
+#define FBTYPE 372
+#define FMTTYPE 373
+#define LANGUAGE 374
+#define MEMBER 375
+#define PARTSTAT 376
+#define RANGE 377
+#define RELATED 378
+#define RELTYPE 379
+#define ROLE 380
+#define RSVP 381
+#define SENTBY 382
+#define STANDARD 383
+#define URI 384
+#define CHARSET 385
+#define TIME_CHAR 386
+#define UTC_CHAR 387
+
+/* Value type.  */
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE YYSTYPE;
+union YYSTYPE
+{
+#line 71 "icalyacc.y" /* yacc.c:1909  */
+
+	float v_float;
+	int   v_int;
+	char* v_string;
+
+#line 324 "icalyacc.h" /* yacc.c:1909  */
+};
+# define YYSTYPE_IS_TRIVIAL 1
+# define YYSTYPE_IS_DECLARED 1
+#endif
+
+
+extern YYSTYPE ical_yylval;
+
+int ical_yyparse (void);
+
+#endif /* !YY_ICAL_YY_ICALYACC_H_INCLUDED  */
diff --git a/src/plugins/vcalendar/libical/libical/icalyacc.output b/src/plugins/vcalendar/libical/libical/icalyacc.output
new file mode 100644
index 0000000..1af2525
--- /dev/null
+++ b/src/plugins/vcalendar/libical/libical/icalyacc.output
@@ -0,0 +1,820 @@
+Terminals unused in grammar
+
+   FLOATNUMBER
+   STRING
+   EOL
+   EQUALS
+   CHARACTER
+   COLON
+   COMMA
+   SEMICOLON
+   MINUS
+   TIMESEPERATOR
+   TRUE
+   FALSE
+   FREQ
+   BYDAY
+   BYHOUR
+   BYMINUTE
+   BYMONTH
+   BYMONTHDAY
+   BYSECOND
+   BYSETPOS
+   BYWEEKNO
+   BYYEARDAY
+   DAILY
+   MINUTELY
+   MONTHLY
+   SECONDLY
+   WEEKLY
+   HOURLY
+   YEARLY
+   INTERVAL
+   COUNT
+   UNTIL
+   WKST
+   MO
+   SA
+   SU
+   TU
+   WE
+   TH
+   FR
+   BIT8
+   ACCEPTED
+   ADD
+   AUDIO
+   BASE64
+   BINARY
+   BOOLEAN
+   BUSY
+   BUSYTENTATIVE
+   BUSYUNAVAILABLE
+   CALADDRESS
+   CANCEL
+   CANCELLED
+   CHAIR
+   CHILD
+   COMPLETED
+   CONFIDENTIAL
+   CONFIRMED
+   COUNTER
+   DATE
+   DATETIME
+   DECLINECOUNTER
+   DECLINED
+   DELEGATED
+   DISPLAY
+   DRAFT
+   DURATION
+   EMAIL
+   END
+   FINAL
+   FLOAT
+   FREE
+   GREGORIAN
+   GROUP
+   INDIVIDUAL
+   INPROCESS
+   INTEGER
+   NEEDSACTION
+   NONPARTICIPANT
+   OPAQUE
+   OPTPARTICIPANT
+   PARENT
+   PERIOD
+   PRIVATE
+   PROCEDURE
+   PUBLIC
+   PUBLISH
+   RECUR
+   REFRESH
+   REPLY
+   REQPARTICIPANT
+   REQUEST
+   RESOURCE
+   ROOM
+   SIBLING
+   START
+   TENTATIVE
+   TEXT
+   THISANDFUTURE
+   THISANDPRIOR
+   TIME
+   TRANSPAENT
+   UNKNOWN
+   UTCOFFSET
+   XNAME
+   ALTREP
+   CN
+   CUTYPE
+   DAYLIGHT
+   DIR
+   ENCODING
+   EVENT
+   FBTYPE
+   FMTTYPE
+   LANGUAGE
+   MEMBER
+   PARTSTAT
+   RANGE
+   RELATED
+   RELTYPE
+   ROLE
+   RSVP
+   SENTBY
+   STANDARD
+   URI
+   CHARSET
+
+
+Grammar
+
+    0 $accept: value $end
+
+    1 value: date_value
+    2      | datetime_value
+    3      | duration_value
+    4      | period_value
+    5      | utcoffset_value
+    6      | error
+
+    7 date_value: DIGITS
+
+    8 utc_char: %empty
+    9         | UTC_CHAR
+
+   10 utc_char_b: %empty
+   11           | UTC_CHAR
+
+   12 datetime_value: DIGITS TIME_CHAR DIGITS utc_char
+
+   13 dur_date: dur_day
+   14         | dur_day dur_time
+
+   15 dur_week: DIGITS 'W'
+
+   16 dur_time: TIME_CHAR dur_hour
+   17         | TIME_CHAR dur_minute
+   18         | TIME_CHAR dur_second
+
+   19 dur_hour: DIGITS 'H'
+   20         | DIGITS 'H' dur_minute
+
+   21 dur_minute: DIGITS 'M'
+   22           | DIGITS 'M' dur_second
+
+   23 dur_second: DIGITS 'S'
+
+   24 dur_day: DIGITS 'D'
+
+   25 dur_prefix: %empty
+   26           | '+'
+   27           | '-'
+
+   28 duration_value: dur_prefix 'P' dur_date
+   29               | dur_prefix 'P' dur_time
+   30               | dur_prefix 'P' dur_week
+
+   31 period_value: DIGITS TIME_CHAR DIGITS utc_char '/' DIGITS TIME_CHAR DIGITS utc_char_b
+   32             | DIGITS TIME_CHAR DIGITS utc_char '/' duration_value
+
+   33 plusminus: '+'
+   34          | '-'
+
+   35 utcoffset_value: plusminus INTNUMBER INTNUMBER
+   36                | plusminus INTNUMBER INTNUMBER INTNUMBER
+
+
+Terminals, with rules where they appear
+
+$end (0) 0
+'+' (43) 26 33
+'-' (45) 27 34
+'/' (47) 31 32
+'D' (68) 24
+'H' (72) 19 20
+'M' (77) 21 22
+'P' (80) 28 29 30
+'S' (83) 23
+'W' (87) 15
+error (256) 6
+DIGITS (258) 7 12 15 19 20 21 22 23 24 31 32
+INTNUMBER (259) 35 36
+FLOATNUMBER (260)
+STRING (261)
+EOL (262)
+EQUALS (263)
+CHARACTER (264)
+COLON (265)
+COMMA (266)
+SEMICOLON (267)
+MINUS (268)
+TIMESEPERATOR (269)
+TRUE (270)
+FALSE (271)
+FREQ (272)
+BYDAY (273)
+BYHOUR (274)
+BYMINUTE (275)
+BYMONTH (276)
+BYMONTHDAY (277)
+BYSECOND (278)
+BYSETPOS (279)
+BYWEEKNO (280)
+BYYEARDAY (281)
+DAILY (282)
+MINUTELY (283)
+MONTHLY (284)
+SECONDLY (285)
+WEEKLY (286)
+HOURLY (287)
+YEARLY (288)
+INTERVAL (289)
+COUNT (290)
+UNTIL (291)
+WKST (292)
+MO (293)
+SA (294)
+SU (295)
+TU (296)
+WE (297)
+TH (298)
+FR (299)
+BIT8 (300)
+ACCEPTED (301)
+ADD (302)
+AUDIO (303)
+BASE64 (304)
+BINARY (305)
+BOOLEAN (306)
+BUSY (307)
+BUSYTENTATIVE (308)
+BUSYUNAVAILABLE (309)
+CALADDRESS (310)
+CANCEL (311)
+CANCELLED (312)
+CHAIR (313)
+CHILD (314)
+COMPLETED (315)
+CONFIDENTIAL (316)
+CONFIRMED (317)
+COUNTER (318)
+DATE (319)
+DATETIME (320)
+DECLINECOUNTER (321)
+DECLINED (322)
+DELEGATED (323)
+DISPLAY (324)
+DRAFT (325)
+DURATION (326)
+EMAIL (327)
+END (328)
+FINAL (329)
+FLOAT (330)
+FREE (331)
+GREGORIAN (332)
+GROUP (333)
+INDIVIDUAL (334)
+INPROCESS (335)
+INTEGER (336)
+NEEDSACTION (337)
+NONPARTICIPANT (338)
+OPAQUE (339)
+OPTPARTICIPANT (340)
+PARENT (341)
+PERIOD (342)
+PRIVATE (343)
+PROCEDURE (344)
+PUBLIC (345)
+PUBLISH (346)
+RECUR (347)
+REFRESH (348)
+REPLY (349)
+REQPARTICIPANT (350)
+REQUEST (351)
+RESOURCE (352)
+ROOM (353)
+SIBLING (354)
+START (355)
+TENTATIVE (356)
+TEXT (357)
+THISANDFUTURE (358)
+THISANDPRIOR (359)
+TIME (360)
+TRANSPAENT (361)
+UNKNOWN (362)
+UTCOFFSET (363)
+XNAME (364)
+ALTREP (365)
+CN (366)
+CUTYPE (367)
+DAYLIGHT (368)
+DIR (369)
+ENCODING (370)
+EVENT (371)
+FBTYPE (372)
+FMTTYPE (373)
+LANGUAGE (374)
+MEMBER (375)
+PARTSTAT (376)
+RANGE (377)
+RELATED (378)
+RELTYPE (379)
+ROLE (380)
+RSVP (381)
+SENTBY (382)
+STANDARD (383)
+URI (384)
+CHARSET (385)
+TIME_CHAR (386) 12 16 17 18 31 32
+UTC_CHAR (387) 9 11
+
+
+Nonterminals, with rules where they appear
+
+$accept (142)
+    on left: 0
+value (143)
+    on left: 1 2 3 4 5 6, on right: 0
+date_value (144)
+    on left: 7, on right: 1
+utc_char (145)
+    on left: 8 9, on right: 12 31 32
+utc_char_b (146)
+    on left: 10 11, on right: 31
+datetime_value (147)
+    on left: 12, on right: 2
+dur_date (148)
+    on left: 13 14, on right: 28
+dur_week (149)
+    on left: 15, on right: 30
+dur_time (150)
+    on left: 16 17 18, on right: 14 29
+dur_hour (151)
+    on left: 19 20, on right: 16
+dur_minute (152)
+    on left: 21 22, on right: 17 20
+dur_second (153)
+    on left: 23, on right: 18 22
+dur_day (154)
+    on left: 24, on right: 13 14
+dur_prefix (155)
+    on left: 25 26 27, on right: 28 29 30
+duration_value (156)
+    on left: 28 29 30, on right: 3 32
+period_value (157)
+    on left: 31 32, on right: 4
+plusminus (158)
+    on left: 33 34, on right: 35 36
+utcoffset_value (159)
+    on left: 35 36, on right: 5
+
+
+State 0
+
+    0 $accept: . value $end
+
+    error   shift, and go to state 1
+    DIGITS  shift, and go to state 2
+    '+'     shift, and go to state 3
+    '-'     shift, and go to state 4
+
+    'P'  reduce using rule 25 (dur_prefix)
+
+    value            go to state 5
+    date_value       go to state 6
+    datetime_value   go to state 7
+    dur_prefix       go to state 8
+    duration_value   go to state 9
+    period_value     go to state 10
+    plusminus        go to state 11
+    utcoffset_value  go to state 12
+
+
+State 1
+
+    6 value: error .
+
+    $default  reduce using rule 6 (value)
+
+
+State 2
+
+    7 date_value: DIGITS .
+   12 datetime_value: DIGITS . TIME_CHAR DIGITS utc_char
+   31 period_value: DIGITS . TIME_CHAR DIGITS utc_char '/' DIGITS TIME_CHAR DIGITS utc_char_b
+   32             | DIGITS . TIME_CHAR DIGITS utc_char '/' duration_value
+
+    TIME_CHAR  shift, and go to state 13
+
+    $default  reduce using rule 7 (date_value)
+
+
+State 3
+
+   26 dur_prefix: '+' .
+   33 plusminus: '+' .
+
+    INTNUMBER  reduce using rule 33 (plusminus)
+    $default   reduce using rule 26 (dur_prefix)
+
+
+State 4
+
+   27 dur_prefix: '-' .
+   34 plusminus: '-' .
+
+    INTNUMBER  reduce using rule 34 (plusminus)
+    $default   reduce using rule 27 (dur_prefix)
+
+
+State 5
+
+    0 $accept: value . $end
+
+    $end  shift, and go to state 14
+
+
+State 6
+
+    1 value: date_value .
+
+    $default  reduce using rule 1 (value)
+
+
+State 7
+
+    2 value: datetime_value .
+
+    $default  reduce using rule 2 (value)
+
+
+State 8
+
+   28 duration_value: dur_prefix . 'P' dur_date
+   29               | dur_prefix . 'P' dur_time
+   30               | dur_prefix . 'P' dur_week
+
+    'P'  shift, and go to state 15
+
+
+State 9
+
+    3 value: duration_value .
+
+    $default  reduce using rule 3 (value)
+
+
+State 10
+
+    4 value: period_value .
+
+    $default  reduce using rule 4 (value)
+
+
+State 11
+
+   35 utcoffset_value: plusminus . INTNUMBER INTNUMBER
+   36                | plusminus . INTNUMBER INTNUMBER INTNUMBER
+
+    INTNUMBER  shift, and go to state 16
+
+
+State 12
+
+    5 value: utcoffset_value .
+
+    $default  reduce using rule 5 (value)
+
+
+State 13
+
+   12 datetime_value: DIGITS TIME_CHAR . DIGITS utc_char
+   31 period_value: DIGITS TIME_CHAR . DIGITS utc_char '/' DIGITS TIME_CHAR DIGITS utc_char_b
+   32             | DIGITS TIME_CHAR . DIGITS utc_char '/' duration_value
+
+    DIGITS  shift, and go to state 17
+
+
+State 14
+
+    0 $accept: value $end .
+
+    $default  accept
+
+
+State 15
+
+   28 duration_value: dur_prefix 'P' . dur_date
+   29               | dur_prefix 'P' . dur_time
+   30               | dur_prefix 'P' . dur_week
+
+    DIGITS     shift, and go to state 18
+    TIME_CHAR  shift, and go to state 19
+
+    dur_date  go to state 20
+    dur_week  go to state 21
+    dur_time  go to state 22
+    dur_day   go to state 23
+
+
+State 16
+
+   35 utcoffset_value: plusminus INTNUMBER . INTNUMBER
+   36                | plusminus INTNUMBER . INTNUMBER INTNUMBER
+
+    INTNUMBER  shift, and go to state 24
+
+
+State 17
+
+   12 datetime_value: DIGITS TIME_CHAR DIGITS . utc_char
+   31 period_value: DIGITS TIME_CHAR DIGITS . utc_char '/' DIGITS TIME_CHAR DIGITS utc_char_b
+   32             | DIGITS TIME_CHAR DIGITS . utc_char '/' duration_value
+
+    UTC_CHAR  shift, and go to state 25
+
+    $default  reduce using rule 8 (utc_char)
+
+    utc_char  go to state 26
+
+
+State 18
+
+   15 dur_week: DIGITS . 'W'
+   24 dur_day: DIGITS . 'D'
+
+    'W'  shift, and go to state 27
+    'D'  shift, and go to state 28
+
+
+State 19
+
+   16 dur_time: TIME_CHAR . dur_hour
+   17         | TIME_CHAR . dur_minute
+   18         | TIME_CHAR . dur_second
+
+    DIGITS  shift, and go to state 29
+
+    dur_hour    go to state 30
+    dur_minute  go to state 31
+    dur_second  go to state 32
+
+
+State 20
+
+   28 duration_value: dur_prefix 'P' dur_date .
+
+    $default  reduce using rule 28 (duration_value)
+
+
+State 21
+
+   30 duration_value: dur_prefix 'P' dur_week .
+
+    $default  reduce using rule 30 (duration_value)
+
+
+State 22
+
+   29 duration_value: dur_prefix 'P' dur_time .
+
+    $default  reduce using rule 29 (duration_value)
+
+
+State 23
+
+   13 dur_date: dur_day .
+   14         | dur_day . dur_time
+
+    TIME_CHAR  shift, and go to state 19
+
+    $default  reduce using rule 13 (dur_date)
+
+    dur_time  go to state 33
+
+
+State 24
+
+   35 utcoffset_value: plusminus INTNUMBER INTNUMBER .
+   36                | plusminus INTNUMBER INTNUMBER . INTNUMBER
+
+    INTNUMBER  shift, and go to state 34
+
+    $default  reduce using rule 35 (utcoffset_value)
+
+
+State 25
+
+    9 utc_char: UTC_CHAR .
+
+    $default  reduce using rule 9 (utc_char)
+
+
+State 26
+
+   12 datetime_value: DIGITS TIME_CHAR DIGITS utc_char .
+   31 period_value: DIGITS TIME_CHAR DIGITS utc_char . '/' DIGITS TIME_CHAR DIGITS utc_char_b
+   32             | DIGITS TIME_CHAR DIGITS utc_char . '/' duration_value
+
+    '/'  shift, and go to state 35
+
+    $default  reduce using rule 12 (datetime_value)
+
+
+State 27
+
+   15 dur_week: DIGITS 'W' .
+
+    $default  reduce using rule 15 (dur_week)
+
+
+State 28
+
+   24 dur_day: DIGITS 'D' .
+
+    $default  reduce using rule 24 (dur_day)
+
+
+State 29
+
+   19 dur_hour: DIGITS . 'H'
+   20         | DIGITS . 'H' dur_minute
+   21 dur_minute: DIGITS . 'M'
+   22           | DIGITS . 'M' dur_second
+   23 dur_second: DIGITS . 'S'
+
+    'H'  shift, and go to state 36
+    'M'  shift, and go to state 37
+    'S'  shift, and go to state 38
+
+
+State 30
+
+   16 dur_time: TIME_CHAR dur_hour .
+
+    $default  reduce using rule 16 (dur_time)
+
+
+State 31
+
+   17 dur_time: TIME_CHAR dur_minute .
+
+    $default  reduce using rule 17 (dur_time)
+
+
+State 32
+
+   18 dur_time: TIME_CHAR dur_second .
+
+    $default  reduce using rule 18 (dur_time)
+
+
+State 33
+
+   14 dur_date: dur_day dur_time .
+
+    $default  reduce using rule 14 (dur_date)
+
+
+State 34
+
+   36 utcoffset_value: plusminus INTNUMBER INTNUMBER INTNUMBER .
+
+    $default  reduce using rule 36 (utcoffset_value)
+
+
+State 35
+
+   31 period_value: DIGITS TIME_CHAR DIGITS utc_char '/' . DIGITS TIME_CHAR DIGITS utc_char_b
+   32             | DIGITS TIME_CHAR DIGITS utc_char '/' . duration_value
+
+    DIGITS  shift, and go to state 39
+    '+'     shift, and go to state 40
+    '-'     shift, and go to state 41
+
+    $default  reduce using rule 25 (dur_prefix)
+
+    dur_prefix      go to state 8
+    duration_value  go to state 42
+
+
+State 36
+
+   19 dur_hour: DIGITS 'H' .
+   20         | DIGITS 'H' . dur_minute
+
+    DIGITS  shift, and go to state 43
+
+    $default  reduce using rule 19 (dur_hour)
+
+    dur_minute  go to state 44
+
+
+State 37
+
+   21 dur_minute: DIGITS 'M' .
+   22           | DIGITS 'M' . dur_second
+
+    DIGITS  shift, and go to state 45
+
+    $default  reduce using rule 21 (dur_minute)
+
+    dur_second  go to state 46
+
+
+State 38
+
+   23 dur_second: DIGITS 'S' .
+
+    $default  reduce using rule 23 (dur_second)
+
+
+State 39
+
+   31 period_value: DIGITS TIME_CHAR DIGITS utc_char '/' DIGITS . TIME_CHAR DIGITS utc_char_b
+
+    TIME_CHAR  shift, and go to state 47
+
+
+State 40
+
+   26 dur_prefix: '+' .
+
+    $default  reduce using rule 26 (dur_prefix)
+
+
+State 41
+
+   27 dur_prefix: '-' .
+
+    $default  reduce using rule 27 (dur_prefix)
+
+
+State 42
+
+   32 period_value: DIGITS TIME_CHAR DIGITS utc_char '/' duration_value .
+
+    $default  reduce using rule 32 (period_value)
+
+
+State 43
+
+   21 dur_minute: DIGITS . 'M'
+   22           | DIGITS . 'M' dur_second
+
+    'M'  shift, and go to state 37
+
+
+State 44
+
+   20 dur_hour: DIGITS 'H' dur_minute .
+
+    $default  reduce using rule 20 (dur_hour)
+
+
+State 45
+
+   23 dur_second: DIGITS . 'S'
+
+    'S'  shift, and go to state 38
+
+
+State 46
+
+   22 dur_minute: DIGITS 'M' dur_second .
+
+    $default  reduce using rule 22 (dur_minute)
+
+
+State 47
+
+   31 period_value: DIGITS TIME_CHAR DIGITS utc_char '/' DIGITS TIME_CHAR . DIGITS utc_char_b
+
+    DIGITS  shift, and go to state 48
+
+
+State 48
+
+   31 period_value: DIGITS TIME_CHAR DIGITS utc_char '/' DIGITS TIME_CHAR DIGITS . utc_char_b
+
+    UTC_CHAR  shift, and go to state 49
+
+    $default  reduce using rule 10 (utc_char_b)
+
+    utc_char_b  go to state 50
+
+
+State 49
+
+   11 utc_char_b: UTC_CHAR .
+
+    $default  reduce using rule 11 (utc_char_b)
+
+
+State 50
+
+   31 period_value: DIGITS TIME_CHAR DIGITS utc_char '/' DIGITS TIME_CHAR DIGITS utc_char_b .
+
+    $default  reduce using rule 31 (period_value)
diff --git a/src/plugins/vcalendar/vcal_meeting_gtk.c b/src/plugins/vcalendar/vcal_meeting_gtk.c
index c12ece7..49a2917 100644
--- a/src/plugins/vcalendar/vcal_meeting_gtk.c
+++ b/src/plugins/vcalendar/vcal_meeting_gtk.c
@@ -54,7 +54,7 @@
 #include "gtkutils.h"
 #include "log.h"
 #include "utils.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 struct _VCalMeeting
 {
diff --git a/src/pop.c b/src/pop.c
index f89ddc3..9a60c95 100644
--- a/src/pop.c
+++ b/src/pop.c
@@ -40,7 +40,7 @@
 #include "partial_download.h"
 #include "log.h"
 #include "hooks.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 static gint pop3_greeting_recv		(Pop3Session *session,
 					 const gchar *msg);
diff --git a/src/prefs_common.c b/src/prefs_common.c
index 444d677..0775a66 100644
--- a/src/prefs_common.c
+++ b/src/prefs_common.c
@@ -61,7 +61,7 @@
 #include "prefswindow.h"
 #include "colorlabel.h"
 #include "passwordstore.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 #ifndef USE_ALT_ADDRBOOK
 	#include "addrcustomattr.h"
diff --git a/src/procmsg.c b/src/procmsg.c
index 5c776b4..73cd7c0 100644
--- a/src/procmsg.c
+++ b/src/procmsg.c
@@ -49,7 +49,7 @@
 #include "timing.h"
 #include "inc.h"
 #include "privacy.h"
-#include "safe_fclose.h"
+#include "claws_io.h"
 
 extern SessionStats session_stats;
 

-----------------------------------------------------------------------


hooks/post-receive
-- 
Claws Mail


More information about the Commits mailing list