New upstream version 1.0.3 upstream
authorSam Hartman <hartmans@debian.org>
Sun, 9 Jul 2017 20:11:53 +0000 (16:11 -0400)
committerSam Hartman <hartmans@debian.org>
Sun, 9 Jul 2017 20:11:53 +0000 (16:11 -0400)
80 files changed:
ABOUT-NLS
Makefile.am
Makefile.in
aclocal.m4
build-aux/compile
build-aux/config.rpath
build-aux/depcomp
build-aux/install-sh
build-aux/ltmain.sh
build-aux/missing
config.h.in
configure
configure.ac
flatstore-users
libmoonshot/libmoonshot-dbus.c
libmoonshot/libmoonshot.h
libmoonshot/libmoonshot.vapi
m4/gettext.m4
m4/iconv.m4
m4/intlmacosx.m4
m4/lib-ld.m4
m4/lib-link.m4
m4/lib-prefix.m4
m4/libtool.m4
m4/ltoptions.m4
m4/ltversion.m4
m4/nls.m4
m4/po.m4
m4/progtest.m4
moonshot-ui.spec
po/Makefile.in.in
po/POTFILES.in
po/Rules-quot
po/moonshot-ui.pot
src/moonshot-add-dialog.c [deleted file]
src/moonshot-add-dialog.vala [deleted file]
src/moonshot-crypto-utils.c [new file with mode: 0644]
src/moonshot-custom-vbox.c
src/moonshot-custom-vbox.vala
src/moonshot-id.c
src/moonshot-id.vala
src/moonshot-idcard-store.c
src/moonshot-idcard-store.vala
src/moonshot-idcard-widget.c
src/moonshot-idcard-widget.vala
src/moonshot-identities-manager.c
src/moonshot-identities-manager.vala
src/moonshot-identity-dialog.c [new file with mode: 0644]
src/moonshot-identity-dialog.vala [new file with mode: 0644]
src/moonshot-identity-management-view.c
src/moonshot-identity-management-view.vala
src/moonshot-identity-manager-app.c
src/moonshot-identity-manager-app.vala
src/moonshot-identity-request.c
src/moonshot-identity-request.vala
src/moonshot-keyring-store.c
src/moonshot-keyring-store.vala
src/moonshot-local-flat-file-store.c
src/moonshot-local-flat-file-store.vala
src/moonshot-logger.c [new file with mode: 0644]
src/moonshot-logger.vala [new file with mode: 0644]
src/moonshot-password-dialog.c
src/moonshot-password-dialog.vala
src/moonshot-provisioning-common.c
src/moonshot-provisioning-common.vala
src/moonshot-server-linux.c [new file with mode: 0644]
src/moonshot-server-linux.vala [new file with mode: 0644]
src/moonshot-server.c [deleted file]
src/moonshot-server.vala [deleted file]
src/moonshot-settings.c [new file with mode: 0644]
src/moonshot-settings.vala [new file with mode: 0644]
src/moonshot-trust-anchor-dialog.c [new file with mode: 0644]
src/moonshot-trust-anchor-dialog.vala [new file with mode: 0644]
src/moonshot-utils.c
src/moonshot-utils.vala
src/moonshot-warning-dialog.c [new file with mode: 0644]
src/moonshot-warning-dialog.vala [new file with mode: 0644]
src/moonshot-webp-parser.c
src/moonshot-webp-parser.vala
webprovisioning/complex-test.msht

index 83bc72e..b1de1b6 100644 (file)
--- a/ABOUT-NLS
+++ b/ABOUT-NLS
@@ -18,35 +18,7 @@ explain how users should proceed for getting the programs to use the
 available translations.  They tell how people wanting to contribute and
 work on translations can contact the appropriate team.
 
-   When reporting bugs in the `intl/' directory or bugs which may be
-related to internationalization, you should tell about the version of
-`gettext' which is used.  The information can be found in the
-`intl/VERSION' file, in internationalized packages.
-
-1.1 Quick configuration advice
-==============================
-
-If you want to exploit the full power of internationalization, you
-should configure it using
-
-     ./configure --with-included-gettext
-
-to force usage of internationalizing routines provided within this
-package, despite the existence of internationalizing capabilities in the
-operating system where this package is being installed.  So far, only
-the `gettext' implementation in the GNU C library version 2 provides as
-many features (such as locale alias, message inheritance, automatic
-charset conversion or plural form handling) as the implementation here.
-It is also not possible to offer this additional functionality on top
-of a `catgets' implementation.  Future versions of GNU `gettext' will
-very likely convey even more functionality.  So it might be a good idea
-to change to GNU `gettext' as soon as possible.
-
-   So you need _not_ provide this option if you are using GNU libc 2 or
-you have installed a recent copy of the GNU gettext package with the
-included `libintl'.
-
-1.2 INSTALL Matters
+1.1 INSTALL Matters
 ===================
 
 Some packages are "localizable" when properly installed; the programs
@@ -56,36 +28,19 @@ internationalization, predating GNU `gettext'.
 
    By default, this package will be installed to allow translation of
 messages.  It will automatically detect whether the system already
-provides the GNU `gettext' functions.  If not, the included GNU
-`gettext' library will be used.  This library is wholly contained
-within this package, usually in the `intl/' subdirectory, so prior
-installation of the GNU `gettext' package is _not_ required.
-Installers may use special options at configuration time for changing
-the default behaviour.  The commands:
+provides the GNU `gettext' functions.  Installers may use special
+options at configuration time for changing the default behaviour.  The
+command:
 
-     ./configure --with-included-gettext
      ./configure --disable-nls
 
-will, respectively, bypass any pre-existing `gettext' to use the
-internationalizing routines provided within this package, or else,
-_totally_ disable translation of messages.
+will _totally_ disable translation of messages.
 
    When you already have GNU `gettext' installed on your system and run
 configure without an option for your new package, `configure' will
-probably detect the previously built and installed `libintl.a' file and
-will decide to use this.  This might not be desirable.  You should use
-the more recent version of the GNU `gettext' library.  I.e. if the file
-`intl/VERSION' shows that the library which comes with this package is
-more recent, you should use
-
-     ./configure --with-included-gettext
-
-to prevent auto-detection.
-
-   The configuration process will not test for the `catgets' function
-and therefore it will not be used.  The reason is that even an
-emulation of `gettext' on top of `catgets' could not provide all the
-extensions of the GNU `gettext' library.
+probably detect the previously built and installed `libintl' library
+and will decide to use it.  If not, you may have to to use the
+`--with-libintl-prefix' option to tell `configure' where to look for it.
 
    Internationalized packages usually have many `po/LL.po' files, where
 LL gives an ISO 639 two-letter code identifying the language.  Unless
@@ -96,7 +51,7 @@ may be set, prior to configuration, to limit the installed set.
 `LINGUAS' should then contain a space separated list of two-letter
 codes, stating which languages are allowed.
 
-1.3 Using This Package
+1.2 Using This Package
 ======================
 
 As a user, if your language has been installed for this package, you
@@ -148,7 +103,7 @@ to denote the language's main dialect.  For example, `de' is equivalent
 to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
 (Portuguese as spoken in Portugal) in this context.
 
-1.4 Translating Teams
+1.3 Translating Teams
 =====================
 
 For the Free Translation Project to be a success, we need interested
@@ -177,859 +132,1118 @@ reach the coordinator for all translator teams.
 the terminology in use.  Proven linguistic skills are praised more than
 programming skills, here.
 
-1.5 Available Packages
+1.4 Available Packages
 ======================
 
 Languages are not equally supported in all packages.  The following
-matrix shows the current state of internationalization, as of November
-2007.  The matrix shows, in regard of each package, for which languages
+matrix shows the current state of internationalization, as of June
+2010.  The matrix shows, in regard of each package, for which languages
 PO files have been submitted to translation coordination, with a
 translation percentage of at least 50%.
 
-     Ready PO files       af am ar az be bg bs ca cs cy da de el en en_GB eo
-                        +----------------------------------------------------+
-     Compendium         |                      []       [] []        []      |
-     a2ps               |             []                [] [] []     []      |
-     aegis              |                                  ()                |
-     ant-phone          |                                  ()                |
-     anubis             |                                  []                |
-     ap-utils           |                                                    |
-     aspell             |                      [] []    [] []        []      |
-     bash               |                                                 [] |
-     bfd                |                                                    |
-     bibshelf           |                                  []                |
-     binutils           |                                                    |
-     bison              |                               [] []                |
-     bison-runtime      |                                  []                |
-     bluez-pin          | []                      []       [] []          [] |
-     cflow              |                               []                   |
-     clisp              |                               [] []    []          |
-     console-tools      |                         []       []                |
-     coreutils          |                []    [] []       []                |
-     cpio               |                                                    |
-     cpplib             |                      []       [] []                |
-     cryptonit          |                                  []                |
-     dialog             |                                                    |
-     diffutils          |                      [] []    [] [] []          [] |
-     doodle             |                                  []                |
-     e2fsprogs          |                         []       []                |
-     enscript           |                      []       [] []        []      |
-     fetchmail          |                      []       [] () []     []      |
-     findutils          |                []                                  |
-     findutils_stable   |                []    []       []                   |
-     flex               |                      []       [] []                |
-     fslint             |                                                    |
-     gas                |                                                    |
-     gawk               |                      []       [] []                |
-     gcal               |                      []                            |
-     gcc                |                                  []                |
-     gettext-examples   | []                   []          [] []          [] |
-     gettext-runtime    |             []       []       [] []             [] |
-     gettext-tools      |                      []          []                |
-     gip                |                []                                  |
-     gliv               |                []                []                |
-     glunarclock        |                []                                  |
-     gmult              | []                               []                |
-     gnubiff            |                                  ()                |
-     gnucash            |                      [] []       () ()     []      |
-     gnuedu             |                                                    |
-     gnulib             |                []                                  |
-     gnunet             |                                                    |
-     gnunet-gtk         |                                                    |
-     gnutls             |                                  []                |
-     gpe-aerial         |                         []       []                |
-     gpe-beam           |                         []       []                |
-     gpe-calendar       |                                                    |
-     gpe-clock          |                         []       []                |
-     gpe-conf           |                         []       []                |
-     gpe-contacts       |                                                    |
-     gpe-edit           |                         []                         |
-     gpe-filemanager    |                                                    |
-     gpe-go             |                         []                         |
-     gpe-login          |                         []       []                |
-     gpe-ownerinfo      |                         []       []                |
-     gpe-package        |                                                    |
-     gpe-sketchbook     |                         []       []                |
-     gpe-su             |                         []       []                |
-     gpe-taskmanager    |                         []       []                |
-     gpe-timesheet      |                         []                         |
-     gpe-today          |                         []       []                |
-     gpe-todo           |                                                    |
-     gphoto2            |                         []    [] []        []      |
-     gprof              |                               [] []                |
-     gpsdrive           |                                                    |
-     gramadoir          | []                               []                |
-     grep               |                         []                      [] |
-     gretl              |                                  ()                |
-     gsasl              |                                                    |
-     gss                |                                                    |
-     gst-plugins-bad    |                []             []                   |
-     gst-plugins-base   |                []             []                   |
-     gst-plugins-good   |                []    []       []                   |
-     gst-plugins-ugly   |                []             []                   |
-     gstreamer          | []             []    [] []    [] []        []      |
-     gtick              |                                  ()                |
-     gtkam              |             []          []    [] []                |
-     gtkorphan          |                []                []                |
-     gtkspell           |             []                   [] []          [] |
-     gutenprint         |                               []                   |
-     hello              |                []    []       [] []             [] |
-     herrie             |                                  []                |
-     hylafax            |                                                    |
-     idutils            |                               [] []                |
-     indent             |                      [] []       []             [] |
-     iso_15924          |                                                    |
-     iso_3166           |       []    [] [] [] [] [] [] [] [] []          [] |
-     iso_3166_2         |                                                    |
-     iso_4217           |                         []    [] []                |
-     iso_639            |                         []    [] []             [] |
-     jpilot             |                         []                         |
-     jtag               |                                                    |
-     jwhois             |                                                    |
-     kbd                |                         []    [] [] []             |
-     keytouch           |                      []          []                |
-     keytouch-editor    |                                  []                |
-     keytouch-keyboa... |                      []                            |
-     latrine            |                                  ()                |
-     ld                 |                               []                   |
-     leafpad            |                []    [] []       [] []             |
-     libc               |                      [] []    [] []                |
-     libexif            |                                  []                |
-     libextractor       |                                  []                |
-     libgpewidget       |                         []    [] []                |
-     libgpg-error       |                                  []                |
-     libgphoto2         |                               [] []                |
-     libgphoto2_port    |                               [] []                |
-     libgsasl           |                                                    |
-     libiconv           |                                  []             [] |
-     libidn             |                         []    []                [] |
-     lifelines          |                               [] ()                |
-     lilypond           |                                  []                |
-     lingoteach         |                                                    |
-     lprng              |                                                    |
-     lynx               |                      [] []    [] []                |
-     m4                 |                         []    [] [] []             |
-     mailfromd          |                                                    |
-     mailutils          |                      []                            |
-     make               |                               [] []                |
-     man-db             |                      []       [] []                |
-     minicom            |                         []    [] []                |
-     nano               |                []    []          []                |
-     opcodes            |                                  []                |
-     parted             |                         []       []                |
-     pilot-qof          |                                                    |
-     popt               |                         []    [] []                |
-     psmisc             |                []                                  |
-     pwdutils           |                                                    |
-     qof                |                                                    |
-     radius             |                      []                            |
-     recode             |             []       []       [] [] []          [] |
-     rpm                |                               []                   |
-     screem             |                                                    |
-     scrollkeeper       |          [] []       [] [] [] [] []        []      |
-     sed                |                      []          []             [] |
-     shared-mime-info   |                []    [] []    [] () []     []   [] |
-     sharutils          |                []    [] []    [] [] []             |
-     shishi             |                                                    |
-     skencil            |                               [] ()                |
-     solfege            |                                                    |
-     soundtracker       |                               [] []                |
-     sp                 |                                  []                |
-     system-tools-ba... |       []       [] [] [] []    [] [] []     []      |
-     tar                |                []                []                |
-     texinfo            |                               [] []             [] |
-     tin                |                                  ()        ()      |
-     tuxpaint           | []             []             [] []        []   [] |
-     unicode-han-tra... |                                                    |
-     unicode-transla... |                                                    |
-     util-linux         |                      [] []    [] []                |
-     util-linux-ng      |                      [] []    [] []                |
-     vorbis-tools       |                         []                         |
-     wastesedge         |                                  ()                |
-     wdiff              |                      []       [] []        []      |
-     wget               |                      [] []       []                |
-     xchat              |             [] []    [] []       [] []     []      |
-     xkeyboard-config   |                []                                  |
-     xpad               |                []             []           []      |
-                        +----------------------------------------------------+
-                          af am ar az be bg bs ca cs cy da de el en en_GB eo
-                           6  0  2  1  8 26  2 40 48  2 56 88 15  1  15   18
-
-                          es et eu fa fi fr  ga gl gu he hi hr hu id is it
+     Ready PO files       af am an ar as ast az be be@latin bg bn_IN bs ca
                         +--------------------------------------------------+
-     Compendium         | []          [] []  []                []          |
-     a2ps               |    []       [] []                             () |
+     a2ps               |                       []                      [] |
      aegis              |                                                  |
-     ant-phone          |                []                                |
-     anubis             |                []                                |
-     ap-utils           |             [] []                                |
-     aspell             |                []  []                         [] |
-     bash               | []                                               |
-     bfd                | []          []                                   |
-     bibshelf           | []                 []                         [] |
-     binutils           | []          [] []                                |
-     bison              | [] []          []  []                   []    [] |
-     bison-runtime      |    []          []  []                   []    [] |
-     bluez-pin          |             [] []  []                [] []       |
-     cflow              |                    []                            |
-     clisp              | []             []                                |
-     console-tools      |                                                  |
-     coreutils          | [] []       [] []  []                []          |
-     cpio               | []             []  []                            |
-     cpplib             | []             []                                |
-     cryptonit          |                []                                |
-     dialog             |       []           []                         [] |
-     diffutils          | []          [] []  [] []    []       [] []    [] |
-     doodle             |                    []                         [] |
-     e2fsprogs          | []             []                             [] |
-     enscript           |                []  []             []             |
-     fetchmail          | []                                               |
-     findutils          |    []              []                []          |
-     findutils_stable   |    []          []  []                []          |
-     flex               | []             []  []                            |
-     fslint             |                                                  |
-     gas                | []             []                                |
-     gawk               | []             []  []       []                () |
-     gcal               | []             []                                |
-     gcc                | []                                               |
-     gettext-examples   | []          [] []  []                [] []    [] |
-     gettext-runtime    | []          [] []  []                   []    [] |
-     gettext-tools      | []    []       []                             [] |
-     gip                | []    []       []  []                            |
-     gliv               |                ()                                |
-     glunarclock        |             []     []                []          |
-     gmult              |       []       []                             [] |
-     gnubiff            |                ()                             () |
-     gnucash            | ()             ()                    ()          |
-     gnuedu             | []                                               |
-     gnulib             | [] []              []                            |
-     gnunet             |                                                  |
-     gnunet-gtk         |                                                  |
-     gnutls             |                                                  |
-     gpe-aerial         | []             []                                |
-     gpe-beam           | []             []                                |
-     gpe-calendar       |                                                  |
-     gpe-clock          | []          [] []                    []          |
-     gpe-conf           |                []                                |
-     gpe-contacts       | []             []                                |
-     gpe-edit           | []             []                    [] []       |
-     gpe-filemanager    | []                                               |
-     gpe-go             | []             []                    []          |
-     gpe-login          | []             []                    []          |
-     gpe-ownerinfo      | []          [] []                    [] []       |
-     gpe-package        | []                                               |
-     gpe-sketchbook     | []             []                                |
-     gpe-su             | []          [] []                    []          |
-     gpe-taskmanager    | []          [] []                                |
-     gpe-timesheet      | []             []  []                   []       |
-     gpe-today          | []          [] []  []                            |
-     gpe-todo           | []                                               |
-     gphoto2            | []          [] []                    []       [] |
-     gprof              | []          [] []  []                   []       |
-     gpsdrive           |    []                                            |
-     gramadoir          |                []  []                            |
-     grep               | []          []     []                            |
-     gretl              | []    []       []                             () |
-     gsasl              |                    []                   []       |
-     gss                |                []  []                            |
-     gst-plugins-bad    | []          []                       []       [] |
-     gst-plugins-base   | []          []                       []       [] |
-     gst-plugins-good   | []    []    []                       []       [] |
-     gst-plugins-ugly   | []          []                       []       [] |
-     gstreamer          |             []                       []       [] |
-     gtick              |             []     []                         [] |
-     gtkam              | []             []                    []       [] |
-     gtkorphan          |                []                             [] |
-     gtkspell           | []    []    [] []  []                []       [] |
-     gutenprint         |                                      []          |
-     hello              | [] [] [] [] [] []  [] []    []    [] [] []    [] |
-     herrie             |                    []                            |
-     hylafax            |                                                  |
-     idutils            |                []  []                [] []    [] |
-     indent             | [] [] []    [] []  [] []             [] []    [] |
-     iso_15924          |                []                                |
-     iso_3166           | [] [] []    [] []     [] [] [] [] [] [] []    [] |
-     iso_3166_2         |                []                                |
-     iso_4217           | [] []       [] []                    []       [] |
-     iso_639            | []       [] [] []  []                []          |
-     jpilot             | []             []                                |
-     jtag               |                []                                |
-     jwhois             | []             []                    [] []    [] |
-     kbd                | []             []                                |
-     keytouch           |                []  []                         [] |
-     keytouch-editor    |                    []                            |
-     keytouch-keyboa... |                    []                         [] |
-     latrine            |                    []                         [] |
-     ld                 | []          [] []  []                            |
-     leafpad            | []             []  []       []       []       [] |
-     libc               | []          [] []     []             []          |
-     libexif            | []                                               |
-     libextractor       |                    []                            |
-     libgpewidget       | []             []  []                [] []       |
-     libgpg-error       |                []                                |
-     libgphoto2         | []             []                             [] |
-     libgphoto2_port    |                []                             [] |
-     libgsasl           |                []  []                            |
-     libiconv           |    []       []     []                            |
-     libidn             |                []                             [] |
-     lifelines          |                ()                                |
-     lilypond           | []          [] []                                |
-     lingoteach         |                []                       []    [] |
-     lprng              |                                                  |
-     lynx               |    []                                []       [] |
-     m4                 |                []  [] []                []       |
-     mailfromd          |                                                  |
-     mailutils          | []             []                                |
-     make               | []          [] []  [] []    []    []    []       |
-     man-db             |                                               [] |
-     minicom            | []          [] []                    []          |
-     nano               | []    []       []  [] []             []       [] |
-     opcodes            | []          [] []  []                            |
-     parted             |                []                       []    [] |
-     pilot-qof          |                                                  |
-     popt               |                []  [] []                   []    |
-     psmisc             |                                      []       [] |
-     pwdutils           |                                                  |
-     qof                |                                         []       |
-     radius             | []             []                                |
-     recode             | []             []  [] []    []       [] []    [] |
-     rpm                |                []                       []       |
-     screem             |                                                  |
-     scrollkeeper       | []          []                       []          |
-     sed                | [] []          []  []                []          |
-     shared-mime-info   | []    []    [] []                    []       [] |
-     sharutils          | [] []       [] []  [] []             []       [] |
-     shishi             |                []                                |
-     skencil            | []             []                                |
-     solfege            |                                               [] |
-     soundtracker       | []             []                             [] |
-     sp                 |                []                                |
-     system-tools-ba... | []    []    [] []  []             [] [] []    [] |
-     tar                |    [] []    []     []                []          |
-     texinfo            |                []           []       []          |
-     tin                |    []          ()                                |
-     tuxpaint           |                    []                []          |
-     unicode-han-tra... |                                                  |
-     unicode-transla... |                []  []                            |
-     util-linux         | [] []       [] []                    [] []    [] |
-     util-linux-ng      | [] []       [] []                    [] []    [] |
-     vorbis-tools       |                                                  |
-     wastesedge         |                ()                                |
-     wdiff              | [] []          []  [] []             [] []    [] |
-     wget               |    []       [] []  []             [] [] []    [] |
-     xchat              | []          [] []        []    []    []       [] |
-     xkeyboard-config   | []          [] []                    []          |
-     xpad               | []                 []                []          |
-                        +--------------------------------------------------+
-                          es et eu fa fi fr  ga gl gu he hi hr hu id is it
-                          85 22 14  2 48 101 61 12  2  8  2  6 53 29  1 52
-
-                          ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl  nn
-                        +--------------------------------------------------+
-     Compendium         |                                           []     |
-     a2ps               |       ()                      []          []     |
-     aegis              |                                           ()     |
-     ant-phone          |                                           []     |
-     anubis             |                               []    []    []     |
-     ap-utils           |                               []                 |
-     aspell             |                            []             []     |
-     bash               |                                           []     |
+     ant-phone          |                                                  |
+     anubis             |                                                  |
+     aspell             |                []                             [] |
+     bash               |                                                  |
      bfd                |                                                  |
-     bibshelf           |                               []                 |
+     bibshelf           |                []                                |
      binutils           |                                                  |
-     bison              |                               []    []    []     |
-     bison-runtime      |                               []    []    []     |
-     bluez-pin          |          []                   []          []     |
+     bison              |                                                  |
+     bison-runtime      |                []                                |
+     bluez-pin          | []             []                                |
+     bombono-dvd        |                                                  |
+     buzztard           |                                                  |
      cflow              |                                                  |
-     clisp              |                                           []     |
-     console-tools      |                                                  |
-     coreutils          |                                           []     |
-     cpio               |                                           []     |
-     cpplib             |                                           []     |
-     cryptonit          |                                           []     |
-     dialog             |                               []          []     |
-     diffutils          | []                            []          []     |
+     clisp              |                                                  |
+     coreutils          |                                   []          [] |
+     cpio               |                                                  |
+     cppi               |                                                  |
+     cpplib             |                                               [] |
+     cryptsetup         |                                                  |
+     dfarc              |                                                  |
+     dialog             |                             []                [] |
+     dico               |                                                  |
+     diffutils          |                                               [] |
+     dink               |                                                  |
      doodle             |                                                  |
-     e2fsprogs          |                                           []     |
-     enscript           |                                           []     |
-     fetchmail          | []                                        []     |
-     findutils          |                                           []     |
-     findutils_stable   |                                           []     |
-     flex               |       []                                  []     |
-     fslint             |                                                  |
+     e2fsprogs          |                                               [] |
+     enscript           |                                               [] |
+     exif               |                                                  |
+     fetchmail          |                                               [] |
+     findutils          |                                   []             |
+     flex               |                                               [] |
+     freedink           |                                                  |
      gas                |                                                  |
-     gawk               | []                                        []     |
-     gcal               |                                                  |
+     gawk               |                []                             [] |
+     gcal               |                                               [] |
      gcc                |                                                  |
-     gettext-examples   | []                            []          []     |
-     gettext-runtime    | []    []                                  []     |
-     gettext-tools      | []    []                                         |
-     gip                |                               []          []     |
-     gliv               |                                           []     |
-     glunarclock        |                               []          []     |
-     gmult              | []                            []          []     |
+     gettext-examples   | []             []                 []          [] |
+     gettext-runtime    |                                   []          [] |
+     gettext-tools      |                                   []          [] |
+     gip                |                                   []             |
+     gjay               |                                                  |
+     gliv               |                                   []             |
+     glunarclock        |                []                 []             |
      gnubiff            |                                                  |
-     gnucash            | ()                                  () ()        |
+     gnucash            |                                               [] |
      gnuedu             |                                                  |
-     gnulib             | []                                        []     |
+     gnulib             |                                                  |
      gnunet             |                                                  |
      gnunet-gtk         |                                                  |
-     gnutls             |                               []                 |
-     gpe-aerial         |                                           []     |
-     gpe-beam           |                                           []     |
-     gpe-calendar       | []                                               |
-     gpe-clock          | []    []                                  []     |
-     gpe-conf           | []    []                                  []     |
-     gpe-contacts       |       []                                         |
-     gpe-edit           | []    []                                  []     |
-     gpe-filemanager    | []    []                                         |
-     gpe-go             | []    []                                  []     |
-     gpe-login          | []    []                                  []     |
-     gpe-ownerinfo      | []                                        []     |
-     gpe-package        | []    []                                         |
-     gpe-sketchbook     |       []                                  []     |
-     gpe-su             | []    []                                  []     |
-     gpe-taskmanager    | []    [] []                               []     |
-     gpe-timesheet      |                                           []     |
-     gpe-today          | []                                        []     |
-     gpe-todo           | []                                               |
-     gphoto2            | []                                        []     |
-     gprof              |                               []                 |
-     gpsdrive           |                                           []     |
-     gramadoir          |                                           ()     |
-     grep               |             []                            []     |
-     gretl              |                                                  |
-     gsasl              |                                           []     |
+     gnutls             |                                                  |
+     gold               |                                                  |
+     gpe-aerial         |                                                  |
+     gpe-beam           |                                                  |
+     gpe-bluetooth      |                                                  |
+     gpe-calendar       |                                                  |
+     gpe-clock          |                []                                |
+     gpe-conf           |                                                  |
+     gpe-contacts       |                                                  |
+     gpe-edit           |                                                  |
+     gpe-filemanager    |                                                  |
+     gpe-go             |                                                  |
+     gpe-login          |                                                  |
+     gpe-ownerinfo      |                []                                |
+     gpe-package        |                                                  |
+     gpe-sketchbook     |                                                  |
+     gpe-su             |                []                                |
+     gpe-taskmanager    |                []                                |
+     gpe-timesheet      |                []                                |
+     gpe-today          |                []                                |
+     gpe-todo           |                                                  |
+     gphoto2            |                                                  |
+     gprof              |                                   []             |
+     gpsdrive           |                                                  |
+     gramadoir          |                                                  |
+     grep               |                                                  |
+     grub               |                []                             [] |
+     gsasl              |                                                  |
      gss                |                                                  |
-     gst-plugins-bad    |                                           []     |
-     gst-plugins-base   |                                           []     |
-     gst-plugins-good   |                                           []     |
-     gst-plugins-ugly   |                                           []     |
-     gstreamer          |                                           []     |
-     gtick              |                                           []     |
-     gtkam              | []                                        []     |
-     gtkorphan          |                                           []     |
-     gtkspell           |                            []             []     |
-     gutenprint         |                                           []     |
-     hello              | [] [] []                      []    []    []  [] |
-     herrie             |                                           []     |
+     gst-plugins-bad    |                                   []             |
+     gst-plugins-base   |                                   []             |
+     gst-plugins-good   |                                   []             |
+     gst-plugins-ugly   |                                   []             |
+     gstreamer          | []                                []          [] |
+     gtick              |                                                  |
+     gtkam              |                       []                         |
+     gtkorphan          |                                   []             |
+     gtkspell           | []             []     []                         |
+     gutenprint         |                                                  |
+     hello              |                                   []             |
+     help2man           |                                                  |
      hylafax            |                                                  |
-     idutils            |                                           []     |
-     indent             | []                                        []     |
-     iso_15924          |                                           []     |
-     iso_3166           | []    [] []       []    []          []    []  [] |
-     iso_3166_2         |                                           []     |
-     iso_4217           | []                []                      []     |
-     iso_639            | []                []                      []  [] |
-     jpilot             | ()                                        ()     |
-     jtag               |                                                  |
-     jwhois             |                                           []     |
-     kbd                |                                           []     |
-     keytouch           |                                           []     |
-     keytouch-editor    |                                           []     |
-     keytouch-keyboa... |                                                  |
-     latrine            |                                           []     |
-     ld                 |                                                  |
-     leafpad            | []                []                             |
-     libc               | []    []                                  []     |
-     libexif            |                                                  |
+     idutils            |                                                  |
+     indent             |                                   []          [] |
+     iso_15924          |                                                  |
+     iso_3166           | []          []        []          []  []   [] [] |
+     iso_3166_2         |                                                  |
+     iso_4217           |                                                  |
+     iso_639            |             [] []     []              []         |
+     iso_639_3          |                                                  |
+     jwhois             |                                                  |
+     kbd                |                                                  |
+     keytouch           |                                               [] |
+     keytouch-editor    |                                                  |
+     keytouch-keyboa... |                                               [] |
+     klavaro            |          []                                      |
+     latrine            |                                                  |
+     ld                 |                                   []             |
+     leafpad            |                                   []          [] |
+     libc               |                                   []          [] |
+     libexif            |                       ()                         |
      libextractor       |                                                  |
-     libgpewidget       |                                           []     |
+     libgnutls          |                                                  |
+     libgpewidget       |                                                  |
      libgpg-error       |                                                  |
-     libgphoto2         | []                                               |
-     libgphoto2_port    | []                                               |
-     libgsasl           |                                           []     |
-     libiconv           |                                           []     |
-     libidn             | []                                        []     |
-     lifelines          |                                           []     |
-     lilypond           |                                           []     |
-     lingoteach         |                                           []     |
+     libgphoto2         |                                                  |
+     libgphoto2_port    |                                                  |
+     libgsasl           |                                                  |
+     libiconv           |                                   []             |
+     libidn             |                                                  |
+     lifelines          |                                                  |
+     liferea            |                             []                [] |
+     lilypond           |                                                  |
+     linkdr             |          []                                      |
+     lordsawar          |                                                  |
      lprng              |                                                  |
-     lynx               | []                                        []     |
-     m4                 | []                                        []     |
+     lynx               |                                               [] |
+     m4                 |                                                  |
      mailfromd          |                                                  |
      mailutils          |                                                  |
-     make               | []    []                                  []     |
+     make               |                                                  |
      man-db             |                                                  |
-     minicom            | []                                               |
-     nano               |                               []    []    []     |
-     opcodes            |                                           []     |
-     parted             | []                                        []     |
-     pilot-qof          |                                                  |
-     popt               | []    []                                  []     |
-     psmisc             | []                                  []    []     |
+     man-db-manpages    |                                                  |
+     minicom            |                                                  |
+     mkisofs            |                                                  |
+     myserver           |                                                  |
+     nano               |                                   []          [] |
+     opcodes            |                                                  |
+     parted             |                                                  |
+     pies               |                                                  |
+     popt               |                                                  |
+     psmisc             |                                                  |
+     pspp               |                                               [] |
      pwdutils           |                                                  |
-     qof                |                                                  |
-     radius             |                                                  |
-     recode             |                                           []     |
-     rpm                | []    []                                         |
-     screem             | []                                               |
-     scrollkeeper       |                                     [] [] []  [] |
-     sed                | []                                        []     |
-     shared-mime-info   | []    []          []          []    []    []  [] |
-     sharutils          | []                                        []     |
+     radius             |                                               [] |
+     recode             |                       []                      [] |
+     rosegarden         |                                                  |
+     rpm                |                                                  |
+     rush               |                                                  |
+     sarg               |                                                  |
+     screem             |                                                  |
+     scrollkeeper       |                    [] []                      [] |
+     sed                |                []                             [] |
+     sharutils          |                                   []          [] |
      shishi             |                                                  |
      skencil            |                                                  |
-     solfege            |                                     ()        () |
+     solfege            |                                                  |
+     solfege-manual     |                                                  |
      soundtracker       |                                                  |
-     sp                 | ()                                               |
-     system-tools-ba... | []    []          []                      []     |
-     tar                | []          []                            []     |
-     texinfo            |                                     []    []     |
+     sp                 |                                                  |
+     sysstat            |                                                  |
+     tar                |                                   []             |
+     texinfo            |                                                  |
      tin                |                                                  |
-     tuxpaint           |                                     ()    []  [] |
      unicode-han-tra... |                                                  |
      unicode-transla... |                                                  |
-     util-linux         | []                                        []     |
-     util-linux-ng      | []                                        []     |
+     util-linux-ng      |                                               [] |
+     vice               |                                                  |
+     vmm                |                                                  |
      vorbis-tools       |                                                  |
-     wastesedge         |                                           []     |
-     wdiff              |                               []    []           |
-     wget               | []                                        []     |
-     xchat              | []    []                []                []     |
-     xkeyboard-config   |    [] []                                  []     |
-     xpad               |       []                      []          []     |
-                        +--------------------------------------------------+
-                          ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl  nn
-                          51  2 25  3  2  0  6  0  2  2 20  0 11  1 103  6
-
-                          or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv  ta
-                        +--------------------------------------------------+
-     Compendium         |          []  []      []       []          []     |
-     a2ps               |       ()     []      [] []       []    [] []     |
-     aegis              |                      () ()                       |
-     ant-phone          |                      []                   []     |
-     anubis             |       []             [] []                       |
-     ap-utils           |       ()                                         |
-     aspell             |                      [] []    []                 |
-     bash               |       []                      []                 |
-     bfd                |                                                  |
-     bibshelf           |                                           []     |
-     binutils           |                         []    []                 |
-     bison              |       []     []      [] []                []     |
-     bison-runtime      |       []     []      []          []       []     |
-     bluez-pin          |       []     []   [] [] []    [] []    [] []     |
-     cflow              |       []                                         |
-     clisp              |                         []                       |
-     console-tools      |                         []                       |
-     coreutils          |       []                []       []       []     |
-     cpio               |       []                []                []     |
-     cpplib             |                                           []     |
-     cryptonit          |              []                           []     |
-     dialog             |                                           []     |
-     diffutils          |       []     []      [] []             [] []     |
-     doodle             |                                     []    []     |
-     e2fsprogs          |       []                                  []     |
-     enscript           |              []      [] []       []       []     |
-     fetchmail          |       []                []          []           |
-     findutils          |       [] []                               []     |
-     findutils_stable   |       [] []          []       [] []       []     |
-     flex               |       []     []      [] []                []     |
-     fslint             |                                           []     |
-     gas                |                                                  |
-     gawk               |       []     []      []                   []     |
-     gcal               |                                           []     |
-     gcc                |                                        [] []     |
-     gettext-examples   |       [] []          [] []    [] []    [] []     |
-     gettext-runtime    |       [] []          [] []    [] []    [] []     |
-     gettext-tools      |       []             [] []    [] []    [] []     |
-     gip                |                   []          []       [] []     |
-     gliv               |       []     []      [] []    []          []     |
-     glunarclock        |              []      [] []    []       [] []     |
-     gmult              |                   [] []                [] []     |
-     gnubiff            |                      ()                   []     |
-     gnucash            |       ()                                  []     |
-     gnuedu             |                                                  |
-     gnulib             |       []                         []       []     |
-     gnunet             |                                                  |
-     gnunet-gtk         |                                           []     |
-     gnutls             |       []                                  []     |
-     gpe-aerial         |          []  []      [] []       []    [] []     |
-     gpe-beam           |          []  []      [] []       []    [] []     |
-     gpe-calendar       |                         []       []    [] []     |
-     gpe-clock          |          []  []      [] []    [] []    [] []     |
-     gpe-conf           |          []  []      [] []    [] []       []     |
-     gpe-contacts       |                      [] []       []    [] []     |
-     gpe-edit           |       [] []  []      [] []    [] []    [] []     |
-     gpe-filemanager    |                                  []       []     |
-     gpe-go             |       []     []      [] []    [] []    [] []     |
-     gpe-login          |          []  []      [] []    [] []    [] []     |
-     gpe-ownerinfo      |          []  []      [] []    [] []    [] []     |
-     gpe-package        |                                  []       []     |
-     gpe-sketchbook     |          []  []      [] []    [] []    [] []     |
-     gpe-su             |          []  []      [] []    [] []    [] []     |
-     gpe-taskmanager    |          []  []      [] []    [] []    [] []     |
-     gpe-timesheet      |          []  []      [] []    [] []    [] []     |
-     gpe-today          |          []  []      [] []    [] []    [] []     |
-     gpe-todo           |                         []       []    [] []     |
-     gphoto2            |    [] []             []       []       [] []     |
-     gprof              |              []      []                   []     |
-     gpsdrive           |                         []                []     |
-     gramadoir          |                               []          []     |
-     grep               |       []                      [] []       []     |
-     gretl              |       [] []  []                                  |
-     gsasl              |       []                               [] []     |
-     gss                |       []             []       []          []     |
-     gst-plugins-bad    |       []     []                           []     |
-     gst-plugins-base   |       []                                  []     |
-     gst-plugins-good   |       []                                  []     |
-     gst-plugins-ugly   |       []     []                           []     |
-     gstreamer          |       []                            [] [] []     |
-     gtick              |                         []                       |
-     gtkam              |    [] []     []         []                []     |
-     gtkorphan          |                                           []     |
-     gtkspell           |              []   [] [] []    [] []    [] []     |
-     gutenprint         |                                           []     |
-     hello              |       []     []      [] []    [] []    [] []     |
-     herrie             |       []                []                []     |
-     hylafax            |                                                  |
-     idutils            |       []     []      [] []                []     |
-     indent             |       []     []      [] []    []       [] []     |
-     iso_15924          |                                                  |
-     iso_3166           |    [] [] []  []      [] [] [] [] [] [] [] []  [] |
-     iso_3166_2         |                                                  |
-     iso_4217           |       [] []             [] []    []    [] []     |
-     iso_639            |       []                [] [] [] []    [] []     |
-     jpilot             |                                                  |
-     jtag               |                               []                 |
-     jwhois             |       []     []      []                   []     |
-     kbd                |       []             []                   []     |
-     keytouch           |                                           []     |
-     keytouch-editor    |                                           []     |
-     keytouch-keyboa... |                                           []     |
-     latrine            |                                                  |
-     ld                 |                                           []     |
-     leafpad            |       [] []             []    []          []  [] |
-     libc               |       []                []    []          []     |
-     libexif            |       []                      []                 |
-     libextractor       |                      []                   []     |
-     libgpewidget       |       [] []  []      []       [] []    [] []     |
-     libgpg-error       |       []             []                   []     |
-     libgphoto2         |       []                                         |
-     libgphoto2_port    |       []                []                []     |
-     libgsasl           |       []             []                [] []     |
-     libiconv           |                                  []    [] []     |
-     libidn             |       []                               [] ()     |
-     lifelines          |       []                                  []     |
-     lilypond           |                                                  |
-     lingoteach         |              []                                  |
-     lprng              |       []                                         |
-     lynx               |              []         []                []     |
-     m4                 |       []     []      [] []                []     |
-     mailfromd          |       []                                         |
-     mailutils          |       []                []                []     |
-     make               |       []     []         []                []     |
-     man-db             |       []             [] []                []     |
-     minicom            |       []     []      [] []                []     |
-     nano               |              []      [] []                []     |
-     opcodes            |                      []                   []     |
-     parted             |       []                                         |
-     pilot-qof          |                                                  |
-     popt               |       [] []             []                []     |
-     psmisc             |       []                                  []     |
-     pwdutils           |       []                                  []     |
-     qof                |              []                           []     |
-     radius             |       []                []                       |
-     recode             |       [] []  []      [] []       []       []     |
-     rpm                |       [] []             []                []     |
-     screem             |                                                  |
-     scrollkeeper       |       []             [] []    []    [] [] []     |
-     sed                |       [] []  []      [] []    [] []    [] []     |
-     shared-mime-info   |       [] []  []                     [] [] []     |
-     sharutils          |       []                []             [] []     |
-     shishi             |       []                                         |
-     skencil            |          []  []                           []     |
-     solfege            |              []                                  |
-     soundtracker       |                               []          []     |
-     sp                 |                                                  |
-     system-tools-ba... |    [] [] []  []      []             [] [] []  [] |
-     tar                |       []                []       []       []     |
-     texinfo            |       []             [] []                []     |
-     tin                |                         ()                       |
-     tuxpaint           |       [] []                      [] [] [] []     |
-     unicode-han-tra... |                                                  |
-     unicode-transla... |                                                  |
-     util-linux         |              []         []       []       []     |
-     util-linux-ng      |              []         []       []       []     |
-     vorbis-tools       |                         []                       |
      wastesedge         |                                                  |
-     wdiff              |       []     []      [] []    [] []       []     |
-     wget               |          []             []    []          []     |
-     xchat              |    []                   []    [] [] [] [] []     |
-     xkeyboard-config   |                               [] []       []     |
-     xpad               |                               [] []       []     |
+     wdiff              |                                                  |
+     wget               |                       []                      [] |
+     wyslij-po          |                                                  |
+     xchat              |                []     []          []          [] |
+     xdg-user-dirs      | []    []    [] []     []    []    []  []      [] |
+     xkeyboard-config   |                                   []          [] |
                         +--------------------------------------------------+
-                          or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv  ta
-                           0  5 77 31  53    4 58 72  3 45 46  9 45 122  3
+                          af am an ar as ast az be be@latin bg bn_IN bs ca
+                           6  0  1  2  3 19   1 10     3    28   3    1 38
+
+                          crh cs da  de  el en en_GB en_ZA eo es et eu fa
+                        +-------------------------------------------------+
+     a2ps               |     [] []  []  []     []            [] []       |
+     aegis              |        []  []                       []          |
+     ant-phone          |        []  ()                                   |
+     anubis             |        []  []                                   |
+     aspell             |     [] []  []         []            []          |
+     bash               |     []                           [] []          |
+     bfd                |                                     []          |
+     bibshelf           |        []  []                       []          |
+     binutils           |                                     []          |
+     bison              |            []  []                               |
+     bison-runtime      |        []  []  []                      []       |
+     bluez-pin          |     [] []  []  []                [] []          |
+     bombono-dvd        |        []                                       |
+     buzztard           |     [] []  []                                   |
+     cflow              |        []  []                                   |
+     clisp              |        []  []     []                []          |
+     coreutils          |     [] []  []                          []       |
+     cpio               |                                                 |
+     cppi               |                                                 |
+     cpplib             |        []  []                       []          |
+     cryptsetup         |            []                                   |
+     dfarc              |        []  []                       []          |
+     dialog             |        []  []                    [] []    []    |
+     dico               |                                                 |
+     diffutils          |     [] []  []  []                [] []          |
+     dink               |        []  []                       []          |
+     doodle             |            []                                   |
+     e2fsprogs          |     []     []                       []          |
+     enscript           |        []  []         []                        |
+     exif               |     () []  []                                   |
+     fetchmail          |     [] []  ()  []     []            []          |
+     findutils          |     [] []  []                                   |
+     flex               |            []                       []          |
+     freedink           |        []  []                       []          |
+     gas                |                                     []          |
+     gawk               |        []  []                       []          |
+     gcal               |                                     []          |
+     gcc                |            []                       []          |
+     gettext-examples   |            []  []                [] []          |
+     gettext-runtime    |        []  []                    [] []          |
+     gettext-tools      |            []                       []    []    |
+     gip                |        []  []                       []    []    |
+     gjay               |            []                                   |
+     gliv               |     [] []  []                                   |
+     glunarclock        |        []  []                                   |
+     gnubiff            |            ()                                   |
+     gnucash            |     []     ()  ()     ()            ()          |
+     gnuedu             |        []                           []          |
+     gnulib             |            []                       []          |
+     gnunet             |                                                 |
+     gnunet-gtk         |        []                                       |
+     gnutls             |     []     []                                   |
+     gold               |                                     []          |
+     gpe-aerial         |     [] []  []                       []          |
+     gpe-beam           |     [] []  []                       []          |
+     gpe-bluetooth      |        []  []                                   |
+     gpe-calendar       |        []                                       |
+     gpe-clock          |     [] []  []                       []          |
+     gpe-conf           |     [] []  []                                   |
+     gpe-contacts       |        []  []                       []          |
+     gpe-edit           |        []  []                                   |
+     gpe-filemanager    |        []  []                       []          |
+     gpe-go             |     [] []  []                       []          |
+     gpe-login          |        []  []                                   |
+     gpe-ownerinfo      |     [] []  []                       []          |
+     gpe-package        |        []  []                       []          |
+     gpe-sketchbook     |     [] []  []                       []          |
+     gpe-su             |     [] []  []                       []          |
+     gpe-taskmanager    |     [] []  []                       []          |
+     gpe-timesheet      |     [] []  []                       []          |
+     gpe-today          |     [] []  []                       []          |
+     gpe-todo           |        []  []                       []          |
+     gphoto2            |     [] []  ()         []            []    []    |
+     gprof              |        []  []                       []          |
+     gpsdrive           |        []                           [] []       |
+     gramadoir          |        []  []                    []             |
+     grep               |     []                                          |
+     grub               |        []  []                                   |
+     gsasl              |            []                                   |
+     gss                |                                                 |
+     gst-plugins-bad    |     [] []  []                       []    []    |
+     gst-plugins-base   |     [] []  []                       []    []    |
+     gst-plugins-good   |     [] []  []  []                   []    []    |
+     gst-plugins-ugly   |     [] []  []  []                   []    []    |
+     gstreamer          |     [] []  []                       []    []    |
+     gtick              |        []  ()                    []             |
+     gtkam              |     [] []  ()                    [] []          |
+     gtkorphan          |     [] []  []                    []             |
+     gtkspell           |     [] []  []  []                [] []    []    |
+     gutenprint         |        []  []         []                        |
+     hello              |        []  []                    [] []          |
+     help2man           |            []                                   |
+     hylafax            |            []                       []          |
+     idutils            |        []  []                                   |
+     indent             |     [] []  []                    [] [] [] []    |
+     iso_15924          |        []      ()                [] []          |
+     iso_3166           | []  [] []  []  ()                [] [] [] ()    |
+     iso_3166_2         |                ()                               |
+     iso_4217           |     [] []  []  ()                   [] []       |
+     iso_639            | []  [] []  []  ()                [] []          |
+     iso_639_3          | []                                              |
+     jwhois             |                                     []          |
+     kbd                |     [] []  []  []                   []          |
+     keytouch           |        []  []                                   |
+     keytouch-editor    |        []  []                                   |
+     keytouch-keyboa... |        []                                       |
+     klavaro            |     [] []  []                    []             |
+     latrine            |        []  ()                                   |
+     ld                 |        []                           []          |
+     leafpad            |     [] []  []  []                   []    []    |
+     libc               |     [] []  []                       []          |
+     libexif            |        []  []         ()                        |
+     libextractor       |                                                 |
+     libgnutls          |     []                                          |
+     libgpewidget       |        []  []                                   |
+     libgpg-error       |     []     []                                   |
+     libgphoto2         |        []  ()                                   |
+     libgphoto2_port    |        []  ()                             []    |
+     libgsasl           |                                                 |
+     libiconv           |     [] []  []                    []    []       |
+     libidn             |     []     []                    []             |
+     lifelines          |        []  ()                                   |
+     liferea            |     []     []  []                   []    []    |
+     lilypond           |     []     []                       []          |
+     linkdr             |        []  []                       []          |
+     lordsawar          |        []                                       |
+     lprng              |                                                 |
+     lynx               |     [] []  []                          []       |
+     m4                 |     [] []  []  []                               |
+     mailfromd          |                                                 |
+     mailutils          |                                     []          |
+     make               |        []  []                       []          |
+     man-db             |                                                 |
+     man-db-manpages    |                                                 |
+     minicom            |     [] []  []                       []          |
+     mkisofs            |                                                 |
+     myserver           |                                                 |
+     nano               |            []                       []    []    |
+     opcodes            |            []                       []          |
+     parted             |     []     []                                   |
+     pies               |                                                 |
+     popt               |     [] []  []                    [] []          |
+     psmisc             |     []     []                             []    |
+     pspp               |                                     []          |
+     pwdutils           |        []                                       |
+     radius             |                                     []          |
+     recode             |     [] []  []  []                [] []          |
+     rosegarden         |     ()     ()                       ()          |
+     rpm                |        []  []                       []          |
+     rush               |                                                 |
+     sarg               |                                                 |
+     screem             |                                                 |
+     scrollkeeper       |     [] []  []         []            []          |
+     sed                |     []     []  []                [] [] []       |
+     sharutils          |        []  []                       [] []       |
+     shishi             |                                                 |
+     skencil            |        []  ()                       []          |
+     solfege            |            []                    []    []       |
+     solfege-manual     |                                  []    []       |
+     soundtracker       |        []  []                       []          |
+     sp                 |            []                                   |
+     sysstat            |        []  []                             []    |
+     tar                |     []     []                          [] []    |
+     texinfo            |            []                    [] []          |
+     tin                |            []                          []       |
+     unicode-han-tra... |                                                 |
+     unicode-transla... |                                                 |
+     util-linux-ng      |     [] []  []                       []          |
+     vice               |        ()  ()                                   |
+     vmm                |            []                                   |
+     vorbis-tools       |     []                           []             |
+     wastesedge         |        []                                       |
+     wdiff              |            []                       []          |
+     wget               |     []     []                          []       |
+     wyslij-po          |                                                 |
+     xchat              |     []     []  []                   [] []       |
+     xdg-user-dirs      | []  [] []  []  []                [] [] [] []    |
+     xkeyboard-config   | []  [] []  []                    [] []          |
+                        +-------------------------------------------------+
+                          crh cs da  de  el en en_GB en_ZA eo es et eu fa
+                           5  64 105 117 18  1   8     0   28 89 18 19  0
+
+                          fi  fr  ga gl gu he hi hr hu hy id  is it ja ka kn
+                        +----------------------------------------------------+
+     a2ps               | []  []                          []        []       |
+     aegis              |     []                                 []          |
+     ant-phone          |     []                                 []          |
+     anubis             | []  []                          []     []          |
+     aspell             |     []  []                      []     []          |
+     bash               | []  []                          []        []       |
+     bfd                | []  []                          []                 |
+     bibshelf           | []  []  []                      []     []          |
+     binutils           | []  []                          []                 |
+     bison              | []  []  []                      []                 |
+     bison-runtime      | []  []  []                      []     [] []       |
+     bluez-pin          | []  []  []                [] [] []  []    []       |
+     bombono-dvd        | []                                                 |
+     buzztard           |                                 []                 |
+     cflow              | []      []                      []                 |
+     clisp              |     []                                             |
+     coreutils          |     []  []                []    []     []          |
+     cpio               | []  []  []                      []                 |
+     cppi               | []  []                                             |
+     cpplib             | []  []                          []                 |
+     cryptsetup         |     []                          []     []          |
+     dfarc              | []  []                                 []          |
+     dialog             |     []  [] []                   []  [] [] []       |
+     dico               |                                                    |
+     diffutils          | []  []  [] []    []       []    []     [] []       |
+     dink               |     []                                             |
+     doodle             |         []                             []          |
+     e2fsprogs          |     []                          []                 |
+     enscript           |     []  []             []       []                 |
+     exif               | []  []                          []  [] [] []       |
+     fetchmail          |     []                          []     [] []       |
+     findutils          | []  []  []                []    []     []          |
+     flex               | []  []  []                                         |
+     freedink           | []  []                          []                 |
+     gas                |     []                          []                 |
+     gawk               |     []  []       []             []     () []       |
+     gcal               |     []                                             |
+     gcc                |                                 []                 |
+     gettext-examples   | []  []  []                []    []     [] []       |
+     gettext-runtime    | []  []  []                      []     [] []       |
+     gettext-tools      |     []                          []     [] []       |
+     gip                | []  []  [] []                   []        []       |
+     gjay               | []                                                 |
+     gliv               | []  ()                                             |
+     glunarclock        | []      []                []    []                 |
+     gnubiff            |     ()                          []     ()          |
+     gnucash            | ()  ()           ()       ()           () []       |
+     gnuedu             |     []                                 []          |
+     gnulib             | []  []  []                []           [] []       |
+     gnunet             |                                                    |
+     gnunet-gtk         |     []                                             |
+     gnutls             |     []                                 []          |
+     gold               | []                              []                 |
+     gpe-aerial         | []  []                          []                 |
+     gpe-beam           | []  []                          []        []       |
+     gpe-bluetooth      | []                              []     [] []       |
+     gpe-calendar       | []                                        []       |
+     gpe-clock          | []  []                    []    []        []       |
+     gpe-conf           | []  []                          []        []       |
+     gpe-contacts       | []  []                          []        []       |
+     gpe-edit           | []                              []        []       |
+     gpe-filemanager    | []                        []    []        []       |
+     gpe-go             | []  []                    []    []        []       |
+     gpe-login          | []                              []        []       |
+     gpe-ownerinfo      | []  []                    []    []        []       |
+     gpe-package        | []                              []        []       |
+     gpe-sketchbook     | []  []                          []        []       |
+     gpe-su             | []  []     []             []    []        []       |
+     gpe-taskmanager    | []  []                    []    []        []       |
+     gpe-timesheet      | []  []  []                      []        []       |
+     gpe-today          | []  []  [] []             []    []        []       |
+     gpe-todo           | []                              []        []       |
+     gphoto2            | []  []                    []    []     [] []       |
+     gprof              | []  []  []                      []                 |
+     gpsdrive           |            []                   []     []          |
+     gramadoir          |     []  []                      []                 |
+     grep               | []                                     []          |
+     grub               | []                        []    []     []          |
+     gsasl              | []  []  []                      []     []          |
+     gss                | []  []  []                      []     []          |
+     gst-plugins-bad    | []  []                    []    []     [] []       |
+     gst-plugins-base   | []  []                    []    []     [] []       |
+     gst-plugins-good   | []  []                    []    []     [] []       |
+     gst-plugins-ugly   | []  []                    []    []     [] []       |
+     gstreamer          | []  []                    []    []     []          |
+     gtick              | []  []  []                      []     []          |
+     gtkam              |     []                    []    []     [] []       |
+     gtkorphan          |     []                          []     []          |
+     gtkspell           | []  []  [] []             [] [] []     [] []       |
+     gutenprint         | []  []                    []           []          |
+     hello              | []      []                      []                 |
+     help2man           | []  []                                             |
+     hylafax            |                                 []                 |
+     idutils            | []  []  []                []    []     []          |
+     indent             | []  []  [] []             []    []     [] []       |
+     iso_15924          | []  ()                          []     []          |
+     iso_3166           | []  ()  [] [] [] [] [] [] []    []     [] []       |
+     iso_3166_2         |     ()                    []    []     []          |
+     iso_4217           | []  ()                    []    []     [] []       |
+     iso_639            | []  ()  []    []          []    []     [] []    [] |
+     iso_639_3          |     ()                                 []       [] |
+     jwhois             | []  []                    []    []     []          |
+     kbd                |     []                          []                 |
+     keytouch           | []  []  []                []    []     []          |
+     keytouch-editor    | []      []                []    []     []          |
+     keytouch-keyboa... | []      []                []    []     []          |
+     klavaro            |            []             []                       |
+     latrine            | []                              []     []          |
+     ld                 | []  []  []                      []                 |
+     leafpad            | []  []  []       []       []    []     [] ()       |
+     libc               | []  []     []                   []        []       |
+     libexif            |                                        []          |
+     libextractor       |                                                    |
+     libgnutls          |     []                                 []          |
+     libgpewidget       | []      []                      []        []       |
+     libgpg-error       |     []                                 []          |
+     libgphoto2         |     []                                 [] []       |
+     libgphoto2_port    |     []                                 [] []       |
+     libgsasl           | []  []  []                      []     []          |
+     libiconv           | []  []  []                      []     [] []       |
+     libidn             | []  []                          []     []          |
+     lifelines          |     ()                                             |
+     liferea            |     []                    []           [] []       |
+     lilypond           | []  []                                             |
+     linkdr             | []               []    [] []           []          |
+     lordsawar          |                                                    |
+     lprng              |                                 []                 |
+     lynx               |     []                    []    []     [] []       |
+     m4                 | []  []  [] []                   []        []       |
+     mailfromd          |                                                    |
+     mailutils          |     []                          []                 |
+     make               | []  []  [] []    []    []       []     [] []       |
+     man-db             |                                 []     []          |
+     man-db-manpages    |                                 []                 |
+     minicom            | []  []                    []    []        []       |
+     mkisofs            | []  []                          []     []          |
+     myserver           |                                                    |
+     nano               | []  []  [] []             []           []          |
+     opcodes            | []  []  []                      []                 |
+     parted             |     []                          []     [] []       |
+     pies               |                                                    |
+     popt               | []  []  [] []             []    []  [] [] []       |
+     psmisc             | []  []                          []                 |
+     pspp               |                                                    |
+     pwdutils           |     []                          []                 |
+     radius             |     []                          []                 |
+     recode             | []  []  [] []    []       []    []     []          |
+     rosegarden         | ()  ()                          ()     () ()       |
+     rpm                |                                 []        []       |
+     rush               |                                                    |
+     sarg               |     []                                             |
+     screem             |                                        [] []       |
+     scrollkeeper       | []                        []    []     []          |
+     sed                | []  []  [] []             []    []     [] []       |
+     sharutils          | []  []  []                []    []     [] []       |
+     shishi             |     []                                             |
+     skencil            |     []                                             |
+     solfege            | []  []     []                          []          |
+     solfege-manual     |     []     []                                      |
+     soundtracker       |     []                                 []          |
+     sp                 |     []                                    ()       |
+     sysstat            | []  []                          []     [] []       |
+     tar                | []  []  []                []    []     [] []       |
+     texinfo            |     []                          []     [] []       |
+     tin                |     []                                             |
+     unicode-han-tra... |                                                    |
+     unicode-transla... |     []  []                                         |
+     util-linux-ng      | []  []                    []    []     [] []       |
+     vice               |     ()                    ()           ()          |
+     vmm                |     []                                             |
+     vorbis-tools       |                                 []                 |
+     wastesedge         |     ()                                 ()          |
+     wdiff              | []                                                 |
+     wget               | []  []  []             [] []    []     [] []       |
+     wyslij-po          | []  []                          []                 |
+     xchat              | []  []        []    []    []    []     [] []    [] |
+     xdg-user-dirs      | []  []  [] [] [] [] []    []    []  [] [] []    [] |
+     xkeyboard-config   | []  []                    []    []     []          |
+                        +----------------------------------------------------+
+                          fi  fr  ga gl gu he hi hr hu hy id  is it ja ka kn
+                          105 121 53 20  4  8  3  5 53  2 120  5 84 67  0  4
+
+                          ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
+                        +-----------------------------------------------+
+     a2ps               |                               []              |
+     aegis              |                                               |
+     ant-phone          |                                               |
+     anubis             |                               []    []        |
+     aspell             |                         []                    |
+     bash               |                                               |
+     bfd                |                                               |
+     bibshelf           |                []             []              |
+     binutils           |                                               |
+     bison              |                               []              |
+     bison-runtime      |       []    [] []             []    []        |
+     bluez-pin          |    [] []    [] []             []              |
+     bombono-dvd        |                                               |
+     buzztard           |                                               |
+     cflow              |                                               |
+     clisp              |                                               |
+     coreutils          |          []                                   |
+     cpio               |                                               |
+     cppi               |                                               |
+     cpplib             |                                               |
+     cryptsetup         |                                               |
+     dfarc              |                   []                          |
+     dialog             |    []       [] []             []    []        |
+     dico               |                                               |
+     diffutils          |                []             []              |
+     dink               |                                               |
+     doodle             |                                               |
+     e2fsprogs          |                                               |
+     enscript           |                                               |
+     exif               |                []                             |
+     fetchmail          |                                               |
+     findutils          |                                               |
+     flex               |                                               |
+     freedink           |                                     []        |
+     gas                |                                               |
+     gawk               |                                               |
+     gcal               |                                               |
+     gcc                |                                               |
+     gettext-examples   |       []       []             [] []           |
+     gettext-runtime    | []                                            |
+     gettext-tools      | []                                            |
+     gip                |                []             []              |
+     gjay               |                                               |
+     gliv               |                                               |
+     glunarclock        |                []                             |
+     gnubiff            |                                               |
+     gnucash            | ()          ()                      ()     () |
+     gnuedu             |                                               |
+     gnulib             |                                               |
+     gnunet             |                                               |
+     gnunet-gtk         |                                               |
+     gnutls             |                               []              |
+     gold               |                                               |
+     gpe-aerial         |                []                             |
+     gpe-beam           |                []                             |
+     gpe-bluetooth      |                []                []           |
+     gpe-calendar       |                []                             |
+     gpe-clock          | []    []       []             [] []           |
+     gpe-conf           | []             []                             |
+     gpe-contacts       | []             []                             |
+     gpe-edit           |                []                             |
+     gpe-filemanager    | []             []                             |
+     gpe-go             | []             []                []           |
+     gpe-login          |                []                             |
+     gpe-ownerinfo      |                []             []              |
+     gpe-package        | []             []                             |
+     gpe-sketchbook     | []             []                             |
+     gpe-su             | []    []       []             [] [] []        |
+     gpe-taskmanager    | [] [] []       []             [] []           |
+     gpe-timesheet      |                []             []              |
+     gpe-today          |       []       []             [] []           |
+     gpe-todo           |                []                   []        |
+     gphoto2            |                                               |
+     gprof              |                               []              |
+     gpsdrive           |                                               |
+     gramadoir          |                                               |
+     grep               |                                               |
+     grub               |                                               |
+     gsasl              |                                               |
+     gss                |                                               |
+     gst-plugins-bad    |             [] []                [] []        |
+     gst-plugins-base   |             [] []                             |
+     gst-plugins-good   |                []                []           |
+     gst-plugins-ugly   |             [] []             [] [] []        |
+     gstreamer          |                                               |
+     gtick              |                                               |
+     gtkam              |                                     []        |
+     gtkorphan          |                []                      []     |
+     gtkspell           |       []    [] []       []    []    [] []     |
+     gutenprint         |                                               |
+     hello              | []             []             []              |
+     help2man           |                                               |
+     hylafax            |                                               |
+     idutils            |                                               |
+     indent             |                                               |
+     iso_15924          |             [] []                             |
+     iso_3166           | [] []       () [] [] []    []       []        |
+     iso_3166_2         |                                               |
+     iso_4217           |             []                      []        |
+     iso_639            |                      []    []                 |
+     iso_639_3          |                            []                 |
+     jwhois             |                []                             |
+     kbd                |                                               |
+     keytouch           |                []                             |
+     keytouch-editor    |                []                             |
+     keytouch-keyboa... |                []                             |
+     klavaro            |                                     []        |
+     latrine            |                []                             |
+     ld                 |                                               |
+     leafpad            | []          [] []                             |
+     libc               | []                                            |
+     libexif            |                                               |
+     libextractor       |                                               |
+     libgnutls          |                               []              |
+     libgpewidget       |                []             []              |
+     libgpg-error       |                                               |
+     libgphoto2         |                                               |
+     libgphoto2_port    |                                               |
+     libgsasl           |                                               |
+     libiconv           |                                               |
+     libidn             |                                               |
+     lifelines          |                                               |
+     liferea            |                                               |
+     lilypond           |                                               |
+     linkdr             |                                               |
+     lordsawar          |                                               |
+     lprng              |                                               |
+     lynx               |                                               |
+     m4                 |                                               |
+     mailfromd          |                                               |
+     mailutils          |                                               |
+     make               | []                                            |
+     man-db             |                                               |
+     man-db-manpages    |                                               |
+     minicom            |                                     []        |
+     mkisofs            |                                               |
+     myserver           |                                               |
+     nano               |                               []    []        |
+     opcodes            |                                               |
+     parted             |                                               |
+     pies               |                                               |
+     popt               | []             []                   []        |
+     psmisc             |                                               |
+     pspp               |                                               |
+     pwdutils           |                                               |
+     radius             |                                               |
+     recode             |                                               |
+     rosegarden         |                                               |
+     rpm                |                                               |
+     rush               |                                               |
+     sarg               |                                               |
+     screem             |                                               |
+     scrollkeeper       |                                     []     [] |
+     sed                |                                               |
+     sharutils          |                                               |
+     shishi             |                                               |
+     skencil            |                                               |
+     solfege            |                                     []        |
+     solfege-manual     |                                               |
+     soundtracker       |                                               |
+     sp                 |                                               |
+     sysstat            |                []                             |
+     tar                |       []                                      |
+     texinfo            |                                     []        |
+     tin                |                                               |
+     unicode-han-tra... |                                               |
+     unicode-transla... |                                               |
+     util-linux-ng      |                                               |
+     vice               |                                               |
+     vmm                |                                               |
+     vorbis-tools       |                                               |
+     wastesedge         |                                               |
+     wdiff              |                                               |
+     wget               |             []                                |
+     wyslij-po          |                                               |
+     xchat              | []             [] []                          |
+     xdg-user-dirs      | [] []       [] [] []       []       [] []     |
+     xkeyboard-config   | []    []    []                                |
+                        +-----------------------------------------------+
+                          ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
+                          20  5 10  1 13 48  4  2  2  4 24 10 20  3   1
+
+                          nl  nn or pa pl  ps pt pt_BR ro ru rw sk sl sq sr
+                        +---------------------------------------------------+
+     a2ps               | []           []     []  []   [] []       []    [] |
+     aegis              | []                      []      []                |
+     ant-phone          |                         []   []                   |
+     anubis             | []           []                 []                |
+     aspell             | []                           [] []    [] []       |
+     bash               | []                                    []          |
+     bfd                |                                 []                |
+     bibshelf           | []  []                                            |
+     binutils           |                                 []    []          |
+     bison              | []           []                 []                |
+     bison-runtime      | []           []     []  []   [] []       []       |
+     bluez-pin          | []           []         []   [] []    [] []    [] |
+     bombono-dvd        |     []                          ()                |
+     buzztard           | []  []                                            |
+     cflow              |              []                                   |
+     clisp              | []                              []                |
+     coreutils          | []           []     []  []      []       []       |
+     cpio               | []           []                 []                |
+     cppi               |              []                                   |
+     cpplib             | []                                                |
+     cryptsetup         | []                                                |
+     dfarc              |              []                                   |
+     dialog             | []           []         []      []                |
+     dico               |              []                                   |
+     diffutils          | []           []         []   [] []             [] |
+     dink               | ()                                                |
+     doodle             | []                                          []    |
+     e2fsprogs          | []           []                                   |
+     enscript           | []                      []   [] []       []       |
+     exif               | []           []              [] ()    []          |
+     fetchmail          | []           []                 []          []    |
+     findutils          | []           []     []          []       []       |
+     flex               | []           []         []   [] []                |
+     freedink           | []           []                                   |
+     gas                |                                                   |
+     gawk               | []           []         []   []                   |
+     gcal               |                                                   |
+     gcc                |                                                [] |
+     gettext-examples   | []           []     []       [] []    [] []    [] |
+     gettext-runtime    | []  []       []     []       [] []    [] []    [] |
+     gettext-tools      |              []              [] []    [] []    [] |
+     gip                | []           []                 []    []       [] |
+     gjay               |                                                   |
+     gliv               | []           []         []   [] []    []          |
+     glunarclock        | []                      []   []       []       [] |
+     gnubiff            | []                           ()                   |
+     gnucash            | []           ()         ()      ()                |
+     gnuedu             | []                                                |
+     gnulib             | []           []                 []       []       |
+     gnunet             |                                                   |
+     gnunet-gtk         |                                                   |
+     gnutls             | []           []                                   |
+     gold               |                                                   |
+     gpe-aerial         | []                  []  []   [] []       []    [] |
+     gpe-beam           | []                  []  []   [] []       []    [] |
+     gpe-bluetooth      | []                      []                        |
+     gpe-calendar       |                         []      []       []    [] |
+     gpe-clock          | []                  []  []   [] []    [] []    [] |
+     gpe-conf           | []                  []  []   [] []    [] []       |
+     gpe-contacts       |                         []   [] []       []    [] |
+     gpe-edit           | []           []                          []       |
+     gpe-filemanager    | []                              []       []       |
+     gpe-go             | []           []         []   [] []    [] []    [] |
+     gpe-login          | []                      []                        |
+     gpe-ownerinfo      | []                  []  []   [] []    [] []    [] |
+     gpe-package        | []                                       []       |
+     gpe-sketchbook     | []                  []  []   [] []       []    [] |
+     gpe-su             | []                  []  []   [] []    [] []    [] |
+     gpe-taskmanager    | []                  []  []   [] []    [] []    [] |
+     gpe-timesheet      | []                  []  []   [] []    [] []    [] |
+     gpe-today          | []                  []  []   [] []    [] []    [] |
+     gpe-todo           | []                      []      []       []    [] |
+     gphoto2            | []        [] []         []   [] []    []       [] |
+     gprof              | []                      []   []                   |
+     gpsdrive           | []                              []                |
+     gramadoir          | []                                    []          |
+     grep               | []           []                 []    []          |
+     grub               | []           []                 []                |
+     gsasl              | []           []                       []       [] |
+     gss                |              []              []       []          |
+     gst-plugins-bad    | []           []         []      []    []    []    |
+     gst-plugins-base   | []           []         []      []    []          |
+     gst-plugins-good   | []           []         []      []    []          |
+     gst-plugins-ugly   | []           []         []      []    [] []       |
+     gstreamer          | []           []         []      []    []          |
+     gtick              | []                              []    []          |
+     gtkam              | []        [] []         []      []    []          |
+     gtkorphan          | []                                                |
+     gtkspell           | []           []     []  []   [] []    [] [] [] [] |
+     gutenprint         | []                              []                |
+     hello              | []           []                       [] []       |
+     help2man           |              []                 []                |
+     hylafax            | []                                                |
+     idutils            | []           []         []   [] []                |
+     indent             | []           []         []   [] []    []       [] |
+     iso_15924          | []           []                 []       []       |
+     iso_3166           | []  [] [] [] []     ()  []   [] [] [] [] [] [] [] |
+     iso_3166_2         | []           []                          []       |
+     iso_4217           | []  []       []     []          [] []    []    [] |
+     iso_639            | []     [] [] []                 [] [] [] []    [] |
+     iso_639_3          |        [] []                                      |
+     jwhois             | []           []         []   []                   |
+     kbd                | []           []              []                   |
+     keytouch           | []           []                       []          |
+     keytouch-editor    | []           []                       []          |
+     keytouch-keyboa... | []           []                       []          |
+     klavaro            | []                      []                        |
+     latrine            |              []                 []                |
+     ld                 |                                                   |
+     leafpad            | []  []       []     []  []      []    [] []    [] |
+     libc               | []           []                 []    []          |
+     libexif            | []           []         ()            []          |
+     libextractor       |                                                   |
+     libgnutls          | []           []                                   |
+     libgpewidget       | []           []                          []       |
+     libgpg-error       |              []              []                   |
+     libgphoto2         | []           []                                   |
+     libgphoto2_port    | []           []         []      []    []          |
+     libgsasl           | []           []              []       []       [] |
+     libiconv           | []           []                       [] []    [] |
+     libidn             | []           []                                   |
+     lifelines          | []           []                                   |
+     liferea            | []           []     []  []   [] ()    ()    []    |
+     lilypond           | []                                                |
+     linkdr             | []                  []          []                |
+     lordsawar          |                                                   |
+     lprng              |              []                                   |
+     lynx               | []                      []      []                |
+     m4                 | []           []         []   [] []                |
+     mailfromd          |              []                                   |
+     mailutils          |              []                                   |
+     make               | []           []         []      []                |
+     man-db             | []           []                 []                |
+     man-db-manpages    | []           []                 []                |
+     minicom            |              []         []   [] []                |
+     mkisofs            | []           []                 []                |
+     myserver           |                                                   |
+     nano               | []           []         []      []                |
+     opcodes            | []                           []                   |
+     parted             | []           []                 []    []          |
+     pies               |              []                                   |
+     popt               | []           []     []          []                |
+     psmisc             | []           []                 []                |
+     pspp               | []                      []                        |
+     pwdutils           |              []                                   |
+     radius             | []           []                 []                |
+     recode             | []           []     []  []   [] []    [] []       |
+     rosegarden         |              ()                 ()                |
+     rpm                | []           []     []                            |
+     rush               | []           []                                   |
+     sarg               |                                                   |
+     screem             |                                                   |
+     scrollkeeper       | []  []       []              [] []    []    [] [] |
+     sed                | []           []     []  []   [] []    [] []    [] |
+     sharutils          | []           []                 []             [] |
+     shishi             |              []                                   |
+     skencil            |                     []  []                        |
+     solfege            | []           []         []      []                |
+     solfege-manual     | []           []         []                        |
+     soundtracker       |                                       []          |
+     sp                 |                                                   |
+     sysstat            | []           []         []      []                |
+     tar                | []           []                 []       []       |
+     texinfo            | []           []              [] []                |
+     tin                |                                 []                |
+     unicode-han-tra... |                                                   |
+     unicode-transla... |                                                   |
+     util-linux-ng      | []           []         []      []       []       |
+     vice               | []                                                |
+     vmm                | []                                                |
+     vorbis-tools       | []           []                                   |
+     wastesedge         | []                                                |
+     wdiff              | []           []                                   |
+     wget               | []           []     []  []      []    [] []       |
+     wyslij-po          | []  []       []                                   |
+     xchat              | []        [] []     []          []    [] [] [] [] |
+     xdg-user-dirs      | []  [] [] [] []  [] []  []   [] []    [] [] [] [] |
+     xkeyboard-config   | []           []                 []                |
+                        +---------------------------------------------------+
+                          nl  nn or pa pl  ps pt pt_BR ro ru rw sk sl sq sr
+                          135 10  4  7 105  1 29  62   47 91  3 54 46  9 37
 
-                          tg th tk tr uk ven vi  wa xh zh_CN zh_HK zh_TW zu
+                          sv  sw ta te tg th tr uk vi  wa zh_CN zh_HK zh_TW
                         +---------------------------------------------------+
-     Compendium         |          []        []         []          []      | 19
-     a2ps               |          [] []     []                             | 19
-     aegis              |                    []                             |  1
-     ant-phone          |          []        []                             |  6
-     anubis             |          [] []     []                             | 11
-     ap-utils           |             ()     []                             |  4
-     aspell             |             []     []  []                         | 16
-     bash               |          []                                       |  6
-     bfd                |                                                   |  2
-     bibshelf           |                    []                             |  7
-     binutils           |          [] []     []                     []      |  9
-     bison              |          [] []     []                     []      | 20
-     bison-runtime      |             []     []         []          []      | 18
-     bluez-pin          |          [] []     []  []     []          []      | 28
-     cflow              |             []     []                             |  5
-     clisp              |                                                   |  9
-     console-tools      |          []        []                             |  5
-     coreutils          |          [] []     []                             | 18
-     cpio               |          [] []     []         []                  | 11
-     cpplib             |          [] []     []         []          []      | 12
-     cryptonit          |                    []                             |  6
-     dialog             |                    []  []     []                  |  9
-     diffutils          |          [] []     []         []          []      | 29
-     doodle             |                    []                             |  6
-     e2fsprogs          |          []        []                             | 10
-     enscript           |          [] []     []                             | 16
-     fetchmail          |          []        []                             | 12
-     findutils          |          [] []     []                             | 11
-     findutils_stable   |          [] []     []                     []      | 18
-     flex               |          []        []                             | 15
-     fslint             |                    []                             |  2
-     gas                |          []                                       |  3
-     gawk               |          []        []         []                  | 16
-     gcal               |          []                                       |  5
-     gcc                |          []                   []          []      |  7
-     gettext-examples   |          [] []     []         []    []    []      | 29
-     gettext-runtime    |          [] []     []         []    []    []      | 28
-     gettext-tools      |          [] []     []         []          []      | 20
-     gip                |                    []                     []      | 13
-     gliv               |          []        []                             | 11
-     glunarclock        |                    []  []                 []      | 15
-     gmult              |          []        []         []          []      | 16
-     gnubiff            |                    []                             |  2
-     gnucash            |          () []                                    |  5
-     gnuedu             |                    []                             |  2
-     gnulib             |                    []                             | 10
-     gnunet             |                                                   |  0
-     gnunet-gtk         |          []        []                             |  3
-     gnutls             |                                                   |  4
-     gpe-aerial         |                    []         []                  | 14
-     gpe-beam           |                    []         []                  | 14
-     gpe-calendar       |                    []  []                         |  7
-     gpe-clock          |          []        []  []     []                  | 21
-     gpe-conf           |                    []  []     []                  | 16
-     gpe-contacts       |                    []         []                  | 10
-     gpe-edit           |          []        []  []     []          []      | 22
-     gpe-filemanager    |                    []  []                         |  7
-     gpe-go             |          []        []  []     []                  | 19
-     gpe-login          |          []        []  []     []          []      | 21
-     gpe-ownerinfo      |          []        []         []          []      | 21
-     gpe-package        |                    []                             |  6
-     gpe-sketchbook     |          []        []                             | 16
-     gpe-su             |          []        []  []     []                  | 21
-     gpe-taskmanager    |          []        []  []     []                  | 21
-     gpe-timesheet      |          []        []         []          []      | 18
-     gpe-today          |          []        []  []     []          []      | 21
-     gpe-todo           |                    []  []                         |  8
-     gphoto2            |             []     []         []          []      | 21
-     gprof              |          []        []                             | 13
-     gpsdrive           |                    []                             |  5
-     gramadoir          |                    []                             |  7
-     grep               |                    []                             | 12
-     gretl              |                                                   |  6
-     gsasl              |                    []         []          []      |  9
-     gss                |                    []                             |  7
-     gst-plugins-bad    |             []     []         []                  | 13
-     gst-plugins-base   |             []     []                             | 11
-     gst-plugins-good   |             []     []         []    []    []      | 16
-     gst-plugins-ugly   |             []     []         []                  | 13
-     gstreamer          |          [] []     []                             | 18
-     gtick              |             []     []                             |  7
-     gtkam              |                    []                             | 16
-     gtkorphan          |                    []                             |  7
-     gtkspell           |             []     []  []     []    []    []      | 27
-     gutenprint         |                                                   |  4
-     hello              |          [] []     []         []          []      | 38
-     herrie             |          []        []                             |  8
-     hylafax            |                                                   |  0
-     idutils            |          []        []                             | 15
-     indent             |          [] []     []         []          []      | 28
-     iso_15924          |                    []         []                  |  4
-     iso_3166           |    [] [] [] []     []  []     []    []    []      | 54
-     iso_3166_2         |                    []         []                  |  4
-     iso_4217           |    []    []        []         []    []            | 24
-     iso_639            |             []     []  []     []    []            | 26
-     jpilot             |          [] []     []         []                  |  7
-     jtag               |                    []                             |  3
-     jwhois             |          []        []                     []      | 13
-     kbd                |          [] []     []                             | 13
-     keytouch           |                    []                             |  8
-     keytouch-editor    |                    []                             |  5
-     keytouch-keyboa... |                    []                             |  5
-     latrine            |          []        []                             |  5
-     ld                 |          []        []         []          []      | 10
-     leafpad            |          [] []     []         []          []      | 24
-     libc               |          []                   []          []      | 19
-     libexif            |                    []                             |  5
-     libextractor       |                    []                             |  5
-     libgpewidget       |                    []  []     []                  | 20
-     libgpg-error       |                    []                             |  6
-     libgphoto2         |             []     []                             |  9
-     libgphoto2_port    |             []     []                     []      | 11
-     libgsasl           |                    []                             |  8
-     libiconv           |                    []  []                         | 11
-     libidn             |                    []         []                  | 11
-     lifelines          |                                                   |  4
-     lilypond           |                    []                             |  6
-     lingoteach         |                    []                             |  6
-     lprng              |                    []                             |  2
-     lynx               |          [] []     []                             | 15
-     m4                 |                    []         []          []      | 18
-     mailfromd          |             []     []                             |  3
-     mailutils          |             []     []                             |  8
-     make               |          []        []         []                  | 20
-     man-db             |                    []                             |  9
-     minicom            |                    []                             | 14
-     nano               |                    []         []          []      | 20
-     opcodes            |          []        []                             | 10
-     parted             |          [] []                            []      | 11
-     pilot-qof          |                    []                             |  1
-     popt               |          []        []         []          []      | 18
-     psmisc             |                    []         []                  | 10
-     pwdutils           |                    []                             |  3
-     qof                |                    []                             |  4
-     radius             |             []     []                             |  7
-     recode             |          []        []         []                  | 25
-     rpm                |          [] []     []                     []      | 13
-     screem             |                    []                             |  2
-     scrollkeeper       |          [] []     []                     []      | 26
-     sed                |          []        []         []          []      | 23
-     shared-mime-info   |             []     []         []                  | 29
-     sharutils          |          []        []                     []      | 23
-     shishi             |                    []                             |  3
-     skencil            |                    []                             |  7
-     solfege            |                    []                             |  3
-     soundtracker       |          []        []                             |  9
-     sp                 |          []                                       |  3
-     system-tools-ba... |    []    [] []     []     []  []          []      | 38
-     tar                |          [] []     []                             | 17
-     texinfo            |          []        []         []                  | 15
-     tin                |                                                   |  1
-     tuxpaint           |                    []  []                 []      | 19
+     a2ps               | []              [] [] [] []                       | 27
+     aegis              |                          []                       |  9
+     ant-phone          | []                 []    []      []               |  9
+     anubis             | []                 [] [] []                       | 15
+     aspell             |                       [] []  []                   | 20
+     bash               | []                    [] []                       | 12
+     bfd                |                          []                       |  6
+     bibshelf           | []                       []      []               | 16
+     binutils           |                       [] []                       |  8
+     bison              | []                       []                       | 12
+     bison-runtime      | []              []    [] []      []          []   | 29
+     bluez-pin          | []              [] [] [] []  []  []          []   | 37
+     bombono-dvd        |                          []                       |  4
+     buzztard           |                          []                       |  7
+     cflow              |                       [] []      []               |  9
+     clisp              |                                                   | 10
+     coreutils          | []                    [] []      []               | 22
+     cpio               | []                 [] [] []      []          []   | 13
+     cppi               |                       [] []                       |  5
+     cpplib             | []                 [] [] []      []          []   | 14
+     cryptsetup         | []                       []                       |  7
+     dfarc              |                          []                       |  9
+     dialog             | []  []          []       []  []  []          []   | 30
+     dico               |                       []                          |  2
+     diffutils          | []                 [] [] []      []          []   | 30
+     dink               |                                                   |  4
+     doodle             | []                       []                       |  7
+     e2fsprogs          | []                 []    []                       | 11
+     enscript           | []                 [] [] []                       | 17
+     exif               | []                       []      []               | 16
+     fetchmail          |                    []    []      []               | 17
+     findutils          | []                 [] [] []      []               | 20
+     flex               | []                 []    []                  []   | 15
+     freedink           |                          []                       | 10
+     gas                |                    []                             |  4
+     gawk               | []                 []    []      []               | 18
+     gcal               | []                 []                             |  5
+     gcc                | []                 []            []               |  7
+     gettext-examples   | []                 [] [] []      []    []    []   | 34
+     gettext-runtime    | []                 [] [] []      []    []    []   | 29
+     gettext-tools      | []                 [] [] []      []          []   | 22
+     gip                | []                       []      []          []   | 22
+     gjay               |                          []                       |  3
+     gliv               | []                 []    []                       | 14
+     glunarclock        | []                       []  []  []          []   | 19
+     gnubiff            | []                       []                       |  4
+     gnucash            |                    () [] ()      []          ()   | 10
+     gnuedu             |                          []                  []   |  7
+     gnulib             | []                    [] []      []               | 16
+     gnunet             |                          []                       |  1
+     gnunet-gtk         | []                 []    []                       |  5
+     gnutls             | []                       []      []               | 10
+     gold               |                          []                       |  4
+     gpe-aerial         | []                       []      []               | 18
+     gpe-beam           | []                       []      []               | 19
+     gpe-bluetooth      | []                       []      []               | 13
+     gpe-calendar       | []                       []  []  []               | 12
+     gpe-clock          | []                 []    []  []  []               | 28
+     gpe-conf           | []                       []  []  []               | 20
+     gpe-contacts       | []                       []      []               | 17
+     gpe-edit           | []                       []      []               | 12
+     gpe-filemanager    | []                       []  []  []               | 16
+     gpe-go             | []                 []    []  []  []               | 25
+     gpe-login          | []                       []      []               | 11
+     gpe-ownerinfo      | []                 []    []      []          []   | 25
+     gpe-package        | []                       []      []               | 13
+     gpe-sketchbook     | []                       []      []               | 20
+     gpe-su             | []                 []    []  []  []               | 30
+     gpe-taskmanager    | []                 []    []  []  []               | 29
+     gpe-timesheet      | []                 []    []      []          []   | 25
+     gpe-today          | []                 []    []  []  []          []   | 30
+     gpe-todo           | []                       []  []  []               | 17
+     gphoto2            | []                    [] []      []          []   | 24
+     gprof              | []                 []    []                       | 15
+     gpsdrive           | []                       []      []               | 11
+     gramadoir          | []                       []      []               | 11
+     grep               |                 []       []      []               | 10
+     grub               | []                       []      []               | 14
+     gsasl              | []                       []      []          []   | 14
+     gss                | []                       []      []               | 11
+     gst-plugins-bad    | []                 []    []      []               | 26
+     gst-plugins-base   | []                 [] [] []      []               | 24
+     gst-plugins-good   | []                 []    []      []               | 24
+     gst-plugins-ugly   | []                 [] [] []      []               | 29
+     gstreamer          | []                    [] []      []               | 22
+     gtick              |                       [] []      []               | 13
+     gtkam              | []                       []      []               | 20
+     gtkorphan          | []                       []      []               | 14
+     gtkspell           | []              [] [] [] []  []  []    []    []   | 45
+     gutenprint         | []                                                | 10
+     hello              | []              [] []    []      []          []   | 21
+     help2man           | []                       []                       |  7
+     hylafax            |                          []                       |  5
+     idutils            | []                 []    []      []               | 17
+     indent             | []                 [] [] []      []          []   | 30
+     iso_15924          |                 ()    [] ()      []          []   | 16
+     iso_3166           | []        []    () [] [] ()  []  []    []    ()   | 53
+     iso_3166_2         |                 ()    [] ()      []               |  9
+     iso_4217           | []              () [] [] ()      []    []         | 26
+     iso_639            | []     [] []    ()    [] ()  []  []    []    []   | 38
+     iso_639_3          |        []                ()                       |  8
+     jwhois             | []                 []    []      []          []   | 16
+     kbd                | []                 [] [] []      []               | 15
+     keytouch           | []                       []      []               | 16
+     keytouch-editor    | []                       []      []               | 14
+     keytouch-keyboa... | []                       []      []               | 14
+     klavaro            |                          []                       | 11
+     latrine            |                    []    []      []               | 10
+     ld                 | []                 []    []                  []   | 11
+     leafpad            | []                 [] [] []      []          []   | 33
+     libc               | []                 []    []      []          []   | 21
+     libexif            |                          []      ()               |  7
+     libextractor       |                          []                       |  1
+     libgnutls          | []                       []      []               |  9
+     libgpewidget       | []                       []      []               | 14
+     libgpg-error       | []                       []      []               |  9
+     libgphoto2         |                       [] []                       |  8
+     libgphoto2_port    | []                    [] []                  []   | 14
+     libgsasl           | []                       []      []               | 13
+     libiconv           | []                       []  []  []               | 21
+     libidn             | ()                       []      []               | 11
+     lifelines          | []                                                |  4
+     liferea            | []                 []            []               | 21
+     lilypond           |                          []                       |  7
+     linkdr             | []                 []    []      []          []   | 17
+     lordsawar          |                                                   |  1
+     lprng              |                          []                       |  3
+     lynx               | []                 [] [] []                       | 17
+     m4                 | []                       []      []          []   | 19
+     mailfromd          |                       [] []                       |  3
+     mailutils          |                          []                       |  5
+     make               | []                 []    []      []               | 21
+     man-db             | []                       []      []               |  8
+     man-db-manpages    |                                                   |  4
+     minicom            | []                       []                       | 16
+     mkisofs            |                          []      []               |  9
+     myserver           |                                                   |  0
+     nano               | []                       []      []          []   | 21
+     opcodes            | []                 []    []                       | 11
+     parted             | []                 [] [] []                  []   | 15
+     pies               |                       [] []                       |  3
+     popt               | []              [] []    []      []          []   | 27
+     psmisc             | []                       []                       | 11
+     pspp               |                                                   |  4
+     pwdutils           | []                       []                       |  6
+     radius             |                       [] []                       |  9
+     recode             | []                 []    []      []               | 28
+     rosegarden         | ()                                                |  0
+     rpm                | []                       []                  []   | 11
+     rush               |                       [] []                       |  4
+     sarg               |                                                   |  1
+     screem             |                          []                       |  3
+     scrollkeeper       | []                 [] [] []                  []   | 27
+     sed                | []                 []    []      []          []   | 30
+     sharutils          | []                 []    []      []          []   | 22
+     shishi             |                          []                       |  3
+     skencil            | []                       []                       |  7
+     solfege            | []                 []    []      []               | 16
+     solfege-manual     |                    []                             |  8
+     soundtracker       | []                 []    []                       |  9
+     sp                 |                    []                             |  3
+     sysstat            |                          []      []               | 15
+     tar                | []                 [] [] []      []          []   | 23
+     texinfo            | []                 [] [] []      []               | 17
+     tin                |                                                   |  4
      unicode-han-tra... |                                                   |  0
      unicode-transla... |                                                   |  2
-     util-linux         |          [] []     []                             | 20
-     util-linux-ng      |          [] []     []                             | 20
-     vorbis-tools       |             []     []                             |  4
-     wastesedge         |                                                   |  1
-     wdiff              |          []        []                             | 23
-     wget               |          []        []                     []      | 20
-     xchat              |             []     []         []          []      | 29
-     xkeyboard-config   |          [] []     []                             | 14
-     xpad               |                    []         []          []      | 15
+     util-linux-ng      | []                 [] [] []                       | 20
+     vice               | ()                 ()                             |  1
+     vmm                |                          []                       |  4
+     vorbis-tools       |                          []                       |  6
+     wastesedge         |                                                   |  2
+     wdiff              | []                       []                       |  7
+     wget               | []                 []    []      []          []   | 26
+     wyslij-po          |                       [] []                       |  8
+     xchat              | []              []    [] []      []          []   | 36
+     xdg-user-dirs      | []     [] []    [] [] [] []      []    []    []   | 63
+     xkeyboard-config   | []                    [] []                       | 22
                         +---------------------------------------------------+
-       76 teams           tg th tk tr uk ven vi  wa xh zh_CN zh_HK zh_TW zu
-      163 domains          0  3  1 74 51  0  143 21  1  57     7    45    0  2036
+       85 teams           sv  sw ta te tg th tr uk vi  wa zh_CN zh_HK zh_TW
+      178 domains         119  1  3  3  0 10 65 51 155 17  98     7    41    2618
 
    Some counters in the preceding matrix are higher than the number of
 visible blocks let us expect.  This is because a few extra PO files are
@@ -1042,12 +1256,12 @@ distributed as such by its maintainer.  There might be an observable
 lag between the mere existence a PO file and its wide availability in a
 distribution.
 
-   If November 2007 seems to be old, you may fetch a more recent copy
-of this `ABOUT-NLS' file on most GNU archive sites.  The most
-up-to-date matrix with full percentage details can be found at
+   If June 2010 seems to be old, you may fetch a more recent copy of
+this `ABOUT-NLS' file on most GNU archive sites.  The most up-to-date
+matrix with full percentage details can be found at
 `http://translationproject.org/extra/matrix.html'.
 
-1.6 Using `gettext' in new packages
+1.5 Using `gettext' in new packages
 ===================================
 
 If you are writing a freely available program and want to
index 7cd9a6a..11b5f48 100644 (file)
@@ -24,11 +24,21 @@ AM_CPPFLAGS =  \
        -I$(top_srcdir)/libmoonshot \
        -I$(top_builddir)/libmoonshot
 
+
+if LOG4VALA
+MOONSHOT_LOG_PKG= --pkg $(LOG4VALA_VERSION) -X -l$(LOG4VALA_VERSION) --define=USE_LOG4VALA
+MOONSHOT_LOG_LIBS= -l$(LOG4VALA_VERSION)
+else
+MOONSHOT_LOG_PKG=
+MOONSHOT_LOG_LIBS=
+endif
+
+
 AM_VALAFLAGS = -g \
         config.vapi \
-       --vapidir=$(top_srcdir)/vapi \
-        --pkg gio-2.0
-
+        --vapidir=$(top_srcdir)/vapi \
+        --pkg gio-2.0 \
+        $(MOONSHOT_LOG_PKG)
 
 libmoonshot_libmoonshot_la_CPPFLAGS = \
         $(libmoonshot_CFLAGS) \
@@ -49,31 +59,39 @@ src_moonshot_SOURCES = \
         src/moonshot-keyring-store.vala \
         src/moonshot-idcard-store.vala \
         src/moonshot-id.vala \
-        src/moonshot-add-dialog.vala \
+        src/moonshot-identity-dialog.vala \
         src/moonshot-idcard-widget.vala \
         src/moonshot-custom-vbox.vala \
         src/moonshot-identities-manager.vala \
         src/moonshot-identity-request.vala \
-        src/moonshot-server.vala \
+        src/moonshot-server-linux.vala \
+        src/moonshot-settings.vala \
         src/moonshot-password-dialog.vala \
         src/moonshot-provisioning-common.vala \
+        src/moonshot-trust-anchor-dialog.vala \
         src/moonshot-utils.vala \
-        src/moonshot-futils.c
+        src/moonshot-futils.c \
+        src/moonshot-crypto-utils.c \
+        src/moonshot-logger.vala \
+        src/moonshot-warning-dialog.vala
 
 src_moonshot_webp_SOURCES = \
+        src/moonshot-crypto-utils.c \
         src/moonshot-webp-parser.vala \
         src/moonshot-provisioning-common.vala \
-        src/moonshot-id.vala
+        src/moonshot-id.vala \
+        src/moonshot-logger.vala
+
 
-src_moonshot_VALAFLAGS = --pkg gdk-2.0 --pkg gtk+-2.0 --pkg gee-1.0 $(AM_VALAFLAGS)
+src_moonshot_VALAFLAGS = --pkg $(GTK_VERSION) --pkg $(GEE_VERSION)   $(AM_VALAFLAGS)
 src_moonshot_CPPFLAGS = $(moonshot_CFLAGS) $(AM_CPPFLAGS)  
-src_moonshot_LDADD = $(moonshot_LIBS) 
-src_moonshot_LDFLAGS = -g -O0
+src_moonshot_LDADD = $(moonshot_LIBS)
+src_moonshot_LDFLAGS = -g -O0 $(MOONSHOT_LOG_LIBS)
 
-src_moonshot_webp_VALAFLAGS = --vapidir=$(top_srcdir)/libmoonshot  --pkg gtk+-2.0 --pkg gdk-2.0 --pkg libmoonshot $(AM_VALAFLAGS)
+src_moonshot_webp_VALAFLAGS = --vapidir=$(top_srcdir)/libmoonshot  --pkg $(GEE_VERSION) --pkg libmoonshot $(AM_VALAFLAGS)
 src_moonshot_webp_CPPFLAGS = $(moonshot_CFLAGS) $(AM_CPPFLAGS)
 src_moonshot_webp_LDADD = $(moonshot_LIBS) ${top_builddir}/libmoonshot/libmoonshot.la
-src_moonshot_webp_LDFLAGS =
+src_moonshot_webp_LDFLAGS = $(MOONSHOT_LOG_LIBS)
 
 if OS_WIN32
 
@@ -105,8 +123,8 @@ if OS_LINUX
 
 AM_CPPFLAGS += -I/usr/include/gnome-keyring-1
 AM_VALAFLAGS += --pkg moonshot-gnome-keyring --define=GNOME_KEYRING
-src_moonshot_LDFLAGS += -lgnome-keyring
-src_moonshot_webp_LDFLAGS += -lgnome-keyring
+src_moonshot_LDFLAGS += -lgnome-keyring -lcrypto
+src_moonshot_webp_LDFLAGS += -lgnome-keyring -lcrypto
 
 ## Installing mime type data
 mimedir = $(datadir)/mime/packages
@@ -168,7 +186,7 @@ $(dbusservice_DATA): $(dbusservice_in_files) Makefile
 
 libmoonshot_libmoonshot_la_SOURCES += libmoonshot/libmoonshot-dbus.c
 
-CLEANFILES = $(dbusservice_DATA)
+CLEANFILES = $(dbusservice_DATA)  src_moonshot_vala.stamp src_moonshot_vala.stamp-t
 
 if IPC_DBUS_GLIB
 AM_VALAFLAGS += \
index d62c32f..c4603f5 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -101,8 +101,8 @@ bin_PROGRAMS = src/moonshot$(EXEEXT) src/moonshot-webp$(EXEEXT)
 @OS_MACOS_TRUE@am__append_6 = $(MAC_LIBS)
 @OS_LINUX_TRUE@am__append_7 = -I/usr/include/gnome-keyring-1
 @OS_LINUX_TRUE@am__append_8 = --pkg moonshot-gnome-keyring --define=GNOME_KEYRING
-@OS_LINUX_TRUE@am__append_9 = -lgnome-keyring
-@OS_LINUX_TRUE@am__append_10 = -lgnome-keyring
+@OS_LINUX_TRUE@am__append_9 = -lgnome-keyring -lcrypto
+@OS_LINUX_TRUE@am__append_10 = -lgnome-keyring -lcrypto
 @IPC_MSRPC_TRUE@am__append_11 = -Isrc
 @IPC_MSRPC_TRUE@am__append_12 = \
 @IPC_MSRPC_TRUE@       --pkg moonshot-msrpc --pkg msrpc-1.0 \
@@ -227,16 +227,21 @@ am_src_moonshot_OBJECTS =  \
        src/src_moonshot-moonshot-keyring-store.$(OBJEXT) \
        src/src_moonshot-moonshot-idcard-store.$(OBJEXT) \
        src/src_moonshot-moonshot-id.$(OBJEXT) \
-       src/src_moonshot-moonshot-add-dialog.$(OBJEXT) \
+       src/src_moonshot-moonshot-identity-dialog.$(OBJEXT) \
        src/src_moonshot-moonshot-idcard-widget.$(OBJEXT) \
        src/src_moonshot-moonshot-custom-vbox.$(OBJEXT) \
        src/src_moonshot-moonshot-identities-manager.$(OBJEXT) \
        src/src_moonshot-moonshot-identity-request.$(OBJEXT) \
-       src/src_moonshot-moonshot-server.$(OBJEXT) \
+       src/src_moonshot-moonshot-server-linux.$(OBJEXT) \
+       src/src_moonshot-moonshot-settings.$(OBJEXT) \
        src/src_moonshot-moonshot-password-dialog.$(OBJEXT) \
        src/src_moonshot-moonshot-provisioning-common.$(OBJEXT) \
+       src/src_moonshot-moonshot-trust-anchor-dialog.$(OBJEXT) \
        src/src_moonshot-moonshot-utils.$(OBJEXT) \
-       src/src_moonshot-moonshot-futils.$(OBJEXT)
+       src/src_moonshot-moonshot-futils.$(OBJEXT) \
+       src/src_moonshot-moonshot-crypto-utils.$(OBJEXT) \
+       src/src_moonshot-moonshot-logger.$(OBJEXT) \
+       src/src_moonshot-moonshot-warning-dialog.$(OBJEXT)
 @IPC_MSRPC_TRUE@nodist_src_moonshot_OBJECTS = libmoonshot/src_moonshot-moonshot-msrpc_s.$(OBJEXT)
 src_moonshot_OBJECTS = $(am_src_moonshot_OBJECTS) \
        $(nodist_src_moonshot_OBJECTS)
@@ -246,9 +251,11 @@ src_moonshot_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(src_moonshot_CFLAGS) \
        $(CFLAGS) $(src_moonshot_LDFLAGS) $(LDFLAGS) -o $@
 am_src_moonshot_webp_OBJECTS =  \
+       src/src_moonshot_webp-moonshot-crypto-utils.$(OBJEXT) \
        src/src_moonshot_webp-moonshot-webp-parser.$(OBJEXT) \
        src/src_moonshot_webp-moonshot-provisioning-common.$(OBJEXT) \
-       src/src_moonshot_webp-moonshot-id.$(OBJEXT)
+       src/src_moonshot_webp-moonshot-id.$(OBJEXT) \
+       src/src_moonshot_webp-moonshot-logger.$(OBJEXT)
 src_moonshot_webp_OBJECTS = $(am_src_moonshot_webp_OBJECTS)
 src_moonshot_webp_DEPENDENCIES = $(am__DEPENDENCIES_3) \
        ${top_builddir}/libmoonshot/libmoonshot.la
@@ -377,16 +384,19 @@ am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
        build-aux/compile build-aux/config.guess \
        build-aux/config.rpath build-aux/config.sub build-aux/depcomp \
        build-aux/install-sh build-aux/ltmain.sh build-aux/missing \
-       src/moonshot-add-dialog.c src/moonshot-custom-vbox.c \
-       src/moonshot-id.c src/moonshot-idcard-store.c \
-       src/moonshot-idcard-widget.c src/moonshot-identities-manager.c \
+       src/moonshot-custom-vbox.c src/moonshot-id.c \
+       src/moonshot-idcard-store.c src/moonshot-idcard-widget.c \
+       src/moonshot-identities-manager.c \
+       src/moonshot-identity-dialog.c \
        src/moonshot-identity-management-view.c \
        src/moonshot-identity-manager-app.c \
        src/moonshot-identity-request.c src/moonshot-keyring-store.c \
-       src/moonshot-local-flat-file-store.c \
+       src/moonshot-local-flat-file-store.c src/moonshot-logger.c \
        src/moonshot-password-dialog.c \
-       src/moonshot-provisioning-common.c src/moonshot-server.c \
-       src/moonshot-utils.c src/moonshot-webp-parser.c
+       src/moonshot-provisioning-common.c src/moonshot-server-linux.c \
+       src/moonshot-settings.c src/moonshot-trust-anchor-dialog.c \
+       src/moonshot-utils.c src/moonshot-warning-dialog.c \
+       src/moonshot-webp-parser.c
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -457,6 +467,7 @@ EXEEXT = @EXEEXT@
 FGREP = @FGREP@
 GDBUS_CFLAGS = @GDBUS_CFLAGS@
 GDBUS_LIBS = @GDBUS_LIBS@
+GEE_VERSION = @GEE_VERSION@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GMSGFMT = @GMSGFMT@
@@ -464,6 +475,7 @@ GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
+GTK_VERSION = @GTK_VERSION@
 IMAGEMAGICK_CONVERT = @IMAGEMAGICK_CONVERT@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
@@ -479,11 +491,17 @@ LIBINTL = @LIBINTL@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
+LIB_GEE_CFLAGS = @LIB_GEE_CFLAGS@
+LIB_GEE_LIBS = @LIB_GEE_LIBS@
 LIPO = @LIPO@
 LN_S = @LN_S@
+LOG4VALA_CFLAGS = @LOG4VALA_CFLAGS@
+LOG4VALA_LIBS = @LOG4VALA_LIBS@
+LOG4VALA_VERSION = @LOG4VALA_VERSION@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAC_CFLAGS = @MAC_CFLAGS@
 MAC_LIBS = @MAC_LIBS@
 MAINT = @MAINT@
@@ -581,6 +599,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -603,10 +622,14 @@ AM_CPPFLAGS = -include config.h -DLOCALEDIR=\""$(localedir)"\" \
        -I$(top_srcdir)/libmoonshot -I$(top_builddir)/libmoonshot \
        $(am__append_1) $(am__append_3) $(am__append_7) \
        $(am__append_11) $(am__append_16)
+@LOG4VALA_FALSE@MOONSHOT_LOG_PKG = 
+@LOG4VALA_TRUE@MOONSHOT_LOG_PKG = --pkg $(LOG4VALA_VERSION) -X -l$(LOG4VALA_VERSION) --define=USE_LOG4VALA
+@LOG4VALA_FALSE@MOONSHOT_LOG_LIBS = 
+@LOG4VALA_TRUE@MOONSHOT_LOG_LIBS = -l$(LOG4VALA_VERSION)
 AM_VALAFLAGS = -g config.vapi --vapidir=$(top_srcdir)/vapi --pkg \
-       gio-2.0 $(am__append_2) $(am__append_4) $(am__append_8) \
-       $(am__append_12) $(am__append_15) $(am__append_17) \
-       $(am__append_18)
+       gio-2.0 $(MOONSHOT_LOG_PKG) $(am__append_2) $(am__append_4) \
+       $(am__append_8) $(am__append_12) $(am__append_15) \
+       $(am__append_17) $(am__append_18)
 libmoonshot_libmoonshot_la_CPPFLAGS = \
         $(libmoonshot_CFLAGS) \
         $(AM_CPPFLAGS) 
@@ -624,30 +647,37 @@ src_moonshot_SOURCES = \
         src/moonshot-keyring-store.vala \
         src/moonshot-idcard-store.vala \
         src/moonshot-id.vala \
-        src/moonshot-add-dialog.vala \
+        src/moonshot-identity-dialog.vala \
         src/moonshot-idcard-widget.vala \
         src/moonshot-custom-vbox.vala \
         src/moonshot-identities-manager.vala \
         src/moonshot-identity-request.vala \
-        src/moonshot-server.vala \
+        src/moonshot-server-linux.vala \
+        src/moonshot-settings.vala \
         src/moonshot-password-dialog.vala \
         src/moonshot-provisioning-common.vala \
+        src/moonshot-trust-anchor-dialog.vala \
         src/moonshot-utils.vala \
-        src/moonshot-futils.c
+        src/moonshot-futils.c \
+        src/moonshot-crypto-utils.c \
+        src/moonshot-logger.vala \
+        src/moonshot-warning-dialog.vala
 
 src_moonshot_webp_SOURCES = \
+        src/moonshot-crypto-utils.c \
         src/moonshot-webp-parser.vala \
         src/moonshot-provisioning-common.vala \
-        src/moonshot-id.vala
+        src/moonshot-id.vala \
+        src/moonshot-logger.vala
 
-src_moonshot_VALAFLAGS = --pkg gdk-2.0 --pkg gtk+-2.0 --pkg gee-1.0 $(AM_VALAFLAGS)
+src_moonshot_VALAFLAGS = --pkg $(GTK_VERSION) --pkg $(GEE_VERSION)   $(AM_VALAFLAGS)
 src_moonshot_CPPFLAGS = $(moonshot_CFLAGS) $(AM_CPPFLAGS)  
 src_moonshot_LDADD = $(moonshot_LIBS) $(am__append_6)
-src_moonshot_LDFLAGS = -g -O0 $(am__append_9)
-src_moonshot_webp_VALAFLAGS = --vapidir=$(top_srcdir)/libmoonshot  --pkg gtk+-2.0 --pkg gdk-2.0 --pkg libmoonshot $(AM_VALAFLAGS)
+src_moonshot_LDFLAGS = -g -O0 $(MOONSHOT_LOG_LIBS) $(am__append_9)
+src_moonshot_webp_VALAFLAGS = --vapidir=$(top_srcdir)/libmoonshot  --pkg $(GEE_VERSION) --pkg libmoonshot $(AM_VALAFLAGS)
 src_moonshot_webp_CPPFLAGS = $(moonshot_CFLAGS) $(AM_CPPFLAGS)
 src_moonshot_webp_LDADD = $(moonshot_LIBS) ${top_builddir}/libmoonshot/libmoonshot.la
-src_moonshot_webp_LDFLAGS = $(am__append_10)
+src_moonshot_webp_LDFLAGS = $(MOONSHOT_LOG_LIBS) $(am__append_10)
 @OS_WIN32_TRUE@src_moonshot_CFLAGS = -mwindows
 @OS_WIN32_TRUE@src_moonshot_webp_CFLAGS = -mconsole
 @OS_WIN32_TRUE@noinst_DATA = libmoonshot/libmoonshot.lib
@@ -673,7 +703,7 @@ src_moonshot_webp_LDFLAGS = $(am__append_10)
 @IPC_DBUS_TRUE@@OS_MACOS_TRUE@dbusservice_in_files = org.janet.Moonshot.service.mac
 @IPC_DBUS_TRUE@@OS_MACOS_FALSE@dbusservice_DATA = $(dbusservice_in_files:.service.in=.service)
 @IPC_DBUS_TRUE@@OS_MACOS_TRUE@dbusservice_DATA = $(dbusservice_in_files:.service.mac=.service)
-@IPC_DBUS_TRUE@CLEANFILES = $(dbusservice_DATA)
+@IPC_DBUS_TRUE@CLEANFILES = $(dbusservice_DATA)  src_moonshot_vala.stamp src_moonshot_vala.stamp-t
 EXTRA_DIST = webprovisioning/moonshot.xml $(dbusservice_in_files) \
        webprovisioning/complex-test.msht webprovisioning/sample.msht \
        README.webprovisioning README.windows \
@@ -900,8 +930,8 @@ src/src_moonshot-moonshot-idcard-store.$(OBJEXT): src/$(am__dirstamp) \
        src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot-moonshot-id.$(OBJEXT): src/$(am__dirstamp) \
        src/$(DEPDIR)/$(am__dirstamp)
-src/src_moonshot-moonshot-add-dialog.$(OBJEXT): src/$(am__dirstamp) \
-       src/$(DEPDIR)/$(am__dirstamp)
+src/src_moonshot-moonshot-identity-dialog.$(OBJEXT):  \
+       src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot-moonshot-idcard-widget.$(OBJEXT):  \
        src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot-moonshot-custom-vbox.$(OBJEXT): src/$(am__dirstamp) \
@@ -910,16 +940,26 @@ src/src_moonshot-moonshot-identities-manager.$(OBJEXT):  \
        src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot-moonshot-identity-request.$(OBJEXT):  \
        src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
-src/src_moonshot-moonshot-server.$(OBJEXT): src/$(am__dirstamp) \
+src/src_moonshot-moonshot-server-linux.$(OBJEXT): src/$(am__dirstamp) \
+       src/$(DEPDIR)/$(am__dirstamp)
+src/src_moonshot-moonshot-settings.$(OBJEXT): src/$(am__dirstamp) \
        src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot-moonshot-password-dialog.$(OBJEXT):  \
        src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot-moonshot-provisioning-common.$(OBJEXT):  \
        src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+src/src_moonshot-moonshot-trust-anchor-dialog.$(OBJEXT):  \
+       src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot-moonshot-utils.$(OBJEXT): src/$(am__dirstamp) \
        src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot-moonshot-futils.$(OBJEXT): src/$(am__dirstamp) \
        src/$(DEPDIR)/$(am__dirstamp)
+src/src_moonshot-moonshot-crypto-utils.$(OBJEXT): src/$(am__dirstamp) \
+       src/$(DEPDIR)/$(am__dirstamp)
+src/src_moonshot-moonshot-logger.$(OBJEXT): src/$(am__dirstamp) \
+       src/$(DEPDIR)/$(am__dirstamp)
+src/src_moonshot-moonshot-warning-dialog.$(OBJEXT):  \
+       src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
 libmoonshot/src_moonshot-moonshot-msrpc_s.$(OBJEXT):  \
        libmoonshot/$(am__dirstamp) \
        libmoonshot/$(DEPDIR)/$(am__dirstamp)
@@ -927,12 +967,16 @@ libmoonshot/src_moonshot-moonshot-msrpc_s.$(OBJEXT):  \
 src/moonshot$(EXEEXT): $(src_moonshot_OBJECTS) $(src_moonshot_DEPENDENCIES) $(EXTRA_src_moonshot_DEPENDENCIES) src/$(am__dirstamp)
        @rm -f src/moonshot$(EXEEXT)
        $(AM_V_CCLD)$(src_moonshot_LINK) $(src_moonshot_OBJECTS) $(src_moonshot_LDADD) $(LIBS)
+src/src_moonshot_webp-moonshot-crypto-utils.$(OBJEXT):  \
+       src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot_webp-moonshot-webp-parser.$(OBJEXT):  \
        src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot_webp-moonshot-provisioning-common.$(OBJEXT):  \
        src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot_webp-moonshot-id.$(OBJEXT): src/$(am__dirstamp) \
        src/$(DEPDIR)/$(am__dirstamp)
+src/src_moonshot_webp-moonshot-logger.$(OBJEXT): src/$(am__dirstamp) \
+       src/$(DEPDIR)/$(am__dirstamp)
 
 src/moonshot-webp$(EXEEXT): $(src_moonshot_webp_OBJECTS) $(src_moonshot_webp_DEPENDENCIES) $(EXTRA_src_moonshot_webp_DEPENDENCIES) src/$(am__dirstamp)
        @rm -f src/moonshot-webp$(EXEEXT)
@@ -1003,23 +1047,30 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@libmoonshot/$(DEPDIR)/libmoonshot_libmoonshot_la-libmoonshot-msrpc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libmoonshot/$(DEPDIR)/libmoonshot_libmoonshot_la-moonshot-msrpc_c.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libmoonshot/$(DEPDIR)/src_moonshot-moonshot-msrpc_s.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-add-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-crypto-utils.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-custom-vbox.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-futils.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-id.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-idcard-store.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-idcard-widget.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-identities-manager.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-identity-dialog.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-identity-management-view.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-identity-manager-app.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-identity-request.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-keyring-store.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-local-flat-file-store.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-logger.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-password-dialog.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-provisioning-common.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-server.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-server-linux.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-settings.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-trust-anchor-dialog.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-utils.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-warning-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot_webp-moonshot-crypto-utils.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot_webp-moonshot-id.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot_webp-moonshot-logger.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot_webp-moonshot-provisioning-common.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot_webp-moonshot-webp-parser.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/tests_basic-basic.Po@am__quote@
@@ -1188,19 +1239,19 @@ src/src_moonshot-moonshot-id.obj: src/moonshot-id.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-id.obj `if test -f 'src/moonshot-id.c'; then $(CYGPATH_W) 'src/moonshot-id.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-id.c'; fi`
 
-src/src_moonshot-moonshot-add-dialog.o: src/moonshot-add-dialog.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-add-dialog.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-add-dialog.Tpo -c -o src/src_moonshot-moonshot-add-dialog.o `test -f 'src/moonshot-add-dialog.c' || echo '$(srcdir)/'`src/moonshot-add-dialog.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-add-dialog.Tpo src/$(DEPDIR)/src_moonshot-moonshot-add-dialog.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-add-dialog.c' object='src/src_moonshot-moonshot-add-dialog.o' libtool=no @AMDEPBACKSLASH@
+src/src_moonshot-moonshot-identity-dialog.o: src/moonshot-identity-dialog.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-identity-dialog.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-identity-dialog.Tpo -c -o src/src_moonshot-moonshot-identity-dialog.o `test -f 'src/moonshot-identity-dialog.c' || echo '$(srcdir)/'`src/moonshot-identity-dialog.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-identity-dialog.Tpo src/$(DEPDIR)/src_moonshot-moonshot-identity-dialog.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-identity-dialog.c' object='src/src_moonshot-moonshot-identity-dialog.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-add-dialog.o `test -f 'src/moonshot-add-dialog.c' || echo '$(srcdir)/'`src/moonshot-add-dialog.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-identity-dialog.o `test -f 'src/moonshot-identity-dialog.c' || echo '$(srcdir)/'`src/moonshot-identity-dialog.c
 
-src/src_moonshot-moonshot-add-dialog.obj: src/moonshot-add-dialog.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-add-dialog.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-add-dialog.Tpo -c -o src/src_moonshot-moonshot-add-dialog.obj `if test -f 'src/moonshot-add-dialog.c'; then $(CYGPATH_W) 'src/moonshot-add-dialog.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-add-dialog.c'; fi`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-add-dialog.Tpo src/$(DEPDIR)/src_moonshot-moonshot-add-dialog.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-add-dialog.c' object='src/src_moonshot-moonshot-add-dialog.obj' libtool=no @AMDEPBACKSLASH@
+src/src_moonshot-moonshot-identity-dialog.obj: src/moonshot-identity-dialog.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-identity-dialog.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-identity-dialog.Tpo -c -o src/src_moonshot-moonshot-identity-dialog.obj `if test -f 'src/moonshot-identity-dialog.c'; then $(CYGPATH_W) 'src/moonshot-identity-dialog.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-identity-dialog.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-identity-dialog.Tpo src/$(DEPDIR)/src_moonshot-moonshot-identity-dialog.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-identity-dialog.c' object='src/src_moonshot-moonshot-identity-dialog.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-add-dialog.obj `if test -f 'src/moonshot-add-dialog.c'; then $(CYGPATH_W) 'src/moonshot-add-dialog.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-add-dialog.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-identity-dialog.obj `if test -f 'src/moonshot-identity-dialog.c'; then $(CYGPATH_W) 'src/moonshot-identity-dialog.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-identity-dialog.c'; fi`
 
 src/src_moonshot-moonshot-idcard-widget.o: src/moonshot-idcard-widget.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-idcard-widget.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-idcard-widget.Tpo -c -o src/src_moonshot-moonshot-idcard-widget.o `test -f 'src/moonshot-idcard-widget.c' || echo '$(srcdir)/'`src/moonshot-idcard-widget.c
@@ -1258,19 +1309,33 @@ src/src_moonshot-moonshot-identity-request.obj: src/moonshot-identity-request.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-identity-request.obj `if test -f 'src/moonshot-identity-request.c'; then $(CYGPATH_W) 'src/moonshot-identity-request.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-identity-request.c'; fi`
 
-src/src_moonshot-moonshot-server.o: src/moonshot-server.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-server.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-server.Tpo -c -o src/src_moonshot-moonshot-server.o `test -f 'src/moonshot-server.c' || echo '$(srcdir)/'`src/moonshot-server.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-server.Tpo src/$(DEPDIR)/src_moonshot-moonshot-server.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-server.c' object='src/src_moonshot-moonshot-server.o' libtool=no @AMDEPBACKSLASH@
+src/src_moonshot-moonshot-server-linux.o: src/moonshot-server-linux.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-server-linux.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-server-linux.Tpo -c -o src/src_moonshot-moonshot-server-linux.o `test -f 'src/moonshot-server-linux.c' || echo '$(srcdir)/'`src/moonshot-server-linux.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-server-linux.Tpo src/$(DEPDIR)/src_moonshot-moonshot-server-linux.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-server-linux.c' object='src/src_moonshot-moonshot-server-linux.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-server-linux.o `test -f 'src/moonshot-server-linux.c' || echo '$(srcdir)/'`src/moonshot-server-linux.c
+
+src/src_moonshot-moonshot-server-linux.obj: src/moonshot-server-linux.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-server-linux.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-server-linux.Tpo -c -o src/src_moonshot-moonshot-server-linux.obj `if test -f 'src/moonshot-server-linux.c'; then $(CYGPATH_W) 'src/moonshot-server-linux.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-server-linux.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-server-linux.Tpo src/$(DEPDIR)/src_moonshot-moonshot-server-linux.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-server-linux.c' object='src/src_moonshot-moonshot-server-linux.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-server.o `test -f 'src/moonshot-server.c' || echo '$(srcdir)/'`src/moonshot-server.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-server-linux.obj `if test -f 'src/moonshot-server-linux.c'; then $(CYGPATH_W) 'src/moonshot-server-linux.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-server-linux.c'; fi`
 
-src/src_moonshot-moonshot-server.obj: src/moonshot-server.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-server.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-server.Tpo -c -o src/src_moonshot-moonshot-server.obj `if test -f 'src/moonshot-server.c'; then $(CYGPATH_W) 'src/moonshot-server.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-server.c'; fi`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-server.Tpo src/$(DEPDIR)/src_moonshot-moonshot-server.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-server.c' object='src/src_moonshot-moonshot-server.obj' libtool=no @AMDEPBACKSLASH@
+src/src_moonshot-moonshot-settings.o: src/moonshot-settings.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-settings.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-settings.Tpo -c -o src/src_moonshot-moonshot-settings.o `test -f 'src/moonshot-settings.c' || echo '$(srcdir)/'`src/moonshot-settings.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-settings.Tpo src/$(DEPDIR)/src_moonshot-moonshot-settings.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-settings.c' object='src/src_moonshot-moonshot-settings.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-server.obj `if test -f 'src/moonshot-server.c'; then $(CYGPATH_W) 'src/moonshot-server.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-server.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-settings.o `test -f 'src/moonshot-settings.c' || echo '$(srcdir)/'`src/moonshot-settings.c
+
+src/src_moonshot-moonshot-settings.obj: src/moonshot-settings.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-settings.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-settings.Tpo -c -o src/src_moonshot-moonshot-settings.obj `if test -f 'src/moonshot-settings.c'; then $(CYGPATH_W) 'src/moonshot-settings.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-settings.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-settings.Tpo src/$(DEPDIR)/src_moonshot-moonshot-settings.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-settings.c' object='src/src_moonshot-moonshot-settings.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-settings.obj `if test -f 'src/moonshot-settings.c'; then $(CYGPATH_W) 'src/moonshot-settings.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-settings.c'; fi`
 
 src/src_moonshot-moonshot-password-dialog.o: src/moonshot-password-dialog.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-password-dialog.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-password-dialog.Tpo -c -o src/src_moonshot-moonshot-password-dialog.o `test -f 'src/moonshot-password-dialog.c' || echo '$(srcdir)/'`src/moonshot-password-dialog.c
@@ -1300,6 +1365,20 @@ src/src_moonshot-moonshot-provisioning-common.obj: src/moonshot-provisioning-com
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-provisioning-common.obj `if test -f 'src/moonshot-provisioning-common.c'; then $(CYGPATH_W) 'src/moonshot-provisioning-common.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-provisioning-common.c'; fi`
 
+src/src_moonshot-moonshot-trust-anchor-dialog.o: src/moonshot-trust-anchor-dialog.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-trust-anchor-dialog.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-trust-anchor-dialog.Tpo -c -o src/src_moonshot-moonshot-trust-anchor-dialog.o `test -f 'src/moonshot-trust-anchor-dialog.c' || echo '$(srcdir)/'`src/moonshot-trust-anchor-dialog.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-trust-anchor-dialog.Tpo src/$(DEPDIR)/src_moonshot-moonshot-trust-anchor-dialog.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-trust-anchor-dialog.c' object='src/src_moonshot-moonshot-trust-anchor-dialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-trust-anchor-dialog.o `test -f 'src/moonshot-trust-anchor-dialog.c' || echo '$(srcdir)/'`src/moonshot-trust-anchor-dialog.c
+
+src/src_moonshot-moonshot-trust-anchor-dialog.obj: src/moonshot-trust-anchor-dialog.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-trust-anchor-dialog.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-trust-anchor-dialog.Tpo -c -o src/src_moonshot-moonshot-trust-anchor-dialog.obj `if test -f 'src/moonshot-trust-anchor-dialog.c'; then $(CYGPATH_W) 'src/moonshot-trust-anchor-dialog.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-trust-anchor-dialog.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-trust-anchor-dialog.Tpo src/$(DEPDIR)/src_moonshot-moonshot-trust-anchor-dialog.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-trust-anchor-dialog.c' object='src/src_moonshot-moonshot-trust-anchor-dialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-trust-anchor-dialog.obj `if test -f 'src/moonshot-trust-anchor-dialog.c'; then $(CYGPATH_W) 'src/moonshot-trust-anchor-dialog.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-trust-anchor-dialog.c'; fi`
+
 src/src_moonshot-moonshot-utils.o: src/moonshot-utils.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-utils.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-utils.Tpo -c -o src/src_moonshot-moonshot-utils.o `test -f 'src/moonshot-utils.c' || echo '$(srcdir)/'`src/moonshot-utils.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-utils.Tpo src/$(DEPDIR)/src_moonshot-moonshot-utils.Po
@@ -1328,6 +1407,48 @@ src/src_moonshot-moonshot-futils.obj: src/moonshot-futils.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-futils.obj `if test -f 'src/moonshot-futils.c'; then $(CYGPATH_W) 'src/moonshot-futils.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-futils.c'; fi`
 
+src/src_moonshot-moonshot-crypto-utils.o: src/moonshot-crypto-utils.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-crypto-utils.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-crypto-utils.Tpo -c -o src/src_moonshot-moonshot-crypto-utils.o `test -f 'src/moonshot-crypto-utils.c' || echo '$(srcdir)/'`src/moonshot-crypto-utils.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-crypto-utils.Tpo src/$(DEPDIR)/src_moonshot-moonshot-crypto-utils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-crypto-utils.c' object='src/src_moonshot-moonshot-crypto-utils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-crypto-utils.o `test -f 'src/moonshot-crypto-utils.c' || echo '$(srcdir)/'`src/moonshot-crypto-utils.c
+
+src/src_moonshot-moonshot-crypto-utils.obj: src/moonshot-crypto-utils.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-crypto-utils.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-crypto-utils.Tpo -c -o src/src_moonshot-moonshot-crypto-utils.obj `if test -f 'src/moonshot-crypto-utils.c'; then $(CYGPATH_W) 'src/moonshot-crypto-utils.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-crypto-utils.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-crypto-utils.Tpo src/$(DEPDIR)/src_moonshot-moonshot-crypto-utils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-crypto-utils.c' object='src/src_moonshot-moonshot-crypto-utils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-crypto-utils.obj `if test -f 'src/moonshot-crypto-utils.c'; then $(CYGPATH_W) 'src/moonshot-crypto-utils.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-crypto-utils.c'; fi`
+
+src/src_moonshot-moonshot-logger.o: src/moonshot-logger.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-logger.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-logger.Tpo -c -o src/src_moonshot-moonshot-logger.o `test -f 'src/moonshot-logger.c' || echo '$(srcdir)/'`src/moonshot-logger.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-logger.Tpo src/$(DEPDIR)/src_moonshot-moonshot-logger.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-logger.c' object='src/src_moonshot-moonshot-logger.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-logger.o `test -f 'src/moonshot-logger.c' || echo '$(srcdir)/'`src/moonshot-logger.c
+
+src/src_moonshot-moonshot-logger.obj: src/moonshot-logger.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-logger.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-logger.Tpo -c -o src/src_moonshot-moonshot-logger.obj `if test -f 'src/moonshot-logger.c'; then $(CYGPATH_W) 'src/moonshot-logger.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-logger.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-logger.Tpo src/$(DEPDIR)/src_moonshot-moonshot-logger.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-logger.c' object='src/src_moonshot-moonshot-logger.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-logger.obj `if test -f 'src/moonshot-logger.c'; then $(CYGPATH_W) 'src/moonshot-logger.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-logger.c'; fi`
+
+src/src_moonshot-moonshot-warning-dialog.o: src/moonshot-warning-dialog.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-warning-dialog.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-warning-dialog.Tpo -c -o src/src_moonshot-moonshot-warning-dialog.o `test -f 'src/moonshot-warning-dialog.c' || echo '$(srcdir)/'`src/moonshot-warning-dialog.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-warning-dialog.Tpo src/$(DEPDIR)/src_moonshot-moonshot-warning-dialog.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-warning-dialog.c' object='src/src_moonshot-moonshot-warning-dialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-warning-dialog.o `test -f 'src/moonshot-warning-dialog.c' || echo '$(srcdir)/'`src/moonshot-warning-dialog.c
+
+src/src_moonshot-moonshot-warning-dialog.obj: src/moonshot-warning-dialog.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-warning-dialog.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-warning-dialog.Tpo -c -o src/src_moonshot-moonshot-warning-dialog.obj `if test -f 'src/moonshot-warning-dialog.c'; then $(CYGPATH_W) 'src/moonshot-warning-dialog.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-warning-dialog.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-warning-dialog.Tpo src/$(DEPDIR)/src_moonshot-moonshot-warning-dialog.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-warning-dialog.c' object='src/src_moonshot-moonshot-warning-dialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-warning-dialog.obj `if test -f 'src/moonshot-warning-dialog.c'; then $(CYGPATH_W) 'src/moonshot-warning-dialog.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-warning-dialog.c'; fi`
+
 libmoonshot/src_moonshot-moonshot-msrpc_s.o: libmoonshot/moonshot-msrpc_s.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT libmoonshot/src_moonshot-moonshot-msrpc_s.o -MD -MP -MF libmoonshot/$(DEPDIR)/src_moonshot-moonshot-msrpc_s.Tpo -c -o libmoonshot/src_moonshot-moonshot-msrpc_s.o `test -f 'libmoonshot/moonshot-msrpc_s.c' || echo '$(srcdir)/'`libmoonshot/moonshot-msrpc_s.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libmoonshot/$(DEPDIR)/src_moonshot-moonshot-msrpc_s.Tpo libmoonshot/$(DEPDIR)/src_moonshot-moonshot-msrpc_s.Po
@@ -1342,6 +1463,20 @@ libmoonshot/src_moonshot-moonshot-msrpc_s.obj: libmoonshot/moonshot-msrpc_s.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o libmoonshot/src_moonshot-moonshot-msrpc_s.obj `if test -f 'libmoonshot/moonshot-msrpc_s.c'; then $(CYGPATH_W) 'libmoonshot/moonshot-msrpc_s.c'; else $(CYGPATH_W) '$(srcdir)/libmoonshot/moonshot-msrpc_s.c'; fi`
 
+src/src_moonshot_webp-moonshot-crypto-utils.o: src/moonshot-crypto-utils.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_webp_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_webp_CFLAGS) $(CFLAGS) -MT src/src_moonshot_webp-moonshot-crypto-utils.o -MD -MP -MF src/$(DEPDIR)/src_moonshot_webp-moonshot-crypto-utils.Tpo -c -o src/src_moonshot_webp-moonshot-crypto-utils.o `test -f 'src/moonshot-crypto-utils.c' || echo '$(srcdir)/'`src/moonshot-crypto-utils.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot_webp-moonshot-crypto-utils.Tpo src/$(DEPDIR)/src_moonshot_webp-moonshot-crypto-utils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-crypto-utils.c' object='src/src_moonshot_webp-moonshot-crypto-utils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_webp_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_webp_CFLAGS) $(CFLAGS) -c -o src/src_moonshot_webp-moonshot-crypto-utils.o `test -f 'src/moonshot-crypto-utils.c' || echo '$(srcdir)/'`src/moonshot-crypto-utils.c
+
+src/src_moonshot_webp-moonshot-crypto-utils.obj: src/moonshot-crypto-utils.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_webp_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_webp_CFLAGS) $(CFLAGS) -MT src/src_moonshot_webp-moonshot-crypto-utils.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot_webp-moonshot-crypto-utils.Tpo -c -o src/src_moonshot_webp-moonshot-crypto-utils.obj `if test -f 'src/moonshot-crypto-utils.c'; then $(CYGPATH_W) 'src/moonshot-crypto-utils.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-crypto-utils.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot_webp-moonshot-crypto-utils.Tpo src/$(DEPDIR)/src_moonshot_webp-moonshot-crypto-utils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-crypto-utils.c' object='src/src_moonshot_webp-moonshot-crypto-utils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_webp_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_webp_CFLAGS) $(CFLAGS) -c -o src/src_moonshot_webp-moonshot-crypto-utils.obj `if test -f 'src/moonshot-crypto-utils.c'; then $(CYGPATH_W) 'src/moonshot-crypto-utils.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-crypto-utils.c'; fi`
+
 src/src_moonshot_webp-moonshot-webp-parser.o: src/moonshot-webp-parser.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_webp_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_webp_CFLAGS) $(CFLAGS) -MT src/src_moonshot_webp-moonshot-webp-parser.o -MD -MP -MF src/$(DEPDIR)/src_moonshot_webp-moonshot-webp-parser.Tpo -c -o src/src_moonshot_webp-moonshot-webp-parser.o `test -f 'src/moonshot-webp-parser.c' || echo '$(srcdir)/'`src/moonshot-webp-parser.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot_webp-moonshot-webp-parser.Tpo src/$(DEPDIR)/src_moonshot_webp-moonshot-webp-parser.Po
@@ -1384,6 +1519,20 @@ src/src_moonshot_webp-moonshot-id.obj: src/moonshot-id.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_webp_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_webp_CFLAGS) $(CFLAGS) -c -o src/src_moonshot_webp-moonshot-id.obj `if test -f 'src/moonshot-id.c'; then $(CYGPATH_W) 'src/moonshot-id.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-id.c'; fi`
 
+src/src_moonshot_webp-moonshot-logger.o: src/moonshot-logger.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_webp_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_webp_CFLAGS) $(CFLAGS) -MT src/src_moonshot_webp-moonshot-logger.o -MD -MP -MF src/$(DEPDIR)/src_moonshot_webp-moonshot-logger.Tpo -c -o src/src_moonshot_webp-moonshot-logger.o `test -f 'src/moonshot-logger.c' || echo '$(srcdir)/'`src/moonshot-logger.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot_webp-moonshot-logger.Tpo src/$(DEPDIR)/src_moonshot_webp-moonshot-logger.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-logger.c' object='src/src_moonshot_webp-moonshot-logger.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_webp_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_webp_CFLAGS) $(CFLAGS) -c -o src/src_moonshot_webp-moonshot-logger.o `test -f 'src/moonshot-logger.c' || echo '$(srcdir)/'`src/moonshot-logger.c
+
+src/src_moonshot_webp-moonshot-logger.obj: src/moonshot-logger.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_webp_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_webp_CFLAGS) $(CFLAGS) -MT src/src_moonshot_webp-moonshot-logger.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot_webp-moonshot-logger.Tpo -c -o src/src_moonshot_webp-moonshot-logger.obj `if test -f 'src/moonshot-logger.c'; then $(CYGPATH_W) 'src/moonshot-logger.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-logger.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot_webp-moonshot-logger.Tpo src/$(DEPDIR)/src_moonshot_webp-moonshot-logger.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/moonshot-logger.c' object='src/src_moonshot_webp-moonshot-logger.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_moonshot_webp_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_webp_CFLAGS) $(CFLAGS) -c -o src/src_moonshot_webp-moonshot-logger.obj `if test -f 'src/moonshot-logger.c'; then $(CYGPATH_W) 'src/moonshot-logger.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-logger.c'; fi`
+
 tests/tests_basic-basic.o: tests/basic.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(tests_basic_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tests/tests_basic-basic.o -MD -MP -MF tests/$(DEPDIR)/tests_basic-basic.Tpo -c -o tests/tests_basic-basic.o `test -f 'tests/basic.c' || echo '$(srcdir)/'`tests/basic.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) tests/$(DEPDIR)/tests_basic-basic.Tpo tests/$(DEPDIR)/tests_basic-basic.Po
@@ -1427,7 +1576,7 @@ $(srcdir)/src/moonshot-id.c: $(srcdir)/src_moonshot_vala.stamp
        @if test -f $@; then :; else \
          $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_vala.stamp; \
        fi
-$(srcdir)/src/moonshot-add-dialog.c: $(srcdir)/src_moonshot_vala.stamp
+$(srcdir)/src/moonshot-identity-dialog.c: $(srcdir)/src_moonshot_vala.stamp
        @if test -f $@; then :; else rm -f $(srcdir)/src_moonshot_vala.stamp; fi
        @if test -f $@; then :; else \
          $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_vala.stamp; \
@@ -1452,7 +1601,12 @@ $(srcdir)/src/moonshot-identity-request.c: $(srcdir)/src_moonshot_vala.stamp
        @if test -f $@; then :; else \
          $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_vala.stamp; \
        fi
-$(srcdir)/src/moonshot-server.c: $(srcdir)/src_moonshot_vala.stamp
+$(srcdir)/src/moonshot-server-linux.c: $(srcdir)/src_moonshot_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/src_moonshot_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_vala.stamp; \
+       fi
+$(srcdir)/src/moonshot-settings.c: $(srcdir)/src_moonshot_vala.stamp
        @if test -f $@; then :; else rm -f $(srcdir)/src_moonshot_vala.stamp; fi
        @if test -f $@; then :; else \
          $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_vala.stamp; \
@@ -1467,19 +1621,34 @@ $(srcdir)/src/moonshot-provisioning-common.c: $(srcdir)/src_moonshot_vala.stamp
        @if test -f $@; then :; else \
          $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_vala.stamp; \
        fi
+$(srcdir)/src/moonshot-trust-anchor-dialog.c: $(srcdir)/src_moonshot_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/src_moonshot_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_vala.stamp; \
+       fi
 $(srcdir)/src/moonshot-utils.c: $(srcdir)/src_moonshot_vala.stamp
        @if test -f $@; then :; else rm -f $(srcdir)/src_moonshot_vala.stamp; fi
        @if test -f $@; then :; else \
          $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_vala.stamp; \
        fi
+$(srcdir)/src/moonshot-logger.c: $(srcdir)/src_moonshot_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/src_moonshot_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_vala.stamp; \
+       fi
+$(srcdir)/src/moonshot-warning-dialog.c: $(srcdir)/src_moonshot_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/src_moonshot_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_vala.stamp; \
+       fi
 $(srcdir)/config.vapi: $(srcdir)/src_moonshot_vala.stamp
        @if test -f $@; then :; else rm -f $(srcdir)/src_moonshot_vala.stamp; fi
        @if test -f $@; then :; else \
          $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_vala.stamp; \
        fi
-$(srcdir)/src_moonshot_vala.stamp: src/moonshot-identity-manager-app.vala src/moonshot-identity-management-view.vala src/moonshot-local-flat-file-store.vala src/moonshot-keyring-store.vala src/moonshot-idcard-store.vala src/moonshot-id.vala src/moonshot-add-dialog.vala src/moonshot-idcard-widget.vala src/moonshot-custom-vbox.vala src/moonshot-identities-manager.vala src/moonshot-identity-request.vala src/moonshot-server.vala src/moonshot-password-dialog.vala src/moonshot-provisioning-common.vala src/moonshot-utils.vala
+$(srcdir)/src_moonshot_vala.stamp: src/moonshot-identity-manager-app.vala src/moonshot-identity-management-view.vala src/moonshot-local-flat-file-store.vala src/moonshot-keyring-store.vala src/moonshot-idcard-store.vala src/moonshot-id.vala src/moonshot-identity-dialog.vala src/moonshot-idcard-widget.vala src/moonshot-custom-vbox.vala src/moonshot-identities-manager.vala src/moonshot-identity-request.vala src/moonshot-server-linux.vala src/moonshot-settings.vala src/moonshot-password-dialog.vala src/moonshot-provisioning-common.vala src/moonshot-trust-anchor-dialog.vala src/moonshot-utils.vala src/moonshot-logger.vala src/moonshot-warning-dialog.vala
        $(AM_V_at)rm -f $@ && echo stamp > $@-t
-       $(AM_V_VALAC)$(am__cd) $(srcdir) && $(VALAC) $(src_moonshot_VALAFLAGS) $(VALAFLAGS) -C src/moonshot-identity-manager-app.vala src/moonshot-identity-management-view.vala src/moonshot-local-flat-file-store.vala src/moonshot-keyring-store.vala src/moonshot-idcard-store.vala src/moonshot-id.vala src/moonshot-add-dialog.vala src/moonshot-idcard-widget.vala src/moonshot-custom-vbox.vala src/moonshot-identities-manager.vala src/moonshot-identity-request.vala src/moonshot-server.vala src/moonshot-password-dialog.vala src/moonshot-provisioning-common.vala src/moonshot-utils.vala
+       $(AM_V_VALAC)$(am__cd) $(srcdir) && $(VALAC) $(src_moonshot_VALAFLAGS) $(VALAFLAGS) -C src/moonshot-identity-manager-app.vala src/moonshot-identity-management-view.vala src/moonshot-local-flat-file-store.vala src/moonshot-keyring-store.vala src/moonshot-idcard-store.vala src/moonshot-id.vala src/moonshot-identity-dialog.vala src/moonshot-idcard-widget.vala src/moonshot-custom-vbox.vala src/moonshot-identities-manager.vala src/moonshot-identity-request.vala src/moonshot-server-linux.vala src/moonshot-settings.vala src/moonshot-password-dialog.vala src/moonshot-provisioning-common.vala src/moonshot-trust-anchor-dialog.vala src/moonshot-utils.vala src/moonshot-logger.vala src/moonshot-warning-dialog.vala
        $(AM_V_at)mv -f $@-t $@
 $(srcdir)/src/moonshot-webp-parser.c: $(srcdir)/src_moonshot_webp_vala.stamp
        @if test -f $@; then :; else rm -f $(srcdir)/src_moonshot_webp_vala.stamp; fi
@@ -1496,14 +1665,19 @@ $(srcdir)/src/moonshot-id.c: $(srcdir)/src_moonshot_webp_vala.stamp
        @if test -f $@; then :; else \
          $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_webp_vala.stamp; \
        fi
+$(srcdir)/src/moonshot-logger.c: $(srcdir)/src_moonshot_webp_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/src_moonshot_webp_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_webp_vala.stamp; \
+       fi
 $(srcdir)/config.vapi: $(srcdir)/src_moonshot_webp_vala.stamp
        @if test -f $@; then :; else rm -f $(srcdir)/src_moonshot_webp_vala.stamp; fi
        @if test -f $@; then :; else \
          $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/src_moonshot_webp_vala.stamp; \
        fi
-$(srcdir)/src_moonshot_webp_vala.stamp: src/moonshot-webp-parser.vala src/moonshot-provisioning-common.vala src/moonshot-id.vala
+$(srcdir)/src_moonshot_webp_vala.stamp: src/moonshot-webp-parser.vala src/moonshot-provisioning-common.vala src/moonshot-id.vala src/moonshot-logger.vala
        $(AM_V_at)rm -f $@ && echo stamp > $@-t
-       $(AM_V_VALAC)$(am__cd) $(srcdir) && $(VALAC) $(src_moonshot_webp_VALAFLAGS) $(VALAFLAGS) -C src/moonshot-webp-parser.vala src/moonshot-provisioning-common.vala src/moonshot-id.vala
+       $(AM_V_VALAC)$(am__cd) $(srcdir) && $(VALAC) $(src_moonshot_webp_VALAFLAGS) $(VALAFLAGS) -C src/moonshot-webp-parser.vala src/moonshot-provisioning-common.vala src/moonshot-id.vala src/moonshot-logger.vala
        $(AM_V_at)mv -f $@-t $@
 
 mostlyclean-libtool:
@@ -1816,7 +1990,7 @@ distdir: $(DISTFILES)
          ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
        || chmod -R a+r "$(distdir)"
 dist-gzip: distdir
-       tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+       tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
        $(am__post_remove_distdir)
 
 dist-bzip2: distdir
@@ -1841,7 +2015,7 @@ dist-shar: distdir
        @echo WARNING: "Support for shar distribution archives is" \
                       "deprecated." >&2
        @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
-       shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+       shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
        $(am__post_remove_distdir)
 
 dist-zip: distdir
@@ -1859,7 +2033,7 @@ dist dist-all:
 distcheck: dist
        case '$(DIST_ARCHIVES)' in \
        *.tar.gz*) \
-         GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+         eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
        *.tar.bz2*) \
          bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
        *.tar.lz*) \
@@ -1869,7 +2043,7 @@ distcheck: dist
        *.tar.Z*) \
          uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
        *.shar.gz*) \
-         GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+         eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
        *.zip*) \
          unzip $(distdir).zip ;;\
        esac
@@ -1992,39 +2166,47 @@ maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
        @echo "it deletes files that may require special tools to rebuild."
        -rm -f $(srcdir)/config.vapi
-       -rm -f $(srcdir)/src/moonshot-add-dialog.c
        -rm -f $(srcdir)/src/moonshot-custom-vbox.c
        -rm -f $(srcdir)/src/moonshot-id.c
        -rm -f $(srcdir)/src/moonshot-idcard-store.c
        -rm -f $(srcdir)/src/moonshot-idcard-widget.c
        -rm -f $(srcdir)/src/moonshot-identities-manager.c
+       -rm -f $(srcdir)/src/moonshot-identity-dialog.c
        -rm -f $(srcdir)/src/moonshot-identity-management-view.c
        -rm -f $(srcdir)/src/moonshot-identity-manager-app.c
        -rm -f $(srcdir)/src/moonshot-identity-request.c
        -rm -f $(srcdir)/src/moonshot-keyring-store.c
        -rm -f $(srcdir)/src/moonshot-local-flat-file-store.c
+       -rm -f $(srcdir)/src/moonshot-logger.c
        -rm -f $(srcdir)/src/moonshot-password-dialog.c
        -rm -f $(srcdir)/src/moonshot-provisioning-common.c
-       -rm -f $(srcdir)/src/moonshot-server.c
+       -rm -f $(srcdir)/src/moonshot-server-linux.c
+       -rm -f $(srcdir)/src/moonshot-settings.c
+       -rm -f $(srcdir)/src/moonshot-trust-anchor-dialog.c
        -rm -f $(srcdir)/src/moonshot-utils.c
+       -rm -f $(srcdir)/src/moonshot-warning-dialog.c
        -rm -f $(srcdir)/src/moonshot-webp-parser.c
        -rm -f $(srcdir)/src_moonshot_vala.stamp
        -rm -f $(srcdir)/src_moonshot_webp_vala.stamp
-       -rm -f src/moonshot-add-dialog.c
        -rm -f src/moonshot-custom-vbox.c
        -rm -f src/moonshot-id.c
        -rm -f src/moonshot-idcard-store.c
        -rm -f src/moonshot-idcard-widget.c
        -rm -f src/moonshot-identities-manager.c
+       -rm -f src/moonshot-identity-dialog.c
        -rm -f src/moonshot-identity-management-view.c
        -rm -f src/moonshot-identity-manager-app.c
        -rm -f src/moonshot-identity-request.c
        -rm -f src/moonshot-keyring-store.c
        -rm -f src/moonshot-local-flat-file-store.c
+       -rm -f src/moonshot-logger.c
        -rm -f src/moonshot-password-dialog.c
        -rm -f src/moonshot-provisioning-common.c
-       -rm -f src/moonshot-server.c
+       -rm -f src/moonshot-server-linux.c
+       -rm -f src/moonshot-settings.c
+       -rm -f src/moonshot-trust-anchor-dialog.c
        -rm -f src/moonshot-utils.c
+       -rm -f src/moonshot-warning-dialog.c
        -rm -f src/moonshot-webp-parser.c
        -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 clean: clean-recursive
index a39c7e8..075c676 100644 (file)
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15 -*- Autoconf -*-
+# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -20,32 +20,63 @@ You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
-# serial 1 (pkg-config-0.24)
-# 
-# Copyright Â© 2004 Scott James Remnant <scott@netsplit.com>.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# PKG_PROG_PKG_CONFIG([MIN-VERSION])
-# ----------------------------------
+dnl pkg.m4 - Macros to locate and utilise pkg-config.   -*- Autoconf -*-
+dnl serial 11 (pkg-config-0.29)
+dnl
+dnl Copyright Â© 2004 Scott James Remnant <scott@netsplit.com>.
+dnl Copyright Â© 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+dnl 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a
+dnl configuration script generated by Autoconf, you may include it under
+dnl the same distribution terms that you use for the rest of that
+dnl program.
+
+dnl PKG_PREREQ(MIN-VERSION)
+dnl -----------------------
+dnl Since: 0.29
+dnl
+dnl Verify that the version of the pkg-config macros are at least
+dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
+dnl installed version of pkg-config, this checks the developer's version
+dnl of pkg.m4 when generating configure.
+dnl
+dnl To ensure that this macro is defined, also add:
+dnl m4_ifndef([PKG_PREREQ],
+dnl     [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
+dnl
+dnl See the "Since" comment for each macro you use to see what version
+dnl of the macros you require.
+m4_defun([PKG_PREREQ],
+[m4_define([PKG_MACROS_VERSION], [0.29])
+m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
+    [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
+])dnl PKG_PREREQ
+
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
+dnl ----------------------------------
+dnl Since: 0.16
+dnl
+dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
+dnl first found in the path. Checks that the version of pkg-config found
+dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
+dnl used since that's the first version where most current features of
+dnl pkg-config existed.
 AC_DEFUN([PKG_PROG_PKG_CONFIG],
 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
 m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
@@ -67,18 +98,19 @@ if test -n "$PKG_CONFIG"; then
                PKG_CONFIG=""
        fi
 fi[]dnl
-])# PKG_PROG_PKG_CONFIG
+])dnl PKG_PROG_PKG_CONFIG
 
-# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
-#
-# Check to see whether a particular set of modules exists.  Similar
-# to PKG_CHECK_MODULES(), but does not set variables or print errors.
-#
-# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
-# only at the first occurence in configure.ac, so if the first place
-# it's called might be skipped (such as if it is within an "if", you
-# have to call PKG_CHECK_EXISTS manually
-# --------------------------------------------------------------
+dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------------------------------
+dnl Since: 0.18
+dnl
+dnl Check to see whether a particular set of modules exists. Similar to
+dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
+dnl
+dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+dnl only at the first occurence in configure.ac, so if the first place
+dnl it's called might be skipped (such as if it is within an "if", you
+dnl have to call PKG_CHECK_EXISTS manually
 AC_DEFUN([PKG_CHECK_EXISTS],
 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
 if test -n "$PKG_CONFIG" && \
@@ -88,8 +120,10 @@ m4_ifvaln([$3], [else
   $3])dnl
 fi])
 
-# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
-# ---------------------------------------------
+dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+dnl ---------------------------------------------
+dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
+dnl pkg_failed based on the result.
 m4_define([_PKG_CONFIG],
 [if test -n "$$1"; then
     pkg_cv_[]$1="$$1"
@@ -101,10 +135,11 @@ m4_define([_PKG_CONFIG],
  else
     pkg_failed=untried
 fi[]dnl
-])# _PKG_CONFIG
+])dnl _PKG_CONFIG
 
-# _PKG_SHORT_ERRORS_SUPPORTED
-# -----------------------------
+dnl _PKG_SHORT_ERRORS_SUPPORTED
+dnl ---------------------------
+dnl Internal check to see if pkg-config supports short errors.
 AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -112,19 +147,17 @@ if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
 else
         _pkg_short_errors_supported=no
 fi[]dnl
-])# _PKG_SHORT_ERRORS_SUPPORTED
+])dnl _PKG_SHORT_ERRORS_SUPPORTED
 
 
-# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
-# [ACTION-IF-NOT-FOUND])
-#
-#
-# Note that if there is a possibility the first call to
-# PKG_CHECK_MODULES might not happen, you should be sure to include an
-# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
-#
-#
-# --------------------------------------------------------------
+dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl --------------------------------------------------------------
+dnl Since: 0.4.0
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
+dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
 AC_DEFUN([PKG_CHECK_MODULES],
 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
 AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
@@ -178,16 +211,40 @@ else
         AC_MSG_RESULT([yes])
        $3
 fi[]dnl
-])# PKG_CHECK_MODULES
+])dnl PKG_CHECK_MODULES
 
 
-# PKG_INSTALLDIR(DIRECTORY)
-# -------------------------
-# Substitutes the variable pkgconfigdir as the location where a module
-# should install pkg-config .pc files. By default the directory is
-# $libdir/pkgconfig, but the default can be changed by passing
-# DIRECTORY. The user can override through the --with-pkgconfigdir
-# parameter.
+dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl ---------------------------------------------------------------------
+dnl Since: 0.29
+dnl
+dnl Checks for existence of MODULES and gathers its build flags with
+dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
+dnl and VARIABLE-PREFIX_LIBS from --libs.
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
+dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
+dnl configure.ac.
+AC_DEFUN([PKG_CHECK_MODULES_STATIC],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+_save_PKG_CONFIG=$PKG_CONFIG
+PKG_CONFIG="$PKG_CONFIG --static"
+PKG_CHECK_MODULES($@)
+PKG_CONFIG=$_save_PKG_CONFIG[]dnl
+])dnl PKG_CHECK_MODULES_STATIC
+
+
+dnl PKG_INSTALLDIR([DIRECTORY])
+dnl -------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable pkgconfigdir as the location where a module
+dnl should install pkg-config .pc files. By default the directory is
+dnl $libdir/pkgconfig, but the default can be changed by passing
+dnl DIRECTORY. The user can override through the --with-pkgconfigdir
+dnl parameter.
 AC_DEFUN([PKG_INSTALLDIR],
 [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
 m4_pushdef([pkg_description],
@@ -198,16 +255,18 @@ AC_ARG_WITH([pkgconfigdir],
 AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
 m4_popdef([pkg_default])
 m4_popdef([pkg_description])
-]) dnl PKG_INSTALLDIR
+])dnl PKG_INSTALLDIR
 
 
-# PKG_NOARCH_INSTALLDIR(DIRECTORY)
-# -------------------------
-# Substitutes the variable noarch_pkgconfigdir as the location where a
-# module should install arch-independent pkg-config .pc files. By
-# default the directory is $datadir/pkgconfig, but the default can be
-# changed by passing DIRECTORY. The user can override through the
-# --with-noarch-pkgconfigdir parameter.
+dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
+dnl --------------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable noarch_pkgconfigdir as the location where a
+dnl module should install arch-independent pkg-config .pc files. By
+dnl default the directory is $datadir/pkgconfig, but the default can be
+dnl changed by passing DIRECTORY. The user can override through the
+dnl --with-noarch-pkgconfigdir parameter.
 AC_DEFUN([PKG_NOARCH_INSTALLDIR],
 [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
 m4_pushdef([pkg_description],
@@ -218,13 +277,15 @@ AC_ARG_WITH([noarch-pkgconfigdir],
 AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
 m4_popdef([pkg_default])
 m4_popdef([pkg_description])
-]) dnl PKG_NOARCH_INSTALLDIR
+])dnl PKG_NOARCH_INSTALLDIR
 
 
-# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
-# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
-# -------------------------------------------
-# Retrieves the value of the pkg-config variable for the given module.
+dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------
+dnl Since: 0.28
+dnl
+dnl Retrieves the value of the pkg-config variable for the given module.
 AC_DEFUN([PKG_CHECK_VAR],
 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
 AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
@@ -233,9 +294,9 @@ _PKG_CONFIG([$1], [variable="][$3]["], [$2])
 AS_VAR_COPY([$1], [pkg_cv_][$1])
 
 AS_VAR_IF([$1], [""], [$5], [$4])dnl
-])# PKG_CHECK_VAR
+])dnl PKG_CHECK_VAR
 
-# Copyright (C) 2002-2014 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -250,7 +311,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
 [am__api_version='1.15'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.15], [],
+m4_if([$1], [1.15.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -266,14 +327,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15])dnl
+[AM_AUTOMAKE_VERSION([1.15.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -325,7 +386,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -356,7 +417,7 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -547,7 +608,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -623,7 +684,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -820,7 +881,7 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -841,7 +902,7 @@ if test x"${install_sh+set}" != xset; then
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2014 Free Software Foundation, Inc.
+# Copyright (C) 2003-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -863,7 +924,7 @@ AC_SUBST([am__leading_dot])])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -898,7 +959,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
 
 # Check to see how 'make' treats includes.                 -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -948,7 +1009,7 @@ rm -f confinc confmf
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -985,7 +1046,7 @@ else
 fi
 ])
 
-# Copyright (C) 2003-2014 Free Software Foundation, Inc.
+# Copyright (C) 2003-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1019,7 +1080,7 @@ esac
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1048,7 +1109,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1095,7 +1156,7 @@ AC_LANG_POP([C])])
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1114,7 +1175,7 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1195,7 +1256,7 @@ AC_CONFIG_COMMANDS_PRE(
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2014 Free Software Foundation, Inc.
+# Copyright (C) 2009-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1255,7 +1316,7 @@ AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1283,7 +1344,7 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2014 Free Software Foundation, Inc.
+# Copyright (C) 2006-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1302,7 +1363,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2014 Free Software Foundation, Inc.
+# Copyright (C) 2004-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1435,7 +1496,7 @@ AC_SUBST([am__untar])
 
 # Autoconf support for the Vala compiler
 
-# Copyright (C) 2008-2014 Free Software Foundation, Inc.
+# Copyright (C) 2008-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index a85b723..531136b 100755 (executable)
@@ -3,7 +3,7 @@
 
 scriptversion=2012-10-14.11; # UTC
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
index c547c68..17298f2 100755 (executable)
@@ -2,7 +2,7 @@
 # Output a system dependent set of variables, describing how to set the
 # run time search path of shared libraries in an executable.
 #
-#   Copyright 1996-2007 Free Software Foundation, Inc.
+#   Copyright 1996-2010 Free Software Foundation, Inc.
 #   Taken from GNU libtool, 2001
 #   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 #
@@ -47,7 +47,7 @@ for cc_temp in $CC""; do
 done
 cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
 
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+# Code taken from libtool.m4's _LT_COMPILER_PIC.
 
 wl=
 if test "$GCC" = yes; then
@@ -64,7 +64,7 @@ else
           ;;
       esac
       ;;
-    mingw* | cygwin* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
       ;;
     hpux9* | hpux10* | hpux11*)
       wl='-Wl,'
@@ -76,7 +76,13 @@ else
       ;;
     linux* | k*bsd*-gnu)
       case $cc_basename in
-        icc* | ecc*)
+        ecc*)
+          wl='-Wl,'
+          ;;
+        icc* | ifort*)
+          wl='-Wl,'
+          ;;
+        lf95*)
           wl='-Wl,'
           ;;
         pgcc | pgf77 | pgf90)
@@ -124,7 +130,7 @@ else
   esac
 fi
 
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
 
 hardcode_libdir_flag_spec=
 hardcode_libdir_separator=
@@ -132,7 +138,7 @@ hardcode_direct=no
 hardcode_minus_L=no
 
 case "$host_os" in
-  cygwin* | mingw* | pw32*)
+  cygwin* | mingw* | pw32* | cegcc*)
     # FIXME: the MSVC++ port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
     # Microsoft Visual C++.
@@ -158,7 +164,7 @@ if test "$with_gnu_ld" = yes; then
   # option of GNU ld is called -rpath, not --rpath.
   hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
   case "$host_os" in
-    aix3* | aix4* | aix5*)
+    aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
         ld_shlibs=no
@@ -182,7 +188,7 @@ if test "$with_gnu_ld" = yes; then
         ld_shlibs=no
       fi
       ;;
-    cygwin* | mingw* | pw32*)
+    cygwin* | mingw* | pw32* | cegcc*)
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
       hardcode_libdir_flag_spec='-L$libdir'
@@ -254,7 +260,7 @@ else
         hardcode_direct=unsupported
       fi
       ;;
-    aix4* | aix5*)
+    aix[4-9]*)
       if test "$host_cpu" = ia64; then
         # On IA64, the linker does run time linking by default, so we don't
         # have to do anything special.
@@ -264,7 +270,7 @@ else
         # Test if we are trying to use run time linking or normal
         # AIX style linking. If -brtl is somewhere in LDFLAGS, we
         # need to do runtime linking.
-        case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+        case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
           for ld_flag in $LDFLAGS; do
             if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
               aix_use_runtimelinking=yes
@@ -326,7 +332,7 @@ else
       ;;
     bsdi[45]*)
       ;;
-    cygwin* | mingw* | pw32*)
+    cygwin* | mingw* | pw32* | cegcc*)
       # When not using gcc, we currently assume that we are using
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
@@ -494,7 +500,7 @@ else
 fi
 
 # Check dynamic linker characteristics
-# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
 # Unlike libtool.m4, here we don't care about _all_ names of the library, but
 # only about the one the linker finds when passed -lNAME. This is the last
 # element of library_names_spec in libtool.m4, or possibly two of them if the
@@ -505,7 +511,7 @@ case "$host_os" in
   aix3*)
     library_names_spec='$libname.a'
     ;;
-  aix4* | aix5*)
+  aix[4-9]*)
     library_names_spec='$libname$shrext'
     ;;
   amigaos*)
@@ -517,7 +523,7 @@ case "$host_os" in
   bsdi[45]*)
     library_names_spec='$libname$shrext'
     ;;
-  cygwin* | mingw* | pw32*)
+  cygwin* | mingw* | pw32* | cegcc*)
     shrext=.dll
     library_names_spec='$libname.dll.a $libname.lib'
     ;;
index fc98710..4ebd5b3 100755 (executable)
@@ -3,7 +3,7 @@
 
 scriptversion=2013-05-30.07; # UTC
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-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
index 0b0fdcb..377bb86 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2013-12-25.23; # UTC
+scriptversion=2011-11-20.07; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -41,15 +41,19 @@ scriptversion=2013-12-25.23; # UTC
 # This script is compatible with the BSD install script, but was written
 # from scratch.
 
-tab='  '
 nl='
 '
-IFS=" $tab$nl"
+IFS=" ""       $nl"
 
-# Set DOITPROG to "echo" to test this script.
+# set DOITPROG to echo to test this script
 
+# Don't use :- since 4.3BSD and earlier shells don't like it.
 doit=${DOITPROG-}
-doit_exec=${doit:-exec}
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
 
 # Put in absolute file names if you don't have them in your path;
 # or use environment vars.
@@ -64,6 +68,17 @@ mvprog=${MVPROG-mv}
 rmprog=${RMPROG-rm}
 stripprog=${STRIPPROG-strip}
 
+posix_glob='?'
+initialize_posix_glob='
+  test "$posix_glob" != "?" || {
+    if (set -f) 2>/dev/null; then
+      posix_glob=
+    else
+      posix_glob=:
+    fi
+  }
+'
+
 posix_mkdir=
 
 # Desired mode of installed file.
@@ -82,7 +97,7 @@ dir_arg=
 dst_arg=
 
 copy_on_change=false
-is_target_a_directory=possibly
+no_target_directory=
 
 usage="\
 Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -122,57 +137,46 @@ while test $# -ne 0; do
     -d) dir_arg=true;;
 
     -g) chgrpcmd="$chgrpprog $2"
-        shift;;
+       shift;;
 
     --help) echo "$usage"; exit $?;;
 
     -m) mode=$2
-        case $mode in
-          *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
-            echo "$0: invalid mode: $mode" >&2
-            exit 1;;
-        esac
-        shift;;
+       case $mode in
+         *' '* | *'    '* | *'
+'*       | *'*'* | *'?'* | *'['*)
+           echo "$0: invalid mode: $mode" >&2
+           exit 1;;
+       esac
+       shift;;
 
     -o) chowncmd="$chownprog $2"
-        shift;;
+       shift;;
 
     -s) stripcmd=$stripprog;;
 
-    -t)
-        is_target_a_directory=always
-        dst_arg=$2
-        # Protect names problematic for 'test' and other utilities.
-        case $dst_arg in
-          -* | [=\(\)!]) dst_arg=./$dst_arg;;
-        esac
-        shift;;
+    -t) dst_arg=$2
+       # Protect names problematic for 'test' and other utilities.
+       case $dst_arg in
+         -* | [=\(\)!]) dst_arg=./$dst_arg;;
+       esac
+       shift;;
 
-    -T) is_target_a_directory=never;;
+    -T) no_target_directory=true;;
 
     --version) echo "$0 $scriptversion"; exit $?;;
 
-    --) shift
-        break;;
+    --)        shift
+       break;;
 
-    -*) echo "$0: invalid option: $1" >&2
-        exit 1;;
+    -*)        echo "$0: invalid option: $1" >&2
+       exit 1;;
 
     *)  break;;
   esac
   shift
 done
 
-# We allow the use of options -d and -T together, by making -d
-# take the precedence; this is for compatibility with GNU install.
-
-if test -n "$dir_arg"; then
-  if test -n "$dst_arg"; then
-    echo "$0: target directory not allowed when installing a directory." >&2
-    exit 1
-  fi
-fi
-
 if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
   # When -d is used, all remaining arguments are directories to create.
   # When -t is used, the destination is already specified.
@@ -204,15 +208,6 @@ if test $# -eq 0; then
 fi
 
 if test -z "$dir_arg"; then
-  if test $# -gt 1 || test "$is_target_a_directory" = always; then
-    if test ! -d "$dst_arg"; then
-      echo "$0: $dst_arg: Is not a directory." >&2
-      exit 1
-    fi
-  fi
-fi
-
-if test -z "$dir_arg"; then
   do_exit='(exit $ret); exit $ret'
   trap "ret=129; $do_exit" 1
   trap "ret=130; $do_exit" 2
@@ -228,16 +223,16 @@ if test -z "$dir_arg"; then
 
     *[0-7])
       if test -z "$stripcmd"; then
-        u_plus_rw=
+       u_plus_rw=
       else
-        u_plus_rw='% 200'
+       u_plus_rw='% 200'
       fi
       cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
     *)
       if test -z "$stripcmd"; then
-        u_plus_rw=
+       u_plus_rw=
       else
-        u_plus_rw=,u+rw
+       u_plus_rw=,u+rw
       fi
       cp_umask=$mode$u_plus_rw;;
   esac
@@ -274,15 +269,41 @@ do
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
     if test -d "$dst"; then
-      if test "$is_target_a_directory" = never; then
-        echo "$0: $dst_arg: Is a directory" >&2
-        exit 1
+      if test -n "$no_target_directory"; then
+       echo "$0: $dst_arg: Is a directory" >&2
+       exit 1
       fi
       dstdir=$dst
       dst=$dstdir/`basename "$src"`
       dstdir_status=0
     else
-      dstdir=`dirname "$dst"`
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+       (dirname "$dst") 2>/dev/null ||
+       expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+            X"$dst" : 'X\(//\)[^/]' \| \
+            X"$dst" : 'X\(//\)$' \| \
+            X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+       echo X"$dst" |
+           sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\/\)[^/].*/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\/\)$/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\).*/{
+                  s//\1/
+                  q
+                }
+                s/.*/./; q'
+      `
+
       test -d "$dstdir"
       dstdir_status=$?
     fi
@@ -293,74 +314,74 @@ do
   if test $dstdir_status != 0; then
     case $posix_mkdir in
       '')
-        # Create intermediate dirs using mode 755 as modified by the umask.
-        # This is like FreeBSD 'install' as of 1997-10-28.
-        umask=`umask`
-        case $stripcmd.$umask in
-          # Optimize common cases.
-          *[2367][2367]) mkdir_umask=$umask;;
-          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
-          *[0-7])
-            mkdir_umask=`expr $umask + 22 \
-              - $umask % 100 % 40 + $umask % 20 \
-              - $umask % 10 % 4 + $umask % 2
-            `;;
-          *) mkdir_umask=$umask,go-w;;
-        esac
-
-        # With -d, create the new directory with the user-specified mode.
-        # Otherwise, rely on $mkdir_umask.
-        if test -n "$dir_arg"; then
-          mkdir_mode=-m$mode
-        else
-          mkdir_mode=
-        fi
-
-        posix_mkdir=false
-        case $umask in
-          *[123567][0-7][0-7])
-            # POSIX mkdir -p sets u+wx bits regardless of umask, which
-            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-            ;;
-          *)
-            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
-            if (umask $mkdir_umask &&
-                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
-            then
-              if test -z "$dir_arg" || {
-                   # Check for POSIX incompatibilities with -m.
-                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-                   # other-writable bit of parent directory when it shouldn't.
-                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
-                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
-                   case $ls_ld_tmpdir in
-                     d????-?r-*) different_mode=700;;
-                     d????-?--*) different_mode=755;;
-                     *) false;;
-                   esac &&
-                   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
-                     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
-                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-                   }
-                 }
-              then posix_mkdir=:
-              fi
-              rmdir "$tmpdir/d" "$tmpdir"
-            else
-              # Remove any dirs left behind by ancient mkdir implementations.
-              rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
-            fi
-            trap '' 0;;
-        esac;;
+       # Create intermediate dirs using mode 755 as modified by the umask.
+       # This is like FreeBSD 'install' as of 1997-10-28.
+       umask=`umask`
+       case $stripcmd.$umask in
+         # Optimize common cases.
+         *[2367][2367]) mkdir_umask=$umask;;
+         .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+         *[0-7])
+           mkdir_umask=`expr $umask + 22 \
+             - $umask % 100 % 40 + $umask % 20 \
+             - $umask % 10 % 4 + $umask % 2
+           `;;
+         *) mkdir_umask=$umask,go-w;;
+       esac
+
+       # With -d, create the new directory with the user-specified mode.
+       # Otherwise, rely on $mkdir_umask.
+       if test -n "$dir_arg"; then
+         mkdir_mode=-m$mode
+       else
+         mkdir_mode=
+       fi
+
+       posix_mkdir=false
+       case $umask in
+         *[123567][0-7][0-7])
+           # POSIX mkdir -p sets u+wx bits regardless of umask, which
+           # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+           ;;
+         *)
+           tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+           trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+           if (umask $mkdir_umask &&
+               exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+           then
+             if test -z "$dir_arg" || {
+                  # Check for POSIX incompatibilities with -m.
+                  # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                  # other-writable bit of parent directory when it shouldn't.
+                  # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                  ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                  case $ls_ld_tmpdir in
+                    d????-?r-*) different_mode=700;;
+                    d????-?--*) different_mode=755;;
+                    *) false;;
+                  esac &&
+                  $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+                    ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                    test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                  }
+                }
+             then posix_mkdir=:
+             fi
+             rmdir "$tmpdir/d" "$tmpdir"
+           else
+             # Remove any dirs left behind by ancient mkdir implementations.
+             rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+           fi
+           trap '' 0;;
+       esac;;
     esac
 
     if
       $posix_mkdir && (
-        umask $mkdir_umask &&
-        $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+       umask $mkdir_umask &&
+       $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
       )
     then :
     else
@@ -370,51 +391,53 @@ do
       # directory the slow way, step by step, checking for races as we go.
 
       case $dstdir in
-        /*) prefix='/';;
-        [-=\(\)!]*) prefix='./';;
-        *)  prefix='';;
+       /*) prefix='/';;
+       [-=\(\)!]*) prefix='./';;
+       *)  prefix='';;
       esac
 
+      eval "$initialize_posix_glob"
+
       oIFS=$IFS
       IFS=/
-      set -f
+      $posix_glob set -f
       set fnord $dstdir
       shift
-      set +f
+      $posix_glob set +f
       IFS=$oIFS
 
       prefixes=
 
       for d
       do
-        test X"$d" = X && continue
-
-        prefix=$prefix$d
-        if test -d "$prefix"; then
-          prefixes=
-        else
-          if $posix_mkdir; then
-            (umask=$mkdir_umask &&
-             $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
-            # Don't fail if two instances are running concurrently.
-            test -d "$prefix" || exit 1
-          else
-            case $prefix in
-              *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
-              *) qprefix=$prefix;;
-            esac
-            prefixes="$prefixes '$qprefix'"
-          fi
-        fi
-        prefix=$prefix/
+       test X"$d" = X && continue
+
+       prefix=$prefix$d
+       if test -d "$prefix"; then
+         prefixes=
+       else
+         if $posix_mkdir; then
+           (umask=$mkdir_umask &&
+            $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+           # Don't fail if two instances are running concurrently.
+           test -d "$prefix" || exit 1
+         else
+           case $prefix in
+             *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+             *) qprefix=$prefix;;
+           esac
+           prefixes="$prefixes '$qprefix'"
+         fi
+       fi
+       prefix=$prefix/
       done
 
       if test -n "$prefixes"; then
-        # Don't fail if two instances are running concurrently.
-        (umask $mkdir_umask &&
-         eval "\$doit_exec \$mkdirprog $prefixes") ||
-          test -d "$dstdir" || exit 1
-        obsolete_mkdir_used=true
+       # Don't fail if two instances are running concurrently.
+       (umask $mkdir_umask &&
+        eval "\$doit_exec \$mkdirprog $prefixes") ||
+         test -d "$dstdir" || exit 1
+       obsolete_mkdir_used=true
       fi
     fi
   fi
@@ -449,12 +472,15 @@ do
 
     # If -C, don't bother to copy if it wouldn't change the file.
     if $copy_on_change &&
-       old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
-       new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
-       set -f &&
+       old=`LC_ALL=C ls -dlL "$dst"    2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+       eval "$initialize_posix_glob" &&
+       $posix_glob set -f &&
        set X $old && old=:$2:$4:$5:$6 &&
        set X $new && new=:$2:$4:$5:$6 &&
-       set +f &&
+       $posix_glob set +f &&
+
        test "$old" = "$new" &&
        $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
     then
@@ -467,24 +493,24 @@ do
       # to itself, or perhaps because mv is so ancient that it does not
       # support -f.
       {
-        # Now remove or move aside any old file at destination location.
-        # We try this two ways since rm can't unlink itself on some
-        # systems and the destination file might be busy for other
-        # reasons.  In this case, the final cleanup might fail but the new
-        # file should still install successfully.
-        {
-          test ! -f "$dst" ||
-          $doit $rmcmd -f "$dst" 2>/dev/null ||
-          { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
-          } ||
-          { echo "$0: cannot unlink or rename $dst" >&2
-            (exit 1); exit 1
-          }
-        } &&
-
-        # Now rename the file to the real destination.
-        $doit $mvcmd "$dsttmp" "$dst"
+       # Now remove or move aside any old file at destination location.
+       # We try this two ways since rm can't unlink itself on some
+       # systems and the destination file might be busy for other
+       # reasons.  In this case, the final cleanup might fail but the new
+       # file should still install successfully.
+       {
+         test ! -f "$dst" ||
+         $doit $rmcmd -f "$dst" 2>/dev/null ||
+         { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+           { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+         } ||
+         { echo "$0: cannot unlink or rename $dst" >&2
+           (exit 1); exit 1
+         }
+       } &&
+
+       # Now rename the file to the real destination.
+       $doit $mvcmd "$dsttmp" "$dst"
       }
     fi || exit 1
 
index bffda54..a736cf9 100644 (file)
@@ -1,9 +1,12 @@
+#! /bin/sh
+## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
+##               by inline-source v2014-01-03.01
 
-# libtool (GNU libtool) 2.4.2
+# libtool (GNU libtool) 2.4.6
+# Provide generalized library-building support services.
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1996-2015 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Usage: $progname [OPTION]... [MODE-ARG]...
-#
-# Provide generalized library-building support services.
-#
-#       --config             show all configuration variables
-#       --debug              enable verbose shell tracing
-#   -n, --dry-run            display commands without modifying any files
-#       --features           display basic configuration information and exit
-#       --mode=MODE          use operation mode MODE
-#       --preserve-dup-deps  don't remove duplicate dependency libraries
-#       --quiet, --silent    don't print informational messages
-#       --no-quiet, --no-silent
-#                            print informational messages (default)
-#       --no-warn            don't display warning messages
-#       --tag=TAG            use configuration variables from tag TAG
-#   -v, --verbose            print more informational messages than default
-#       --no-verbose         don't print the extra informational messages
-#       --version            print version information
-#   -h, --help, --help-all   print short, long, or detailed help message
-#
-# MODE must be one of the following:
-#
-#         clean              remove files from the build directory
-#         compile            compile a source file into a libtool object
-#         execute            automatically set library path, then run a program
-#         finish             complete the installation of libtool libraries
-#         install            install libraries or executables
-#         link               create a library or an executable
-#         uninstall          remove libraries from an installed directory
-#
-# MODE-ARGS vary depending on the MODE.  When passed as first option,
-# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
-# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
-#
-# When reporting a bug, please describe a test case to reproduce it and
-# include the following information:
-#
-#         host-triplet:        $host
-#         shell:               $SHELL
-#         compiler:            $LTCC
-#         compiler flags:              $LTCFLAGS
-#         linker:              $LD (gnu? $with_gnu_ld)
-#         $progname:   (GNU libtool) 2.4.2 Debian-2.4.2-1.11
-#         automake:    $automake_version
-#         autoconf:    $autoconf_version
-#
-# Report bugs to <bug-libtool@gnu.org>.
-# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-# General help using GNU software: <http://www.gnu.org/gethelp/>.
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.11"
-TIMESTAMP=""
-package_revision=1.3337
+VERSION="2.4.6 Debian-2.4.6-2"
+package_revision=2.4.6
 
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Run './libtool --help' for help with using this script from the
+# command line.
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# After configure completes, it has a better idea of some of the
+# shell tools we need than the defaults used by the functions shared
+# with bootstrap, so set those here where they can still be over-
+# ridden by the user, but otherwise take precedence.
+
+: ${AUTOCONF="autoconf"}
+: ${AUTOMAKE="automake"}
+
+
+## -------------------------- ##
+## Source external libraries. ##
+## -------------------------- ##
+
+# Much of our low-level functionality needs to be sourced from external
+# libraries, which are installed to $pkgauxdir.
+
+# Set a version string for this script.
+scriptversion=2015-01-20.17; # UTC
+
+# General shell script boiler plate, and helper functions.
+# Written by Gary V. Vaughan, 2004
+
+# Copyright (C) 2004-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# 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.
+
+# As a special exception to the GNU General Public License, if you distribute
+# this file as part of a program or library that is built using GNU Libtool,
+# you may include this file under the same distribution terms that you use
+# for the rest of that program.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNES 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/>.
+
+# Please report bugs or propose patches to gary@gnu.org.
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Evaluate this file near the top of your script to gain access to
+# the functions and variables defined here:
+#
+#   . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh
+#
+# If you need to override any of the default environment variable
+# settings, do that before evaluating this file.
+
+
+## -------------------- ##
+## Shell normalisation. ##
+## -------------------- ##
+
+# Some shells need a little help to be as Bourne compatible as possible.
+# Before doing anything else, make sure all that help has been provided!
+
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
 fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
 
-# NLS nuisances: We save the old values to restore during execute mode.
-lt_user_locale=
-lt_safe_locale=
-for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+# NLS nuisances: We save the old values in case they are required later.
+_G_user_locale=
+_G_safe_locale=
+for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 do
-  eval "if test \"\${$lt_var+set}\" = set; then
-          save_$lt_var=\$$lt_var
-          $lt_var=C
-         export $lt_var
-         lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
-         lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
+  eval "if test set = \"\${$_G_var+set}\"; then
+          save_$_G_var=\$$_G_var
+          $_G_var=C
+         export $_G_var
+         _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\"
+         _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
        fi"
 done
-LC_ALL=C
-LANGUAGE=C
-export LANGUAGE LC_ALL
 
-$lt_unset CDPATH
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
+# Make sure IFS has a sensible default
+sp=' '
+nl='
+'
+IFS="$sp       $nl"
+
+# There are apparently some retarded systems that use ';' as a PATH separator!
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
 
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
 
 
+## ------------------------- ##
+## Locate command utilities. ##
+## ------------------------- ##
+
+
+# func_executable_p FILE
+# ----------------------
+# Check that FILE is an executable regular file.
+func_executable_p ()
+{
+    test -f "$1" && test -x "$1"
+}
+
+
+# func_path_progs PROGS_LIST CHECK_FUNC [PATH]
+# --------------------------------------------
+# Search for either a program that responds to --version with output
+# containing "GNU", or else returned by CHECK_FUNC otherwise, by
+# trying all the directories in PATH with each of the elements of
+# PROGS_LIST.
+#
+# CHECK_FUNC should accept the path to a candidate program, and
+# set $func_check_prog_result if it truncates its output less than
+# $_G_path_prog_max characters.
+func_path_progs ()
+{
+    _G_progs_list=$1
+    _G_check_func=$2
+    _G_PATH=${3-"$PATH"}
+
+    _G_path_prog_max=0
+    _G_path_prog_found=false
+    _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:}
+    for _G_dir in $_G_PATH; do
+      IFS=$_G_save_IFS
+      test -z "$_G_dir" && _G_dir=.
+      for _G_prog_name in $_G_progs_list; do
+        for _exeext in '' .EXE; do
+          _G_path_prog=$_G_dir/$_G_prog_name$_exeext
+          func_executable_p "$_G_path_prog" || continue
+          case `"$_G_path_prog" --version 2>&1` in
+            *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;;
+            *)     $_G_check_func $_G_path_prog
+                  func_path_progs_result=$func_check_prog_result
+                  ;;
+          esac
+          $_G_path_prog_found && break 3
+        done
+      done
+    done
+    IFS=$_G_save_IFS
+    test -z "$func_path_progs_result" && {
+      echo "no acceptable sed could be found in \$PATH" >&2
+      exit 1
+    }
+}
+
+
+# We want to be able to use the functions in this file before configure
+# has figured out where the best binaries are kept, which means we have
+# to search for them ourselves - except when the results are already set
+# where we skip the searches.
+
+# Unless the user overrides by setting SED, search the path for either GNU
+# sed, or the sed that truncates its output the least.
+test -z "$SED" && {
+  _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+  for _G_i in 1 2 3 4 5 6 7; do
+    _G_sed_script=$_G_sed_script$nl$_G_sed_script
+  done
+  echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed
+  _G_sed_script=
+
+  func_check_prog_sed ()
+  {
+    _G_path_prog=$1
+
+    _G_count=0
+    printf 0123456789 >conftest.in
+    while :
+    do
+      cat conftest.in conftest.in >conftest.tmp
+      mv conftest.tmp conftest.in
+      cp conftest.in conftest.nl
+      echo '' >> conftest.nl
+      "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
+      diff conftest.out conftest.nl >/dev/null 2>&1 || break
+      _G_count=`expr $_G_count + 1`
+      if test "$_G_count" -gt "$_G_path_prog_max"; then
+        # Best one so far, save it but keep looking for a better one
+        func_check_prog_result=$_G_path_prog
+        _G_path_prog_max=$_G_count
+      fi
+      # 10*(2^10) chars as input seems more than enough
+      test 10 -lt "$_G_count" && break
+    done
+    rm -f conftest.in conftest.tmp conftest.nl conftest.out
+  }
+
+  func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin
+  rm -f conftest.sed
+  SED=$func_path_progs_result
+}
+
+
+# Unless the user overrides by setting GREP, search the path for either GNU
+# grep, or the grep that truncates its output the least.
+test -z "$GREP" && {
+  func_check_prog_grep ()
+  {
+    _G_path_prog=$1
+
+    _G_count=0
+    _G_path_prog_max=0
+    printf 0123456789 >conftest.in
+    while :
+    do
+      cat conftest.in conftest.in >conftest.tmp
+      mv conftest.tmp conftest.in
+      cp conftest.in conftest.nl
+      echo 'GREP' >> conftest.nl
+      "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
+      diff conftest.out conftest.nl >/dev/null 2>&1 || break
+      _G_count=`expr $_G_count + 1`
+      if test "$_G_count" -gt "$_G_path_prog_max"; then
+        # Best one so far, save it but keep looking for a better one
+        func_check_prog_result=$_G_path_prog
+        _G_path_prog_max=$_G_count
+      fi
+      # 10*(2^10) chars as input seems more than enough
+      test 10 -lt "$_G_count" && break
+    done
+    rm -f conftest.in conftest.tmp conftest.nl conftest.out
+  }
+
+  func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin
+  GREP=$func_path_progs_result
+}
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# All uppercase variable names are used for environment variables.  These
+# variables can be overridden by the user before calling a script that
+# uses them if a suitable command of that name is not already available
+# in the command search PATH.
 
 : ${CP="cp -f"}
-test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
+: ${ECHO="printf %s\n"}
+: ${EGREP="$GREP -E"}
+: ${FGREP="$GREP -F"}
+: ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-: ${Xsed="$SED -e 1s/^X//"}
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
-EXIT_SKIP=77     # $? = 77 is used to indicate a skipped test to automake.
-
-exit_status=$EXIT_SUCCESS
-
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS="  $lt_nl"
 
-dirname="s,/[^/]*$,,"
-basename="s,^.*/,,"
 
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
-    if test "X$func_dirname_result" = "X${1}"; then
-      func_dirname_result="${3}"
-    else
-      func_dirname_result="$func_dirname_result${2}"
-    fi
-} # func_dirname may be replaced by extended shell implementation
+## -------------------- ##
+## Useful sed snippets. ##
+## -------------------- ##
 
+sed_dirname='s|/[^/]*$||'
+sed_basename='s|^.*/||'
 
-# func_basename file
-func_basename ()
-{
-    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-} # func_basename may be replaced by extended shell implementation
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
 
+# Same as above, but do not quote variable references.
+sed_double_quote_subst='s/\(["`\\]\)/\\\1/g'
 
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-    # Extract subdirectory from the argument.
-    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
-    if test "X$func_dirname_result" = "X${1}"; then
-      func_dirname_result="${3}"
-    else
-      func_dirname_result="$func_dirname_result${2}"
-    fi
-    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-} # func_dirname_and_basename may be replaced by extended shell implementation
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g'
 
+# Sed substitution that converts a w32 file name or path
+# that contains forward slashes, into one that contains
+# (escaped) backslashes.  A very naive implementation.
+sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
+# Re-'\' parameter expansions in output of sed_double_quote_subst that
+# were '\'-ed in input to the same.  If an odd number of '\' preceded a
+# '$' in input to sed_double_quote_subst, that '$' was protected from
+# expansion.  Since each input '\' is now two '\'s, look for any number
+# of runs of four '\'s followed by two '\'s and then a '$'.  '\' that '$'.
+_G_bs='\\'
+_G_bs2='\\\\'
+_G_bs4='\\\\\\\\'
+_G_dollar='\$'
+sed_double_backslash="\
+  s/$_G_bs4/&\\
+/g
+  s/^$_G_bs2$_G_dollar/$_G_bs&/
+  s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
+  s/\n//g"
 
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-    case ${2} in
-      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-    esac
-} # func_stripname may be replaced by extended shell implementation
 
+## ----------------- ##
+## Global variables. ##
+## ----------------- ##
 
-# These SED scripts presuppose an absolute path with a trailing slash.
-pathcar='s,^/\([^/]*\).*$,\1,'
-pathcdr='s,^/[^/]*,,'
-removedotparts=':dotsl
-               s@/\./@/@g
-               t dotsl
-               s,/\.$,/,'
-collapseslashes='s@/\{1,\}@/@g'
-finalslash='s,/*$,/,'
+# Except for the global variables explicitly listed below, the following
+# functions in the '^func_' namespace, and the '^require_' namespace
+# variables initialised in the 'Resource management' section, sourcing
+# this file will not pollute your global namespace with anything
+# else. There's no portable way to scope variables in Bourne shell
+# though, so actually running these functions will sometimes place
+# results into a variable named after the function, and often use
+# temporary variables in the '^_G_' namespace. If you are careful to
+# avoid using those namespaces casually in your sourcing script, things
+# should continue to work as you expect. And, of course, you can freely
+# overwrite any of the functions or variables defined here before
+# calling anything to customize them.
 
-# func_normal_abspath PATH
-# Remove doubled-up and trailing slashes, "." path components,
-# and cancel out any ".." path components in PATH after making
-# it an absolute path.
-#             value returned in "$func_normal_abspath_result"
-func_normal_abspath ()
-{
-  # Start from root dir and reassemble the path.
-  func_normal_abspath_result=
-  func_normal_abspath_tpath=$1
-  func_normal_abspath_altnamespace=
-  case $func_normal_abspath_tpath in
-    "")
-      # Empty path, that just means $cwd.
-      func_stripname '' '/' "`pwd`"
-      func_normal_abspath_result=$func_stripname_result
-      return
-    ;;
-    # The next three entries are used to spot a run of precisely
-    # two leading slashes without using negated character classes;
-    # we take advantage of case's first-match behaviour.
-    ///*)
-      # Unusual form of absolute path, do nothing.
-    ;;
-    //*)
-      # Not necessarily an ordinary path; POSIX reserves leading '//'
-      # and for example Cygwin uses it to access remote file shares
-      # over CIFS/SMB, so we conserve a leading double slash if found.
-      func_normal_abspath_altnamespace=/
-    ;;
-    /*)
-      # Absolute path, do nothing.
-    ;;
-    *)
-      # Relative path, prepend $cwd.
-      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
-    ;;
-  esac
-  # Cancel out all the simple stuff to save iterations.  We also want
-  # the path to end with a slash for ease of parsing, so make sure
-  # there is one (and only one) here.
-  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
-  while :; do
-    # Processed it all yet?
-    if test "$func_normal_abspath_tpath" = / ; then
-      # If we ascended to the root using ".." the result may be empty now.
-      if test -z "$func_normal_abspath_result" ; then
-        func_normal_abspath_result=/
-      fi
-      break
-    fi
-    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$pathcar"`
-    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$pathcdr"`
-    # Figure out what to do with it
-    case $func_normal_abspath_tcomponent in
-      "")
-        # Trailing empty path component, ignore it.
-      ;;
-      ..)
-        # Parent dir; strip last assembled component from result.
-        func_dirname "$func_normal_abspath_result"
-        func_normal_abspath_result=$func_dirname_result
-      ;;
-      *)
-        # Actual path component, append it.
-        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
-      ;;
-    esac
-  done
-  # Restore leading double-slash if one was found on entry.
-  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-}
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77     # $? = 77 is used to indicate a skipped test to automake.
 
-# func_relative_path SRCDIR DSTDIR
-# generates a relative path from SRCDIR to DSTDIR, with a trailing
-# slash if non-empty, suitable for immediately appending a filename
-# without needing to append a separator.
-#             value returned in "$func_relative_path_result"
-func_relative_path ()
-{
-  func_relative_path_result=
-  func_normal_abspath "$1"
-  func_relative_path_tlibdir=$func_normal_abspath_result
-  func_normal_abspath "$2"
-  func_relative_path_tbindir=$func_normal_abspath_result
-
-  # Ascend the tree starting from libdir
-  while :; do
-    # check if we have found a prefix of bindir
-    case $func_relative_path_tbindir in
-      $func_relative_path_tlibdir)
-        # found an exact match
-        func_relative_path_tcancelled=
-        break
-        ;;
-      $func_relative_path_tlibdir*)
-        # found a matching prefix
-        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
-        func_relative_path_tcancelled=$func_stripname_result
-        if test -z "$func_relative_path_result"; then
-          func_relative_path_result=.
-        fi
-        break
-        ;;
-      *)
-        func_dirname $func_relative_path_tlibdir
-        func_relative_path_tlibdir=${func_dirname_result}
-        if test "x$func_relative_path_tlibdir" = x ; then
-          # Have to descend all the way to the root!
-          func_relative_path_result=../$func_relative_path_result
-          func_relative_path_tcancelled=$func_relative_path_tbindir
-          break
-        fi
-        func_relative_path_result=../$func_relative_path_result
-        ;;
-    esac
-  done
+# Allow overriding, eg assuming that you follow the convention of
+# putting '$debug_cmd' at the start of all your functions, you can get
+# bash to show function call trace with:
+#
+#    debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
+debug_cmd=${debug_cmd-":"}
+exit_cmd=:
 
-  # Now calculate path; take care to avoid doubling-up slashes.
-  func_stripname '' '/' "$func_relative_path_result"
-  func_relative_path_result=$func_stripname_result
-  func_stripname '/' '/' "$func_relative_path_tcancelled"
-  if test "x$func_stripname_result" != x ; then
-    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
-  fi
+# By convention, finish your script with:
+#
+#    exit $exit_status
+#
+# so that you can set exit_status to non-zero if you want to indicate
+# something went wrong during execution without actually bailing out at
+# the point of failure.
+exit_status=$EXIT_SUCCESS
 
-  # Normalisation. If bindir is libdir, return empty string,
-  # else relative path ending with a slash; either way, target
-  # file name can be directly appended.
-  if test ! -z "$func_relative_path_result"; then
-    func_stripname './' '' "$func_relative_path_result/"
-    func_relative_path_result=$func_stripname_result
-  fi
-}
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath=$0
 
-# The name of this program:
-func_dirname_and_basename "$progpath"
-progname=$func_basename_result
+# The name of this program.
+progname=`$ECHO "$progpath" |$SED "$sed_basename"`
 
-# Make sure we have an absolute path for reexecution:
+# Make sure we have an absolute progpath for reexecution:
 case $progpath in
   [\\/]*|[A-Za-z]:\\*) ;;
   *[\\/]*)
-     progdir=$func_dirname_result
+     progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
      progdir=`cd "$progdir" && pwd`
-     progpath="$progdir/$progname"
+     progpath=$progdir/$progname
      ;;
   *)
-     save_IFS="$IFS"
+     _G_IFS=$IFS
      IFS=${PATH_SEPARATOR-:}
      for progdir in $PATH; do
-       IFS="$save_IFS"
+       IFS=$_G_IFS
        test -x "$progdir/$progname" && break
      done
-     IFS="$save_IFS"
+     IFS=$_G_IFS
      test -n "$progdir" || progdir=`pwd`
-     progpath="$progdir/$progname"
+     progpath=$progdir/$progname
      ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
 
-# Sed substitution that turns a string into a regex matching for the
-# string literally.
-sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
+## ----------------- ##
+## Standard options. ##
+## ----------------- ##
 
-# Sed substitution that converts a w32 file name or path
-# which contains forward slashes, into one that contains
-# (escaped) backslashes.  A very naive implementation.
-lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-
-# Re-`\' parameter expansions in output of double_quote_subst that were
-# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
-# in input to double_quote_subst, that '$' was protected from expansion.
-# Since each input `\' is now two `\'s, look for any number of runs of
-# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
-bs='\\'
-bs2='\\\\'
-bs4='\\\\\\\\'
-dollar='\$'
-sed_double_backslash="\
-  s/$bs4/&\\
-/g
-  s/^$bs2$dollar/$bs&/
-  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
-  s/\n//g"
+# The following options affect the operation of the functions defined
+# below, and should be set appropriately depending on run-time para-
+# meters passed on the command line.
 
-# Standard options:
 opt_dry_run=false
-opt_help=false
 opt_quiet=false
 opt_verbose=false
-opt_warning=:
 
-# func_echo arg...
-# Echo program name prefixed message, along with the current mode
-# name if it has been set yet.
-func_echo ()
-{
-    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-}
+# Categories 'all' and 'none' are always available.  Append any others
+# you will pass as the first argument to func_warning from your own
+# code.
+warning_categories=
 
-# func_verbose arg...
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
-    $opt_verbose && func_echo ${1+"$@"}
+# By default, display warnings according to 'opt_warning_types'.  Set
+# 'warning_func'  to ':' to elide all warnings, or func_fatal_error to
+# treat the next displayed warning as a fatal error.
+warning_func=func_warn_and_continue
 
-    # A bug in bash halts the script if the last line of a function
-    # fails when set -e is in force, so we need another command to
-    # work around that:
-    :
-}
+# Set to 'all' to display all warnings, 'none' to suppress all
+# warnings, or a space delimited list of some subset of
+# 'warning_categories' to display only the listed warnings.
+opt_warning_types=all
 
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO "$*"
-}
 
-# func_error arg...
-# Echo program name prefixed message to standard error.
-func_error ()
-{
-    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-}
+## -------------------- ##
+## Resource management. ##
+## -------------------- ##
 
-# func_warning arg...
-# Echo program name prefixed warning message to standard error.
-func_warning ()
-{
-    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
+# This section contains definitions for functions that each ensure a
+# particular resource (a file, or a non-empty configuration variable for
+# example) is available, and if appropriate to extract default values
+# from pertinent package files. Call them using their associated
+# 'require_*' variable to ensure that they are executed, at most, once.
+#
+# It's entirely deliberate that calling these functions can set
+# variables that don't obey the namespace limitations obeyed by the rest
+# of this file, in order that that they be as useful as possible to
+# callers.
 
-    # bash bug again:
-    :
-}
 
-# func_fatal_error arg...
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
+# require_term_colors
+# -------------------
+# Allow display of bold text on terminals that support it.
+require_term_colors=func_require_term_colors
+func_require_term_colors ()
 {
-    func_error ${1+"$@"}
-    exit $EXIT_FAILURE
-}
+    $debug_cmd
+
+    test -t 1 && {
+      # COLORTERM and USE_ANSI_COLORS environment variables take
+      # precedence, because most terminfo databases neglect to describe
+      # whether color sequences are supported.
+      test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"}
+
+      if test 1 = "$USE_ANSI_COLORS"; then
+        # Standard ANSI escape sequences
+        tc_reset='\e[0m'
+        tc_bold='\e[1m';   tc_standout='\e[7m'
+        tc_red='\e[31m';   tc_green='\e[32m'
+        tc_blue='\e[34m';  tc_cyan='\e[36m'
+      else
+        # Otherwise trust the terminfo database after all.
+        test -n "`tput sgr0 2>/dev/null`" && {
+          tc_reset=`tput sgr0`
+          test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold`
+          tc_standout=$tc_bold
+          test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso`
+          test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1`
+          test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2`
+          test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4`
+          test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5`
+        }
+      fi
+    }
 
-# func_fatal_help arg...
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
-    func_error ${1+"$@"}
-    func_fatal_error "$help"
+    require_term_colors=:
 }
-help="Try \`$progname --help' for more information."  ## default
 
 
-# func_grep expression filename
+## ----------------- ##
+## Function library. ##
+## ----------------- ##
+
+# This section contains a variety of useful functions to call in your
+# scripts. Take note of the portable wrappers for features provided by
+# some modern shells, which will fall back to slower equivalents on
+# less featureful shells.
+
+
+# func_append VAR VALUE
+# ---------------------
+# Append VALUE onto the existing contents of VAR.
+
+  # We should try to minimise forks, especially on Windows where they are
+  # unreasonably slow, so skip the feature probes when bash or zsh are
+  # being used:
+  if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
+    : ${_G_HAVE_ARITH_OP="yes"}
+    : ${_G_HAVE_XSI_OPS="yes"}
+    # The += operator was introduced in bash 3.1
+    case $BASH_VERSION in
+      [12].* | 3.0 | 3.0*) ;;
+      *)
+        : ${_G_HAVE_PLUSEQ_OP="yes"}
+        ;;
+    esac
+  fi
+
+  # _G_HAVE_PLUSEQ_OP
+  # Can be empty, in which case the shell is probed, "yes" if += is
+  # useable or anything else if it does not work.
+  test -z "$_G_HAVE_PLUSEQ_OP" \
+    && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
+    && _G_HAVE_PLUSEQ_OP=yes
+
+if test yes = "$_G_HAVE_PLUSEQ_OP"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_append ()
+  {
+    $debug_cmd
+
+    eval "$1+=\$2"
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_append ()
+  {
+    $debug_cmd
+
+    eval "$1=\$$1\$2"
+  }
+fi
+
+
+# func_append_quoted VAR VALUE
+# ----------------------------
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+if test yes = "$_G_HAVE_PLUSEQ_OP"; then
+  eval 'func_append_quoted ()
+  {
+    $debug_cmd
+
+    func_quote_for_eval "$2"
+    eval "$1+=\\ \$func_quote_for_eval_result"
+  }'
+else
+  func_append_quoted ()
+  {
+    $debug_cmd
+
+    func_quote_for_eval "$2"
+    eval "$1=\$$1\\ \$func_quote_for_eval_result"
+  }
+fi
+
+
+# func_append_uniq VAR VALUE
+# --------------------------
+# Append unique VALUE onto the existing contents of VAR, assuming
+# entries are delimited by the first character of VALUE.  For example:
+#
+#   func_append_uniq options " --another-option option-argument"
+#
+# will only append to $options if " --another-option option-argument "
+# is not already present somewhere in $options already (note spaces at
+# each end implied by leading space in second argument).
+func_append_uniq ()
+{
+    $debug_cmd
+
+    eval _G_current_value='`$ECHO $'$1'`'
+    _G_delim=`expr "$2" : '\(.\)'`
+
+    case $_G_delim$_G_current_value$_G_delim in
+      *"$2$_G_delim"*) ;;
+      *) func_append "$@" ;;
+    esac
+}
+
+
+# func_arith TERM...
+# ------------------
+# Set func_arith_result to the result of evaluating TERMs.
+  test -z "$_G_HAVE_ARITH_OP" \
+    && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \
+    && _G_HAVE_ARITH_OP=yes
+
+if test yes = "$_G_HAVE_ARITH_OP"; then
+  eval 'func_arith ()
+  {
+    $debug_cmd
+
+    func_arith_result=$(( $* ))
+  }'
+else
+  func_arith ()
+  {
+    $debug_cmd
+
+    func_arith_result=`expr "$@"`
+  }
+fi
+
+
+# func_basename FILE
+# ------------------
+# Set func_basename_result to FILE with everything up to and including
+# the last / stripped.
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  # If this shell supports suffix pattern removal, then use it to avoid
+  # forking. Hide the definitions single quotes in case the shell chokes
+  # on unsupported syntax...
+  _b='func_basename_result=${1##*/}'
+  _d='case $1 in
+        */*) func_dirname_result=${1%/*}$2 ;;
+        *  ) func_dirname_result=$3        ;;
+      esac'
+
+else
+  # ...otherwise fall back to using sed.
+  _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'
+  _d='func_dirname_result=`$ECHO "$1"  |$SED "$sed_dirname"`
+      if test "X$func_dirname_result" = "X$1"; then
+        func_dirname_result=$3
+      else
+        func_append func_dirname_result "$2"
+      fi'
+fi
+
+eval 'func_basename ()
+{
+    $debug_cmd
+
+    '"$_b"'
+}'
+
+
+# func_dirname FILE APPEND NONDIR_REPLACEMENT
+# -------------------------------------------
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+eval 'func_dirname ()
+{
+    $debug_cmd
+
+    '"$_d"'
+}'
+
+
+# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT
+# --------------------------------------------------------
+# Perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# For efficiency, we do not delegate to the functions above but instead
+# duplicate the functionality here.
+eval 'func_dirname_and_basename ()
+{
+    $debug_cmd
+
+    '"$_b"'
+    '"$_d"'
+}'
+
+
+# func_echo ARG...
+# ----------------
+# Echo program name prefixed message.
+func_echo ()
+{
+    $debug_cmd
+
+    _G_message=$*
+
+    func_echo_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_IFS
+      $ECHO "$progname: $_G_line"
+    done
+    IFS=$func_echo_IFS
+}
+
+
+# func_echo_all ARG...
+# --------------------
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*"
+}
+
+
+# func_echo_infix_1 INFIX ARG...
+# ------------------------------
+# Echo program name, followed by INFIX on the first line, with any
+# additional lines not showing INFIX.
+func_echo_infix_1 ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    _G_infix=$1; shift
+    _G_indent=$_G_infix
+    _G_prefix="$progname: $_G_infix: "
+    _G_message=$*
+
+    # Strip color escape sequences before counting printable length
+    for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
+    do
+      test -n "$_G_tc" && {
+        _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
+        _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
+      }
+    done
+    _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`"  " ## exclude from sc_prohibit_nested_quotes
+
+    func_echo_infix_1_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_infix_1_IFS
+      $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
+      _G_prefix=$_G_indent
+    done
+    IFS=$func_echo_infix_1_IFS
+}
+
+
+# func_error ARG...
+# -----------------
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    func_echo_infix_1 "  $tc_standout${tc_red}error$tc_reset" "$*" >&2
+}
+
+
+# func_fatal_error ARG...
+# -----------------------
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+    $debug_cmd
+
+    func_error "$*"
+    exit $EXIT_FAILURE
+}
+
+
+# func_grep EXPRESSION FILENAME
+# -----------------------------
 # Check whether EXPRESSION matches any line of FILENAME, without output.
 func_grep ()
 {
+    $debug_cmd
+
     $GREP "$1" "$2" >/dev/null 2>&1
 }
 
 
-# func_mkdir_p directory-path
+# func_len STRING
+# ---------------
+# Set func_len_result to the length of STRING. STRING may not
+# start with a hyphen.
+  test -z "$_G_HAVE_XSI_OPS" \
+    && (eval 'x=a/b/c;
+      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+    && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_len ()
+  {
+    $debug_cmd
+
+    func_len_result=${#1}
+  }'
+else
+  func_len ()
+  {
+    $debug_cmd
+
+    func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+  }
+fi
+
+
+# func_mkdir_p DIRECTORY-PATH
+# ---------------------------
 # Make sure the entire path to DIRECTORY-PATH is available.
 func_mkdir_p ()
 {
-    my_directory_path="$1"
-    my_dir_list=
+    $debug_cmd
 
-    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
+    _G_directory_path=$1
+    _G_dir_list=
 
-      # Protect directory names starting with `-'
-      case $my_directory_path in
-        -*) my_directory_path="./$my_directory_path" ;;
+    if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then
+
+      # Protect directory names starting with '-'
+      case $_G_directory_path in
+        -*) _G_directory_path=./$_G_directory_path ;;
       esac
 
       # While some portion of DIR does not yet exist...
-      while test ! -d "$my_directory_path"; do
+      while test ! -d "$_G_directory_path"; do
         # ...make a list in topmost first order.  Use a colon delimited
        # list incase some portion of path contains whitespace.
-        my_dir_list="$my_directory_path:$my_dir_list"
+        _G_dir_list=$_G_directory_path:$_G_dir_list
 
         # If the last portion added has no slash in it, the list is done
-        case $my_directory_path in */*) ;; *) break ;; esac
+        case $_G_directory_path in */*) ;; *) break ;; esac
 
         # ...otherwise throw away the child directory and loop
-        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
+        _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
       done
-      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
+      _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`
 
-      save_mkdir_p_IFS="$IFS"; IFS=':'
-      for my_dir in $my_dir_list; do
-       IFS="$save_mkdir_p_IFS"
-        # mkdir can fail with a `File exist' error if two processes
+      func_mkdir_p_IFS=$IFS; IFS=:
+      for _G_dir in $_G_dir_list; do
+       IFS=$func_mkdir_p_IFS
+        # mkdir can fail with a 'File exist' error if two processes
         # try to create one of the directories concurrently.  Don't
         # stop in that case!
-        $MKDIR "$my_dir" 2>/dev/null || :
+        $MKDIR "$_G_dir" 2>/dev/null || :
       done
-      IFS="$save_mkdir_p_IFS"
+      IFS=$func_mkdir_p_IFS
 
       # Bail out if we (or some other process) failed to create a directory.
-      test -d "$my_directory_path" || \
-        func_fatal_error "Failed to create \`$1'"
+      test -d "$_G_directory_path" || \
+        func_fatal_error "Failed to create '$1'"
     fi
 }
 
 
-# func_mktempdir [string]
+# func_mktempdir [BASENAME]
+# -------------------------
 # Make a temporary directory that won't clash with other running
 # libtool processes, and avoids race conditions if possible.  If
-# given, STRING is the basename for that directory.
+# given, BASENAME is the basename for that directory.
 func_mktempdir ()
 {
-    my_template="${TMPDIR-/tmp}/${1-$progname}"
+    $debug_cmd
+
+    _G_template=${TMPDIR-/tmp}/${1-$progname}
 
-    if test "$opt_dry_run" = ":"; then
+    if test : = "$opt_dry_run"; then
       # Return a directory name, but don't create it in dry-run mode
-      my_tmpdir="${my_template}-$$"
+      _G_tmpdir=$_G_template-$$
     else
 
       # If mktemp works, use that first and foremost
-      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+      _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null`
 
-      if test ! -d "$my_tmpdir"; then
+      if test ! -d "$_G_tmpdir"; then
         # Failing that, at least try and use $RANDOM to avoid a race
-        my_tmpdir="${my_template}-${RANDOM-0}$$"
+        _G_tmpdir=$_G_template-${RANDOM-0}$$
 
-        save_mktempdir_umask=`umask`
+        func_mktempdir_umask=`umask`
         umask 0077
-        $MKDIR "$my_tmpdir"
-        umask $save_mktempdir_umask
+        $MKDIR "$_G_tmpdir"
+        umask $func_mktempdir_umask
       fi
 
       # If we're not in dry-run mode, bomb out on failure
-      test -d "$my_tmpdir" || \
-        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+      test -d "$_G_tmpdir" || \
+        func_fatal_error "cannot create temporary directory '$_G_tmpdir'"
+    fi
+
+    $ECHO "$_G_tmpdir"
+}
+
+
+# func_normal_abspath PATH
+# ------------------------
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+func_normal_abspath ()
+{
+    $debug_cmd
+
+    # These SED scripts presuppose an absolute path with a trailing slash.
+    _G_pathcar='s|^/\([^/]*\).*$|\1|'
+    _G_pathcdr='s|^/[^/]*||'
+    _G_removedotparts=':dotsl
+               s|/\./|/|g
+               t dotsl
+               s|/\.$|/|'
+    _G_collapseslashes='s|/\{1,\}|/|g'
+    _G_finalslash='s|/*$|/|'
+
+    # Start from root dir and reassemble the path.
+    func_normal_abspath_result=
+    func_normal_abspath_tpath=$1
+    func_normal_abspath_altnamespace=
+    case $func_normal_abspath_tpath in
+      "")
+        # Empty path, that just means $cwd.
+        func_stripname '' '/' "`pwd`"
+        func_normal_abspath_result=$func_stripname_result
+        return
+        ;;
+      # The next three entries are used to spot a run of precisely
+      # two leading slashes without using negated character classes;
+      # we take advantage of case's first-match behaviour.
+      ///*)
+        # Unusual form of absolute path, do nothing.
+        ;;
+      //*)
+        # Not necessarily an ordinary path; POSIX reserves leading '//'
+        # and for example Cygwin uses it to access remote file shares
+        # over CIFS/SMB, so we conserve a leading double slash if found.
+        func_normal_abspath_altnamespace=/
+        ;;
+      /*)
+        # Absolute path, do nothing.
+        ;;
+      *)
+        # Relative path, prepend $cwd.
+        func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+        ;;
+    esac
+
+    # Cancel out all the simple stuff to save iterations.  We also want
+    # the path to end with a slash for ease of parsing, so make sure
+    # there is one (and only one) here.
+    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"`
+    while :; do
+      # Processed it all yet?
+      if test / = "$func_normal_abspath_tpath"; then
+        # If we ascended to the root using ".." the result may be empty now.
+        if test -z "$func_normal_abspath_result"; then
+          func_normal_abspath_result=/
+        fi
+        break
+      fi
+      func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_pathcar"`
+      func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_pathcdr"`
+      # Figure out what to do with it
+      case $func_normal_abspath_tcomponent in
+        "")
+          # Trailing empty path component, ignore it.
+          ;;
+        ..)
+          # Parent dir; strip last assembled component from result.
+          func_dirname "$func_normal_abspath_result"
+          func_normal_abspath_result=$func_dirname_result
+          ;;
+        *)
+          # Actual path component, append it.
+          func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent"
+          ;;
+      esac
+    done
+    # Restore leading double-slash if one was found on entry.
+    func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
+}
+
+
+# func_notquiet ARG...
+# --------------------
+# Echo program name prefixed message only when not in quiet mode.
+func_notquiet ()
+{
+    $debug_cmd
+
+    $opt_quiet || func_echo ${1+"$@"}
+
+    # A bug in bash halts the script if the last line of a function
+    # fails when set -e is in force, so we need another command to
+    # work around that:
+    :
+}
+
+
+# func_relative_path SRCDIR DSTDIR
+# --------------------------------
+# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR.
+func_relative_path ()
+{
+    $debug_cmd
+
+    func_relative_path_result=
+    func_normal_abspath "$1"
+    func_relative_path_tlibdir=$func_normal_abspath_result
+    func_normal_abspath "$2"
+    func_relative_path_tbindir=$func_normal_abspath_result
+
+    # Ascend the tree starting from libdir
+    while :; do
+      # check if we have found a prefix of bindir
+      case $func_relative_path_tbindir in
+        $func_relative_path_tlibdir)
+          # found an exact match
+          func_relative_path_tcancelled=
+          break
+          ;;
+        $func_relative_path_tlibdir*)
+          # found a matching prefix
+          func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+          func_relative_path_tcancelled=$func_stripname_result
+          if test -z "$func_relative_path_result"; then
+            func_relative_path_result=.
+          fi
+          break
+          ;;
+        *)
+          func_dirname $func_relative_path_tlibdir
+          func_relative_path_tlibdir=$func_dirname_result
+          if test -z "$func_relative_path_tlibdir"; then
+            # Have to descend all the way to the root!
+            func_relative_path_result=../$func_relative_path_result
+            func_relative_path_tcancelled=$func_relative_path_tbindir
+            break
+          fi
+          func_relative_path_result=../$func_relative_path_result
+          ;;
+      esac
+    done
+
+    # Now calculate path; take care to avoid doubling-up slashes.
+    func_stripname '' '/' "$func_relative_path_result"
+    func_relative_path_result=$func_stripname_result
+    func_stripname '/' '/' "$func_relative_path_tcancelled"
+    if test -n "$func_stripname_result"; then
+      func_append func_relative_path_result "/$func_stripname_result"
+    fi
+
+    # Normalisation. If bindir is libdir, return '.' else relative path.
+    if test -n "$func_relative_path_result"; then
+      func_stripname './' '' "$func_relative_path_result"
+      func_relative_path_result=$func_stripname_result
     fi
 
-    $ECHO "$my_tmpdir"
+    test -n "$func_relative_path_result" || func_relative_path_result=.
+
+    :
+}
+
+
+# func_quote_for_eval ARG...
+# --------------------------
+# Aesthetically quote ARGs to be evaled later.
+# This function returns two values:
+#   i) func_quote_for_eval_result
+#      double-quoted, suitable for a subsequent eval
+#  ii) func_quote_for_eval_unquoted_result
+#      has all characters that are still active within double
+#      quotes backslashified.
+func_quote_for_eval ()
+{
+    $debug_cmd
+
+    func_quote_for_eval_unquoted_result=
+    func_quote_for_eval_result=
+    while test 0 -lt $#; do
+      case $1 in
+        *[\\\`\"\$]*)
+         _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
+        *)
+          _G_unquoted_arg=$1 ;;
+      esac
+      if test -n "$func_quote_for_eval_unquoted_result"; then
+       func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
+      else
+        func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
+      fi
+
+      case $_G_unquoted_arg in
+        # Double-quote args containing shell metacharacters to delay
+        # word splitting, command substitution and variable expansion
+        # for a subsequent eval.
+        # Many Bourne shells cannot handle close brackets correctly
+        # in scan sets, so we specify it separately.
+        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \  ]*|*]*|"")
+          _G_quoted_arg=\"$_G_unquoted_arg\"
+          ;;
+        *)
+          _G_quoted_arg=$_G_unquoted_arg
+         ;;
+      esac
+
+      if test -n "$func_quote_for_eval_result"; then
+       func_append func_quote_for_eval_result " $_G_quoted_arg"
+      else
+        func_append func_quote_for_eval_result "$_G_quoted_arg"
+      fi
+      shift
+    done
+}
+
+
+# func_quote_for_expand ARG
+# -------------------------
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+    $debug_cmd
+
+    case $1 in
+      *[\\\`\"]*)
+       _G_arg=`$ECHO "$1" | $SED \
+           -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
+      *)
+        _G_arg=$1 ;;
+    esac
+
+    case $_G_arg in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting and command substitution for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
+        _G_arg=\"$_G_arg\"
+        ;;
+    esac
+
+    func_quote_for_expand_result=$_G_arg
+}
+
+
+# func_stripname PREFIX SUFFIX NAME
+# ---------------------------------
+# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_stripname ()
+  {
+    $debug_cmd
+
+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+    # positional parameters, so assign one to ordinary variable first.
+    func_stripname_result=$3
+    func_stripname_result=${func_stripname_result#"$1"}
+    func_stripname_result=${func_stripname_result%"$2"}
+  }'
+else
+  func_stripname ()
+  {
+    $debug_cmd
+
+    case $2 in
+      .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;;
+      *)  func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;;
+    esac
+  }
+fi
+
+
+# func_show_eval CMD [FAIL_EXP]
+# -----------------------------
+# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+    $debug_cmd
+
+    _G_cmd=$1
+    _G_fail_exp=${2-':'}
+
+    func_quote_for_expand "$_G_cmd"
+    eval "func_notquiet $func_quote_for_expand_result"
+
+    $opt_dry_run || {
+      eval "$_G_cmd"
+      _G_status=$?
+      if test 0 -ne "$_G_status"; then
+       eval "(exit $_G_status); $_G_fail_exp"
+      fi
+    }
+}
+
+
+# func_show_eval_locale CMD [FAIL_EXP]
+# ------------------------------------
+# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.  Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+    $debug_cmd
+
+    _G_cmd=$1
+    _G_fail_exp=${2-':'}
+
+    $opt_quiet || {
+      func_quote_for_expand "$_G_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    $opt_dry_run || {
+      eval "$_G_user_locale
+           $_G_cmd"
+      _G_status=$?
+      eval "$_G_safe_locale"
+      if test 0 -ne "$_G_status"; then
+       eval "(exit $_G_status); $_G_fail_exp"
+      fi
+    }
+}
+
+
+# func_tr_sh
+# ----------
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result.  All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+    $debug_cmd
+
+    case $1 in
+    [0-9]* | *[!a-zA-Z0-9_]*)
+      func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'`
+      ;;
+    * )
+      func_tr_sh_result=$1
+      ;;
+    esac
+}
+
+
+# func_verbose ARG...
+# -------------------
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+    $debug_cmd
+
+    $opt_verbose && func_echo "$*"
+
+    :
+}
+
+
+# func_warn_and_continue ARG...
+# -----------------------------
+# Echo program name prefixed warning message to standard error.
+func_warn_and_continue ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2
+}
+
+
+# func_warning CATEGORY ARG...
+# ----------------------------
+# Echo program name prefixed warning message to standard error. Warning
+# messages can be filtered according to CATEGORY, where this function
+# elides messages where CATEGORY is not listed in the global variable
+# 'opt_warning_types'.
+func_warning ()
+{
+    $debug_cmd
+
+    # CATEGORY must be in the warning_categories list!
+    case " $warning_categories " in
+      *" $1 "*) ;;
+      *) func_internal_error "invalid warning category '$1'" ;;
+    esac
+
+    _G_category=$1
+    shift
+
+    case " $opt_warning_types " in
+      *" $_G_category "*) $warning_func ${1+"$@"} ;;
+    esac
+}
+
+
+# func_sort_ver VER1 VER2
+# -----------------------
+# 'sort -V' is not generally available.
+# Note this deviates from the version comparison in automake
+# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
+# but this should suffice as we won't be specifying old
+# version formats or redundant trailing .0 in bootstrap.conf.
+# If we did want full compatibility then we should probably
+# use m4_version_compare from autoconf.
+func_sort_ver ()
+{
+    $debug_cmd
+
+    printf '%s\n%s\n' "$1" "$2" \
+      | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n
+}
+
+# func_lt_ver PREV CURR
+# ---------------------
+# Return true if PREV and CURR are in the correct order according to
+# func_sort_ver, otherwise false.  Use it like this:
+#
+#  func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
+func_lt_ver ()
+{
+    $debug_cmd
+
+    test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q`
+}
+
+
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
+#! /bin/sh
+
+# Set a version string for this script.
+scriptversion=2014-01-07.03; # UTC
+
+# A portable, pluggable option parser for Bourne shell.
+# Written by Gary V. Vaughan, 2010
+
+# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# 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/>.
+
+# Please report bugs or propose patches to gary@gnu.org.
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# This file is a library for parsing options in your shell scripts along
+# with assorted other useful supporting features that you can make use
+# of too.
+#
+# For the simplest scripts you might need only:
+#
+#   #!/bin/sh
+#   . relative/path/to/funclib.sh
+#   . relative/path/to/options-parser
+#   scriptversion=1.0
+#   func_options ${1+"$@"}
+#   eval set dummy "$func_options_result"; shift
+#   ...rest of your script...
+#
+# In order for the '--version' option to work, you will need to have a
+# suitably formatted comment like the one at the top of this file
+# starting with '# Written by ' and ending with '# warranty; '.
+#
+# For '-h' and '--help' to work, you will also need a one line
+# description of your script's purpose in a comment directly above the
+# '# Written by ' line, like the one at the top of this file.
+#
+# The default options also support '--debug', which will turn on shell
+# execution tracing (see the comment above debug_cmd below for another
+# use), and '--verbose' and the func_verbose function to allow your script
+# to display verbose messages only when your user has specified
+# '--verbose'.
+#
+# After sourcing this file, you can plug processing for additional
+# options by amending the variables from the 'Configuration' section
+# below, and following the instructions in the 'Option parsing'
+# section further down.
+
+## -------------- ##
+## Configuration. ##
+## -------------- ##
+
+# You should override these variables in your script after sourcing this
+# file so that they reflect the customisations you have added to the
+# option parser.
+
+# The usage line for option parsing errors and the start of '-h' and
+# '--help' output messages. You can embed shell variables for delayed
+# expansion at the time the message is displayed, but you will need to
+# quote other shell meta-characters carefully to prevent them being
+# expanded when the contents are evaled.
+usage='$progpath [OPTION]...'
+
+# Short help message in response to '-h' and '--help'.  Add to this or
+# override it after sourcing this library to reflect the full set of
+# options your script accepts.
+usage_message="\
+       --debug        enable verbose shell tracing
+   -W, --warnings=CATEGORY
+                      report the warnings falling in CATEGORY [all]
+   -v, --verbose      verbosely report processing
+       --version      print version information and exit
+   -h, --help         print short or long help message and exit
+"
+
+# Additional text appended to 'usage_message' in response to '--help'.
+long_help_message="
+Warning categories include:
+       'all'          show all warnings
+       'none'         turn off all the warnings
+       'error'        warnings are treated as fatal errors"
+
+# Help message printed before fatal option parsing errors.
+fatal_help="Try '\$progname --help' for more information."
+
+
+
+## ------------------------- ##
+## Hook function management. ##
+## ------------------------- ##
+
+# This section contains functions for adding, removing, and running hooks
+# to the main code.  A hook is just a named list of of function, that can
+# be run in order later on.
+
+# func_hookable FUNC_NAME
+# -----------------------
+# Declare that FUNC_NAME will run hooks added with
+# 'func_add_hook FUNC_NAME ...'.
+func_hookable ()
+{
+    $debug_cmd
+
+    func_append hookable_fns " $1"
+}
+
+
+# func_add_hook FUNC_NAME HOOK_FUNC
+# ---------------------------------
+# Request that FUNC_NAME call HOOK_FUNC before it returns.  FUNC_NAME must
+# first have been declared "hookable" by a call to 'func_hookable'.
+func_add_hook ()
+{
+    $debug_cmd
+
+    case " $hookable_fns " in
+      *" $1 "*) ;;
+      *) func_fatal_error "'$1' does not accept hook functions." ;;
+    esac
+
+    eval func_append ${1}_hooks '" $2"'
+}
+
+
+# func_remove_hook FUNC_NAME HOOK_FUNC
+# ------------------------------------
+# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
+func_remove_hook ()
+{
+    $debug_cmd
+
+    eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
+}
+
+
+# func_run_hooks FUNC_NAME [ARG]...
+# ---------------------------------
+# Run all hook functions registered to FUNC_NAME.
+# It is assumed that the list of hook functions contains nothing more
+# than a whitespace-delimited list of legal shell function names, and
+# no effort is wasted trying to catch shell meta-characters or preserve
+# whitespace.
+func_run_hooks ()
+{
+    $debug_cmd
+
+    case " $hookable_fns " in
+      *" $1 "*) ;;
+      *) func_fatal_error "'$1' does not support hook funcions.n" ;;
+    esac
+
+    eval _G_hook_fns=\$$1_hooks; shift
+
+    for _G_hook in $_G_hook_fns; do
+      eval $_G_hook '"$@"'
+
+      # store returned options list back into positional
+      # parameters for next 'cmd' execution.
+      eval _G_hook_result=\$${_G_hook}_result
+      eval set dummy "$_G_hook_result"; shift
+    done
+
+    func_quote_for_eval ${1+"$@"}
+    func_run_hooks_result=$func_quote_for_eval_result
+}
+
+
+
+## --------------- ##
+## Option parsing. ##
+## --------------- ##
+
+# In order to add your own option parsing hooks, you must accept the
+# full positional parameter list in your hook function, remove any
+# options that you action, and then pass back the remaining unprocessed
+# options in '<hooked_function_name>_result', escaped suitably for
+# 'eval'.  Like this:
+#
+#    my_options_prep ()
+#    {
+#        $debug_cmd
+#
+#        # Extend the existing usage message.
+#        usage_message=$usage_message'
+#      -s, --silent       don'\''t print informational messages
+#    '
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_options_prep_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_options_prep my_options_prep
+#
+#
+#    my_silent_option ()
+#    {
+#        $debug_cmd
+#
+#        # Note that for efficiency, we parse as many options as we can
+#        # recognise in a loop before passing the remainder back to the
+#        # caller on the first unrecognised argument we encounter.
+#        while test $# -gt 0; do
+#          opt=$1; shift
+#          case $opt in
+#            --silent|-s) opt_silent=: ;;
+#            # Separate non-argument short options:
+#            -s*)         func_split_short_opt "$_G_opt"
+#                         set dummy "$func_split_short_opt_name" \
+#                             "-$func_split_short_opt_arg" ${1+"$@"}
+#                         shift
+#                         ;;
+#            *)            set dummy "$_G_opt" "$*"; shift; break ;;
+#          esac
+#        done
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_silent_option_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_parse_options my_silent_option
+#
+#
+#    my_option_validation ()
+#    {
+#        $debug_cmd
+#
+#        $opt_silent && $opt_verbose && func_fatal_help "\
+#    '--silent' and '--verbose' options are mutually exclusive."
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_option_validation_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_validate_options my_option_validation
+#
+# You'll alse need to manually amend $usage_message to reflect the extra
+# options you parse.  It's preferable to append if you can, so that
+# multiple option parsing hooks can be added safely.
+
+
+# func_options [ARG]...
+# ---------------------
+# All the functions called inside func_options are hookable. See the
+# individual implementations for details.
+func_hookable func_options
+func_options ()
+{
+    $debug_cmd
+
+    func_options_prep ${1+"$@"}
+    eval func_parse_options \
+        ${func_options_prep_result+"$func_options_prep_result"}
+    eval func_validate_options \
+        ${func_parse_options_result+"$func_parse_options_result"}
+
+    eval func_run_hooks func_options \
+        ${func_validate_options_result+"$func_validate_options_result"}
+
+    # save modified positional parameters for caller
+    func_options_result=$func_run_hooks_result
 }
 
 
-# func_quote_for_eval arg
-# Aesthetically quote ARG to be evaled later.
-# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
-# is double-quoted, suitable for a subsequent eval, whereas
-# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
-# which are still active within double quotes backslashified.
-func_quote_for_eval ()
+# func_options_prep [ARG]...
+# --------------------------
+# All initialisations required before starting the option parse loop.
+# Note that when calling hook functions, we pass through the list of
+# positional parameters.  If a hook function modifies that list, and
+# needs to propogate that back to rest of this script, then the complete
+# modified list must be put in 'func_run_hooks_result' before
+# returning.
+func_hookable func_options_prep
+func_options_prep ()
 {
-    case $1 in
-      *[\\\`\"\$]*)
-       func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
-      *)
-        func_quote_for_eval_unquoted_result="$1" ;;
-    esac
+    $debug_cmd
 
-    case $func_quote_for_eval_unquoted_result in
-      # Double-quote args containing shell metacharacters to delay
-      # word splitting, command substitution and and variable
-      # expansion for a subsequent eval.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
-        ;;
-      *)
-        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
-    esac
+    # Option defaults:
+    opt_verbose=false
+    opt_warning_types=
+
+    func_run_hooks func_options_prep ${1+"$@"}
+
+    # save modified positional parameters for caller
+    func_options_prep_result=$func_run_hooks_result
 }
 
 
-# func_quote_for_expand arg
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
+# func_parse_options [ARG]...
+# ---------------------------
+# The main option parsing loop.
+func_hookable func_parse_options
+func_parse_options ()
 {
-    case $1 in
-      *[\\\`\"]*)
-       my_arg=`$ECHO "$1" | $SED \
-           -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
-      *)
-        my_arg="$1" ;;
-    esac
+    $debug_cmd
 
-    case $my_arg in
-      # Double-quote args containing shell metacharacters to delay
-      # word splitting and command substitution for a subsequent eval.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-        my_arg="\"$my_arg\""
-        ;;
-    esac
+    func_parse_options_result=
 
-    func_quote_for_expand_result="$my_arg"
-}
+    # this just eases exit handling
+    while test $# -gt 0; do
+      # Defer to hook functions for initial option parsing, so they
+      # get priority in the event of reusing an option name.
+      func_run_hooks func_parse_options ${1+"$@"}
 
+      # Adjust func_parse_options positional parameters to match
+      eval set dummy "$func_run_hooks_result"; shift
 
-# func_show_eval cmd [fail_exp]
-# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
-# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.
-func_show_eval ()
-{
-    my_cmd="$1"
-    my_fail_exp="${2-:}"
+      # Break out of the loop if we already parsed every option.
+      test $# -gt 0 || break
 
-    ${opt_silent-false} || {
-      func_quote_for_expand "$my_cmd"
-      eval "func_echo $func_quote_for_expand_result"
-    }
+      _G_opt=$1
+      shift
+      case $_G_opt in
+        --debug|-x)   debug_cmd='set -x'
+                      func_echo "enabling shell trace mode"
+                      $debug_cmd
+                      ;;
+
+        --no-warnings|--no-warning|--no-warn)
+                      set dummy --warnings none ${1+"$@"}
+                      shift
+                     ;;
 
-    if ${opt_dry_run-false}; then :; else
-      eval "$my_cmd"
-      my_status=$?
-      if test "$my_status" -eq 0; then :; else
-       eval "(exit $my_status); $my_fail_exp"
-      fi
-    fi
+        --warnings|--warning|-W)
+                      test $# = 0 && func_missing_arg $_G_opt && break
+                      case " $warning_categories $1" in
+                        *" $1 "*)
+                          # trailing space prevents matching last $1 above
+                          func_append_uniq opt_warning_types " $1"
+                          ;;
+                        *all)
+                          opt_warning_types=$warning_categories
+                          ;;
+                        *none)
+                          opt_warning_types=none
+                          warning_func=:
+                          ;;
+                        *error)
+                          opt_warning_types=$warning_categories
+                          warning_func=func_fatal_error
+                          ;;
+                        *)
+                          func_fatal_error \
+                             "unsupported warning category: '$1'"
+                          ;;
+                      esac
+                      shift
+                      ;;
+
+        --verbose|-v) opt_verbose=: ;;
+        --version)    func_version ;;
+        -\?|-h)       func_usage ;;
+        --help)       func_help ;;
+
+       # Separate optargs to long options (plugins may need this):
+       --*=*)        func_split_equals "$_G_opt"
+                     set dummy "$func_split_equals_lhs" \
+                          "$func_split_equals_rhs" ${1+"$@"}
+                      shift
+                      ;;
+
+       # Separate optargs to short options:
+        -W*)
+                      func_split_short_opt "$_G_opt"
+                      set dummy "$func_split_short_opt_name" \
+                          "$func_split_short_opt_arg" ${1+"$@"}
+                      shift
+                      ;;
+
+        # Separate non-argument short options:
+        -\?*|-h*|-v*|-x*)
+                      func_split_short_opt "$_G_opt"
+                      set dummy "$func_split_short_opt_name" \
+                          "-$func_split_short_opt_arg" ${1+"$@"}
+                      shift
+                      ;;
+
+        --)           break ;;
+        -*)           func_fatal_help "unrecognised option: '$_G_opt'" ;;
+        *)            set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+      esac
+    done
+
+    # save modified positional parameters for caller
+    func_quote_for_eval ${1+"$@"}
+    func_parse_options_result=$func_quote_for_eval_result
 }
 
 
-# func_show_eval_locale cmd [fail_exp]
-# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
-# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.  Use the saved locale for evaluation.
-func_show_eval_locale ()
+# func_validate_options [ARG]...
+# ------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+func_hookable func_validate_options
+func_validate_options ()
 {
-    my_cmd="$1"
-    my_fail_exp="${2-:}"
+    $debug_cmd
 
-    ${opt_silent-false} || {
-      func_quote_for_expand "$my_cmd"
-      eval "func_echo $func_quote_for_expand_result"
-    }
+    # Display all warnings if -W was not given.
+    test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
 
-    if ${opt_dry_run-false}; then :; else
-      eval "$lt_user_locale
-           $my_cmd"
-      my_status=$?
-      eval "$lt_safe_locale"
-      if test "$my_status" -eq 0; then :; else
-       eval "(exit $my_status); $my_fail_exp"
-      fi
-    fi
-}
+    func_run_hooks func_validate_options ${1+"$@"}
 
-# func_tr_sh
-# Turn $1 into a string suitable for a shell variable name.
-# Result is stored in $func_tr_sh_result.  All characters
-# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
-# if $1 begins with a digit, a '_' is prepended as well.
-func_tr_sh ()
-{
-  case $1 in
-  [0-9]* | *[!a-zA-Z0-9_]*)
-    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
-    ;;
-  * )
-    func_tr_sh_result=$1
-    ;;
-  esac
+    # Bail if the options were screwed!
+    $exit_cmd $EXIT_FAILURE
+
+    # save modified positional parameters for caller
+    func_validate_options_result=$func_run_hooks_result
 }
 
 
-# func_version
-# Echo version message to standard output and exit.
-func_version ()
-{
-    $opt_debug
 
-    $SED -n '/(C)/!b go
-       :more
-       /\./!{
-         N
-         s/\n# / /
-         b more
-       }
-       :go
-       /^# '$PROGRAM' (GNU /,/# warranty; / {
-        s/^# //
-       s/^# *$//
-        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
-        p
-     }' < "$progpath"
-     exit $?
-}
+## ----------------- ##
+## Helper functions. ##
+## ----------------- ##
 
-# func_usage
-# Echo short help message to standard output and exit.
-func_usage ()
+# This section contains the helper functions used by the rest of the
+# hookable option parser framework in ascii-betical order.
+
+
+# func_fatal_help ARG...
+# ----------------------
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
 {
-    $opt_debug
+    $debug_cmd
 
-    $SED -n '/^# Usage:/,/^#  *.*--help/ {
-        s/^# //
-       s/^# *$//
-       s/\$progname/'$progname'/
-       p
-    }' < "$progpath"
-    echo
-    $ECHO "run \`$progname --help | more' for full usage"
-    exit $?
+    eval \$ECHO \""Usage: $usage"\"
+    eval \$ECHO \""$fatal_help"\"
+    func_error ${1+"$@"}
+    exit $EXIT_FAILURE
 }
 
-# func_help [NOEXIT]
-# Echo long help message to standard output and exit,
-# unless 'noexit' is passed as argument.
+
+# func_help
+# ---------
+# Echo long help message to standard output and exit.
 func_help ()
 {
-    $opt_debug
-
-    $SED -n '/^# Usage:/,/# Report bugs to/ {
-       :print
-        s/^# //
-       s/^# *$//
-       s*\$progname*'$progname'*
-       s*\$host*'"$host"'*
-       s*\$SHELL*'"$SHELL"'*
-       s*\$LTCC*'"$LTCC"'*
-       s*\$LTCFLAGS*'"$LTCFLAGS"'*
-       s*\$LD*'"$LD"'*
-       s/\$with_gnu_ld/'"$with_gnu_ld"'/
-       s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
-       s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
-       p
-       d
-     }
-     /^# .* home page:/b print
-     /^# General help using/b print
-     ' < "$progpath"
-    ret=$?
-    if test -z "$1"; then
-      exit $ret
-    fi
+    $debug_cmd
+
+    func_usage_message
+    $ECHO "$long_help_message"
+    exit 0
 }
 
-# func_missing_arg argname
+
+# func_missing_arg ARGNAME
+# ------------------------
 # Echo program name prefixed message to standard error and set global
 # exit_cmd.
 func_missing_arg ()
 {
-    $opt_debug
+    $debug_cmd
 
-    func_error "missing argument for $1."
+    func_error "Missing argument for '$1'."
     exit_cmd=exit
 }
 
 
-# func_split_short_opt shortopt
+# func_split_equals STRING
+# ------------------------
+# Set func_split_equals_lhs and func_split_equals_rhs shell variables after
+# splitting STRING at the '=' sign.
+test -z "$_G_HAVE_XSI_OPS" \
+    && (eval 'x=a/b/c;
+      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+    && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_split_equals ()
+  {
+      $debug_cmd
+
+      func_split_equals_lhs=${1%%=*}
+      func_split_equals_rhs=${1#*=}
+      test "x$func_split_equals_lhs" = "x$1" \
+        && func_split_equals_rhs=
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_split_equals ()
+  {
+      $debug_cmd
+
+      func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
+      func_split_equals_rhs=
+      test "x$func_split_equals_lhs" = "x$1" \
+        || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
+  }
+fi #func_split_equals
+
+
+# func_split_short_opt SHORTOPT
+# -----------------------------
 # Set func_split_short_opt_name and func_split_short_opt_arg shell
 # variables after splitting SHORTOPT after the 2nd character.
-func_split_short_opt ()
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_split_short_opt ()
+  {
+      $debug_cmd
+
+      func_split_short_opt_arg=${1#??}
+      func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_split_short_opt ()
+  {
+      $debug_cmd
+
+      func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
+      func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
+  }
+fi #func_split_short_opt
+
+
+# func_usage
+# ----------
+# Echo short help message to standard output and exit.
+func_usage ()
 {
-    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
-    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
+    $debug_cmd
 
-    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
-    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
-} # func_split_short_opt may be replaced by extended shell implementation
+    func_usage_message
+    $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
+    exit 0
+}
 
 
-# func_split_long_opt longopt
-# Set func_split_long_opt_name and func_split_long_opt_arg shell
-# variables after splitting LONGOPT at the `=' sign.
-func_split_long_opt ()
+# func_usage_message
+# ------------------
+# Echo short help message to standard output.
+func_usage_message ()
 {
-    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
-    my_sed_long_arg='1s/^--[^=]*=//'
+    $debug_cmd
 
-    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
-    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
-} # func_split_long_opt may be replaced by extended shell implementation
+    eval \$ECHO \""Usage: $usage"\"
+    echo
+    $SED -n 's|^# ||
+        /^Written by/{
+          x;p;x
+        }
+       h
+       /^Written by/q' < "$progpath"
+    echo
+    eval \$ECHO \""$usage_message"\"
+}
 
-exit_cmd=:
 
+# func_version
+# ------------
+# Echo version message to standard output and exit.
+func_version ()
+{
+    $debug_cmd
 
+    printf '%s\n' "$progname $scriptversion"
+    $SED -n '
+        /(C)/!b go
+        :more
+        /\./!{
+          N
+          s|\n# | |
+          b more
+        }
+        :go
+        /^# Written by /,/# warranty; / {
+          s|^# ||
+          s|^# *$||
+          s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
+          p
+        }
+        /^# Written by / {
+          s|^# ||
+          p
+        }
+        /^warranty; /q' < "$progpath"
 
+    exit $?
+}
 
 
-magic="%%%MAGIC variable%%%"
-magic_exe="%%%MAGIC EXE variable%%%"
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
 
-# Global variables.
-nonopt=
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
+# Set a version string.
+scriptversion='(GNU libtool) 2.4.6'
 
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end.  This prevents here-documents from being
-# left over by shells.
-exec_cmd=
 
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
+# func_echo ARG...
+# ----------------
+# Libtool also displays the current mode in messages, so override
+# funclib.sh func_echo with this custom definition.
+func_echo ()
 {
-    eval "${1}=\$${1}\${2}"
-} # func_append may be replaced by extended shell implementation
+    $debug_cmd
 
-# func_append_quoted var value
-# Quote VALUE and append to the end of shell variable VAR, separated
-# by a space.
-func_append_quoted ()
-{
-    func_quote_for_eval "${2}"
-    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
-} # func_append_quoted may be replaced by extended shell implementation
+    _G_message=$*
 
+    func_echo_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_IFS
+      $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
+    done
+    IFS=$func_echo_IFS
+}
 
-# func_arith arithmetic-term...
-func_arith ()
+
+# func_warning ARG...
+# -------------------
+# Libtool warnings are not categorized, so override funclib.sh
+# func_warning with this simpler definition.
+func_warning ()
 {
-    func_arith_result=`expr "${@}"`
-} # func_arith may be replaced by extended shell implementation
+    $debug_cmd
 
+    $warning_func ${1+"$@"}
+}
 
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
-} # func_len may be replaced by extended shell implementation
 
+## ---------------- ##
+## Options parsing. ##
+## ---------------- ##
+
+# Hook in the functions to make sure our own options are parsed during
+# the option parsing loop.
+
+usage='$progpath [OPTION]... [MODE-ARG]...'
+
+# Short help message in response to '-h'.
+usage_message="Options:
+       --config             show all configuration variables
+       --debug              enable verbose shell tracing
+   -n, --dry-run            display commands without modifying any files
+       --features           display basic configuration information and exit
+       --mode=MODE          use operation mode MODE
+       --no-warnings        equivalent to '-Wnone'
+       --preserve-dup-deps  don't remove duplicate dependency libraries
+       --quiet, --silent    don't print informational messages
+       --tag=TAG            use configuration variables from tag TAG
+   -v, --verbose            print more informational messages than default
+       --version            print version information
+   -W, --warnings=CATEGORY  report the warnings falling in CATEGORY [all]
+   -h, --help, --help-all   print short, long, or detailed help message
+"
 
-# func_lo2o object
-func_lo2o ()
+# Additional text appended to 'usage_message' in response to '--help'.
+func_help ()
 {
-    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-} # func_lo2o may be replaced by extended shell implementation
+    $debug_cmd
+
+    func_usage_message
+    $ECHO "$long_help_message
+
+MODE must be one of the following:
+
+       clean           remove files from the build directory
+       compile         compile a source file into a libtool object
+       execute         automatically set library path, then run a program
+       finish          complete the installation of libtool libraries
+       install         install libraries or executables
+       link            create a library or an executable
+       uninstall       remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE.  When passed as first option,
+'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
+Try '$progname --help --mode=MODE' for a more detailed description of MODE.
+
+When reporting a bug, please describe a test case to reproduce it and
+include the following information:
+
+       host-triplet:   $host
+       shell:          $SHELL
+       compiler:       $LTCC
+       compiler flags: $LTCFLAGS
+       linker:         $LD (gnu? $with_gnu_ld)
+       version:        $progname $scriptversion Debian-2.4.6-2
+       automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
+       autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
+
+Report bugs to <bug-libtool@gnu.org>.
+GNU libtool home page: <http://www.gnu.org/s/libtool/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
+    exit 0
+}
 
 
-# func_xform libobj-or-source
-func_xform ()
-{
-    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-} # func_xform may be replaced by extended shell implementation
+# func_lo2o OBJECT-NAME
+# ---------------------
+# Transform OBJECT-NAME from a '.lo' suffix to the platform specific
+# object suffix.
+
+lo2o=s/\\.lo\$/.$objext/
+o2lo=s/\\.$objext\$/.lo/
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_lo2o ()
+  {
+    case $1 in
+      *.lo) func_lo2o_result=${1%.lo}.$objext ;;
+      *   ) func_lo2o_result=$1               ;;
+    esac
+  }'
+
+  # func_xform LIBOBJ-OR-SOURCE
+  # ---------------------------
+  # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise)
+  # suffix to a '.lo' libtool-object suffix.
+  eval 'func_xform ()
+  {
+    func_xform_result=${1%.*}.lo
+  }'
+else
+  # ...otherwise fall back to using sed.
+  func_lo2o ()
+  {
+    func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"`
+  }
+
+  func_xform ()
+  {
+    func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'`
+  }
+fi
 
 
-# func_fatal_configuration arg...
+# func_fatal_configuration ARG...
+# -------------------------------
 # Echo program name prefixed message to standard error, followed by
 # a configuration failure hint, and exit.
 func_fatal_configuration ()
 {
-    func_error ${1+"$@"}
-    func_error "See the $PACKAGE documentation for more information."
-    func_fatal_error "Fatal configuration error."
+    func__fatal_error ${1+"$@"} \
+      "See the $PACKAGE documentation for more information." \
+      "Fatal configuration error."
 }
 
 
 # func_config
+# -----------
 # Display the configuration for all the tags in this script.
 func_config ()
 {
@@ -915,17 +2149,19 @@ func_config ()
     exit $?
 }
 
+
 # func_features
+# -------------
 # Display the features supported by this script.
 func_features ()
 {
     echo "host: $host"
-    if test "$build_libtool_libs" = yes; then
+    if test yes = "$build_libtool_libs"; then
       echo "enable shared libraries"
     else
       echo "disable shared libraries"
     fi
-    if test "$build_old_libs" = yes; then
+    if test yes = "$build_old_libs"; then
       echo "enable static libraries"
     else
       echo "disable static libraries"
@@ -934,314 +2170,350 @@ func_features ()
     exit $?
 }
 
-# func_enable_tag tagname
+
+# func_enable_tag TAGNAME
+# -----------------------
 # Verify that TAGNAME is valid, and either flag an error and exit, or
 # enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
 # variable here.
 func_enable_tag ()
 {
-  # Global variable:
-  tagname="$1"
+    # Global variable:
+    tagname=$1
 
-  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
-  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
-  sed_extractcf="/$re_begincf/,/$re_endcf/p"
+    re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+    re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+    sed_extractcf=/$re_begincf/,/$re_endcf/p
 
-  # Validate tagname.
-  case $tagname in
-    *[!-_A-Za-z0-9,/]*)
-      func_fatal_error "invalid tag name: $tagname"
-      ;;
-  esac
+    # Validate tagname.
+    case $tagname in
+      *[!-_A-Za-z0-9,/]*)
+        func_fatal_error "invalid tag name: $tagname"
+        ;;
+    esac
 
-  # Don't test for the "default" C tag, as we know it's
-  # there but not specially marked.
-  case $tagname in
-    CC) ;;
+    # Don't test for the "default" C tag, as we know it's
+    # there but not specially marked.
+    case $tagname in
+        CC) ;;
     *)
-      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
-       taglist="$taglist $tagname"
-
-       # Evaluate the configuration.  Be careful to quote the path
-       # and the sed script, to avoid splitting on whitespace, but
-       # also don't use non-portable quotes within backquotes within
-       # quotes we have to do it in 2 steps:
-       extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
-       eval "$extractedcf"
-      else
-       func_error "ignoring unknown tag $tagname"
-      fi
-      ;;
-  esac
+        if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+         taglist="$taglist $tagname"
+
+         # Evaluate the configuration.  Be careful to quote the path
+         # and the sed script, to avoid splitting on whitespace, but
+         # also don't use non-portable quotes within backquotes within
+         # quotes we have to do it in 2 steps:
+         extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+         eval "$extractedcf"
+        else
+         func_error "ignoring unknown tag $tagname"
+        fi
+        ;;
+    esac
 }
 
+
 # func_check_version_match
+# ------------------------
 # Ensure that we are using m4 macros, and libtool script from the same
 # release of libtool.
 func_check_version_match ()
 {
-  if test "$package_revision" != "$macro_revision"; then
-    if test "$VERSION" != "$macro_version"; then
-      if test -z "$macro_version"; then
-        cat >&2 <<_LT_EOF
+    if test "$package_revision" != "$macro_revision"; then
+      if test "$VERSION" != "$macro_version"; then
+        if test -z "$macro_version"; then
+          cat >&2 <<_LT_EOF
 $progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 $progname: definition of this LT_INIT comes from an older release.
 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 $progname: and run autoconf again.
 _LT_EOF
-      else
-        cat >&2 <<_LT_EOF
+        else
+          cat >&2 <<_LT_EOF
 $progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 $progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 $progname: and run autoconf again.
 _LT_EOF
-      fi
-    else
-      cat >&2 <<_LT_EOF
+        fi
+      else
+        cat >&2 <<_LT_EOF
 $progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
 $progname: but the definition of this LT_INIT comes from revision $macro_revision.
 $progname: You should recreate aclocal.m4 with macros from revision $package_revision
 $progname: of $PACKAGE $VERSION and run autoconf again.
 _LT_EOF
-    fi
+      fi
 
-    exit $EXIT_MISMATCH
-  fi
+      exit $EXIT_MISMATCH
+    fi
 }
 
 
-# Shorthand for --mode=foo, only valid as the first argument
-case $1 in
-clean|clea|cle|cl)
-  shift; set dummy --mode clean ${1+"$@"}; shift
-  ;;
-compile|compil|compi|comp|com|co|c)
-  shift; set dummy --mode compile ${1+"$@"}; shift
-  ;;
-execute|execut|execu|exec|exe|ex|e)
-  shift; set dummy --mode execute ${1+"$@"}; shift
-  ;;
-finish|finis|fini|fin|fi|f)
-  shift; set dummy --mode finish ${1+"$@"}; shift
-  ;;
-install|instal|insta|inst|ins|in|i)
-  shift; set dummy --mode install ${1+"$@"}; shift
-  ;;
-link|lin|li|l)
-  shift; set dummy --mode link ${1+"$@"}; shift
-  ;;
-uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-  shift; set dummy --mode uninstall ${1+"$@"}; shift
-  ;;
-esac
+# libtool_options_prep [ARG]...
+# -----------------------------
+# Preparation for options parsed by libtool.
+libtool_options_prep ()
+{
+    $debug_mode
 
+    # Option defaults:
+    opt_config=false
+    opt_dlopen=
+    opt_dry_run=false
+    opt_help=false
+    opt_mode=
+    opt_preserve_dup_deps=false
+    opt_quiet=false
 
+    nonopt=
+    preserve_args=
 
-# Option defaults:
-opt_debug=:
-opt_dry_run=false
-opt_config=false
-opt_preserve_dup_deps=false
-opt_features=false
-opt_finish=false
-opt_help=false
-opt_help_all=false
-opt_silent=:
-opt_warning=:
-opt_verbose=:
-opt_silent=false
-opt_verbose=false
+    # Shorthand for --mode=foo, only valid as the first argument
+    case $1 in
+    clean|clea|cle|cl)
+      shift; set dummy --mode clean ${1+"$@"}; shift
+      ;;
+    compile|compil|compi|comp|com|co|c)
+      shift; set dummy --mode compile ${1+"$@"}; shift
+      ;;
+    execute|execut|execu|exec|exe|ex|e)
+      shift; set dummy --mode execute ${1+"$@"}; shift
+      ;;
+    finish|finis|fini|fin|fi|f)
+      shift; set dummy --mode finish ${1+"$@"}; shift
+      ;;
+    install|instal|insta|inst|ins|in|i)
+      shift; set dummy --mode install ${1+"$@"}; shift
+      ;;
+    link|lin|li|l)
+      shift; set dummy --mode link ${1+"$@"}; shift
+      ;;
+    uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+      shift; set dummy --mode uninstall ${1+"$@"}; shift
+      ;;
+    esac
+
+    # Pass back the list of options.
+    func_quote_for_eval ${1+"$@"}
+    libtool_options_prep_result=$func_quote_for_eval_result
+}
+func_add_hook func_options_prep libtool_options_prep
 
 
-# Parse options once, thoroughly.  This comes as soon as possible in the
-# script to make things like `--version' happen as quickly as we can.
+# libtool_parse_options [ARG]...
+# ---------------------------------
+# Provide handling for libtool specific options.
+libtool_parse_options ()
 {
-  # this just eases exit handling
-  while test $# -gt 0; do
-    opt="$1"
-    shift
-    case $opt in
-      --debug|-x)      opt_debug='set -x'
-                       func_echo "enabling shell trace mode"
-                       $opt_debug
-                       ;;
-      --dry-run|--dryrun|-n)
-                       opt_dry_run=:
-                       ;;
-      --config)
-                       opt_config=:
-func_config
-                       ;;
-      --dlopen|-dlopen)
-                       optarg="$1"
-                       opt_dlopen="${opt_dlopen+$opt_dlopen
-}$optarg"
-                       shift
-                       ;;
-      --preserve-dup-deps)
-                       opt_preserve_dup_deps=:
-                       ;;
-      --features)
-                       opt_features=:
-func_features
-                       ;;
-      --finish)
-                       opt_finish=:
-set dummy --mode finish ${1+"$@"}; shift
-                       ;;
-      --help)
-                       opt_help=:
-                       ;;
-      --help-all)
-                       opt_help_all=:
-opt_help=': help-all'
-                       ;;
-      --mode)
-                       test $# = 0 && func_missing_arg $opt && break
-                       optarg="$1"
-                       opt_mode="$optarg"
-case $optarg in
-  # Valid mode arguments:
-  clean|compile|execute|finish|install|link|relink|uninstall) ;;
-
-  # Catch anything else as an error
-  *) func_error "invalid argument for $opt"
-     exit_cmd=exit
-     break
-     ;;
-esac
-                       shift
-                       ;;
-      --no-silent|--no-quiet)
-                       opt_silent=false
-func_append preserve_args " $opt"
-                       ;;
-      --no-warning|--no-warn)
-                       opt_warning=false
-func_append preserve_args " $opt"
-                       ;;
-      --no-verbose)
-                       opt_verbose=false
-func_append preserve_args " $opt"
-                       ;;
-      --silent|--quiet)
-                       opt_silent=:
-func_append preserve_args " $opt"
-        opt_verbose=false
-                       ;;
-      --verbose|-v)
-                       opt_verbose=:
-func_append preserve_args " $opt"
-opt_silent=false
-                       ;;
-      --tag)
-                       test $# = 0 && func_missing_arg $opt && break
-                       optarg="$1"
-                       opt_tag="$optarg"
-func_append preserve_args " $opt $optarg"
-func_enable_tag "$optarg"
-                       shift
-                       ;;
-
-      -\?|-h)          func_usage                              ;;
-      --help)          func_help                               ;;
-      --version)       func_version                            ;;
-
-      # Separate optargs to long options:
-      --*=*)
-                       func_split_long_opt "$opt"
-                       set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
-                       shift
-                       ;;
-
-      # Separate non-argument short options:
-      -\?*|-h*|-n*|-v*)
-                       func_split_short_opt "$opt"
-                       set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
-                       shift
-                       ;;
-
-      --)              break                                   ;;
-      -*)              func_fatal_help "unrecognized option \`$opt'" ;;
-      *)               set dummy "$opt" ${1+"$@"};     shift; break  ;;
-    esac
-  done
+    $debug_cmd
 
-  # Validate options:
+    # Perform our own loop to consume as many options as possible in
+    # each iteration.
+    while test $# -gt 0; do
+      _G_opt=$1
+      shift
+      case $_G_opt in
+        --dry-run|--dryrun|-n)
+                        opt_dry_run=:
+                        ;;
+
+        --config)       func_config ;;
+
+        --dlopen|-dlopen)
+                        opt_dlopen="${opt_dlopen+$opt_dlopen
+}$1"
+                        shift
+                        ;;
+
+        --preserve-dup-deps)
+                        opt_preserve_dup_deps=: ;;
+
+        --features)     func_features ;;
+
+        --finish)       set dummy --mode finish ${1+"$@"}; shift ;;
+
+        --help)         opt_help=: ;;
+
+        --help-all)     opt_help=': help-all' ;;
+
+        --mode)         test $# = 0 && func_missing_arg $_G_opt && break
+                        opt_mode=$1
+                        case $1 in
+                          # Valid mode arguments:
+                          clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+                          # Catch anything else as an error
+                          *) func_error "invalid argument for $_G_opt"
+                             exit_cmd=exit
+                             break
+                             ;;
+                        esac
+                        shift
+                        ;;
+
+        --no-silent|--no-quiet)
+                        opt_quiet=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --no-warnings|--no-warning|--no-warn)
+                        opt_warning=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --no-verbose)
+                        opt_verbose=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --silent|--quiet)
+                        opt_quiet=:
+                        opt_verbose=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --tag)          test $# = 0 && func_missing_arg $_G_opt && break
+                        opt_tag=$1
+                        func_append preserve_args " $_G_opt $1"
+                        func_enable_tag "$1"
+                        shift
+                        ;;
+
+        --verbose|-v)   opt_quiet=false
+                        opt_verbose=:
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+       # An option not handled by this hook function:
+        *)             set dummy "$_G_opt" ${1+"$@"};  shift; break  ;;
+      esac
+    done
 
-  # save first non-option argument
-  if test "$#" -gt 0; then
-    nonopt="$opt"
-    shift
-  fi
 
-  # preserve --debug
-  test "$opt_debug" = : || func_append preserve_args " --debug"
+    # save modified positional parameters for caller
+    func_quote_for_eval ${1+"$@"}
+    libtool_parse_options_result=$func_quote_for_eval_result
+}
+func_add_hook func_parse_options libtool_parse_options
 
-  case $host in
-    *cygwin* | *mingw* | *pw32* | *cegcc*)
-      # don't eliminate duplications in $postdeps and $predeps
-      opt_duplicate_compiler_generated_deps=:
-      ;;
-    *)
-      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
-      ;;
-  esac
 
-  $opt_help || {
-    # Sanity checks first:
-    func_check_version_match
 
-    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-      func_fatal_configuration "not configured to build any kind of library"
+# libtool_validate_options [ARG]...
+# ---------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+libtool_validate_options ()
+{
+    # save first non-option argument
+    if test 0 -lt $#; then
+      nonopt=$1
+      shift
     fi
 
-    # Darwin sucks
-    eval std_shrext=\"$shrext_cmds\"
+    # preserve --debug
+    test : = "$debug_cmd" || func_append preserve_args " --debug"
 
-    # Only execute mode is allowed to have -dlopen flags.
-    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
-      func_error "unrecognized option \`-dlopen'"
-      $ECHO "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
+    case $host in
+      # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
+      # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
+      *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
+        # don't eliminate duplications in $postdeps and $predeps
+        opt_duplicate_compiler_generated_deps=:
+        ;;
+      *)
+        opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
+        ;;
+    esac
 
-    # Change the help message to a mode-specific one.
-    generic_help="$help"
-    help="Try \`$progname --help --mode=$opt_mode' for more information."
-  }
+    $opt_help || {
+      # Sanity checks first:
+      func_check_version_match
+
+      test yes != "$build_libtool_libs" \
+        && test yes != "$build_old_libs" \
+        && func_fatal_configuration "not configured to build any kind of library"
+
+      # Darwin sucks
+      eval std_shrext=\"$shrext_cmds\"
+
+      # Only execute mode is allowed to have -dlopen flags.
+      if test -n "$opt_dlopen" && test execute != "$opt_mode"; then
+        func_error "unrecognized option '-dlopen'"
+        $ECHO "$help" 1>&2
+        exit $EXIT_FAILURE
+      fi
 
+      # Change the help message to a mode-specific one.
+      generic_help=$help
+      help="Try '$progname --help --mode=$opt_mode' for more information."
+    }
 
-  # Bail if the options were screwed
-  $exit_cmd $EXIT_FAILURE
+    # Pass back the unparsed argument list
+    func_quote_for_eval ${1+"$@"}
+    libtool_validate_options_result=$func_quote_for_eval_result
 }
+func_add_hook func_validate_options libtool_validate_options
 
 
+# Process options as early as possible so that --help and --version
+# can return quickly.
+func_options ${1+"$@"}
+eval set dummy "$func_options_result"; shift
+
 
 
 ## ----------- ##
 ##    Main.    ##
 ## ----------- ##
 
+magic='%%%MAGIC variable%%%'
+magic_exe='%%%MAGIC EXE variable%%%'
+
+# Global variables.
+extracted_archives=
+extracted_serial=0
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
+# func_generated_by_libtool
+# True iff stdin has been generated by Libtool. This function is only
+# a basic sanity check; it will hardly flush out determined imposters.
+func_generated_by_libtool_p ()
+{
+  $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
 # func_lalib_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
+# True iff FILE is a libtool '.la' library or '.lo' object file.
 # This function is only a basic sanity check; it will hardly flush out
 # determined imposters.
 func_lalib_p ()
 {
     test -f "$1" &&
-      $SED -e 4q "$1" 2>/dev/null \
-        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+      $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p
 }
 
 # func_lalib_unsafe_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
+# True iff FILE is a libtool '.la' library or '.lo' object file.
 # This function implements the same check as func_lalib_p without
 # resorting to external programs.  To this end, it redirects stdin and
 # closes it afterwards, without saving the original file descriptor.
 # As a safety measure, use it only where a negative result would be
-# fatal anyway.  Works if `file' does not exist.
+# fatal anyway.  Works if 'file' does not exist.
 func_lalib_unsafe_p ()
 {
     lalib_p=no
@@ -1249,13 +2521,13 @@ func_lalib_unsafe_p ()
        for lalib_p_l in 1 2 3 4
        do
            read lalib_p_line
-           case "$lalib_p_line" in
+           case $lalib_p_line in
                \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
            esac
        done
        exec 0<&5 5<&-
     fi
-    test "$lalib_p" = yes
+    test yes = "$lalib_p"
 }
 
 # func_ltwrapper_script_p file
@@ -1264,7 +2536,8 @@ func_lalib_unsafe_p ()
 # determined imposters.
 func_ltwrapper_script_p ()
 {
-    func_lalib_p "$1"
+    test -f "$1" &&
+      $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p
 }
 
 # func_ltwrapper_executable_p file
@@ -1289,7 +2562,7 @@ func_ltwrapper_scriptname ()
 {
     func_dirname_and_basename "$1" "" "."
     func_stripname '' '.exe' "$func_basename_result"
-    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+    func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper
 }
 
 # func_ltwrapper_p file
@@ -1308,11 +2581,13 @@ func_ltwrapper_p ()
 # FAIL_CMD may read-access the current command in variable CMD!
 func_execute_cmds ()
 {
-    $opt_debug
+    $debug_cmd
+
     save_ifs=$IFS; IFS='~'
     for cmd in $1; do
-      IFS=$save_ifs
+      IFS=$sp$nl
       eval cmd=\"$cmd\"
+      IFS=$save_ifs
       func_show_eval "$cmd" "${2-:}"
     done
     IFS=$save_ifs
@@ -1324,10 +2599,11 @@ func_execute_cmds ()
 # Note that it is not necessary on cygwin/mingw to append a dot to
 # FILE even if both FILE and FILE.exe exist: automatic-append-.exe
 # behavior happens only for exec(3), not for open(2)!  Also, sourcing
-# `FILE.' does not work on cygwin managed mounts.
+# 'FILE.' does not work on cygwin managed mounts.
 func_source ()
 {
-    $opt_debug
+    $debug_cmd
+
     case $1 in
     */* | *\\*)        . "$1" ;;
     *)         . "./$1" ;;
@@ -1354,10 +2630,10 @@ func_resolve_sysroot ()
 # store the result into func_replace_sysroot_result.
 func_replace_sysroot ()
 {
-  case "$lt_sysroot:$1" in
+  case $lt_sysroot:$1 in
   ?*:"$lt_sysroot"*)
     func_stripname "$lt_sysroot" '' "$1"
-    func_replace_sysroot_result="=$func_stripname_result"
+    func_replace_sysroot_result='='$func_stripname_result
     ;;
   *)
     # Including no sysroot.
@@ -1374,7 +2650,8 @@ func_replace_sysroot ()
 # arg is usually of the form 'gcc ...'
 func_infer_tag ()
 {
-    $opt_debug
+    $debug_cmd
+
     if test -n "$available_tags" && test -z "$tagname"; then
       CC_quoted=
       for arg in $CC; do
@@ -1393,7 +2670,7 @@ func_infer_tag ()
        for z in $available_tags; do
          if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
            # Evaluate the configuration.
-           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+           eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
            CC_quoted=
            for arg in $CC; do
              # Double-quote args containing other shell metacharacters.
@@ -1418,7 +2695,7 @@ func_infer_tag ()
        # line option must be used.
        if test -z "$tagname"; then
          func_echo "unable to infer tagged configuration"
-         func_fatal_error "specify a tag with \`--tag'"
+         func_fatal_error "specify a tag with '--tag'"
 #      else
 #        func_verbose "using $tagname tagged configuration"
        fi
@@ -1434,15 +2711,15 @@ func_infer_tag ()
 # but don't create it if we're doing a dry run.
 func_write_libtool_object ()
 {
-    write_libobj=${1}
-    if test "$build_libtool_libs" = yes; then
-      write_lobj=\'${2}\'
+    write_libobj=$1
+    if test yes = "$build_libtool_libs"; then
+      write_lobj=\'$2\'
     else
       write_lobj=none
     fi
 
-    if test "$build_old_libs" = yes; then
-      write_oldobj=\'${3}\'
+    if test yes = "$build_old_libs"; then
+      write_oldobj=\'$3\'
     else
       write_oldobj=none
     fi
@@ -1450,7 +2727,7 @@ func_write_libtool_object ()
     $opt_dry_run || {
       cat >${write_libobj}T <<EOF
 # $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 #
 # Please DO NOT delete this file!
 # It is necessary for linking the library.
@@ -1462,7 +2739,7 @@ pic_object=$write_lobj
 non_pic_object=$write_oldobj
 
 EOF
-      $MV "${write_libobj}T" "${write_libobj}"
+      $MV "${write_libobj}T" "$write_libobj"
     }
 }
 
@@ -1482,8 +2759,9 @@ EOF
 # be empty on error (or when ARG is empty)
 func_convert_core_file_wine_to_w32 ()
 {
-  $opt_debug
-  func_convert_core_file_wine_to_w32_result="$1"
+  $debug_cmd
+
+  func_convert_core_file_wine_to_w32_result=$1
   if test -n "$1"; then
     # Unfortunately, winepath does not exit with a non-zero error code, so we
     # are forced to check the contents of stdout. On the other hand, if the
@@ -1491,9 +2769,9 @@ func_convert_core_file_wine_to_w32 ()
     # *an error message* to stdout. So we must check for both error code of
     # zero AND non-empty stdout, which explains the odd construction:
     func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
-    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
+    if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then
       func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
-        $SED -e "$lt_sed_naive_backslashify"`
+        $SED -e "$sed_naive_backslashify"`
     else
       func_convert_core_file_wine_to_w32_result=
     fi
@@ -1514,18 +2792,19 @@ func_convert_core_file_wine_to_w32 ()
 # are convertible, then the result may be empty.
 func_convert_core_path_wine_to_w32 ()
 {
-  $opt_debug
+  $debug_cmd
+
   # unfortunately, winepath doesn't convert paths, only file names
-  func_convert_core_path_wine_to_w32_result=""
+  func_convert_core_path_wine_to_w32_result=
   if test -n "$1"; then
     oldIFS=$IFS
     IFS=:
     for func_convert_core_path_wine_to_w32_f in $1; do
       IFS=$oldIFS
       func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
-      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
+      if test -n "$func_convert_core_file_wine_to_w32_result"; then
         if test -z "$func_convert_core_path_wine_to_w32_result"; then
-          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
+          func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result
         else
           func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
         fi
@@ -1554,7 +2833,8 @@ func_convert_core_path_wine_to_w32 ()
 # environment variable; do not put it in $PATH.
 func_cygpath ()
 {
-  $opt_debug
+  $debug_cmd
+
   if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
     func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
     if test "$?" -ne 0; then
@@ -1563,7 +2843,7 @@ func_cygpath ()
     fi
   else
     func_cygpath_result=
-    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
+    func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'"
   fi
 }
 #end: func_cygpath
@@ -1574,10 +2854,11 @@ func_cygpath ()
 # result in func_convert_core_msys_to_w32_result.
 func_convert_core_msys_to_w32 ()
 {
-  $opt_debug
+  $debug_cmd
+
   # awkward: cmd appends spaces to result
   func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
-    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+    $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
 }
 #end: func_convert_core_msys_to_w32
 
@@ -1588,13 +2869,14 @@ func_convert_core_msys_to_w32 ()
 # func_to_host_file_result to ARG1).
 func_convert_file_check ()
 {
-  $opt_debug
-  if test -z "$2" && test -n "$1" ; then
+  $debug_cmd
+
+  if test -z "$2" && test -n "$1"; then
     func_error "Could not determine host file name corresponding to"
-    func_error "  \`$1'"
+    func_error "  '$1'"
     func_error "Continuing, but uninstalled executables may not work."
     # Fallback:
-    func_to_host_file_result="$1"
+    func_to_host_file_result=$1
   fi
 }
 # end func_convert_file_check
@@ -1606,10 +2888,11 @@ func_convert_file_check ()
 # func_to_host_file_result to a simplistic fallback value (see below).
 func_convert_path_check ()
 {
-  $opt_debug
+  $debug_cmd
+
   if test -z "$4" && test -n "$3"; then
     func_error "Could not determine the host path corresponding to"
-    func_error "  \`$3'"
+    func_error "  '$3'"
     func_error "Continuing, but uninstalled executables may not work."
     # Fallback.  This is a deliberately simplistic "conversion" and
     # should not be "improved".  See libtool.info.
@@ -1618,7 +2901,7 @@ func_convert_path_check ()
       func_to_host_path_result=`echo "$3" |
         $SED -e "$lt_replace_pathsep_chars"`
     else
-      func_to_host_path_result="$3"
+      func_to_host_path_result=$3
     fi
   fi
 }
@@ -1630,9 +2913,10 @@ func_convert_path_check ()
 # and appending REPL if ORIG matches BACKPAT.
 func_convert_path_front_back_pathsep ()
 {
-  $opt_debug
+  $debug_cmd
+
   case $4 in
-  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
+  $1 ) func_to_host_path_result=$3$func_to_host_path_result
     ;;
   esac
   case $4 in
@@ -1646,7 +2930,7 @@ func_convert_path_front_back_pathsep ()
 ##################################################
 # $build to $host FILE NAME CONVERSION FUNCTIONS #
 ##################################################
-# invoked via `$to_host_file_cmd ARG'
+# invoked via '$to_host_file_cmd ARG'
 #
 # In each case, ARG is the path to be converted from $build to $host format.
 # Result will be available in $func_to_host_file_result.
@@ -1657,7 +2941,8 @@ func_convert_path_front_back_pathsep ()
 # in func_to_host_file_result.
 func_to_host_file ()
 {
-  $opt_debug
+  $debug_cmd
+
   $to_host_file_cmd "$1"
 }
 # end func_to_host_file
@@ -1669,7 +2954,8 @@ func_to_host_file ()
 # in (the comma separated) LAZY, no conversion takes place.
 func_to_tool_file ()
 {
-  $opt_debug
+  $debug_cmd
+
   case ,$2, in
     *,"$to_tool_file_cmd",*)
       func_to_tool_file_result=$1
@@ -1687,7 +2973,7 @@ func_to_tool_file ()
 # Copy ARG to func_to_host_file_result.
 func_convert_file_noop ()
 {
-  func_to_host_file_result="$1"
+  func_to_host_file_result=$1
 }
 # end func_convert_file_noop
 
@@ -1698,11 +2984,12 @@ func_convert_file_noop ()
 # func_to_host_file_result.
 func_convert_file_msys_to_w32 ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     func_convert_core_msys_to_w32 "$1"
-    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
+    func_to_host_file_result=$func_convert_core_msys_to_w32_result
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
 }
@@ -1714,8 +3001,9 @@ func_convert_file_msys_to_w32 ()
 # func_to_host_file_result.
 func_convert_file_cygwin_to_w32 ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
     # LT_CYGPATH in this case.
@@ -1731,11 +3019,12 @@ func_convert_file_cygwin_to_w32 ()
 # and a working winepath. Returns result in func_to_host_file_result.
 func_convert_file_nix_to_w32 ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     func_convert_core_file_wine_to_w32 "$1"
-    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
+    func_to_host_file_result=$func_convert_core_file_wine_to_w32_result
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
 }
@@ -1747,12 +3036,13 @@ func_convert_file_nix_to_w32 ()
 # Returns result in func_to_host_file_result.
 func_convert_file_msys_to_cygwin ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     func_convert_core_msys_to_w32 "$1"
     func_cygpath -u "$func_convert_core_msys_to_w32_result"
-    func_to_host_file_result="$func_cygpath_result"
+    func_to_host_file_result=$func_cygpath_result
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
 }
@@ -1765,13 +3055,14 @@ func_convert_file_msys_to_cygwin ()
 # in func_to_host_file_result.
 func_convert_file_nix_to_cygwin ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
     func_convert_core_file_wine_to_w32 "$1"
     func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
-    func_to_host_file_result="$func_cygpath_result"
+    func_to_host_file_result=$func_cygpath_result
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
 }
@@ -1781,7 +3072,7 @@ func_convert_file_nix_to_cygwin ()
 #############################################
 # $build to $host PATH CONVERSION FUNCTIONS #
 #############################################
-# invoked via `$to_host_path_cmd ARG'
+# invoked via '$to_host_path_cmd ARG'
 #
 # In each case, ARG is the path to be converted from $build to $host format.
 # The result will be available in $func_to_host_path_result.
@@ -1805,10 +3096,11 @@ func_convert_file_nix_to_cygwin ()
 to_host_path_cmd=
 func_init_to_host_path_cmd ()
 {
-  $opt_debug
+  $debug_cmd
+
   if test -z "$to_host_path_cmd"; then
     func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
-    to_host_path_cmd="func_convert_path_${func_stripname_result}"
+    to_host_path_cmd=func_convert_path_$func_stripname_result
   fi
 }
 
@@ -1818,7 +3110,8 @@ func_init_to_host_path_cmd ()
 # in func_to_host_path_result.
 func_to_host_path ()
 {
-  $opt_debug
+  $debug_cmd
+
   func_init_to_host_path_cmd
   $to_host_path_cmd "$1"
 }
@@ -1829,7 +3122,7 @@ func_to_host_path ()
 # Copy ARG to func_to_host_path_result.
 func_convert_path_noop ()
 {
-  func_to_host_path_result="$1"
+  func_to_host_path_result=$1
 }
 # end func_convert_path_noop
 
@@ -1840,8 +3133,9 @@ func_convert_path_noop ()
 # func_to_host_path_result.
 func_convert_path_msys_to_w32 ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # Remove leading and trailing path separator characters from ARG.  MSYS
     # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
@@ -1849,7 +3143,7 @@ func_convert_path_msys_to_w32 ()
     func_stripname : : "$1"
     func_to_host_path_tmp1=$func_stripname_result
     func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
+    func_to_host_path_result=$func_convert_core_msys_to_w32_result
     func_convert_path_check : ";" \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
     func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
@@ -1863,8 +3157,9 @@ func_convert_path_msys_to_w32 ()
 # func_to_host_file_result.
 func_convert_path_cygwin_to_w32 ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # See func_convert_path_msys_to_w32:
     func_stripname : : "$1"
@@ -1883,14 +3178,15 @@ func_convert_path_cygwin_to_w32 ()
 # a working winepath.  Returns result in func_to_host_file_result.
 func_convert_path_nix_to_w32 ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # See func_convert_path_msys_to_w32:
     func_stripname : : "$1"
     func_to_host_path_tmp1=$func_stripname_result
     func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
-    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
+    func_to_host_path_result=$func_convert_core_path_wine_to_w32_result
     func_convert_path_check : ";" \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
     func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
@@ -1904,15 +3200,16 @@ func_convert_path_nix_to_w32 ()
 # Returns result in func_to_host_file_result.
 func_convert_path_msys_to_cygwin ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # See func_convert_path_msys_to_w32:
     func_stripname : : "$1"
     func_to_host_path_tmp1=$func_stripname_result
     func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
     func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
-    func_to_host_path_result="$func_cygpath_result"
+    func_to_host_path_result=$func_cygpath_result
     func_convert_path_check : : \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
     func_convert_path_front_back_pathsep ":*" "*:" : "$1"
@@ -1927,8 +3224,9 @@ func_convert_path_msys_to_cygwin ()
 # func_to_host_file_result.
 func_convert_path_nix_to_cygwin ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # Remove leading and trailing path separator characters from
     # ARG. msys behavior is inconsistent here, cygpath turns them
@@ -1937,7 +3235,7 @@ func_convert_path_nix_to_cygwin ()
     func_to_host_path_tmp1=$func_stripname_result
     func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
     func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
-    func_to_host_path_result="$func_cygpath_result"
+    func_to_host_path_result=$func_cygpath_result
     func_convert_path_check : : \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
     func_convert_path_front_back_pathsep ":*" "*:" : "$1"
@@ -1946,13 +3244,31 @@ func_convert_path_nix_to_cygwin ()
 # end func_convert_path_nix_to_cygwin
 
 
+# func_dll_def_p FILE
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with _LT_DLL_DEF_P in libtool.m4
+func_dll_def_p ()
+{
+  $debug_cmd
+
+  func_dll_def_p_tmp=`$SED -n \
+    -e 's/^[    ]*//' \
+    -e '/^\(;.*\)*$/d' \
+    -e 's/^\(EXPORTS\|LIBRARY\)\([      ].*\)*$/DEF/p' \
+    -e q \
+    "$1"`
+  test DEF = "$func_dll_def_p_tmp"
+}
+
+
 # func_mode_compile arg...
 func_mode_compile ()
 {
-    $opt_debug
+    $debug_cmd
+
     # Get the compilation command and the source file.
     base_compile=
-    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    srcfile=$nonopt  #  always keep a non-empty value in "srcfile"
     suppress_opt=yes
     suppress_output=
     arg_mode=normal
@@ -1965,12 +3281,12 @@ func_mode_compile ()
       case $arg_mode in
       arg  )
        # do not "continue".  Instead, add this to base_compile
-       lastarg="$arg"
+       lastarg=$arg
        arg_mode=normal
        ;;
 
       target )
-       libobj="$arg"
+       libobj=$arg
        arg_mode=normal
        continue
        ;;
@@ -1980,7 +3296,7 @@ func_mode_compile ()
        case $arg in
        -o)
          test -n "$libobj" && \
-           func_fatal_error "you cannot specify \`-o' more than once"
+           func_fatal_error "you cannot specify '-o' more than once"
          arg_mode=target
          continue
          ;;
@@ -2009,12 +3325,12 @@ func_mode_compile ()
          func_stripname '-Wc,' '' "$arg"
          args=$func_stripname_result
          lastarg=
-         save_ifs="$IFS"; IFS=','
+         save_ifs=$IFS; IFS=,
          for arg in $args; do
-           IFS="$save_ifs"
+           IFS=$save_ifs
            func_append_quoted lastarg "$arg"
          done
-         IFS="$save_ifs"
+         IFS=$save_ifs
          func_stripname ' ' '' "$lastarg"
          lastarg=$func_stripname_result
 
@@ -2027,8 +3343,8 @@ func_mode_compile ()
          # Accept the current argument as the source file.
          # The previous "srcfile" becomes the current argument.
          #
-         lastarg="$srcfile"
-         srcfile="$arg"
+         lastarg=$srcfile
+         srcfile=$arg
          ;;
        esac  #  case $arg
        ;;
@@ -2043,13 +3359,13 @@ func_mode_compile ()
       func_fatal_error "you must specify an argument for -Xcompile"
       ;;
     target)
-      func_fatal_error "you must specify a target with \`-o'"
+      func_fatal_error "you must specify a target with '-o'"
       ;;
     *)
       # Get the name of the library object.
       test -z "$libobj" && {
        func_basename "$srcfile"
-       libobj="$func_basename_result"
+       libobj=$func_basename_result
       }
       ;;
     esac
@@ -2069,7 +3385,7 @@ func_mode_compile ()
     case $libobj in
     *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
     *)
-      func_fatal_error "cannot determine name of library object from \`$libobj'"
+      func_fatal_error "cannot determine name of library object from '$libobj'"
       ;;
     esac
 
@@ -2078,8 +3394,8 @@ func_mode_compile ()
     for arg in $later; do
       case $arg in
       -shared)
-       test "$build_libtool_libs" != yes && \
-         func_fatal_configuration "can not build a shared library"
+       test yes = "$build_libtool_libs" \
+         || func_fatal_configuration "cannot build a shared library"
        build_old_libs=no
        continue
        ;;
@@ -2105,17 +3421,17 @@ func_mode_compile ()
     func_quote_for_eval "$libobj"
     test "X$libobj" != "X$func_quote_for_eval_result" \
       && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'   &()|`$[]' \
-      && func_warning "libobj name \`$libobj' may not contain shell special characters."
+      && func_warning "libobj name '$libobj' may not contain shell special characters."
     func_dirname_and_basename "$obj" "/" ""
-    objname="$func_basename_result"
-    xdir="$func_dirname_result"
-    lobj=${xdir}$objdir/$objname
+    objname=$func_basename_result
+    xdir=$func_dirname_result
+    lobj=$xdir$objdir/$objname
 
     test -z "$base_compile" && \
       func_fatal_help "you must specify a compilation command"
 
     # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
+    if test yes = "$build_old_libs"; then
       removelist="$obj $lobj $libobj ${libobj}T"
     else
       removelist="$lobj $libobj ${libobj}T"
@@ -2127,16 +3443,16 @@ func_mode_compile ()
       pic_mode=default
       ;;
     esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+    if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then
       # non-PIC code in shared libraries is not supported
       pic_mode=default
     fi
 
     # Calculate the filename of the output object if compiler does
     # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
+    if test no = "$compiler_c_o"; then
+      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext
+      lockfile=$output_obj.lock
     else
       output_obj=
       need_locks=no
@@ -2145,12 +3461,12 @@ func_mode_compile ()
 
     # Lock this critical section if it is needed
     # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
+    if test yes = "$need_locks"; then
       until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
        func_echo "Waiting for $lockfile to be removed"
        sleep 2
       done
-    elif test "$need_locks" = warn; then
+    elif test warn = "$need_locks"; then
       if test -f "$lockfile"; then
        $ECHO "\
 *** ERROR, $lockfile exists and contains:
@@ -2158,7 +3474,7 @@ func_mode_compile ()
 
 This indicates that another process is trying to use the same
 temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
+your compiler does not support '-c' and '-o' together.  If you
 repeat this compilation, it may succeed, by chance, but you had better
 avoid parallel builds (make -j) in this platform, or get a better
 compiler."
@@ -2180,11 +3496,11 @@ compiler."
     qsrcfile=$func_quote_for_eval_result
 
     # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
+    if test yes = "$build_libtool_libs"; then
       # Without this assignment, base_compile gets emptied.
       fbsd_hideous_sh_bug=$base_compile
 
-      if test "$pic_mode" != no; then
+      if test no != "$pic_mode"; then
        command="$base_compile $qsrcfile $pic_flag"
       else
        # Don't build PIC code
@@ -2201,7 +3517,7 @@ compiler."
       func_show_eval_locale "$command" \
           'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
 
-      if test "$need_locks" = warn &&
+      if test warn = "$need_locks" &&
         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
        $ECHO "\
 *** ERROR, $lockfile contains:
@@ -2212,7 +3528,7 @@ $srcfile
 
 This indicates that another process is trying to use the same
 temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
+your compiler does not support '-c' and '-o' together.  If you
 repeat this compilation, it may succeed, by chance, but you had better
 avoid parallel builds (make -j) in this platform, or get a better
 compiler."
@@ -2228,20 +3544,20 @@ compiler."
       fi
 
       # Allow error messages only from the first compilation.
-      if test "$suppress_opt" = yes; then
+      if test yes = "$suppress_opt"; then
        suppress_output=' >/dev/null 2>&1'
       fi
     fi
 
     # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      if test "$pic_mode" != yes; then
+    if test yes = "$build_old_libs"; then
+      if test yes != "$pic_mode"; then
        # Don't build PIC code
        command="$base_compile $qsrcfile$pie_flag"
       else
        command="$base_compile $qsrcfile $pic_flag"
       fi
-      if test "$compiler_c_o" = yes; then
+      if test yes = "$compiler_c_o"; then
        func_append command " -o $obj"
       fi
 
@@ -2250,7 +3566,7 @@ compiler."
       func_show_eval_locale "$command" \
         '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 
-      if test "$need_locks" = warn &&
+      if test warn = "$need_locks" &&
         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
        $ECHO "\
 *** ERROR, $lockfile contains:
@@ -2261,7 +3577,7 @@ $srcfile
 
 This indicates that another process is trying to use the same
 temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
+your compiler does not support '-c' and '-o' together.  If you
 repeat this compilation, it may succeed, by chance, but you had better
 avoid parallel builds (make -j) in this platform, or get a better
 compiler."
@@ -2281,7 +3597,7 @@ compiler."
       func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
 
       # Unlock the critical section if it was locked
-      if test "$need_locks" != no; then
+      if test no != "$need_locks"; then
        removelist=$lockfile
         $RM "$lockfile"
       fi
@@ -2291,7 +3607,7 @@ compiler."
 }
 
 $opt_help || {
-  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
+  test compile = "$opt_mode" && func_mode_compile ${1+"$@"}
 }
 
 func_mode_help ()
@@ -2311,7 +3627,7 @@ func_mode_help ()
 Remove files from the build directory.
 
 RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
 to RM.
 
 If FILE is a libtool library, object or program, all the files associated
@@ -2330,16 +3646,16 @@ This mode accepts the following additional options:
   -no-suppress      do not suppress compiler output for multiple passes
   -prefer-pic       try to build PIC objects only
   -prefer-non-pic   try to build non-PIC objects only
-  -shared           do not build a \`.o' file suitable for static linking
-  -static           only build a \`.o' file suitable for static linking
+  -shared           do not build a '.o' file suitable for static linking
+  -static           only build a '.o' file suitable for static linking
   -Wc,FLAG          pass FLAG directly to the compiler
 
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+COMPILE-COMMAND is a command to be used in creating a 'standard' object file
 from the given SOURCEFILE.
 
 The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
+SOURCEFILE, then substituting the C source code suffix '.c' with the
+library object suffix, '.lo'."
         ;;
 
       execute)
@@ -2352,7 +3668,7 @@ This mode accepts the following additional options:
 
   -dlopen FILE      add the directory containing FILE to the library path
 
-This mode sets the library path environment variable according to \`-dlopen'
+This mode sets the library path environment variable according to '-dlopen'
 flags.
 
 If any of the ARGS are libtool executable wrappers, then they are translated
@@ -2371,7 +3687,7 @@ Complete the installation of libtool libraries.
 Each LIBDIR is a directory that contains libtool libraries.
 
 The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
+the '--dry-run' option if you just want to see what would be executed."
         ;;
 
       install)
@@ -2381,7 +3697,7 @@ the \`--dry-run' option if you just want to see what would be executed."
 Install executables or libraries.
 
 INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
+either the 'install' or 'cp' program.
 
 The following components of INSTALL-COMMAND are treated specially:
 
@@ -2407,7 +3723,7 @@ The following components of LINK-COMMAND are treated specially:
   -avoid-version    do not add a version suffix if possible
   -bindir BINDIR    specify path to binaries directory (for systems where
                     libraries must be found in the PATH setting at runtime)
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlopen FILE      '-dlpreopen' FILE if it cannot be dlopened at runtime
   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
   -export-symbols SYMFILE
@@ -2421,7 +3737,8 @@ The following components of LINK-COMMAND are treated specially:
   -no-install       link a not-installable executable
   -no-undefined     declare that a library does not refer to external symbols
   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -objectlist FILE  use a list of object files found in FILE to specify objects
+  -os2dllname NAME  force a short DLL name on OS/2 (no effect on other OSes)
   -precious-files-regex REGEX
                     don't remove output files matching REGEX
   -release RELEASE  specify package release information
@@ -2441,20 +3758,20 @@ The following components of LINK-COMMAND are treated specially:
   -Xlinker FLAG     pass linker-specific FLAG directly to the linker
   -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
 
-All other options (arguments beginning with \`-') are ignored.
+All other options (arguments beginning with '-') are ignored.
 
-Every other argument is treated as a filename.  Files ending in \`.la' are
+Every other argument is treated as a filename.  Files ending in '.la' are
 treated as uninstalled libtool libraries, other files are standard or library
 object files.
 
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
+If the OUTPUT-FILE ends in '.la', then a libtool library is created,
+only library objects ('.lo' files) may be specified, and '-rpath' is
 required, except when creating a convenience library.
 
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
+If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created
+using 'ar' and 'ranlib', or on Windows using 'lib'.
 
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file
 is created, otherwise an executable program is created."
         ;;
 
@@ -2465,7 +3782,7 @@ is created, otherwise an executable program is created."
 Remove libraries from an installation directory.
 
 RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
 to RM.
 
 If FILE is a libtool library, all the files associated with it are deleted.
@@ -2473,17 +3790,17 @@ Otherwise, only FILE itself is deleted using RM."
         ;;
 
       *)
-        func_fatal_help "invalid operation mode \`$opt_mode'"
+        func_fatal_help "invalid operation mode '$opt_mode'"
         ;;
     esac
 
     echo
-    $ECHO "Try \`$progname --help' for more information about other modes."
+    $ECHO "Try '$progname --help' for more information about other modes."
 }
 
 # Now that we've collected a possible --mode arg, show help if necessary
 if $opt_help; then
-  if test "$opt_help" = :; then
+  if test : = "$opt_help"; then
     func_mode_help
   else
     {
@@ -2491,7 +3808,7 @@ if $opt_help; then
       for opt_mode in compile link execute install finish uninstall clean; do
        func_mode_help
       done
-    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
+    } | $SED -n '1p; 2,$s/^Usage:/  or: /p'
     {
       func_help noexit
       for opt_mode in compile link execute install finish uninstall clean; do
@@ -2499,7 +3816,7 @@ if $opt_help; then
        func_mode_help
       done
     } |
-    sed '1d
+    $SED '1d
       /^When reporting/,/^Report/{
        H
        d
@@ -2516,16 +3833,17 @@ fi
 # func_mode_execute arg...
 func_mode_execute ()
 {
-    $opt_debug
+    $debug_cmd
+
     # The first argument is the command name.
-    cmd="$nonopt"
+    cmd=$nonopt
     test -z "$cmd" && \
       func_fatal_help "you must specify a COMMAND"
 
     # Handle -dlopen flags immediately.
     for file in $opt_dlopen; do
       test -f "$file" \
-       || func_fatal_help "\`$file' is not a file"
+       || func_fatal_help "'$file' is not a file"
 
       dir=
       case $file in
@@ -2535,7 +3853,7 @@ func_mode_execute ()
 
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$file" \
-         || func_fatal_help "\`$lib' is not a valid libtool archive"
+         || func_fatal_help "'$lib' is not a valid libtool archive"
 
        # Read the libtool library.
        dlname=
@@ -2546,18 +3864,18 @@ func_mode_execute ()
        if test -z "$dlname"; then
          # Warn if it was a shared library.
          test -n "$library_names" && \
-           func_warning "\`$file' was not linked with \`-export-dynamic'"
+           func_warning "'$file' was not linked with '-export-dynamic'"
          continue
        fi
 
        func_dirname "$file" "" "."
-       dir="$func_dirname_result"
+       dir=$func_dirname_result
 
        if test -f "$dir/$objdir/$dlname"; then
          func_append dir "/$objdir"
        else
          if test ! -f "$dir/$dlname"; then
-           func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
+           func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'"
          fi
        fi
        ;;
@@ -2565,18 +3883,18 @@ func_mode_execute ()
       *.lo)
        # Just add the directory containing the .lo file.
        func_dirname "$file" "" "."
-       dir="$func_dirname_result"
+       dir=$func_dirname_result
        ;;
 
       *)
-       func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
+       func_warning "'-dlopen' is ignored for non-libtool libraries and objects"
        continue
        ;;
       esac
 
       # Get the absolute pathname.
       absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
+      test -n "$absdir" && dir=$absdir
 
       # Now add the directory to shlibpath_var.
       if eval "test -z \"\$$shlibpath_var\""; then
@@ -2588,7 +3906,7 @@ func_mode_execute ()
 
     # This variable tells wrapper scripts just to set shlibpath_var
     # rather than running their programs.
-    libtool_execute_magic="$magic"
+    libtool_execute_magic=$magic
 
     # Check if any of the arguments is a wrapper script.
     args=
@@ -2601,12 +3919,12 @@ func_mode_execute ()
        if func_ltwrapper_script_p "$file"; then
          func_source "$file"
          # Transform arg to wrapped name.
-         file="$progdir/$program"
+         file=$progdir/$program
        elif func_ltwrapper_executable_p "$file"; then
          func_ltwrapper_scriptname "$file"
          func_source "$func_ltwrapper_scriptname_result"
          # Transform arg to wrapped name.
-         file="$progdir/$program"
+         file=$progdir/$program
        fi
        ;;
       esac
@@ -2614,7 +3932,15 @@ func_mode_execute ()
       func_append_quoted args "$file"
     done
 
-    if test "X$opt_dry_run" = Xfalse; then
+    if $opt_dry_run; then
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+       eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+       echo "export $shlibpath_var"
+      fi
+      $ECHO "$cmd$args"
+      exit $EXIT_SUCCESS
+    else
       if test -n "$shlibpath_var"; then
        # Export the shlibpath_var.
        eval "export $shlibpath_var"
@@ -2631,25 +3957,18 @@ func_mode_execute ()
       done
 
       # Now prepare to actually exec the command.
-      exec_cmd="\$cmd$args"
-    else
-      # Display what would be done.
-      if test -n "$shlibpath_var"; then
-       eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
-       echo "export $shlibpath_var"
-      fi
-      $ECHO "$cmd$args"
-      exit $EXIT_SUCCESS
+      exec_cmd=\$cmd$args
     fi
 }
 
-test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
+test execute = "$opt_mode" && func_mode_execute ${1+"$@"}
 
 
 # func_mode_finish arg...
 func_mode_finish ()
 {
-    $opt_debug
+    $debug_cmd
+
     libs=
     libdirs=
     admincmds=
@@ -2663,11 +3982,11 @@ func_mode_finish ()
        if func_lalib_unsafe_p "$opt"; then
          func_append libs " $opt"
        else
-         func_warning "\`$opt' is not a valid libtool archive"
+         func_warning "'$opt' is not a valid libtool archive"
        fi
 
       else
-       func_fatal_error "invalid argument \`$opt'"
+       func_fatal_error "invalid argument '$opt'"
       fi
     done
 
@@ -2682,12 +4001,12 @@ func_mode_finish ()
       # Remove sysroot references
       if $opt_dry_run; then
         for lib in $libs; do
-          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
+          echo "removing references to $lt_sysroot and '=' prefixes from $lib"
         done
       else
         tmpdir=`func_mktempdir`
         for lib in $libs; do
-         sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+         $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
            > $tmpdir/tmp-la
          mv -f $tmpdir/tmp-la $lib
        done
@@ -2712,7 +4031,7 @@ func_mode_finish ()
     fi
 
     # Exit here if they wanted silent mode.
-    $opt_silent && exit $EXIT_SUCCESS
+    $opt_quiet && exit $EXIT_SUCCESS
 
     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
       echo "----------------------------------------------------------------------"
@@ -2723,27 +4042,27 @@ func_mode_finish ()
       echo
       echo "If you ever happen to want to link against installed libraries"
       echo "in a given directory, LIBDIR, you must either use libtool, and"
-      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+      echo "specify the full pathname of the library, or use the '-LLIBDIR'"
       echo "flag during linking and do at least one of the following:"
       if test -n "$shlibpath_var"; then
-       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+       echo "   - add LIBDIR to the '$shlibpath_var' environment variable"
        echo "     during execution"
       fi
       if test -n "$runpath_var"; then
-       echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+       echo "   - add LIBDIR to the '$runpath_var' environment variable"
        echo "     during linking"
       fi
       if test -n "$hardcode_libdir_flag_spec"; then
        libdir=LIBDIR
        eval flag=\"$hardcode_libdir_flag_spec\"
 
-       $ECHO "   - use the \`$flag' linker flag"
+       $ECHO "   - use the '$flag' linker flag"
       fi
       if test -n "$admincmds"; then
        $ECHO "   - have your system administrator run these commands:$admincmds"
       fi
       if test -f /etc/ld.so.conf; then
-       echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+       echo "   - have your system administrator add LIBDIR to '/etc/ld.so.conf'"
       fi
       echo
 
@@ -2762,18 +4081,20 @@ func_mode_finish ()
     exit $EXIT_SUCCESS
 }
 
-test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
+test finish = "$opt_mode" && func_mode_finish ${1+"$@"}
 
 
 # func_mode_install arg...
 func_mode_install ()
 {
-    $opt_debug
+    $debug_cmd
+
     # There may be an optional sh(1) argument at the beginning of
     # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+    if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" ||
        # Allow the use of GNU shtool's install command.
-       case $nonopt in *shtool*) :;; *) false;; esac; then
+       case $nonopt in *shtool*) :;; *) false;; esac
+    then
       # Aesthetically quote it.
       func_quote_for_eval "$nonopt"
       install_prog="$func_quote_for_eval_result "
@@ -2800,7 +4121,7 @@ func_mode_install ()
     opts=
     prev=
     install_type=
-    isdir=no
+    isdir=false
     stripme=
     no_mode=:
     for arg
@@ -2813,7 +4134,7 @@ func_mode_install ()
       fi
 
       case $arg in
-      -d) isdir=yes ;;
+      -d) isdir=: ;;
       -f)
        if $install_cp; then :; else
          prev=$arg
@@ -2831,7 +4152,7 @@ func_mode_install ()
       *)
        # If the previous option needed an argument, then skip it.
        if test -n "$prev"; then
-         if test "x$prev" = x-m && test -n "$install_override_mode"; then
+         if test X-m = "X$prev" && test -n "$install_override_mode"; then
            arg2=$install_override_mode
            no_mode=false
          fi
@@ -2856,7 +4177,7 @@ func_mode_install ()
       func_fatal_help "you must specify an install program"
 
     test -n "$prev" && \
-      func_fatal_help "the \`$prev' option requires an argument"
+      func_fatal_help "the '$prev' option requires an argument"
 
     if test -n "$install_override_mode" && $no_mode; then
       if $install_cp; then :; else
@@ -2878,19 +4199,19 @@ func_mode_install ()
     dest=$func_stripname_result
 
     # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
+    test -d "$dest" && isdir=:
+    if $isdir; then
+      destdir=$dest
       destname=
     else
       func_dirname_and_basename "$dest" "" "."
-      destdir="$func_dirname_result"
-      destname="$func_basename_result"
+      destdir=$func_dirname_result
+      destname=$func_basename_result
 
       # Not a directory, so check to see that there is only one file specified.
       set dummy $files; shift
       test "$#" -gt 1 && \
-       func_fatal_help "\`$dest' is not a directory"
+       func_fatal_help "'$dest' is not a directory"
     fi
     case $destdir in
     [\\/]* | [A-Za-z]:[\\/]*) ;;
@@ -2899,7 +4220,7 @@ func_mode_install ()
        case $file in
        *.lo) ;;
        *)
-         func_fatal_help "\`$destdir' must be an absolute directory name"
+         func_fatal_help "'$destdir' must be an absolute directory name"
          ;;
        esac
       done
@@ -2908,7 +4229,7 @@ func_mode_install ()
 
     # This variable tells wrapper scripts just to set variables rather
     # than running their programs.
-    libtool_install_magic="$magic"
+    libtool_install_magic=$magic
 
     staticlibs=
     future_libdirs=
@@ -2928,7 +4249,7 @@ func_mode_install ()
 
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$file" \
-         || func_fatal_help "\`$file' is not a valid libtool archive"
+         || func_fatal_help "'$file' is not a valid libtool archive"
 
        library_names=
        old_library=
@@ -2950,7 +4271,7 @@ func_mode_install ()
        fi
 
        func_dirname "$file" "/" ""
-       dir="$func_dirname_result"
+       dir=$func_dirname_result
        func_append dir "$objdir"
 
        if test -n "$relink_command"; then
@@ -2964,7 +4285,7 @@ func_mode_install ()
          # are installed into $libdir/../bin (currently, that works fine)
          # but it's something to keep an eye on.
          test "$inst_prefix_dir" = "$destdir" && \
-           func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
+           func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir"
 
          if test -n "$inst_prefix_dir"; then
            # Stick the inst_prefix_dir data into the link command.
@@ -2973,29 +4294,36 @@ func_mode_install ()
            relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
          fi
 
-         func_warning "relinking \`$file'"
+         func_warning "relinking '$file'"
          func_show_eval "$relink_command" \
-           'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
+           'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"'
        fi
 
        # See the names of the shared library.
        set dummy $library_names; shift
        if test -n "$1"; then
-         realname="$1"
+         realname=$1
          shift
 
-         srcname="$realname"
-         test -n "$relink_command" && srcname="$realname"T
+         srcname=$realname
+         test -n "$relink_command" && srcname=${realname}T
 
          # Install the shared library and build the symlinks.
          func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
              'exit $?'
-         tstripme="$stripme"
+         tstripme=$stripme
          case $host_os in
          cygwin* | mingw* | pw32* | cegcc*)
            case $realname in
            *.dll.a)
-             tstripme=""
+             tstripme=
+             ;;
+           esac
+           ;;
+         os2*)
+           case $realname in
+           *_dll.a)
+             tstripme=
              ;;
            esac
            ;;
@@ -3006,7 +4334,7 @@ func_mode_install ()
 
          if test "$#" -gt 0; then
            # Delete the old symlinks, and create new ones.
-           # Try `ln -sf' first, because the `ln' binary might depend on
+           # Try 'ln -sf' first, because the 'ln' binary might depend on
            # the symlink we replace!  Solaris /bin/ln does not understand -f,
            # so we also need to try rm && ln -s.
            for linkname
@@ -3017,14 +4345,14 @@ func_mode_install ()
          fi
 
          # Do each command in the postinstall commands.
-         lib="$destdir/$realname"
+         lib=$destdir/$realname
          func_execute_cmds "$postinstall_cmds" 'exit $?'
        fi
 
        # Install the pseudo-library for information purposes.
        func_basename "$file"
-       name="$func_basename_result"
-       instname="$dir/$name"i
+       name=$func_basename_result
+       instname=$dir/${name}i
        func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 
        # Maybe install the static library, too.
@@ -3036,11 +4364,11 @@ func_mode_install ()
 
        # Figure out destination file name, if it wasn't already specified.
        if test -n "$destname"; then
-         destfile="$destdir/$destname"
+         destfile=$destdir/$destname
        else
          func_basename "$file"
-         destfile="$func_basename_result"
-         destfile="$destdir/$destfile"
+         destfile=$func_basename_result
+         destfile=$destdir/$destfile
        fi
 
        # Deduce the name of the destination old-style object file.
@@ -3050,11 +4378,11 @@ func_mode_install ()
          staticdest=$func_lo2o_result
          ;;
        *.$objext)
-         staticdest="$destfile"
+         staticdest=$destfile
          destfile=
          ;;
        *)
-         func_fatal_help "cannot copy a libtool object to \`$destfile'"
+         func_fatal_help "cannot copy a libtool object to '$destfile'"
          ;;
        esac
 
@@ -3063,7 +4391,7 @@ func_mode_install ()
          func_show_eval "$install_prog $file $destfile" 'exit $?'
 
        # Install the old object if enabled.
-       if test "$build_old_libs" = yes; then
+       if test yes = "$build_old_libs"; then
          # Deduce the name of the old-style object file.
          func_lo2o "$file"
          staticobj=$func_lo2o_result
@@ -3075,23 +4403,23 @@ func_mode_install ()
       *)
        # Figure out destination file name, if it wasn't already specified.
        if test -n "$destname"; then
-         destfile="$destdir/$destname"
+         destfile=$destdir/$destname
        else
          func_basename "$file"
-         destfile="$func_basename_result"
-         destfile="$destdir/$destfile"
+         destfile=$func_basename_result
+         destfile=$destdir/$destfile
        fi
 
        # If the file is missing, and there is a .exe on the end, strip it
        # because it is most likely a libtool script we actually want to
        # install
-       stripped_ext=""
+       stripped_ext=
        case $file in
          *.exe)
            if test ! -f "$file"; then
              func_stripname '' '.exe' "$file"
              file=$func_stripname_result
-             stripped_ext=".exe"
+             stripped_ext=.exe
            fi
            ;;
        esac
@@ -3119,19 +4447,19 @@ func_mode_install ()
 
          # Check the variables that should have been set.
          test -z "$generated_by_libtool_version" && \
-           func_fatal_error "invalid libtool wrapper script \`$wrapper'"
+           func_fatal_error "invalid libtool wrapper script '$wrapper'"
 
-         finalize=yes
+         finalize=:
          for lib in $notinst_deplibs; do
            # Check to see that each library is installed.
            libdir=
            if test -f "$lib"; then
              func_source "$lib"
            fi
-           libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
+           libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'`
            if test -n "$libdir" && test ! -f "$libfile"; then
-             func_warning "\`$lib' has not been installed in \`$libdir'"
-             finalize=no
+             func_warning "'$lib' has not been installed in '$libdir'"
+             finalize=false
            fi
          done
 
@@ -3139,29 +4467,29 @@ func_mode_install ()
          func_source "$wrapper"
 
          outputname=
-         if test "$fast_install" = no && test -n "$relink_command"; then
+         if test no = "$fast_install" && test -n "$relink_command"; then
            $opt_dry_run || {
-             if test "$finalize" = yes; then
+             if $finalize; then
                tmpdir=`func_mktempdir`
                func_basename "$file$stripped_ext"
-               file="$func_basename_result"
-               outputname="$tmpdir/$file"
+               file=$func_basename_result
+               outputname=$tmpdir/$file
                # Replace the output file specification.
                relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
 
-               $opt_silent || {
+               $opt_quiet || {
                  func_quote_for_expand "$relink_command"
                  eval "func_echo $func_quote_for_expand_result"
                }
                if eval "$relink_command"; then :
                  else
-                 func_error "error: relink \`$file' with the above command before installing it"
+                 func_error "error: relink '$file' with the above command before installing it"
                  $opt_dry_run || ${RM}r "$tmpdir"
                  continue
                fi
-               file="$outputname"
+               file=$outputname
              else
-               func_warning "cannot relink \`$file'"
+               func_warning "cannot relink '$file'"
              fi
            }
          else
@@ -3198,10 +4526,10 @@ func_mode_install ()
 
     for file in $staticlibs; do
       func_basename "$file"
-      name="$func_basename_result"
+      name=$func_basename_result
 
       # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
+      oldlib=$destdir/$name
       func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
       tool_oldlib=$func_to_tool_file_result
 
@@ -3216,18 +4544,18 @@ func_mode_install ()
     done
 
     test -n "$future_libdirs" && \
-      func_warning "remember to run \`$progname --finish$future_libdirs'"
+      func_warning "remember to run '$progname --finish$future_libdirs'"
 
     if test -n "$current_libdirs"; then
       # Maybe just do a dry run.
       $opt_dry_run && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+      exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs'
     else
       exit $EXIT_SUCCESS
     fi
 }
 
-test "$opt_mode" = install && func_mode_install ${1+"$@"}
+test install = "$opt_mode" && func_mode_install ${1+"$@"}
 
 
 # func_generate_dlsyms outputname originator pic_p
@@ -3235,16 +4563,17 @@ test "$opt_mode" = install && func_mode_install ${1+"$@"}
 # a dlpreopen symbol table.
 func_generate_dlsyms ()
 {
-    $opt_debug
-    my_outputname="$1"
-    my_originator="$2"
-    my_pic_p="${3-no}"
-    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
+    $debug_cmd
+
+    my_outputname=$1
+    my_originator=$2
+    my_pic_p=${3-false}
+    my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'`
     my_dlsyms=
 
-    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+    if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
       if test -n "$NM" && test -n "$global_symbol_pipe"; then
-       my_dlsyms="${my_outputname}S.c"
+       my_dlsyms=${my_outputname}S.c
       else
        func_error "not configured to extract global symbols from dlpreopened files"
       fi
@@ -3255,7 +4584,7 @@ func_generate_dlsyms ()
       "") ;;
       *.c)
        # Discover the nlist of each of the dlfiles.
-       nlist="$output_objdir/${my_outputname}.nm"
+       nlist=$output_objdir/$my_outputname.nm
 
        func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
 
@@ -3263,34 +4592,36 @@ func_generate_dlsyms ()
        func_verbose "creating $output_objdir/$my_dlsyms"
 
        $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
+/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */
 
 #ifdef __cplusplus
 extern \"C\" {
 #endif
 
-#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
 #endif
 
 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
    relocations are performed -- see ld's documentation on pseudo-relocs.  */
 # define LT_DLSYM_CONST
-#elif defined(__osf__)
+#elif defined __osf__
 /* This system does not cope well with relocations in const data.  */
 # define LT_DLSYM_CONST
 #else
 # define LT_DLSYM_CONST const
 #endif
 
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
 /* External symbol declarations for the compiler. */\
 "
 
-       if test "$dlself" = yes; then
-         func_verbose "generating symbol list for \`$output'"
+       if test yes = "$dlself"; then
+         func_verbose "generating symbol list for '$output'"
 
          $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
 
@@ -3298,7 +4629,7 @@ extern \"C\" {
          progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
          for progfile in $progfiles; do
            func_to_tool_file "$progfile" func_convert_file_msys_to_w32
-           func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
+           func_verbose "extracting global C symbols from '$func_to_tool_file_result'"
            $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
          done
 
@@ -3318,10 +4649,10 @@ extern \"C\" {
 
          # Prepare the list of exported symbols
          if test -z "$export_symbols"; then
-           export_symbols="$output_objdir/$outputname.exp"
+           export_symbols=$output_objdir/$outputname.exp
            $opt_dry_run || {
              $RM $export_symbols
-             eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+             eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
              case $host in
              *cygwin* | *mingw* | *cegcc* )
                 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
@@ -3331,7 +4662,7 @@ extern \"C\" {
            }
          else
            $opt_dry_run || {
-             eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+             eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
              eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
              eval '$MV "$nlist"T "$nlist"'
              case $host in
@@ -3345,22 +4676,22 @@ extern \"C\" {
        fi
 
        for dlprefile in $dlprefiles; do
-         func_verbose "extracting global C symbols from \`$dlprefile'"
+         func_verbose "extracting global C symbols from '$dlprefile'"
          func_basename "$dlprefile"
-         name="$func_basename_result"
+         name=$func_basename_result
           case $host in
            *cygwin* | *mingw* | *cegcc* )
              # if an import library, we need to obtain dlname
              if func_win32_import_lib_p "$dlprefile"; then
                func_tr_sh "$dlprefile"
                eval "curr_lafile=\$libfile_$func_tr_sh_result"
-               dlprefile_dlbasename=""
+               dlprefile_dlbasename=
                if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
                  # Use subshell, to avoid clobbering current variable values
                  dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
-                 if test -n "$dlprefile_dlname" ; then
+                 if test -n "$dlprefile_dlname"; then
                    func_basename "$dlprefile_dlname"
-                   dlprefile_dlbasename="$func_basename_result"
+                   dlprefile_dlbasename=$func_basename_result
                  else
                    # no lafile. user explicitly requested -dlpreopen <import library>.
                    $sharedlib_from_linklib_cmd "$dlprefile"
@@ -3368,7 +4699,7 @@ extern \"C\" {
                  fi
                fi
                $opt_dry_run || {
-                 if test -n "$dlprefile_dlbasename" ; then
+                 if test -n "$dlprefile_dlbasename"; then
                    eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
                  else
                    func_warning "Could not compute DLL name from $name"
@@ -3424,6 +4755,11 @@ extern \"C\" {
            echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
          fi
 
+         func_show_eval '$RM "${nlist}I"'
+         if test -n "$global_symbol_to_import"; then
+           eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I'
+         fi
+
          echo >> "$output_objdir/$my_dlsyms" "\
 
 /* The mapping between symbol names and symbols.  */
@@ -3432,11 +4768,30 @@ typedef struct {
   void *address;
 } lt_dlsymlist;
 extern LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
+lt_${my_prefix}_LTX_preloaded_symbols[];\
+"
+
+         if test -s "$nlist"I; then
+           echo >> "$output_objdir/$my_dlsyms" "\
+static void lt_syminit(void)
+{
+  LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols;
+  for (; symbol->name; ++symbol)
+    {"
+           $SED 's/.*/      if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms"
+           echo >> "$output_objdir/$my_dlsyms" "\
+    }
+}"
+         fi
+         echo >> "$output_objdir/$my_dlsyms" "\
 LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
-  { \"$my_originator\", (void *) 0 },"
+{ {\"$my_originator\", (void *) 0},"
+
+         if test -s "$nlist"I; then
+           echo >> "$output_objdir/$my_dlsyms" "\
+  {\"@INIT@\", (void *) &lt_syminit},"
+         fi
 
          case $need_lib_prefix in
          no)
@@ -3478,9 +4833,7 @@ static const void *lt_preloaded_setup() {
          *-*-hpux*)
            pic_flag_for_symtable=" $pic_flag"  ;;
          *)
-           if test "X$my_pic_p" != Xno; then
-             pic_flag_for_symtable=" $pic_flag"
-           fi
+           $my_pic_p && pic_flag_for_symtable=" $pic_flag"
            ;;
          esac
          ;;
@@ -3497,10 +4850,10 @@ static const void *lt_preloaded_setup() {
        func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
 
        # Clean up the generated files.
-       func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+       func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"'
 
        # Transform the symbol file into the correct name.
-       symfileobj="$output_objdir/${my_outputname}S.$objext"
+       symfileobj=$output_objdir/${my_outputname}S.$objext
        case $host in
        *cygwin* | *mingw* | *cegcc* )
          if test -f "$output_objdir/$my_outputname.def"; then
@@ -3518,7 +4871,7 @@ static const void *lt_preloaded_setup() {
        esac
        ;;
       *)
-       func_fatal_error "unknown suffix for \`$my_dlsyms'"
+       func_fatal_error "unknown suffix for '$my_dlsyms'"
        ;;
       esac
     else
@@ -3532,6 +4885,32 @@ static const void *lt_preloaded_setup() {
     fi
 }
 
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+  $debug_cmd
+
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+  test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+  $debug_cmd
+
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+  test -n "$func_cygming_ms_implib_tmp"
+}
+
 # func_win32_libid arg
 # return the library type of file 'arg'
 #
@@ -3541,8 +4920,9 @@ static const void *lt_preloaded_setup() {
 # Despite the name, also deal with 64 bit binaries.
 func_win32_libid ()
 {
-  $opt_debug
-  win32_libid_type="unknown"
+  $debug_cmd
+
+  win32_libid_type=unknown
   win32_fileres=`file -L $1 2>/dev/null`
   case $win32_fileres in
   *ar\ archive\ import\ library*) # definitely import
@@ -3552,16 +4932,29 @@ func_win32_libid ()
     # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
        $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
-      func_to_tool_file "$1" func_convert_file_msys_to_w32
-      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
-       $SED -n -e '
+      case $nm_interface in
+      "MS dumpbin")
+       if func_cygming_ms_implib_p "$1" ||
+          func_cygming_gnu_implib_p "$1"
+       then
+         win32_nmres=import
+       else
+         win32_nmres=
+       fi
+       ;;
+      *)
+       func_to_tool_file "$1" func_convert_file_msys_to_w32
+       win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
+         $SED -n -e '
            1,100{
                / I /{
-                   s,.*,import,
+                   s|.*|import|
                    p
                    q
                }
            }'`
+       ;;
+      esac
       case $win32_nmres in
       import*)  win32_libid_type="x86 archive import";;
       *)        win32_libid_type="x86 archive static";;
@@ -3593,7 +4986,8 @@ func_win32_libid ()
 #    $sharedlib_from_linklib_result
 func_cygming_dll_for_implib ()
 {
-  $opt_debug
+  $debug_cmd
+
   sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
 }
 
@@ -3610,7 +5004,8 @@ func_cygming_dll_for_implib ()
 # specified import library.
 func_cygming_dll_for_implib_fallback_core ()
 {
-  $opt_debug
+  $debug_cmd
+
   match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
   $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
     $SED '/^Contents of section '"$match_literal"':/{
@@ -3646,8 +5041,8 @@ func_cygming_dll_for_implib_fallback_core ()
       /./p' |
     # we now have a list, one entry per line, of the stringified
     # contents of the appropriate section of all members of the
-    # archive which possess that section. Heuristic: eliminate
-    # all those which have a first or second character that is
+    # archive that possess that section. Heuristic: eliminate
+    # all those that have a first or second character that is
     # a '.' (that is, objdump's representation of an unprintable
     # character.) This should work for all archives with less than
     # 0x302f exports -- but will fail for DLLs whose name actually
@@ -3658,30 +5053,6 @@ func_cygming_dll_for_implib_fallback_core ()
     $SED -e '/^\./d;/^.\./d;q'
 }
 
-# func_cygming_gnu_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is a GNU/binutils-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_gnu_implib_p ()
-{
-  $opt_debug
-  func_to_tool_file "$1" func_convert_file_msys_to_w32
-  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
-  test -n "$func_cygming_gnu_implib_tmp"
-}
-
-# func_cygming_ms_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is an MS-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_ms_implib_p ()
-{
-  $opt_debug
-  func_to_tool_file "$1" func_convert_file_msys_to_w32
-  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
-  test -n "$func_cygming_ms_implib_tmp"
-}
-
 # func_cygming_dll_for_implib_fallback ARG
 # Platform-specific function to extract the
 # name of the DLL associated with the specified
@@ -3695,16 +5066,17 @@ func_cygming_ms_implib_p ()
 #    $sharedlib_from_linklib_result
 func_cygming_dll_for_implib_fallback ()
 {
-  $opt_debug
-  if func_cygming_gnu_implib_p "$1" ; then
+  $debug_cmd
+
+  if func_cygming_gnu_implib_p "$1"; then
     # binutils import library
     sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
-  elif func_cygming_ms_implib_p "$1" ; then
+  elif func_cygming_ms_implib_p "$1"; then
     # ms-generated import library
     sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
   else
     # unknown
-    sharedlib_from_linklib_result=""
+    sharedlib_from_linklib_result=
   fi
 }
 
@@ -3712,10 +5084,11 @@ func_cygming_dll_for_implib_fallback ()
 # func_extract_an_archive dir oldlib
 func_extract_an_archive ()
 {
-    $opt_debug
-    f_ex_an_ar_dir="$1"; shift
-    f_ex_an_ar_oldlib="$1"
-    if test "$lock_old_archive_extraction" = yes; then
+    $debug_cmd
+
+    f_ex_an_ar_dir=$1; shift
+    f_ex_an_ar_oldlib=$1
+    if test yes = "$lock_old_archive_extraction"; then
       lockfile=$f_ex_an_ar_oldlib.lock
       until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
        func_echo "Waiting for $lockfile to be removed"
@@ -3724,7 +5097,7 @@ func_extract_an_archive ()
     fi
     func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
                   'stat=$?; rm -f "$lockfile"; exit $stat'
-    if test "$lock_old_archive_extraction" = yes; then
+    if test yes = "$lock_old_archive_extraction"; then
       $opt_dry_run || rm -f "$lockfile"
     fi
     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
@@ -3738,22 +5111,23 @@ func_extract_an_archive ()
 # func_extract_archives gentop oldlib ...
 func_extract_archives ()
 {
-    $opt_debug
-    my_gentop="$1"; shift
+    $debug_cmd
+
+    my_gentop=$1; shift
     my_oldlibs=${1+"$@"}
-    my_oldobjs=""
-    my_xlib=""
-    my_xabs=""
-    my_xdir=""
+    my_oldobjs=
+    my_xlib=
+    my_xabs=
+    my_xdir=
 
     for my_xlib in $my_oldlibs; do
       # Extract the objects.
       case $my_xlib in
-       [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+       [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;;
        *) my_xabs=`pwd`"/$my_xlib" ;;
       esac
       func_basename "$my_xlib"
-      my_xlib="$func_basename_result"
+      my_xlib=$func_basename_result
       my_xlib_u=$my_xlib
       while :; do
         case " $extracted_archives " in
@@ -3765,7 +5139,7 @@ func_extract_archives ()
        esac
       done
       extracted_archives="$extracted_archives $my_xlib_u"
-      my_xdir="$my_gentop/$my_xlib_u"
+      my_xdir=$my_gentop/$my_xlib_u
 
       func_mkdir_p "$my_xdir"
 
@@ -3778,22 +5152,23 @@ func_extract_archives ()
          cd $my_xdir || exit $?
          darwin_archive=$my_xabs
          darwin_curdir=`pwd`
-         darwin_base_archive=`basename "$darwin_archive"`
+         func_basename "$darwin_archive"
+         darwin_base_archive=$func_basename_result
          darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
          if test -n "$darwin_arches"; then
            darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
            darwin_arch=
            func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
-           for darwin_arch in  $darwin_arches ; do
-             func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-             $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
-             cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-             func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+           for darwin_arch in  $darwin_arches; do
+             func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch"
+             $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive"
+             cd "unfat-$$/$darwin_base_archive-$darwin_arch"
+             func_extract_an_archive "`pwd`" "$darwin_base_archive"
              cd "$darwin_curdir"
-             $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+             $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive"
            done # $darwin_arches
             ## Okay now we've a bunch of thin objects, gotta fatten them up :)
-           darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
+           darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u`
            darwin_file=
            darwin_files=
            for darwin_file in $darwin_filelist; do
@@ -3815,7 +5190,7 @@ func_extract_archives ()
       my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
     done
 
-    func_extract_archives_result="$my_oldobjs"
+    func_extract_archives_result=$my_oldobjs
 }
 
 
@@ -3830,7 +5205,7 @@ func_extract_archives ()
 #
 # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
 # variable will take.  If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
+# will assume that the directory where it is stored is
 # the $objdir directory.  This is a cygwin/mingw-specific
 # behavior.
 func_emit_wrapper ()
@@ -3841,7 +5216,7 @@ func_emit_wrapper ()
 #! $SHELL
 
 # $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 #
 # The $output program cannot be directly executed until all the libtool
 # libraries that it depends on are installed.
@@ -3898,9 +5273,9 @@ _LTECHO_EOF'
 
 # Very basic option parsing. These options are (a) specific to
 # the libtool wrapper, (b) are identical between the wrapper
-# /script/ and the wrapper /executable/ which is used only on
+# /script/ and the wrapper /executable/ that is used only on
 # windows platforms, and (c) all begin with the string "--lt-"
-# (application programs are unlikely to have options which match
+# (application programs are unlikely to have options that match
 # this pattern).
 #
 # There are only two supported options: --lt-debug and
@@ -3933,7 +5308,7 @@ func_parse_lt_options ()
 
   # Print the debug banner immediately:
   if test -n \"\$lt_option_debug\"; then
-    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
+    echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2
   fi
 }
 
@@ -3944,7 +5319,7 @@ func_lt_dump_args ()
   lt_dump_args_N=1;
   for lt_arg
   do
-    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
+    \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\"
     lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
   done
 }
@@ -3958,7 +5333,7 @@ func_exec_program_core ()
   *-*-mingw | *-*-os2* | *-cegcc*)
     $ECHO "\
       if test -n \"\$lt_option_debug\"; then
-        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
+        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
         func_lt_dump_args \${1+\"\$@\"} 1>&2
       fi
       exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
@@ -3968,7 +5343,7 @@ func_exec_program_core ()
   *)
     $ECHO "\
       if test -n \"\$lt_option_debug\"; then
-        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
+        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2
         func_lt_dump_args \${1+\"\$@\"} 1>&2
       fi
       exec \"\$progdir/\$program\" \${1+\"\$@\"}
@@ -4043,13 +5418,13 @@ func_exec_program ()
   test -n \"\$absdir\" && thisdir=\"\$absdir\"
 "
 
-       if test "$fast_install" = yes; then
+       if test yes = "$fast_install"; then
          $ECHO "\
   program=lt-'$outputname'$exeext
   progdir=\"\$thisdir/$objdir\"
 
   if test ! -f \"\$progdir/\$program\" ||
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\
        test \"X\$file\" != \"X\$progdir/\$program\"; }; then
 
     file=\"\$\$-\$program\"
@@ -4066,7 +5441,7 @@ func_exec_program ()
     if test -n \"\$relink_command\"; then
       if relink_command_output=\`eval \$relink_command 2>&1\`; then :
       else
-       $ECHO \"\$relink_command_output\" >&2
+       \$ECHO \"\$relink_command_output\" >&2
        $RM \"\$progdir/\$file\"
        exit 1
       fi
@@ -4101,7 +5476,7 @@ func_exec_program ()
        fi
 
        # Export our shlibpath_var if we have one.
-       if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+       if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
          $ECHO "\
     # Add our own library path to $shlibpath_var
     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
@@ -4121,7 +5496,7 @@ func_exec_program ()
     fi
   else
     # The program doesn't exist.
-    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2
     \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
     \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
     exit 1
@@ -4140,7 +5515,7 @@ func_emit_cwrapperexe_src ()
        cat <<EOF
 
 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+   Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 
    The $output program cannot be directly executed until all the libtool
    libraries that it depends on are installed.
@@ -4175,47 +5550,45 @@ EOF
 #include <fcntl.h>
 #include <sys/stat.h>
 
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
 /* declarations of non-ANSI functions */
-#if defined(__MINGW32__)
+#if defined __MINGW32__
 # ifdef __STRICT_ANSI__
 int _putenv (const char *);
 # endif
-#elif defined(__CYGWIN__)
+#elif defined __CYGWIN__
 # ifdef __STRICT_ANSI__
 char *realpath (const char *, char *);
 int putenv (char *);
 int setenv (const char *, const char *, int);
 # endif
-/* #elif defined (other platforms) ... */
+/* #elif defined other_platform || defined ... */
 #endif
 
 /* portability defines, excluding path handling macros */
-#if defined(_MSC_VER)
+#if defined _MSC_VER
 # define setmode _setmode
 # define stat    _stat
 # define chmod   _chmod
 # define getcwd  _getcwd
 # define putenv  _putenv
 # define S_IXUSR _S_IEXEC
-# ifndef _INTPTR_T_DEFINED
-#  define _INTPTR_T_DEFINED
-#  define intptr_t int
-# endif
-#elif defined(__MINGW32__)
+#elif defined __MINGW32__
 # define setmode _setmode
 # define stat    _stat
 # define chmod   _chmod
 # define getcwd  _getcwd
 # define putenv  _putenv
-#elif defined(__CYGWIN__)
+#elif defined __CYGWIN__
 # define HAVE_SETENV
 # define FOPEN_WB "wb"
-/* #elif defined (other platforms) ... */
+/* #elif defined other platforms ... */
 #endif
 
-#if defined(PATH_MAX)
+#if defined PATH_MAX
 # define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
+#elif defined MAXPATHLEN
 # define LT_PATHMAX MAXPATHLEN
 #else
 # define LT_PATHMAX 1024
@@ -4234,8 +5607,8 @@ int setenv (const char *, const char *, int);
 # define PATH_SEPARATOR ':'
 #endif
 
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
+#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \
+  defined __OS2__
 # define HAVE_DOS_BASED_FILE_SYSTEM
 # define FOPEN_WB "wb"
 # ifndef DIR_SEPARATOR_2
@@ -4268,10 +5641,10 @@ int setenv (const char *, const char *, int);
 
 #define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
 #define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
+  if (stale) { free (stale); stale = 0; } \
 } while (0)
 
-#if defined(LT_DEBUGWRAPPER)
+#if defined LT_DEBUGWRAPPER
 static int lt_debug = 1;
 #else
 static int lt_debug = 0;
@@ -4300,11 +5673,16 @@ void lt_dump_script (FILE *f);
 EOF
 
            cat <<EOF
-volatile const char * MAGIC_EXE = "$magic_exe";
+#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
+# define externally_visible volatile
+#else
+# define externally_visible __attribute__((externally_visible)) volatile
+#endif
+externally_visible const char * MAGIC_EXE = "$magic_exe";
 const char * LIB_PATH_VARNAME = "$shlibpath_var";
 EOF
 
-           if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+           if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
               func_to_host_path "$temp_rpath"
              cat <<EOF
 const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
@@ -4328,7 +5706,7 @@ const char * EXE_PATH_VALUE   = "";
 EOF
            fi
 
-           if test "$fast_install" = yes; then
+           if test yes = "$fast_install"; then
              cat <<EOF
 const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
 EOF
@@ -4357,12 +5735,12 @@ main (int argc, char *argv[])
   char *actual_cwrapper_name;
   char *target_name;
   char *lt_argv_zero;
-  intptr_t rval = 127;
+  int rval = 127;
 
   int i;
 
   program_name = (char *) xstrdup (base_name (argv[0]));
-  newargz = XMALLOC (char *, argc + 1);
+  newargz = XMALLOC (char *, (size_t) argc + 1);
 
   /* very simple arg parsing; don't want to rely on getopt
    * also, copy all non cwrapper options to newargz, except
@@ -4371,10 +5749,10 @@ main (int argc, char *argv[])
   newargc=0;
   for (i = 1; i < argc; i++)
     {
-      if (strcmp (argv[i], dumpscript_opt) == 0)
+      if (STREQ (argv[i], dumpscript_opt))
        {
 EOF
-           case "$host" in
+           case $host in
              *mingw* | *cygwin* )
                # make stdout use "unix" line endings
                echo "          setmode(1,_O_BINARY);"
@@ -4385,12 +5763,12 @@ EOF
          lt_dump_script (stdout);
          return 0;
        }
-      if (strcmp (argv[i], debug_opt) == 0)
+      if (STREQ (argv[i], debug_opt))
        {
           lt_debug = 1;
           continue;
        }
-      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
+      if (STREQ (argv[i], ltwrapper_option_prefix))
         {
           /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
              namespace, but it is not one of the ones we know about and
@@ -4413,7 +5791,7 @@ EOF
 EOF
            cat <<EOF
   /* The GNU banner must be the first non-error debug message */
-  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
+  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n");
 EOF
            cat <<"EOF"
   lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
@@ -4524,7 +5902,7 @@ EOF
                cat <<"EOF"
   /* execv doesn't actually work on mingw as expected on unix */
   newargz = prepare_spawn (newargz);
-  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+  rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
   if (rval == -1)
     {
       /* failed to start process */
@@ -4569,7 +5947,7 @@ base_name (const char *name)
 {
   const char *base;
 
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
   /* Skip over the disk name in MSDOS pathnames. */
   if (isalpha ((unsigned char) name[0]) && name[1] == ':')
     name += 2;
@@ -4628,7 +6006,7 @@ find_executable (const char *wrapper)
   const char *p_next;
   /* static buffer for getcwd */
   char tmp[LT_PATHMAX + 1];
-  int tmp_len;
+  size_t tmp_len;
   char *concat_name;
 
   lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
@@ -4638,7 +6016,7 @@ find_executable (const char *wrapper)
     return NULL;
 
   /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
   if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
     {
       concat_name = xstrdup (wrapper);
@@ -4656,7 +6034,7 @@ find_executable (const char *wrapper)
            return concat_name;
          XFREE (concat_name);
        }
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
     }
 #endif
 
@@ -4679,7 +6057,7 @@ find_executable (const char *wrapper)
              for (q = p; *q; q++)
                if (IS_PATH_SEPARATOR (*q))
                  break;
-             p_len = q - p;
+             p_len = (size_t) (q - p);
              p_next = (*q == '\0' ? q : q + 1);
              if (p_len == 0)
                {
@@ -4798,7 +6176,7 @@ strendzap (char *str, const char *pat)
   if (patlen <= len)
     {
       str += len - patlen;
-      if (strcmp (str, pat) == 0)
+      if (STREQ (str, pat))
        *str = '\0';
     }
   return str;
@@ -4863,7 +6241,7 @@ lt_setenv (const char *name, const char *value)
     char *str = xstrdup (value);
     setenv (name, str, 1);
 #else
-    int len = strlen (name) + 1 + strlen (value) + 1;
+    size_t len = strlen (name) + 1 + strlen (value) + 1;
     char *str = XMALLOC (char, len);
     sprintf (str, "%s=%s", name, value);
     if (putenv (str) != EXIT_SUCCESS)
@@ -4880,8 +6258,8 @@ lt_extend_str (const char *orig_value, const char *add, int to_end)
   char *new_value;
   if (orig_value && *orig_value)
     {
-      int orig_value_len = strlen (orig_value);
-      int add_len = strlen (add);
+      size_t orig_value_len = strlen (orig_value);
+      size_t add_len = strlen (add);
       new_value = XMALLOC (char, add_len + orig_value_len + 1);
       if (to_end)
         {
@@ -4912,10 +6290,10 @@ lt_update_exe_path (const char *name, const char *value)
     {
       char *new_value = lt_extend_str (getenv (name), value, 0);
       /* some systems can't cope with a ':'-terminated path #' */
-      int len = strlen (new_value);
-      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+      size_t len = strlen (new_value);
+      while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
         {
-          new_value[len-1] = '\0';
+          new_value[--len] = '\0';
         }
       lt_setenv (name, new_value);
       XFREE (new_value);
@@ -5082,27 +6460,47 @@ EOF
 # True if ARG is an import lib, as indicated by $file_magic_cmd
 func_win32_import_lib_p ()
 {
-    $opt_debug
+    $debug_cmd
+
     case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
     *import*) : ;;
     *) false ;;
     esac
 }
 
+# func_suncc_cstd_abi
+# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!!
+# Several compiler flags select an ABI that is incompatible with the
+# Cstd library. Avoid specifying it if any are in CXXFLAGS.
+func_suncc_cstd_abi ()
+{
+    $debug_cmd
+
+    case " $compile_command " in
+    *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*)
+      suncc_use_cstd_abi=no
+      ;;
+    *)
+      suncc_use_cstd_abi=yes
+      ;;
+    esac
+}
+
 # func_mode_link arg...
 func_mode_link ()
 {
-    $opt_debug
+    $debug_cmd
+
     case $host in
     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
       # It is impossible to link a dll without this setting, and
       # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
+      # what system we are compiling for in order to pass an extra
       # flag for every libtool invocation.
       # allow_undefined=no
 
       # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
+      # to make a dll that has undefined symbols, in which case not
       # even a static library is built.  For now, we need to specify
       # -no-undefined on the libtool link line when we can be certain
       # that all symbols are satisfied, otherwise we get a static library.
@@ -5146,10 +6544,11 @@ func_mode_link ()
     module=no
     no_install=no
     objs=
+    os2dllname=
     non_pic_objects=
     precious_files_regex=
     prefer_static_libs=no
-    preload=no
+    preload=false
     prev=
     prevarg=
     release=
@@ -5161,7 +6560,7 @@ func_mode_link ()
     vinfo=
     vinfo_number=no
     weak_libs=
-    single_module="${wl}-single_module"
+    single_module=$wl-single_module
     func_infer_tag $base_compile
 
     # We need to know -static, to get the right output filenames.
@@ -5169,15 +6568,15 @@ func_mode_link ()
     do
       case $arg in
       -shared)
-       test "$build_libtool_libs" != yes && \
-         func_fatal_configuration "can not build a shared library"
+       test yes != "$build_libtool_libs" \
+         && func_fatal_configuration "cannot build a shared library"
        build_old_libs=no
        break
        ;;
       -all-static | -static | -static-libtool-libs)
        case $arg in
        -all-static)
-         if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+         if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then
            func_warning "complete static linking is impossible in this configuration"
          fi
          if test -n "$link_static_flag"; then
@@ -5210,7 +6609,7 @@ func_mode_link ()
 
     # Go through the arguments, transforming them on the way.
     while test "$#" -gt 0; do
-      arg="$1"
+      arg=$1
       shift
       func_quote_for_eval "$arg"
       qarg=$func_quote_for_eval_unquoted_result
@@ -5227,21 +6626,21 @@ func_mode_link ()
 
        case $prev in
        bindir)
-         bindir="$arg"
+         bindir=$arg
          prev=
          continue
          ;;
        dlfiles|dlprefiles)
-         if test "$preload" = no; then
+         $preload || {
            # Add the symbol object into the linking commands.
            func_append compile_command " @SYMFILE@"
            func_append finalize_command " @SYMFILE@"
-           preload=yes
-         fi
+           preload=:
+         }
          case $arg in
          *.la | *.lo) ;;  # We handle these cases below.
          force)
-           if test "$dlself" = no; then
+           if test no = "$dlself"; then
              dlself=needless
              export_dynamic=yes
            fi
@@ -5249,9 +6648,9 @@ func_mode_link ()
            continue
            ;;
          self)
-           if test "$prev" = dlprefiles; then
+           if test dlprefiles = "$prev"; then
              dlself=yes
-           elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+           elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then
              dlself=yes
            else
              dlself=needless
@@ -5261,7 +6660,7 @@ func_mode_link ()
            continue
            ;;
          *)
-           if test "$prev" = dlfiles; then
+           if test dlfiles = "$prev"; then
              func_append dlfiles " $arg"
            else
              func_append dlprefiles " $arg"
@@ -5272,14 +6671,14 @@ func_mode_link ()
          esac
          ;;
        expsyms)
-         export_symbols="$arg"
+         export_symbols=$arg
          test -f "$arg" \
-           || func_fatal_error "symbol file \`$arg' does not exist"
+           || func_fatal_error "symbol file '$arg' does not exist"
          prev=
          continue
          ;;
        expsyms_regex)
-         export_symbols_regex="$arg"
+         export_symbols_regex=$arg
          prev=
          continue
          ;;
@@ -5297,7 +6696,13 @@ func_mode_link ()
          continue
          ;;
        inst_prefix)
-         inst_prefix_dir="$arg"
+         inst_prefix_dir=$arg
+         prev=
+         continue
+         ;;
+       mllvm)
+         # Clang does not use LLVM to link, so we can simply discard any
+         # '-mllvm $arg' options when doing the link step.
          prev=
          continue
          ;;
@@ -5321,21 +6726,21 @@ func_mode_link ()
 
                if test -z "$pic_object" ||
                   test -z "$non_pic_object" ||
-                  test "$pic_object" = none &&
-                  test "$non_pic_object" = none; then
-                 func_fatal_error "cannot find name of object for \`$arg'"
+                  test none = "$pic_object" &&
+                  test none = "$non_pic_object"; then
+                 func_fatal_error "cannot find name of object for '$arg'"
                fi
 
                # Extract subdirectory from the argument.
                func_dirname "$arg" "/" ""
-               xdir="$func_dirname_result"
+               xdir=$func_dirname_result
 
-               if test "$pic_object" != none; then
+               if test none != "$pic_object"; then
                  # Prepend the subdirectory the object is found in.
-                 pic_object="$xdir$pic_object"
+                 pic_object=$xdir$pic_object
 
-                 if test "$prev" = dlfiles; then
-                   if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+                 if test dlfiles = "$prev"; then
+                   if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
                      func_append dlfiles " $pic_object"
                      prev=
                      continue
@@ -5346,7 +6751,7 @@ func_mode_link ()
                  fi
 
                  # CHECK ME:  I think I busted this.  -Ossama
-                 if test "$prev" = dlprefiles; then
+                 if test dlprefiles = "$prev"; then
                    # Preload the old-style object.
                    func_append dlprefiles " $pic_object"
                    prev=
@@ -5354,23 +6759,23 @@ func_mode_link ()
 
                  # A PIC object.
                  func_append libobjs " $pic_object"
-                 arg="$pic_object"
+                 arg=$pic_object
                fi
 
                # Non-PIC object.
-               if test "$non_pic_object" != none; then
+               if test none != "$non_pic_object"; then
                  # Prepend the subdirectory the object is found in.
-                 non_pic_object="$xdir$non_pic_object"
+                 non_pic_object=$xdir$non_pic_object
 
                  # A standard non-PIC object
                  func_append non_pic_objects " $non_pic_object"
-                 if test -z "$pic_object" || test "$pic_object" = none ; then
-                   arg="$non_pic_object"
+                 if test -z "$pic_object" || test none = "$pic_object"; then
+                   arg=$non_pic_object
                  fi
                else
                  # If the PIC object exists, use it instead.
                  # $xdir was prepended to $pic_object above.
-                 non_pic_object="$pic_object"
+                 non_pic_object=$pic_object
                  func_append non_pic_objects " $non_pic_object"
                fi
              else
@@ -5378,7 +6783,7 @@ func_mode_link ()
                if $opt_dry_run; then
                  # Extract subdirectory from the argument.
                  func_dirname "$arg" "/" ""
-                 xdir="$func_dirname_result"
+                 xdir=$func_dirname_result
 
                  func_lo2o "$arg"
                  pic_object=$xdir$objdir/$func_lo2o_result
@@ -5386,24 +6791,29 @@ func_mode_link ()
                  func_append libobjs " $pic_object"
                  func_append non_pic_objects " $non_pic_object"
                else
-                 func_fatal_error "\`$arg' is not a valid libtool object"
+                 func_fatal_error "'$arg' is not a valid libtool object"
                fi
              fi
            done
          else
-           func_fatal_error "link input file \`$arg' does not exist"
+           func_fatal_error "link input file '$arg' does not exist"
          fi
          arg=$save_arg
          prev=
          continue
          ;;
+       os2dllname)
+         os2dllname=$arg
+         prev=
+         continue
+         ;;
        precious_regex)
-         precious_files_regex="$arg"
+         precious_files_regex=$arg
          prev=
          continue
          ;;
        release)
-         release="-$arg"
+         release=-$arg
          prev=
          continue
          ;;
@@ -5415,7 +6825,7 @@ func_mode_link ()
            func_fatal_error "only absolute run-paths are allowed"
            ;;
          esac
-         if test "$prev" = rpath; then
+         if test rpath = "$prev"; then
            case "$rpath " in
            *" $arg "*) ;;
            *) func_append rpath " $arg" ;;
@@ -5430,7 +6840,7 @@ func_mode_link ()
          continue
          ;;
        shrext)
-         shrext_cmds="$arg"
+         shrext_cmds=$arg
          prev=
          continue
          ;;
@@ -5470,7 +6880,7 @@ func_mode_link ()
        esac
       fi # test -n "$prev"
 
-      prevarg="$arg"
+      prevarg=$arg
 
       case $arg in
       -all-static)
@@ -5484,7 +6894,7 @@ func_mode_link ()
 
       -allow-undefined)
        # FIXME: remove this flag sometime in the future.
-       func_fatal_error "\`-allow-undefined' must not be used because it is the default"
+       func_fatal_error "'-allow-undefined' must not be used because it is the default"
        ;;
 
       -avoid-version)
@@ -5516,7 +6926,7 @@ func_mode_link ()
        if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
          func_fatal_error "more than one -exported-symbols argument is not allowed"
        fi
-       if test "X$arg" = "X-export-symbols"; then
+       if test X-export-symbols = "X$arg"; then
          prev=expsyms
        else
          prev=expsyms_regex
@@ -5550,9 +6960,9 @@ func_mode_link ()
        func_stripname "-L" '' "$arg"
        if test -z "$func_stripname_result"; then
          if test "$#" -gt 0; then
-           func_fatal_error "require no space between \`-L' and \`$1'"
+           func_fatal_error "require no space between '-L' and '$1'"
          else
-           func_fatal_error "need path for \`-L' option"
+           func_fatal_error "need path for '-L' option"
          fi
        fi
        func_resolve_sysroot "$func_stripname_result"
@@ -5563,8 +6973,8 @@ func_mode_link ()
        *)
          absdir=`cd "$dir" && pwd`
          test -z "$absdir" && \
-           func_fatal_error "cannot determine absolute directory name of \`$dir'"
-         dir="$absdir"
+           func_fatal_error "cannot determine absolute directory name of '$dir'"
+         dir=$absdir
          ;;
        esac
        case "$deplibs " in
@@ -5599,7 +7009,7 @@ func_mode_link ()
        ;;
 
       -l*)
-       if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+       if test X-lc = "X$arg" || test X-lm = "X$arg"; then
          case $host in
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
            # These systems don't actually have a C or math library (as such)
@@ -5607,11 +7017,11 @@ func_mode_link ()
            ;;
          *-*-os2*)
            # These systems don't actually have a C library (as such)
-           test "X$arg" = "X-lc" && continue
+           test X-lc = "X$arg" && continue
            ;;
-         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
            # Do not include libc due to us having libc/libc_r.
-           test "X$arg" = "X-lc" && continue
+           test X-lc = "X$arg" && continue
            ;;
          *-*-rhapsody* | *-*-darwin1.[012])
            # Rhapsody C and math libraries are in the System framework
@@ -5620,16 +7030,16 @@ func_mode_link ()
            ;;
          *-*-sco3.2v5* | *-*-sco5v6*)
            # Causes problems with __ctype
-           test "X$arg" = "X-lc" && continue
+           test X-lc = "X$arg" && continue
            ;;
          *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
            # Compiler inserts libc in the correct place for threads to work
-           test "X$arg" = "X-lc" && continue
+           test X-lc = "X$arg" && continue
            ;;
          esac
-       elif test "X$arg" = "X-lc_r"; then
+       elif test X-lc_r = "X$arg"; then
         case $host in
-        *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+        *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
           # Do not include libc_r directly, use -pthread flag.
           continue
           ;;
@@ -5639,6 +7049,11 @@ func_mode_link ()
        continue
        ;;
 
+      -mllvm)
+       prev=mllvm
+       continue
+       ;;
+
       -module)
        module=yes
        continue
@@ -5668,7 +7083,7 @@ func_mode_link ()
        ;;
 
       -multi_module)
-       single_module="${wl}-multi_module"
+       single_module=$wl-multi_module
        continue
        ;;
 
@@ -5682,8 +7097,8 @@ func_mode_link ()
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
          # The PATH hackery in wrapper scripts is required on Windows
          # and Darwin in order for the loader to find any dlls it needs.
-         func_warning "\`-no-install' is ignored for $host"
-         func_warning "assuming \`-no-fast-install' instead"
+         func_warning "'-no-install' is ignored for $host"
+         func_warning "assuming '-no-fast-install' instead"
          fast_install=no
          ;;
        *) no_install=yes ;;
@@ -5701,6 +7116,11 @@ func_mode_link ()
        continue
        ;;
 
+      -os2dllname)
+       prev=os2dllname
+       continue
+       ;;
+
       -o) prev=output ;;
 
       -precious-files-regex)
@@ -5788,14 +7208,14 @@ func_mode_link ()
        func_stripname '-Wc,' '' "$arg"
        args=$func_stripname_result
        arg=
-       save_ifs="$IFS"; IFS=','
+       save_ifs=$IFS; IFS=,
        for flag in $args; do
-         IFS="$save_ifs"
+         IFS=$save_ifs
           func_quote_for_eval "$flag"
          func_append arg " $func_quote_for_eval_result"
          func_append compiler_flags " $func_quote_for_eval_result"
        done
-       IFS="$save_ifs"
+       IFS=$save_ifs
        func_stripname ' ' '' "$arg"
        arg=$func_stripname_result
        ;;
@@ -5804,15 +7224,15 @@ func_mode_link ()
        func_stripname '-Wl,' '' "$arg"
        args=$func_stripname_result
        arg=
-       save_ifs="$IFS"; IFS=','
+       save_ifs=$IFS; IFS=,
        for flag in $args; do
-         IFS="$save_ifs"
+         IFS=$save_ifs
           func_quote_for_eval "$flag"
          func_append arg " $wl$func_quote_for_eval_result"
          func_append compiler_flags " $wl$func_quote_for_eval_result"
          func_append linker_flags " $func_quote_for_eval_result"
        done
-       IFS="$save_ifs"
+       IFS=$save_ifs
        func_stripname ' ' '' "$arg"
        arg=$func_stripname_result
        ;;
@@ -5835,7 +7255,7 @@ func_mode_link ()
       # -msg_* for osf cc
       -msg_*)
        func_quote_for_eval "$arg"
-       arg="$func_quote_for_eval_result"
+       arg=$func_quote_for_eval_result
        ;;
 
       # Flags to be passed through unchanged, with rationale:
@@ -5847,25 +7267,49 @@ func_mode_link ()
       # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
       # -F/path              path to uninstalled frameworks, gcc on darwin
       # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
+      # -fstack-protector*   stack protector flags for GCC
       # @file                GCC response files
       # -tp=*                Portland pgcc target processor selection
       # --sysroot=*          for sysroot support
-      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+      # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+      # -specs=*             GCC specs files
+      # -stdlib=*            select c++ std lib with clang
+      # -fsanitize=*         Clang/GCC memory and address sanitizer
       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
       -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
-      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
+      -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
+      -specs=*|-fsanitize=*)
         func_quote_for_eval "$arg"
-       arg="$func_quote_for_eval_result"
+       arg=$func_quote_for_eval_result
         func_append compile_command " $arg"
         func_append finalize_command " $arg"
         func_append compiler_flags " $arg"
         continue
         ;;
 
+      -Z*)
+        if test os2 = "`expr $host : '.*\(os2\)'`"; then
+          # OS/2 uses -Zxxx to specify OS/2-specific options
+         compiler_flags="$compiler_flags $arg"
+         func_append compile_command " $arg"
+         func_append finalize_command " $arg"
+         case $arg in
+         -Zlinker | -Zstack)
+           prev=xcompiler
+           ;;
+         esac
+         continue
+        else
+         # Otherwise treat like 'Some other compiler flag' below
+         func_quote_for_eval "$arg"
+         arg=$func_quote_for_eval_result
+        fi
+       ;;
+
       # Some other compiler flag.
       -* | +*)
         func_quote_for_eval "$arg"
-       arg="$func_quote_for_eval_result"
+       arg=$func_quote_for_eval_result
        ;;
 
       *.$objext)
@@ -5886,21 +7330,21 @@ func_mode_link ()
 
          if test -z "$pic_object" ||
             test -z "$non_pic_object" ||
-            test "$pic_object" = none &&
-            test "$non_pic_object" = none; then
-           func_fatal_error "cannot find name of object for \`$arg'"
+            test none = "$pic_object" &&
+            test none = "$non_pic_object"; then
+           func_fatal_error "cannot find name of object for '$arg'"
          fi
 
          # Extract subdirectory from the argument.
          func_dirname "$arg" "/" ""
-         xdir="$func_dirname_result"
+         xdir=$func_dirname_result
 
-         if test "$pic_object" != none; then
+         test none = "$pic_object" || {
            # Prepend the subdirectory the object is found in.
-           pic_object="$xdir$pic_object"
+           pic_object=$xdir$pic_object
 
-           if test "$prev" = dlfiles; then
-             if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+           if test dlfiles = "$prev"; then
+             if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
                func_append dlfiles " $pic_object"
                prev=
                continue
@@ -5911,7 +7355,7 @@ func_mode_link ()
            fi
 
            # CHECK ME:  I think I busted this.  -Ossama
-           if test "$prev" = dlprefiles; then
+           if test dlprefiles = "$prev"; then
              # Preload the old-style object.
              func_append dlprefiles " $pic_object"
              prev=
@@ -5919,23 +7363,23 @@ func_mode_link ()
 
            # A PIC object.
            func_append libobjs " $pic_object"
-           arg="$pic_object"
-         fi
+           arg=$pic_object
+         }
 
          # Non-PIC object.
-         if test "$non_pic_object" != none; then
+         if test none != "$non_pic_object"; then
            # Prepend the subdirectory the object is found in.
-           non_pic_object="$xdir$non_pic_object"
+           non_pic_object=$xdir$non_pic_object
 
            # A standard non-PIC object
            func_append non_pic_objects " $non_pic_object"
-           if test -z "$pic_object" || test "$pic_object" = none ; then
-             arg="$non_pic_object"
+           if test -z "$pic_object" || test none = "$pic_object"; then
+             arg=$non_pic_object
            fi
          else
            # If the PIC object exists, use it instead.
            # $xdir was prepended to $pic_object above.
-           non_pic_object="$pic_object"
+           non_pic_object=$pic_object
            func_append non_pic_objects " $non_pic_object"
          fi
        else
@@ -5943,7 +7387,7 @@ func_mode_link ()
          if $opt_dry_run; then
            # Extract subdirectory from the argument.
            func_dirname "$arg" "/" ""
-           xdir="$func_dirname_result"
+           xdir=$func_dirname_result
 
            func_lo2o "$arg"
            pic_object=$xdir$objdir/$func_lo2o_result
@@ -5951,7 +7395,7 @@ func_mode_link ()
            func_append libobjs " $pic_object"
            func_append non_pic_objects " $non_pic_object"
          else
-           func_fatal_error "\`$arg' is not a valid libtool object"
+           func_fatal_error "'$arg' is not a valid libtool object"
          fi
        fi
        ;;
@@ -5967,11 +7411,11 @@ func_mode_link ()
        # A libtool-controlled library.
 
        func_resolve_sysroot "$arg"
-       if test "$prev" = dlfiles; then
+       if test dlfiles = "$prev"; then
          # This library was specified with -dlopen.
          func_append dlfiles " $func_resolve_sysroot_result"
          prev=
-       elif test "$prev" = dlprefiles; then
+       elif test dlprefiles = "$prev"; then
          # The library was specified with -dlpreopen.
          func_append dlprefiles " $func_resolve_sysroot_result"
          prev=
@@ -5986,7 +7430,7 @@ func_mode_link ()
        # Unknown arguments in both finalize_command and compile_command need
        # to be aesthetically quoted because they are evaled later.
        func_quote_for_eval "$arg"
-       arg="$func_quote_for_eval_result"
+       arg=$func_quote_for_eval_result
        ;;
       esac # arg
 
@@ -5998,9 +7442,9 @@ func_mode_link ()
     done # argument parsing loop
 
     test -n "$prev" && \
-      func_fatal_help "the \`$prevarg' option requires an argument"
+      func_fatal_help "the '$prevarg' option requires an argument"
 
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+    if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then
       eval arg=\"$export_dynamic_flag_spec\"
       func_append compile_command " $arg"
       func_append finalize_command " $arg"
@@ -6009,20 +7453,23 @@ func_mode_link ()
     oldlibs=
     # calculate the name of the file, without its directory
     func_basename "$output"
-    outputname="$func_basename_result"
-    libobjs_save="$libobjs"
+    outputname=$func_basename_result
+    libobjs_save=$libobjs
 
     if test -n "$shlibpath_var"; then
       # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
+      eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\`
     else
       shlib_search_path=
     fi
     eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
     eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
 
+    # Definition is injected by LT_CONFIG during libtool generation.
+    func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH"
+
     func_dirname "$output" "/" ""
-    output_objdir="$func_dirname_result$objdir"
+    output_objdir=$func_dirname_result$objdir
     func_to_tool_file "$output_objdir/"
     tool_output_objdir=$func_to_tool_file_result
     # Create the object directory.
@@ -6045,7 +7492,7 @@ func_mode_link ()
     # Find all interdependent deplibs by searching for libraries
     # that are linked more than once (e.g. -la -lb -la)
     for deplib in $deplibs; do
-      if $opt_preserve_dup_deps ; then
+      if $opt_preserve_dup_deps; then
        case "$libs " in
        *" $deplib "*) func_append specialdeplibs " $deplib" ;;
        esac
@@ -6053,7 +7500,7 @@ func_mode_link ()
       func_append libs " $deplib"
     done
 
-    if test "$linkmode" = lib; then
+    if test lib = "$linkmode"; then
       libs="$predeps $libs $compiler_lib_search_path $postdeps"
 
       # Compute libraries that are listed more than once in $predeps
@@ -6085,7 +7532,7 @@ func_mode_link ()
          case $file in
          *.la) ;;
          *)
-           func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
+           func_fatal_help "libraries can '-dlopen' only libtool libraries: $file"
            ;;
          esac
        done
@@ -6093,7 +7540,7 @@ func_mode_link ()
     prog)
        compile_deplibs=
        finalize_deplibs=
-       alldeplibs=no
+       alldeplibs=false
        newdlfiles=
        newdlprefiles=
        passes="conv scan dlopen dlpreopen link"
@@ -6105,32 +7552,32 @@ func_mode_link ()
     for pass in $passes; do
       # The preopen pass in lib mode reverses $deplibs; put it back here
       # so that -L comes before libs that need it for instance...
-      if test "$linkmode,$pass" = "lib,link"; then
+      if test lib,link = "$linkmode,$pass"; then
        ## FIXME: Find the place where the list is rebuilt in the wrong
        ##        order, and fix it there properly
         tmp_deplibs=
        for deplib in $deplibs; do
          tmp_deplibs="$deplib $tmp_deplibs"
        done
-       deplibs="$tmp_deplibs"
+       deplibs=$tmp_deplibs
       fi
 
-      if test "$linkmode,$pass" = "lib,link" ||
-        test "$linkmode,$pass" = "prog,scan"; then
-       libs="$deplibs"
+      if test lib,link = "$linkmode,$pass" ||
+        test prog,scan = "$linkmode,$pass"; then
+       libs=$deplibs
        deplibs=
       fi
-      if test "$linkmode" = prog; then
+      if test prog = "$linkmode"; then
        case $pass in
-       dlopen) libs="$dlfiles" ;;
-       dlpreopen) libs="$dlprefiles" ;;
+       dlopen) libs=$dlfiles ;;
+       dlpreopen) libs=$dlprefiles ;;
        link)
          libs="$deplibs %DEPLIBS%"
          test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
          ;;
        esac
       fi
-      if test "$linkmode,$pass" = "lib,dlpreopen"; then
+      if test lib,dlpreopen = "$linkmode,$pass"; then
        # Collect and forward deplibs of preopened libtool libs
        for lib in $dlprefiles; do
          # Ignore non-libtool-libs
@@ -6151,26 +7598,26 @@ func_mode_link ()
            esac
          done
        done
-       libs="$dlprefiles"
+       libs=$dlprefiles
       fi
-      if test "$pass" = dlopen; then
+      if test dlopen = "$pass"; then
        # Collect dlpreopened libraries
-       save_deplibs="$deplibs"
+       save_deplibs=$deplibs
        deplibs=
       fi
 
       for deplib in $libs; do
        lib=
-       found=no
+       found=false
        case $deplib in
        -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
         |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
-         if test "$linkmode,$pass" = "prog,link"; then
+         if test prog,link = "$linkmode,$pass"; then
            compile_deplibs="$deplib $compile_deplibs"
            finalize_deplibs="$deplib $finalize_deplibs"
          else
            func_append compiler_flags " $deplib"
-           if test "$linkmode" = lib ; then
+           if test lib = "$linkmode"; then
                case "$new_inherited_linker_flags " in
                    *" $deplib "*) ;;
                    * ) func_append new_inherited_linker_flags " $deplib" ;;
@@ -6180,13 +7627,13 @@ func_mode_link ()
          continue
          ;;
        -l*)
-         if test "$linkmode" != lib && test "$linkmode" != prog; then
-           func_warning "\`-l' is ignored for archives/objects"
+         if test lib != "$linkmode" && test prog != "$linkmode"; then
+           func_warning "'-l' is ignored for archives/objects"
            continue
          fi
          func_stripname '-l' '' "$deplib"
          name=$func_stripname_result
-         if test "$linkmode" = lib; then
+         if test lib = "$linkmode"; then
            searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
          else
            searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
@@ -6194,31 +7641,22 @@ func_mode_link ()
          for searchdir in $searchdirs; do
            for search_ext in .la $std_shrext .so .a; do
              # Search the libtool library
-             lib="$searchdir/lib${name}${search_ext}"
+             lib=$searchdir/lib$name$search_ext
              if test -f "$lib"; then
-               if test "$search_ext" = ".la"; then
-                 found=yes
+               if test .la = "$search_ext"; then
+                 found=:
                else
-                 found=no
+                 found=false
                fi
                break 2
              fi
            done
          done
-         if test "$found" != yes; then
-           # deplib doesn't seem to be a libtool library
-           if test "$linkmode,$pass" = "prog,link"; then
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           else
-             deplibs="$deplib $deplibs"
-             test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-           fi
-           continue
-         else # deplib is a libtool library
+         if $found; then
+           # deplib is a libtool library
            # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
            # We need to do some special things here, and not later.
-           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+           if test yes = "$allow_libtool_libs_with_static_runtimes"; then
              case " $predeps $postdeps " in
              *" $deplib "*)
                if func_lalib_p "$lib"; then
@@ -6226,19 +7664,19 @@ func_mode_link ()
                  old_library=
                  func_source "$lib"
                  for l in $old_library $library_names; do
-                   ll="$l"
+                   ll=$l
                  done
-                 if test "X$ll" = "X$old_library" ; then # only static version available
-                   found=no
+                 if test "X$ll" = "X$old_library"; then # only static version available
+                   found=false
                    func_dirname "$lib" "" "."
-                   ladir="$func_dirname_result"
+                   ladir=$func_dirname_result
                    lib=$ladir/$old_library
-                   if test "$linkmode,$pass" = "prog,link"; then
+                   if test prog,link = "$linkmode,$pass"; then
                      compile_deplibs="$deplib $compile_deplibs"
                      finalize_deplibs="$deplib $finalize_deplibs"
                    else
                      deplibs="$deplib $deplibs"
-                     test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+                     test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
                    fi
                    continue
                  fi
@@ -6247,15 +7685,25 @@ func_mode_link ()
              *) ;;
              esac
            fi
+         else
+           # deplib doesn't seem to be a libtool library
+           if test prog,link = "$linkmode,$pass"; then
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           else
+             deplibs="$deplib $deplibs"
+             test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
+           fi
+           continue
          fi
          ;; # -l
        *.ltframework)
-         if test "$linkmode,$pass" = "prog,link"; then
+         if test prog,link = "$linkmode,$pass"; then
            compile_deplibs="$deplib $compile_deplibs"
            finalize_deplibs="$deplib $finalize_deplibs"
          else
            deplibs="$deplib $deplibs"
-           if test "$linkmode" = lib ; then
+           if test lib = "$linkmode"; then
                case "$new_inherited_linker_flags " in
                    *" $deplib "*) ;;
                    * ) func_append new_inherited_linker_flags " $deplib" ;;
@@ -6268,18 +7716,18 @@ func_mode_link ()
          case $linkmode in
          lib)
            deplibs="$deplib $deplibs"
-           test "$pass" = conv && continue
+           test conv = "$pass" && continue
            newdependency_libs="$deplib $newdependency_libs"
            func_stripname '-L' '' "$deplib"
            func_resolve_sysroot "$func_stripname_result"
            func_append newlib_search_path " $func_resolve_sysroot_result"
            ;;
          prog)
-           if test "$pass" = conv; then
+           if test conv = "$pass"; then
              deplibs="$deplib $deplibs"
              continue
            fi
-           if test "$pass" = scan; then
+           if test scan = "$pass"; then
              deplibs="$deplib $deplibs"
            else
              compile_deplibs="$deplib $compile_deplibs"
@@ -6290,13 +7738,13 @@ func_mode_link ()
            func_append newlib_search_path " $func_resolve_sysroot_result"
            ;;
          *)
-           func_warning "\`-L' is ignored for archives/objects"
+           func_warning "'-L' is ignored for archives/objects"
            ;;
          esac # linkmode
          continue
          ;; # -L
        -R*)
-         if test "$pass" = link; then
+         if test link = "$pass"; then
            func_stripname '-R' '' "$deplib"
            func_resolve_sysroot "$func_stripname_result"
            dir=$func_resolve_sysroot_result
@@ -6314,7 +7762,7 @@ func_mode_link ()
          lib=$func_resolve_sysroot_result
          ;;
        *.$libext)
-         if test "$pass" = conv; then
+         if test conv = "$pass"; then
            deplibs="$deplib $deplibs"
            continue
          fi
@@ -6325,21 +7773,26 @@ func_mode_link ()
            case " $dlpreconveniencelibs " in
            *" $deplib "*) ;;
            *)
-             valid_a_lib=no
+             valid_a_lib=false
              case $deplibs_check_method in
                match_pattern*)
                  set dummy $deplibs_check_method; shift
                  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
                  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
                    | $EGREP "$match_pattern_regex" > /dev/null; then
-                   valid_a_lib=yes
+                   valid_a_lib=:
                  fi
                ;;
                pass_all)
-                 valid_a_lib=yes
+                 valid_a_lib=:
                ;;
              esac
-             if test "$valid_a_lib" != yes; then
+             if $valid_a_lib; then
+               echo
+               $ECHO "*** Warning: Linking the shared library $output against the"
+               $ECHO "*** static library $deplib is not portable!"
+               deplibs="$deplib $deplibs"
+             else
                echo
                $ECHO "*** Warning: Trying to link with static lib archive $deplib."
                echo "*** I have the capability to make that library automatically link in when"
@@ -6347,18 +7800,13 @@ func_mode_link ()
                echo "*** shared version of the library, which you do not appear to have"
                echo "*** because the file extensions .$libext of this argument makes me believe"
                echo "*** that it is just a static archive that I should not use here."
-             else
-               echo
-               $ECHO "*** Warning: Linking the shared library $output against the"
-               $ECHO "*** static library $deplib is not portable!"
-               deplibs="$deplib $deplibs"
              fi
              ;;
            esac
            continue
            ;;
          prog)
-           if test "$pass" != link; then
+           if test link != "$pass"; then
              deplibs="$deplib $deplibs"
            else
              compile_deplibs="$deplib $compile_deplibs"
@@ -6369,10 +7817,10 @@ func_mode_link ()
          esac # linkmode
          ;; # *.$libext
        *.lo | *.$objext)
-         if test "$pass" = conv; then
+         if test conv = "$pass"; then
            deplibs="$deplib $deplibs"
-         elif test "$linkmode" = prog; then
-           if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+         elif test prog = "$linkmode"; then
+           if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then
              # If there is no dlopen support or we're linking statically,
              # we need to preload.
              func_append newdlprefiles " $deplib"
@@ -6385,22 +7833,20 @@ func_mode_link ()
          continue
          ;;
        %DEPLIBS%)
-         alldeplibs=yes
+         alldeplibs=:
          continue
          ;;
        esac # case $deplib
 
-       if test "$found" = yes || test -f "$lib"; then :
-       else
-         func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
-       fi
+       $found || test -f "$lib" \
+         || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'"
 
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$lib" \
-         || func_fatal_error "\`$lib' is not a valid libtool archive"
+         || func_fatal_error "'$lib' is not a valid libtool archive"
 
        func_dirname "$lib" "" "."
-       ladir="$func_dirname_result"
+       ladir=$func_dirname_result
 
        dlname=
        dlopen=
@@ -6430,19 +7876,19 @@ func_mode_link ()
          done
        fi
        dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-       if test "$linkmode,$pass" = "lib,link" ||
-          test "$linkmode,$pass" = "prog,scan" ||
-          { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+       if test lib,link = "$linkmode,$pass" ||
+          test prog,scan = "$linkmode,$pass" ||
+          { test prog != "$linkmode" && test lib != "$linkmode"; }; then
          test -n "$dlopen" && func_append dlfiles " $dlopen"
          test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
        fi
 
-       if test "$pass" = conv; then
+       if test conv = "$pass"; then
          # Only check for convenience libraries
          deplibs="$lib $deplibs"
          if test -z "$libdir"; then
            if test -z "$old_library"; then
-             func_fatal_error "cannot find name of link library for \`$lib'"
+             func_fatal_error "cannot find name of link library for '$lib'"
            fi
            # It is a libtool convenience library, so add in its objects.
            func_append convenience " $ladir/$objdir/$old_library"
@@ -6450,15 +7896,15 @@ func_mode_link ()
            tmp_libs=
            for deplib in $dependency_libs; do
              deplibs="$deplib $deplibs"
-             if $opt_preserve_dup_deps ; then
+             if $opt_preserve_dup_deps; then
                case "$tmp_libs " in
                *" $deplib "*) func_append specialdeplibs " $deplib" ;;
                esac
              fi
              func_append tmp_libs " $deplib"
            done
-         elif test "$linkmode" != prog && test "$linkmode" != lib; then
-           func_fatal_error "\`$lib' is not a convenience library"
+         elif test prog != "$linkmode" && test lib != "$linkmode"; then
+           func_fatal_error "'$lib' is not a convenience library"
          fi
          continue
        fi # $pass = conv
@@ -6467,26 +7913,26 @@ func_mode_link ()
        # Get the name of the library we link against.
        linklib=
        if test -n "$old_library" &&
-          { test "$prefer_static_libs" = yes ||
-            test "$prefer_static_libs,$installed" = "built,no"; }; then
+          { test yes = "$prefer_static_libs" ||
+            test built,no = "$prefer_static_libs,$installed"; }; then
          linklib=$old_library
        else
          for l in $old_library $library_names; do
-           linklib="$l"
+           linklib=$l
          done
        fi
        if test -z "$linklib"; then
-         func_fatal_error "cannot find name of link library for \`$lib'"
+         func_fatal_error "cannot find name of link library for '$lib'"
        fi
 
        # This library was specified with -dlopen.
-       if test "$pass" = dlopen; then
-         if test -z "$libdir"; then
-           func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
-         fi
+       if test dlopen = "$pass"; then
+         test -z "$libdir" \
+           && func_fatal_error "cannot -dlopen a convenience library: '$lib'"
          if test -z "$dlname" ||
-            test "$dlopen_support" != yes ||
-            test "$build_libtool_libs" = no; then
+            test yes != "$dlopen_support" ||
+            test no = "$build_libtool_libs"
+         then
            # If there is no dlname, no dlopen support or we're linking
            # statically, we need to preload.  We also need to preload any
            # dependent libraries so libltdl's deplib preloader doesn't
@@ -6500,40 +7946,40 @@ func_mode_link ()
 
        # We need an absolute path.
        case $ladir in
-       [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+       [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;;
        *)
          abs_ladir=`cd "$ladir" && pwd`
          if test -z "$abs_ladir"; then
-           func_warning "cannot determine absolute directory name of \`$ladir'"
+           func_warning "cannot determine absolute directory name of '$ladir'"
            func_warning "passing it literally to the linker, although it might fail"
-           abs_ladir="$ladir"
+           abs_ladir=$ladir
          fi
          ;;
        esac
        func_basename "$lib"
-       laname="$func_basename_result"
+       laname=$func_basename_result
 
        # Find the relevant object directory and library name.
-       if test "X$installed" = Xyes; then
+       if test yes = "$installed"; then
          if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-           func_warning "library \`$lib' was moved."
-           dir="$ladir"
-           absdir="$abs_ladir"
-           libdir="$abs_ladir"
+           func_warning "library '$lib' was moved."
+           dir=$ladir
+           absdir=$abs_ladir
+           libdir=$abs_ladir
          else
-           dir="$lt_sysroot$libdir"
-           absdir="$lt_sysroot$libdir"
+           dir=$lt_sysroot$libdir
+           absdir=$lt_sysroot$libdir
          fi
-         test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+         test yes = "$hardcode_automatic" && avoidtemprpath=yes
        else
          if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-           dir="$ladir"
-           absdir="$abs_ladir"
+           dir=$ladir
+           absdir=$abs_ladir
            # Remove this search path later
            func_append notinst_path " $abs_ladir"
          else
-           dir="$ladir/$objdir"
-           absdir="$abs_ladir/$objdir"
+           dir=$ladir/$objdir
+           absdir=$abs_ladir/$objdir
            # Remove this search path later
            func_append notinst_path " $abs_ladir"
          fi
@@ -6542,11 +7988,11 @@ func_mode_link ()
        name=$func_stripname_result
 
        # This library was specified with -dlpreopen.
-       if test "$pass" = dlpreopen; then
-         if test -z "$libdir" && test "$linkmode" = prog; then
-           func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
+       if test dlpreopen = "$pass"; then
+         if test -z "$libdir" && test prog = "$linkmode"; then
+           func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'"
          fi
-         case "$host" in
+         case $host in
            # special handling for platforms with PE-DLLs.
            *cygwin* | *mingw* | *cegcc* )
              # Linker will automatically link against shared library if both
@@ -6590,9 +8036,9 @@ func_mode_link ()
 
        if test -z "$libdir"; then
          # Link the convenience library
-         if test "$linkmode" = lib; then
+         if test lib = "$linkmode"; then
            deplibs="$dir/$old_library $deplibs"
-         elif test "$linkmode,$pass" = "prog,link"; then
+         elif test prog,link = "$linkmode,$pass"; then
            compile_deplibs="$dir/$old_library $compile_deplibs"
            finalize_deplibs="$dir/$old_library $finalize_deplibs"
          else
@@ -6602,14 +8048,14 @@ func_mode_link ()
        fi
 
 
-       if test "$linkmode" = prog && test "$pass" != link; then
+       if test prog = "$linkmode" && test link != "$pass"; then
          func_append newlib_search_path " $ladir"
          deplibs="$lib $deplibs"
 
-         linkalldeplibs=no
-         if test "$link_all_deplibs" != no || test -z "$library_names" ||
-            test "$build_libtool_libs" = no; then
-           linkalldeplibs=yes
+         linkalldeplibs=false
+         if test no != "$link_all_deplibs" || test -z "$library_names" ||
+            test no = "$build_libtool_libs"; then
+           linkalldeplibs=:
          fi
 
          tmp_libs=
@@ -6621,14 +8067,14 @@ func_mode_link ()
                 ;;
            esac
            # Need to link against all dependency_libs?
-           if test "$linkalldeplibs" = yes; then
+           if $linkalldeplibs; then
              deplibs="$deplib $deplibs"
            else
              # Need to hardcode shared library paths
              # or/and link against static libraries
              newdependency_libs="$deplib $newdependency_libs"
            fi
-           if $opt_preserve_dup_deps ; then
+           if $opt_preserve_dup_deps; then
              case "$tmp_libs " in
              *" $deplib "*) func_append specialdeplibs " $deplib" ;;
              esac
@@ -6638,15 +8084,15 @@ func_mode_link ()
          continue
        fi # $linkmode = prog...
 
-       if test "$linkmode,$pass" = "prog,link"; then
+       if test prog,link = "$linkmode,$pass"; then
          if test -n "$library_names" &&
-            { { test "$prefer_static_libs" = no ||
-                test "$prefer_static_libs,$installed" = "built,yes"; } ||
+            { { test no = "$prefer_static_libs" ||
+                test built,yes = "$prefer_static_libs,$installed"; } ||
               test -z "$old_library"; }; then
            # We need to hardcode the library path
-           if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+           if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then
              # Make sure the rpath contains only unique directories.
-             case "$temp_rpath:" in
+             case $temp_rpath: in
              *"$absdir:"*) ;;
              *) func_append temp_rpath "$absdir:" ;;
              esac
@@ -6675,9 +8121,9 @@ func_mode_link ()
            esac
          fi # $linkmode,$pass = prog,link...
 
-         if test "$alldeplibs" = yes &&
-            { test "$deplibs_check_method" = pass_all ||
-              { test "$build_libtool_libs" = yes &&
+         if $alldeplibs &&
+            { test pass_all = "$deplibs_check_method" ||
+              { test yes = "$build_libtool_libs" &&
                 test -n "$library_names"; }; }; then
            # We only need to search for static libraries
            continue
@@ -6686,19 +8132,19 @@ func_mode_link ()
 
        link_static=no # Whether the deplib will be linked statically
        use_static_libs=$prefer_static_libs
-       if test "$use_static_libs" = built && test "$installed" = yes; then
+       if test built = "$use_static_libs" && test yes = "$installed"; then
          use_static_libs=no
        fi
        if test -n "$library_names" &&
-          { test "$use_static_libs" = no || test -z "$old_library"; }; then
+          { test no = "$use_static_libs" || test -z "$old_library"; }; then
          case $host in
-         *cygwin* | *mingw* | *cegcc*)
+         *cygwin* | *mingw* | *cegcc* | *os2*)
              # No point in relinking DLLs because paths are not encoded
              func_append notinst_deplibs " $lib"
              need_relink=no
            ;;
          *)
-           if test "$installed" = no; then
+           if test no = "$installed"; then
              func_append notinst_deplibs " $lib"
              need_relink=yes
            fi
@@ -6708,24 +8154,24 @@ func_mode_link ()
 
          # Warn about portability, can't link against -module's on some
          # systems (darwin).  Don't bleat about dlopened modules though!
-         dlopenmodule=""
+         dlopenmodule=
          for dlpremoduletest in $dlprefiles; do
            if test "X$dlpremoduletest" = "X$lib"; then
-             dlopenmodule="$dlpremoduletest"
+             dlopenmodule=$dlpremoduletest
              break
            fi
          done
-         if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
+         if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then
            echo
-           if test "$linkmode" = prog; then
+           if test prog = "$linkmode"; then
              $ECHO "*** Warning: Linking the executable $output against the loadable module"
            else
              $ECHO "*** Warning: Linking the shared library $output against the loadable module"
            fi
            $ECHO "*** $linklib is not portable!"
          fi
-         if test "$linkmode" = lib &&
-            test "$hardcode_into_libs" = yes; then
+         if test lib = "$linkmode" &&
+            test yes = "$hardcode_into_libs"; then
            # Hardcode the library path.
            # Skip directories that are in the system default run-time
            # search path.
@@ -6753,43 +8199,43 @@ func_mode_link ()
            # figure out the soname
            set dummy $library_names
            shift
-           realname="$1"
+           realname=$1
            shift
            libname=`eval "\\$ECHO \"$libname_spec\""`
            # use dlname if we got it. it's perfectly good, no?
            if test -n "$dlname"; then
-             soname="$dlname"
+             soname=$dlname
            elif test -n "$soname_spec"; then
              # bleh windows
              case $host in
-             *cygwin* | mingw* | *cegcc*)
+             *cygwin* | mingw* | *cegcc* | *os2*)
                func_arith $current - $age
                major=$func_arith_result
-               versuffix="-$major"
+               versuffix=-$major
                ;;
              esac
              eval soname=\"$soname_spec\"
            else
-             soname="$realname"
+             soname=$realname
            fi
 
            # Make a new name for the extract_expsyms_cmds to use
-           soroot="$soname"
+           soroot=$soname
            func_basename "$soroot"
-           soname="$func_basename_result"
+           soname=$func_basename_result
            func_stripname 'lib' '.dll' "$soname"
            newlib=libimp-$func_stripname_result.a
 
            # If the library has no export list, then create one now
            if test -f "$output_objdir/$soname-def"; then :
            else
-             func_verbose "extracting exported symbol list from \`$soname'"
+             func_verbose "extracting exported symbol list from '$soname'"
              func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
            fi
 
            # Create $newlib
            if test -f "$output_objdir/$newlib"; then :; else
-             func_verbose "generating import library for \`$soname'"
+             func_verbose "generating import library for '$soname'"
              func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
            fi
            # make sure the library variables are pointing to the new library
@@ -6797,58 +8243,58 @@ func_mode_link ()
            linklib=$newlib
          fi # test -n "$old_archive_from_expsyms_cmds"
 
-         if test "$linkmode" = prog || test "$opt_mode" != relink; then
+         if test prog = "$linkmode" || test relink != "$opt_mode"; then
            add_shlibpath=
            add_dir=
            add=
            lib_linked=yes
            case $hardcode_action in
            immediate | unsupported)
-             if test "$hardcode_direct" = no; then
-               add="$dir/$linklib"
+             if test no = "$hardcode_direct"; then
+               add=$dir/$linklib
                case $host in
-                 *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
-                 *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+                 *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
+                 *-*-sysv4*uw2*) add_dir=-L$dir ;;
                  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
-                   *-*-unixware7*) add_dir="-L$dir" ;;
+                   *-*-unixware7*) add_dir=-L$dir ;;
                  *-*-darwin* )
-                   # if the lib is a (non-dlopened) module then we can not
+                   # if the lib is a (non-dlopened) module then we cannot
                    # link against it, someone is ignoring the earlier warnings
                    if /usr/bin/file -L $add 2> /dev/null |
-                        $GREP ": [^:]* bundle" >/dev/null ; then
+                        $GREP ": [^:]* bundle" >/dev/null; then
                      if test "X$dlopenmodule" != "X$lib"; then
                        $ECHO "*** Warning: lib $linklib is a module, not a shared library"
-                       if test -z "$old_library" ; then
+                       if test -z "$old_library"; then
                          echo
                          echo "*** And there doesn't seem to be a static archive available"
                          echo "*** The link will probably fail, sorry"
                        else
-                         add="$dir/$old_library"
+                         add=$dir/$old_library
                        fi
                      elif test -n "$old_library"; then
-                       add="$dir/$old_library"
+                       add=$dir/$old_library
                      fi
                    fi
                esac
-             elif test "$hardcode_minus_L" = no; then
+             elif test no = "$hardcode_minus_L"; then
                case $host in
-               *-*-sunos*) add_shlibpath="$dir" ;;
+               *-*-sunos*) add_shlibpath=$dir ;;
                esac
-               add_dir="-L$dir"
-               add="-l$name"
-             elif test "$hardcode_shlibpath_var" = no; then
-               add_shlibpath="$dir"
-               add="-l$name"
+               add_dir=-L$dir
+               add=-l$name
+             elif test no = "$hardcode_shlibpath_var"; then
+               add_shlibpath=$dir
+               add=-l$name
              else
                lib_linked=no
              fi
              ;;
            relink)
-             if test "$hardcode_direct" = yes &&
-                test "$hardcode_direct_absolute" = no; then
-               add="$dir/$linklib"
-             elif test "$hardcode_minus_L" = yes; then
-               add_dir="-L$absdir"
+             if test yes = "$hardcode_direct" &&
+                test no = "$hardcode_direct_absolute"; then
+               add=$dir/$linklib
+             elif test yes = "$hardcode_minus_L"; then
+               add_dir=-L$absdir
                # Try looking first in the location we're being installed to.
                if test -n "$inst_prefix_dir"; then
                  case $libdir in
@@ -6857,10 +8303,10 @@ func_mode_link ()
                      ;;
                  esac
                fi
-               add="-l$name"
-             elif test "$hardcode_shlibpath_var" = yes; then
-               add_shlibpath="$dir"
-               add="-l$name"
+               add=-l$name
+             elif test yes = "$hardcode_shlibpath_var"; then
+               add_shlibpath=$dir
+               add=-l$name
              else
                lib_linked=no
              fi
@@ -6868,7 +8314,7 @@ func_mode_link ()
            *) lib_linked=no ;;
            esac
 
-           if test "$lib_linked" != yes; then
+           if test yes != "$lib_linked"; then
              func_fatal_configuration "unsupported hardcode properties"
            fi
 
@@ -6878,15 +8324,15 @@ func_mode_link ()
              *) func_append compile_shlibpath "$add_shlibpath:" ;;
              esac
            fi
-           if test "$linkmode" = prog; then
+           if test prog = "$linkmode"; then
              test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
              test -n "$add" && compile_deplibs="$add $compile_deplibs"
            else
              test -n "$add_dir" && deplibs="$add_dir $deplibs"
              test -n "$add" && deplibs="$add $deplibs"
-             if test "$hardcode_direct" != yes &&
-                test "$hardcode_minus_L" != yes &&
-                test "$hardcode_shlibpath_var" = yes; then
+             if test yes != "$hardcode_direct" &&
+                test yes != "$hardcode_minus_L" &&
+                test yes = "$hardcode_shlibpath_var"; then
                case :$finalize_shlibpath: in
                *":$libdir:"*) ;;
                *) func_append finalize_shlibpath "$libdir:" ;;
@@ -6895,33 +8341,33 @@ func_mode_link ()
            fi
          fi
 
-         if test "$linkmode" = prog || test "$opt_mode" = relink; then
+         if test prog = "$linkmode" || test relink = "$opt_mode"; then
            add_shlibpath=
            add_dir=
            add=
            # Finalize command for both is simple: just hardcode it.
-           if test "$hardcode_direct" = yes &&
-              test "$hardcode_direct_absolute" = no; then
-             add="$libdir/$linklib"
-           elif test "$hardcode_minus_L" = yes; then
-             add_dir="-L$libdir"
-             add="-l$name"
-           elif test "$hardcode_shlibpath_var" = yes; then
+           if test yes = "$hardcode_direct" &&
+              test no = "$hardcode_direct_absolute"; then
+             add=$libdir/$linklib
+           elif test yes = "$hardcode_minus_L"; then
+             add_dir=-L$libdir
+             add=-l$name
+           elif test yes = "$hardcode_shlibpath_var"; then
              case :$finalize_shlibpath: in
              *":$libdir:"*) ;;
              *) func_append finalize_shlibpath "$libdir:" ;;
              esac
-             add="-l$name"
-           elif test "$hardcode_automatic" = yes; then
+             add=-l$name
+           elif test yes = "$hardcode_automatic"; then
              if test -n "$inst_prefix_dir" &&
-                test -f "$inst_prefix_dir$libdir/$linklib" ; then
-               add="$inst_prefix_dir$libdir/$linklib"
+                test -f "$inst_prefix_dir$libdir/$linklib"; then
+               add=$inst_prefix_dir$libdir/$linklib
              else
-               add="$libdir/$linklib"
+               add=$libdir/$linklib
              fi
            else
              # We cannot seem to hardcode it, guess we'll fake it.
-             add_dir="-L$libdir"
+             add_dir=-L$libdir
              # Try looking first in the location we're being installed to.
              if test -n "$inst_prefix_dir"; then
                case $libdir in
@@ -6930,10 +8376,10 @@ func_mode_link ()
                    ;;
                esac
              fi
-             add="-l$name"
+             add=-l$name
            fi
 
-           if test "$linkmode" = prog; then
+           if test prog = "$linkmode"; then
              test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
              test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
            else
@@ -6941,43 +8387,43 @@ func_mode_link ()
              test -n "$add" && deplibs="$add $deplibs"
            fi
          fi
-       elif test "$linkmode" = prog; then
+       elif test prog = "$linkmode"; then
          # Here we assume that one of hardcode_direct or hardcode_minus_L
          # is not unsupported.  This is valid on all known static and
          # shared platforms.
-         if test "$hardcode_direct" != unsupported; then
-           test -n "$old_library" && linklib="$old_library"
+         if test unsupported != "$hardcode_direct"; then
+           test -n "$old_library" && linklib=$old_library
            compile_deplibs="$dir/$linklib $compile_deplibs"
            finalize_deplibs="$dir/$linklib $finalize_deplibs"
          else
            compile_deplibs="-l$name -L$dir $compile_deplibs"
            finalize_deplibs="-l$name -L$dir $finalize_deplibs"
          fi
-       elif test "$build_libtool_libs" = yes; then
+       elif test yes = "$build_libtool_libs"; then
          # Not a shared library
-         if test "$deplibs_check_method" != pass_all; then
+         if test pass_all != "$deplibs_check_method"; then
            # We're trying link a shared library against a static one
            # but the system doesn't support it.
 
            # Just print a warning and add the library to dependency_libs so
            # that the program can be linked against the static library.
            echo
-           $ECHO "*** Warning: This system can not link to static lib archive $lib."
+           $ECHO "*** Warning: This system cannot link to static lib archive $lib."
            echo "*** I have the capability to make that library automatically link in when"
            echo "*** you link to this library.  But I can only do this if you have a"
            echo "*** shared version of the library, which you do not appear to have."
-           if test "$module" = yes; then
+           if test yes = "$module"; then
              echo "*** But as you try to build a module library, libtool will still create "
              echo "*** a static module, that should work as long as the dlopening application"
              echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
              if test -z "$global_symbol_pipe"; then
                echo
                echo "*** However, this would only work if libtool was able to extract symbol"
-               echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+               echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
                echo "*** not find such a program.  So, this module is probably useless."
-               echo "*** \`nm' from GNU binutils and a full rebuild may help."
+               echo "*** 'nm' from GNU binutils and a full rebuild may help."
              fi
-             if test "$build_old_libs" = no; then
+             if test no = "$build_old_libs"; then
                build_libtool_libs=module
                build_old_libs=yes
              else
@@ -6990,11 +8436,11 @@ func_mode_link ()
          fi
        fi # link shared/static library?
 
-       if test "$linkmode" = lib; then
+       if test lib = "$linkmode"; then
          if test -n "$dependency_libs" &&
-            { test "$hardcode_into_libs" != yes ||
-              test "$build_old_libs" = yes ||
-              test "$link_static" = yes; }; then
+            { test yes != "$hardcode_into_libs" ||
+              test yes = "$build_old_libs" ||
+              test yes = "$link_static"; }; then
            # Extract -R from dependency_libs
            temp_deplibs=
            for libdir in $dependency_libs; do
@@ -7008,12 +8454,12 @@ func_mode_link ()
              *) func_append temp_deplibs " $libdir";;
              esac
            done
-           dependency_libs="$temp_deplibs"
+           dependency_libs=$temp_deplibs
          fi
 
          func_append newlib_search_path " $absdir"
          # Link against this library
-         test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+         test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
          # ... and its dependency_libs
          tmp_libs=
          for deplib in $dependency_libs; do
@@ -7023,7 +8469,7 @@ func_mode_link ()
                    func_resolve_sysroot "$func_stripname_result";;
               *) func_resolve_sysroot "$deplib" ;;
             esac
-           if $opt_preserve_dup_deps ; then
+           if $opt_preserve_dup_deps; then
              case "$tmp_libs " in
              *" $func_resolve_sysroot_result "*)
                 func_append specialdeplibs " $func_resolve_sysroot_result" ;;
@@ -7032,12 +8478,12 @@ func_mode_link ()
            func_append tmp_libs " $func_resolve_sysroot_result"
          done
 
-         if test "$link_all_deplibs" != no; then
+         if test no != "$link_all_deplibs"; then
            # Add the search paths of all dependency libraries
            for deplib in $dependency_libs; do
              path=
              case $deplib in
-             -L*) path="$deplib" ;;
+             -L*) path=$deplib ;;
              *.la)
                func_resolve_sysroot "$deplib"
                deplib=$func_resolve_sysroot_result
@@ -7045,12 +8491,12 @@ func_mode_link ()
                dir=$func_dirname_result
                # We need an absolute path.
                case $dir in
-               [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+               [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;;
                *)
                  absdir=`cd "$dir" && pwd`
                  if test -z "$absdir"; then
-                   func_warning "cannot determine absolute directory name of \`$dir'"
-                   absdir="$dir"
+                   func_warning "cannot determine absolute directory name of '$dir'"
+                   absdir=$dir
                  fi
                  ;;
                esac
@@ -7058,35 +8504,35 @@ func_mode_link ()
                case $host in
                *-*-darwin*)
                  depdepl=
-                 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-                 if test -n "$deplibrary_names" ; then
-                   for tmp in $deplibrary_names ; do
+                 eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+                 if test -n "$deplibrary_names"; then
+                   for tmp in $deplibrary_names; do
                      depdepl=$tmp
                    done
-                   if test -f "$absdir/$objdir/$depdepl" ; then
-                     depdepl="$absdir/$objdir/$depdepl"
-                     darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+                   if test -f "$absdir/$objdir/$depdepl"; then
+                     depdepl=$absdir/$objdir/$depdepl
+                     darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
                       if test -z "$darwin_install_name"; then
-                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
+                          darwin_install_name=`$OTOOL64 -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
                       fi
-                     func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-                     func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
+                     func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl"
+                     func_append linker_flags " -dylib_file $darwin_install_name:$depdepl"
                      path=
                    fi
                  fi
                  ;;
                *)
-                 path="-L$absdir/$objdir"
+                 path=-L$absdir/$objdir
                  ;;
                esac
                else
-                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+                 eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
                  test -z "$libdir" && \
-                   func_fatal_error "\`$deplib' is not a valid libtool archive"
+                   func_fatal_error "'$deplib' is not a valid libtool archive"
                  test "$absdir" != "$libdir" && \
-                   func_warning "\`$deplib' seems to be moved"
+                   func_warning "'$deplib' seems to be moved"
 
-                 path="-L$absdir"
+                 path=-L$absdir
                fi
                ;;
              esac
@@ -7098,23 +8544,23 @@ func_mode_link ()
          fi # link_all_deplibs != no
        fi # linkmode = lib
       done # for deplib in $libs
-      if test "$pass" = link; then
-       if test "$linkmode" = "prog"; then
+      if test link = "$pass"; then
+       if test prog = "$linkmode"; then
          compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
          finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
        else
          compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
        fi
       fi
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
+      dependency_libs=$newdependency_libs
+      if test dlpreopen = "$pass"; then
        # Link the dlpreopened libraries before other libraries
        for deplib in $save_deplibs; do
          deplibs="$deplib $deplibs"
        done
       fi
-      if test "$pass" != dlopen; then
-       if test "$pass" != conv; then
+      if test dlopen != "$pass"; then
+       test conv = "$pass" || {
          # Make sure lib_search_path contains only unique directories.
          lib_search_path=
          for dir in $newlib_search_path; do
@@ -7124,12 +8570,12 @@ func_mode_link ()
            esac
          done
          newlib_search_path=
-       fi
+       }
 
-       if test "$linkmode,$pass" != "prog,link"; then
-         vars="deplibs"
-       else
+       if test prog,link = "$linkmode,$pass"; then
          vars="compile_deplibs finalize_deplibs"
+       else
+         vars=deplibs
        fi
        for var in $vars dependency_libs; do
          # Add libraries to $var in reverse order
@@ -7187,62 +8633,93 @@ func_mode_link ()
          eval $var=\"$tmp_libs\"
        done # for var
       fi
+
+      # Add Sun CC postdeps if required:
+      test CXX = "$tagname" && {
+        case $host_os in
+        linux*)
+          case `$CC -V 2>&1 | sed 5q` in
+          *Sun\ C*) # Sun C++ 5.9
+            func_suncc_cstd_abi
+
+            if test no != "$suncc_use_cstd_abi"; then
+              func_append postdeps ' -library=Cstd -library=Crun'
+            fi
+            ;;
+          esac
+          ;;
+
+        solaris*)
+          func_cc_basename "$CC"
+          case $func_cc_basename_result in
+          CC* | sunCC*)
+            func_suncc_cstd_abi
+
+            if test no != "$suncc_use_cstd_abi"; then
+              func_append postdeps ' -library=Cstd -library=Crun'
+            fi
+            ;;
+          esac
+          ;;
+        esac
+      }
+
       # Last step: remove runtime libs from dependency_libs
       # (they stay in deplibs)
       tmp_libs=
-      for i in $dependency_libs ; do
+      for i in $dependency_libs; do
        case " $predeps $postdeps $compiler_lib_search_path " in
        *" $i "*)
-         i=""
+         i=
          ;;
        esac
-       if test -n "$i" ; then
+       if test -n "$i"; then
          func_append tmp_libs " $i"
        fi
       done
       dependency_libs=$tmp_libs
     done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
+    if test prog = "$linkmode"; then
+      dlfiles=$newdlfiles
     fi
-    if test "$linkmode" = prog || test "$linkmode" = lib; then
-      dlprefiles="$newdlprefiles"
+    if test prog = "$linkmode" || test lib = "$linkmode"; then
+      dlprefiles=$newdlprefiles
     fi
 
     case $linkmode in
     oldlib)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       func_warning "\`-dlopen' is ignored for archives"
+      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+       func_warning "'-dlopen' is ignored for archives"
       fi
 
       case " $deplibs" in
       *\ -l* | *\ -L*)
-       func_warning "\`-l' and \`-L' are ignored for archives" ;;
+       func_warning "'-l' and '-L' are ignored for archives" ;;
       esac
 
       test -n "$rpath" && \
-       func_warning "\`-rpath' is ignored for archives"
+       func_warning "'-rpath' is ignored for archives"
 
       test -n "$xrpath" && \
-       func_warning "\`-R' is ignored for archives"
+       func_warning "'-R' is ignored for archives"
 
       test -n "$vinfo" && \
-       func_warning "\`-version-info/-version-number' is ignored for archives"
+       func_warning "'-version-info/-version-number' is ignored for archives"
 
       test -n "$release" && \
-       func_warning "\`-release' is ignored for archives"
+       func_warning "'-release' is ignored for archives"
 
       test -n "$export_symbols$export_symbols_regex" && \
-       func_warning "\`-export-symbols' is ignored for archives"
+       func_warning "'-export-symbols' is ignored for archives"
 
       # Now set the variables for building old libraries.
       build_libtool_libs=no
-      oldlibs="$output"
+      oldlibs=$output
       func_append objs "$old_deplibs"
       ;;
 
     lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
+      # Make sure we only generate libraries of the form 'libNAME.la'.
       case $outputname in
       lib*)
        func_stripname 'lib' '.la' "$outputname"
@@ -7251,10 +8728,10 @@ func_mode_link ()
        eval libname=\"$libname_spec\"
        ;;
       *)
-       test "$module" = no && \
-         func_fatal_help "libtool library \`$output' must begin with \`lib'"
+       test no = "$module" \
+         && func_fatal_help "libtool library '$output' must begin with 'lib'"
 
-       if test "$need_lib_prefix" != no; then
+       if test no != "$need_lib_prefix"; then
          # Add the "lib" prefix for modules if required
          func_stripname '' '.la' "$outputname"
          name=$func_stripname_result
@@ -7268,8 +8745,8 @@ func_mode_link ()
       esac
 
       if test -n "$objs"; then
-       if test "$deplibs_check_method" != pass_all; then
-         func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
+       if test pass_all != "$deplibs_check_method"; then
+         func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs"
        else
          echo
          $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
@@ -7278,21 +8755,21 @@ func_mode_link ()
        fi
       fi
 
-      test "$dlself" != no && \
-       func_warning "\`-dlopen self' is ignored for libtool libraries"
+      test no = "$dlself" \
+       || func_warning "'-dlopen self' is ignored for libtool libraries"
 
       set dummy $rpath
       shift
-      test "$#" -gt 1 && \
-       func_warning "ignoring multiple \`-rpath's for a libtool library"
+      test 1 -lt "$#" \
+       && func_warning "ignoring multiple '-rpath's for a libtool library"
 
-      install_libdir="$1"
+      install_libdir=$1
 
       oldlibs=
       if test -z "$rpath"; then
-       if test "$build_libtool_libs" = yes; then
+       if test yes = "$build_libtool_libs"; then
          # Building a libtool convenience library.
-         # Some compilers have problems with a `.al' extension so
+         # Some compilers have problems with a '.al' extension so
          # convenience libraries should have the same extension an
          # archive normally would.
          oldlibs="$output_objdir/$libname.$libext $oldlibs"
@@ -7301,20 +8778,20 @@ func_mode_link ()
        fi
 
        test -n "$vinfo" && \
-         func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
+         func_warning "'-version-info/-version-number' is ignored for convenience libraries"
 
        test -n "$release" && \
-         func_warning "\`-release' is ignored for convenience libraries"
+         func_warning "'-release' is ignored for convenience libraries"
       else
 
        # Parse the version information argument.
-       save_ifs="$IFS"; IFS=':'
+       save_ifs=$IFS; IFS=:
        set dummy $vinfo 0 0 0
        shift
-       IFS="$save_ifs"
+       IFS=$save_ifs
 
        test -n "$7" && \
-         func_fatal_help "too many parameters to \`-version-info'"
+         func_fatal_help "too many parameters to '-version-info'"
 
        # convert absolute version numbers to libtool ages
        # this retains compatibility with .la files and attempts
@@ -7322,45 +8799,45 @@ func_mode_link ()
 
        case $vinfo_number in
        yes)
-         number_major="$1"
-         number_minor="$2"
-         number_revision="$3"
+         number_major=$1
+         number_minor=$2
+         number_revision=$3
          #
          # There are really only two kinds -- those that
          # use the current revision as the major version
          # and those that subtract age and use age as
          # a minor version.  But, then there is irix
-         # which has an extra 1 added just for fun
+         # that has an extra 1 added just for fun
          #
          case $version_type in
          # correct linux to gnu/linux during the next big refactor
-         darwin|linux|osf|windows|none)
+         darwin|freebsd-elf|linux|osf|windows|none)
            func_arith $number_major + $number_minor
            current=$func_arith_result
-           age="$number_minor"
-           revision="$number_revision"
+           age=$number_minor
+           revision=$number_revision
            ;;
-         freebsd-aout|freebsd-elf|qnx|sunos)
-           current="$number_major"
-           revision="$number_minor"
-           age="0"
+         freebsd-aout|qnx|sunos)
+           current=$number_major
+           revision=$number_minor
+           age=0
            ;;
          irix|nonstopux)
            func_arith $number_major + $number_minor
            current=$func_arith_result
-           age="$number_minor"
-           revision="$number_minor"
+           age=$number_minor
+           revision=$number_minor
            lt_irix_increment=no
            ;;
          *)
-           func_fatal_configuration "$modename: unknown library version type \`$version_type'"
+           func_fatal_configuration "$modename: unknown library version type '$version_type'"
            ;;
          esac
          ;;
        no)
-         current="$1"
-         revision="$2"
-         age="$3"
+         current=$1
+         revision=$2
+         age=$3
          ;;
        esac
 
@@ -7368,30 +8845,30 @@ func_mode_link ()
        case $current in
        0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
        *)
-         func_error "CURRENT \`$current' must be a nonnegative integer"
-         func_fatal_error "\`$vinfo' is not valid version information"
+         func_error "CURRENT '$current' must be a nonnegative integer"
+         func_fatal_error "'$vinfo' is not valid version information"
          ;;
        esac
 
        case $revision in
        0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
        *)
-         func_error "REVISION \`$revision' must be a nonnegative integer"
-         func_fatal_error "\`$vinfo' is not valid version information"
+         func_error "REVISION '$revision' must be a nonnegative integer"
+         func_fatal_error "'$vinfo' is not valid version information"
          ;;
        esac
 
        case $age in
        0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
        *)
-         func_error "AGE \`$age' must be a nonnegative integer"
-         func_fatal_error "\`$vinfo' is not valid version information"
+         func_error "AGE '$age' must be a nonnegative integer"
+         func_fatal_error "'$vinfo' is not valid version information"
          ;;
        esac
 
        if test "$age" -gt "$current"; then
-         func_error "AGE \`$age' is greater than the current interface number \`$current'"
-         func_fatal_error "\`$vinfo' is not valid version information"
+         func_error "AGE '$age' is greater than the current interface number '$current'"
+         func_fatal_error "'$vinfo' is not valid version information"
        fi
 
        # Calculate the version variables.
@@ -7406,26 +8883,36 @@ func_mode_link ()
          # verstring for coding it into the library header
          func_arith $current - $age
          major=.$func_arith_result
-         versuffix="$major.$age.$revision"
+         versuffix=$major.$age.$revision
          # Darwin ld doesn't like 0 for these options...
          func_arith $current + 1
          minor_current=$func_arith_result
-         xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+         xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
          verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+          # On Darwin other compilers
+          case $CC in
+              nagfor*)
+                  verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+                  ;;
+              *)
+                  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+                  ;;
+          esac
          ;;
 
        freebsd-aout)
-         major=".$current"
-         versuffix=".$current.$revision";
+         major=.$current
+         versuffix=.$current.$revision
          ;;
 
        freebsd-elf)
-         major=".$current"
-         versuffix=".$current"
+         func_arith $current - $age
+         major=.$func_arith_result
+         versuffix=$major.$age.$revision
          ;;
 
        irix | nonstopux)
-         if test "X$lt_irix_increment" = "Xno"; then
+         if test no = "$lt_irix_increment"; then
            func_arith $current - $age
          else
            func_arith $current - $age + 1
@@ -7436,69 +8923,74 @@ func_mode_link ()
            nonstopux) verstring_prefix=nonstopux ;;
            *)         verstring_prefix=sgi ;;
          esac
-         verstring="$verstring_prefix$major.$revision"
+         verstring=$verstring_prefix$major.$revision
 
          # Add in all the interfaces that we are compatible with.
          loop=$revision
-         while test "$loop" -ne 0; do
+         while test 0 -ne "$loop"; do
            func_arith $revision - $loop
            iface=$func_arith_result
            func_arith $loop - 1
            loop=$func_arith_result
-           verstring="$verstring_prefix$major.$iface:$verstring"
+           verstring=$verstring_prefix$major.$iface:$verstring
          done
 
-         # Before this point, $major must not contain `.'.
+         # Before this point, $major must not contain '.'.
          major=.$major
-         versuffix="$major.$revision"
+         versuffix=$major.$revision
          ;;
 
        linux) # correct to gnu/linux during the next big refactor
          func_arith $current - $age
          major=.$func_arith_result
-         versuffix="$major.$age.$revision"
+         versuffix=$major.$age.$revision
          ;;
 
        osf)
          func_arith $current - $age
          major=.$func_arith_result
-         versuffix=".$current.$age.$revision"
-         verstring="$current.$age.$revision"
+         versuffix=.$current.$age.$revision
+         verstring=$current.$age.$revision
 
          # Add in all the interfaces that we are compatible with.
          loop=$age
-         while test "$loop" -ne 0; do
+         while test 0 -ne "$loop"; do
            func_arith $current - $loop
            iface=$func_arith_result
            func_arith $loop - 1
            loop=$func_arith_result
-           verstring="$verstring:${iface}.0"
+           verstring=$verstring:$iface.0
          done
 
          # Make executables depend on our current version.
-         func_append verstring ":${current}.0"
+         func_append verstring ":$current.0"
          ;;
 
        qnx)
-         major=".$current"
-         versuffix=".$current"
+         major=.$current
+         versuffix=.$current
+         ;;
+
+       sco)
+         major=.$current
+         versuffix=.$current
          ;;
 
        sunos)
-         major=".$current"
-         versuffix=".$current.$revision"
+         major=.$current
+         versuffix=.$current.$revision
          ;;
 
        windows)
          # Use '-' rather than '.', since we only want one
-         # extension on DOS 8.3 filesystems.
+         # extension on DOS 8.3 file systems.
          func_arith $current - $age
          major=$func_arith_result
-         versuffix="-$major"
+         versuffix=-$major
          ;;
 
        *)
-         func_fatal_configuration "unknown library version type \`$version_type'"
+         func_fatal_configuration "unknown library version type '$version_type'"
          ;;
        esac
 
@@ -7512,42 +9004,45 @@ func_mode_link ()
            verstring=
            ;;
          *)
-           verstring="0.0"
+           verstring=0.0
            ;;
          esac
-         if test "$need_version" = no; then
+         if test no = "$need_version"; then
            versuffix=
          else
-           versuffix=".0.0"
+           versuffix=.0.0
          fi
        fi
 
        # Remove version info from name if versioning should be avoided
-       if test "$avoid_version" = yes && test "$need_version" = no; then
+       if test yes,no = "$avoid_version,$need_version"; then
          major=
          versuffix=
-         verstring=""
+         verstring=
        fi
 
        # Check to see if the archive will have undefined symbols.
-       if test "$allow_undefined" = yes; then
-         if test "$allow_undefined_flag" = unsupported; then
-           func_warning "undefined symbols not allowed in $host shared libraries"
-           build_libtool_libs=no
-           build_old_libs=yes
+       if test yes = "$allow_undefined"; then
+         if test unsupported = "$allow_undefined_flag"; then
+           if test yes = "$build_old_libs"; then
+             func_warning "undefined symbols not allowed in $host shared libraries; building static only"
+             build_libtool_libs=no
+           else
+             func_fatal_error "can't build $host shared library unless -no-undefined is specified"
+           fi
          fi
        else
          # Don't allow undefined symbols.
-         allow_undefined_flag="$no_undefined_flag"
+         allow_undefined_flag=$no_undefined_flag
        fi
 
       fi
 
-      func_generate_dlsyms "$libname" "$libname" "yes"
+      func_generate_dlsyms "$libname" "$libname" :
       func_append libobjs " $symfileobj"
-      test "X$libobjs" = "X " && libobjs=
+      test " " = "$libobjs" && libobjs=
 
-      if test "$opt_mode" != relink; then
+      if test relink != "$opt_mode"; then
        # Remove our outputs, but don't remove object files since they
        # may have been created when compiling PIC objects.
        removelist=
@@ -7556,8 +9051,8 @@ func_mode_link ()
          case $p in
            *.$objext | *.gcno)
               ;;
-           $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-              if test "X$precious_files_regex" != "X"; then
+           $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*)
+              if test -n "$precious_files_regex"; then
                 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
                 then
                   continue
@@ -7573,11 +9068,11 @@ func_mode_link ()
       fi
 
       # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+      if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then
        func_append oldlibs " $output_objdir/$libname.$libext"
 
        # Transform .lo files to .o files.
-       oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
+       oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP`
       fi
 
       # Eliminate all temporary directories.
@@ -7598,13 +9093,13 @@ func_mode_link ()
          *) func_append finalize_rpath " $libdir" ;;
          esac
        done
-       if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+       if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
          dependency_libs="$temp_xrpath $dependency_libs"
        fi
       fi
 
       # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
+      old_dlfiles=$dlfiles
       dlfiles=
       for lib in $old_dlfiles; do
        case " $dlprefiles $dlfiles " in
@@ -7614,7 +9109,7 @@ func_mode_link ()
       done
 
       # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
+      old_dlprefiles=$dlprefiles
       dlprefiles=
       for lib in $old_dlprefiles; do
        case "$dlprefiles " in
@@ -7623,7 +9118,7 @@ func_mode_link ()
        esac
       done
 
-      if test "$build_libtool_libs" = yes; then
+      if test yes = "$build_libtool_libs"; then
        if test -n "$rpath"; then
          case $host in
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
@@ -7647,7 +9142,7 @@ func_mode_link ()
            ;;
          *)
            # Add libc to deplibs on all other systems if necessary.
-           if test "$build_libtool_need_lc" = "yes"; then
+           if test yes = "$build_libtool_need_lc"; then
              func_append deplibs " -lc"
            fi
            ;;
@@ -7663,9 +9158,9 @@ func_mode_link ()
        # I'm not sure if I'm treating the release correctly.  I think
        # release should show up in the -l (ie -lgmp5) so we don't want to
        # add it in twice.  Is that correct?
-       release=""
-       versuffix=""
-       major=""
+       release=
+       versuffix=
+       major=
        newdeplibs=
        droppeddeps=no
        case $deplibs_check_method in
@@ -7694,20 +9189,20 @@ EOF
              -l*)
                func_stripname -l '' "$i"
                name=$func_stripname_result
-               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+               if test yes = "$allow_libtool_libs_with_static_runtimes"; then
                  case " $predeps $postdeps " in
                  *" $i "*)
                    func_append newdeplibs " $i"
-                   i=""
+                   i=
                    ;;
                  esac
                fi
-               if test -n "$i" ; then
+               if test -n "$i"; then
                  libname=`eval "\\$ECHO \"$libname_spec\""`
                  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
                  set dummy $deplib_matches; shift
                  deplib_match=$1
-                 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+                 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
                    func_append newdeplibs " $i"
                  else
                    droppeddeps=yes
@@ -7737,20 +9232,20 @@ EOF
                $opt_dry_run || $RM conftest
                if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
                  ldd_output=`ldd conftest`
-                 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+                 if test yes = "$allow_libtool_libs_with_static_runtimes"; then
                    case " $predeps $postdeps " in
                    *" $i "*)
                      func_append newdeplibs " $i"
-                     i=""
+                     i=
                      ;;
                    esac
                  fi
-                 if test -n "$i" ; then
+                 if test -n "$i"; then
                    libname=`eval "\\$ECHO \"$libname_spec\""`
                    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
                    set dummy $deplib_matches; shift
                    deplib_match=$1
-                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
                      func_append newdeplibs " $i"
                    else
                      droppeddeps=yes
@@ -7787,24 +9282,24 @@ EOF
            -l*)
              func_stripname -l '' "$a_deplib"
              name=$func_stripname_result
-             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+             if test yes = "$allow_libtool_libs_with_static_runtimes"; then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
                  func_append newdeplibs " $a_deplib"
-                 a_deplib=""
+                 a_deplib=
                  ;;
                esac
              fi
-             if test -n "$a_deplib" ; then
+             if test -n "$a_deplib"; then
                libname=`eval "\\$ECHO \"$libname_spec\""`
                if test -n "$file_magic_glob"; then
                  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
                else
                  libnameglob=$libname
                fi
-               test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
+               test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob`
                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-                 if test "$want_nocaseglob" = yes; then
+                 if test yes = "$want_nocaseglob"; then
                    shopt -s nocaseglob
                    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
                    $nocaseglob
@@ -7822,25 +9317,25 @@ EOF
                      # We might still enter an endless loop, since a link
                      # loop can be closed while we follow links,
                      # but so what?
-                     potlib="$potent_lib"
+                     potlib=$potent_lib
                      while test -h "$potlib" 2>/dev/null; do
-                       potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+                       potliblink=`ls -ld $potlib | $SED 's/.* -> //'`
                        case $potliblink in
-                       [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-                       *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
+                       [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;;
+                       *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";;
                        esac
                      done
                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
                         $SED -e 10q |
                         $EGREP "$file_magic_regex" > /dev/null; then
                        func_append newdeplibs " $a_deplib"
-                       a_deplib=""
+                       a_deplib=
                        break 2
                      fi
                  done
                done
              fi
-             if test -n "$a_deplib" ; then
+             if test -n "$a_deplib"; then
                droppeddeps=yes
                echo
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
@@ -7848,7 +9343,7 @@ EOF
                echo "*** you link to this library.  But I can only do this if you have a"
                echo "*** shared version of the library, which you do not appear to have"
                echo "*** because I did check the linker path looking for a file starting"
-               if test -z "$potlib" ; then
+               if test -z "$potlib"; then
                  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
                else
                  $ECHO "*** with $libname and none of the candidates passed a file format test"
@@ -7871,30 +9366,30 @@ EOF
            -l*)
              func_stripname -l '' "$a_deplib"
              name=$func_stripname_result
-             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+             if test yes = "$allow_libtool_libs_with_static_runtimes"; then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
                  func_append newdeplibs " $a_deplib"
-                 a_deplib=""
+                 a_deplib=
                  ;;
                esac
              fi
-             if test -n "$a_deplib" ; then
+             if test -n "$a_deplib"; then
                libname=`eval "\\$ECHO \"$libname_spec\""`
                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
                  for potent_lib in $potential_libs; do
-                   potlib="$potent_lib" # see symlink-check above in file_magic test
+                   potlib=$potent_lib # see symlink-check above in file_magic test
                    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
                       $EGREP "$match_pattern_regex" > /dev/null; then
                      func_append newdeplibs " $a_deplib"
-                     a_deplib=""
+                     a_deplib=
                      break 2
                    fi
                  done
                done
              fi
-             if test -n "$a_deplib" ; then
+             if test -n "$a_deplib"; then
                droppeddeps=yes
                echo
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
@@ -7902,7 +9397,7 @@ EOF
                echo "*** you link to this library.  But I can only do this if you have a"
                echo "*** shared version of the library, which you do not appear to have"
                echo "*** because I did check the linker path looking for a file starting"
-               if test -z "$potlib" ; then
+               if test -z "$potlib"; then
                  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
                else
                  $ECHO "*** with $libname and none of the candidates passed a file format test"
@@ -7918,18 +9413,18 @@ EOF
          done # Gone through all deplibs.
          ;;
        none | unknown | *)
-         newdeplibs=""
+         newdeplibs=
          tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
-         if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-           for i in $predeps $postdeps ; do
+         if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+           for i in $predeps $postdeps; do
              # can't use Xsed below, because $i might contain '/'
-             tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
+             tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"`
            done
          fi
          case $tmp_deplibs in
          *[!\  \ ]*)
            echo
-           if test "X$deplibs_check_method" = "Xnone"; then
+           if test none = "$deplibs_check_method"; then
              echo "*** Warning: inter-library dependencies are not supported in this platform."
            else
              echo "*** Warning: inter-library dependencies are not known to be supported."
@@ -7953,8 +9448,8 @@ EOF
          ;;
        esac
 
-       if test "$droppeddeps" = yes; then
-         if test "$module" = yes; then
+       if test yes = "$droppeddeps"; then
+         if test yes = "$module"; then
            echo
            echo "*** Warning: libtool could not satisfy all declared inter-library"
            $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
@@ -7963,12 +9458,12 @@ EOF
            if test -z "$global_symbol_pipe"; then
              echo
              echo "*** However, this would only work if libtool was able to extract symbol"
-             echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+             echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
              echo "*** not find such a program.  So, this module is probably useless."
-             echo "*** \`nm' from GNU binutils and a full rebuild may help."
+             echo "*** 'nm' from GNU binutils and a full rebuild may help."
            fi
-           if test "$build_old_libs" = no; then
-             oldlibs="$output_objdir/$libname.$libext"
+           if test no = "$build_old_libs"; then
+             oldlibs=$output_objdir/$libname.$libext
              build_libtool_libs=module
              build_old_libs=yes
            else
@@ -7979,14 +9474,14 @@ EOF
            echo "*** automatically added whenever a program is linked with this library"
            echo "*** or is declared to -dlopen it."
 
-           if test "$allow_undefined" = no; then
+           if test no = "$allow_undefined"; then
              echo
              echo "*** Since this library must not contain undefined symbols,"
              echo "*** because either the platform does not support them or"
              echo "*** it was explicitly requested with -no-undefined,"
              echo "*** libtool will only create a static version of it."
-             if test "$build_old_libs" = no; then
-               oldlibs="$output_objdir/$libname.$libext"
+             if test no = "$build_old_libs"; then
+               oldlibs=$output_objdir/$libname.$libext
                build_libtool_libs=module
                build_old_libs=yes
              else
@@ -8032,7 +9527,7 @@ EOF
        *) func_append new_libs " $deplib" ;;
        esac
       done
-      deplibs="$new_libs"
+      deplibs=$new_libs
 
       # All the library-specific variables (install_libdir is set above).
       library_names=
@@ -8040,25 +9535,25 @@ EOF
       dlname=
 
       # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-       # Remove ${wl} instances when linking with ld.
+      if test yes = "$build_libtool_libs"; then
+       # Remove $wl instances when linking with ld.
        # FIXME: should test the right _cmds variable.
        case $archive_cmds in
          *\$LD\ *) wl= ;;
         esac
-       if test "$hardcode_into_libs" = yes; then
+       if test yes = "$hardcode_into_libs"; then
          # Hardcode the library paths
          hardcode_libdirs=
          dep_rpath=
-         rpath="$finalize_rpath"
-         test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
+         rpath=$finalize_rpath
+         test relink = "$opt_mode" || rpath=$compile_rpath$rpath
          for libdir in $rpath; do
            if test -n "$hardcode_libdir_flag_spec"; then
              if test -n "$hardcode_libdir_separator"; then
                func_replace_sysroot "$libdir"
                libdir=$func_replace_sysroot_result
                if test -z "$hardcode_libdirs"; then
-                 hardcode_libdirs="$libdir"
+                 hardcode_libdirs=$libdir
                else
                  # Just accumulate the unique libdirs.
                  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
@@ -8083,7 +9578,7 @@ EOF
          # Substitute the hardcoded libdirs into the rpath.
          if test -n "$hardcode_libdir_separator" &&
             test -n "$hardcode_libdirs"; then
-           libdir="$hardcode_libdirs"
+           libdir=$hardcode_libdirs
            eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
          fi
          if test -n "$runpath_var" && test -n "$perm_rpath"; then
@@ -8097,8 +9592,8 @@ EOF
          test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
        fi
 
-       shlibpath="$finalize_shlibpath"
-       test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+       shlibpath=$finalize_shlibpath
+       test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath
        if test -n "$shlibpath"; then
          eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
        fi
@@ -8108,19 +9603,19 @@ EOF
        eval library_names=\"$library_names_spec\"
        set dummy $library_names
        shift
-       realname="$1"
+       realname=$1
        shift
 
        if test -n "$soname_spec"; then
          eval soname=\"$soname_spec\"
        else
-         soname="$realname"
+         soname=$realname
        fi
        if test -z "$dlname"; then
          dlname=$soname
        fi
 
-       lib="$output_objdir/$realname"
+       lib=$output_objdir/$realname
        linknames=
        for link
        do
@@ -8134,7 +9629,7 @@ EOF
        delfiles=
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
          $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
-         export_symbols="$output_objdir/$libname.uexp"
+         export_symbols=$output_objdir/$libname.uexp
          func_append delfiles " $export_symbols"
        fi
 
@@ -8143,31 +9638,31 @@ EOF
        cygwin* | mingw* | cegcc*)
          if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
            # exporting using user supplied symfile
-           if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
+           func_dll_def_p "$export_symbols" || {
              # and it's NOT already a .def file. Must figure out
              # which of the given symbols are data symbols and tag
              # them as such. So, trigger use of export_symbols_cmds.
              # export_symbols gets reassigned inside the "prepare
              # the list of exported symbols" if statement, so the
              # include_expsyms logic still works.
-             orig_export_symbols="$export_symbols"
+             orig_export_symbols=$export_symbols
              export_symbols=
              always_export_symbols=yes
-           fi
+           }
          fi
          ;;
        esac
 
        # Prepare the list of exported symbols
        if test -z "$export_symbols"; then
-         if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-           func_verbose "generating symbol list for \`$libname.la'"
-           export_symbols="$output_objdir/$libname.exp"
+         if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then
+           func_verbose "generating symbol list for '$libname.la'"
+           export_symbols=$output_objdir/$libname.exp
            $opt_dry_run || $RM $export_symbols
            cmds=$export_symbols_cmds
-           save_ifs="$IFS"; IFS='~'
+           save_ifs=$IFS; IFS='~'
            for cmd1 in $cmds; do
-             IFS="$save_ifs"
+             IFS=$save_ifs
              # Take the normal branch if the nm_file_list_spec branch
              # doesn't work or if tool conversion is not needed.
              case $nm_file_list_spec~$to_tool_file_cmd in
@@ -8181,7 +9676,7 @@ EOF
                  try_normal_branch=no
                  ;;
              esac
-             if test "$try_normal_branch" = yes \
+             if test yes = "$try_normal_branch" \
                 && { test "$len" -lt "$max_cmd_len" \
                      || test "$max_cmd_len" -le -1; }
              then
@@ -8192,7 +9687,7 @@ EOF
                output_la=$func_basename_result
                save_libobjs=$libobjs
                save_output=$output
-               output=${output_objdir}/${output_la}.nm
+               output=$output_objdir/$output_la.nm
                func_to_tool_file "$output"
                libobjs=$nm_file_list_spec$func_to_tool_file_result
                func_append delfiles " $output"
@@ -8215,8 +9710,8 @@ EOF
                break
              fi
            done
-           IFS="$save_ifs"
-           if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
+           IFS=$save_ifs
+           if test -n "$export_symbols_regex" && test : != "$skipped_export"; then
              func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
              func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
            fi
@@ -8224,16 +9719,16 @@ EOF
        fi
 
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
-         tmp_export_symbols="$export_symbols"
-         test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+         tmp_export_symbols=$export_symbols
+         test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
          $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
        fi
 
-       if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
+       if test : != "$skipped_export" && test -n "$orig_export_symbols"; then
          # The given exports_symbols file has to be filtered, so filter it.
-         func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+         func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
          # FIXME: $output_objdir/$libname.filter potentially contains lots of
-         # 's' commands which not all seds can handle. GNU sed should be fine
+         # 's' commands, which not all seds can handle. GNU sed should be fine
          # though. Also, the filter scales superlinearly with the number of
          # global variables. join(1) would be nice here, but unfortunately
          # isn't a blessed tool.
@@ -8252,11 +9747,11 @@ EOF
            ;;
          esac
        done
-       deplibs="$tmp_deplibs"
+       deplibs=$tmp_deplibs
 
        if test -n "$convenience"; then
          if test -n "$whole_archive_flag_spec" &&
-           test "$compiler_needs_object" = yes &&
+           test yes = "$compiler_needs_object" &&
            test -z "$libobjs"; then
            # extract the archives, so we have objects to list.
            # TODO: could optimize this to just extract one archive.
@@ -8267,7 +9762,7 @@ EOF
            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
            test "X$libobjs" = "X " && libobjs=
          else
-           gentop="$output_objdir/${outputname}x"
+           gentop=$output_objdir/${outputname}x
            func_append generated " $gentop"
 
            func_extract_archives $gentop $convenience
@@ -8276,18 +9771,18 @@ EOF
          fi
        fi
 
-       if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+       if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then
          eval flag=\"$thread_safe_flag_spec\"
          func_append linker_flags " $flag"
        fi
 
        # Make a backup of the uninstalled library when relinking
-       if test "$opt_mode" = relink; then
+       if test relink = "$opt_mode"; then
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
        fi
 
        # Do each of the archive commands.
-       if test "$module" = yes && test -n "$module_cmds" ; then
+       if test yes = "$module" && test -n "$module_cmds"; then
          if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
            eval test_cmds=\"$module_expsym_cmds\"
            cmds=$module_expsym_cmds
@@ -8305,7 +9800,7 @@ EOF
          fi
        fi
 
-       if test "X$skipped_export" != "X:" &&
+       if test : != "$skipped_export" &&
           func_len " $test_cmds" &&
           len=$func_len_result &&
           test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
@@ -8338,8 +9833,8 @@ EOF
          last_robj=
          k=1
 
-         if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
-           output=${output_objdir}/${output_la}.lnkscript
+         if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
+           output=$output_objdir/$output_la.lnkscript
            func_verbose "creating GNU ld script: $output"
            echo 'INPUT (' > $output
            for obj in $save_libobjs
@@ -8351,14 +9846,14 @@ EOF
            func_append delfiles " $output"
            func_to_tool_file "$output"
            output=$func_to_tool_file_result
-         elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
-           output=${output_objdir}/${output_la}.lnk
+         elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
+           output=$output_objdir/$output_la.lnk
            func_verbose "creating linker input file list: $output"
            : > $output
            set x $save_libobjs
            shift
            firstobj=
-           if test "$compiler_needs_object" = yes; then
+           if test yes = "$compiler_needs_object"; then
              firstobj="$1 "
              shift
            fi
@@ -8373,7 +9868,7 @@ EOF
          else
            if test -n "$save_libobjs"; then
              func_verbose "creating reloadable object files..."
-             output=$output_objdir/$output_la-${k}.$objext
+             output=$output_objdir/$output_la-$k.$objext
              eval test_cmds=\"$reload_cmds\"
              func_len " $test_cmds"
              len0=$func_len_result
@@ -8385,13 +9880,13 @@ EOF
                func_len " $obj"
                func_arith $len + $func_len_result
                len=$func_arith_result
-               if test "X$objlist" = X ||
+               if test -z "$objlist" ||
                   test "$len" -lt "$max_cmd_len"; then
                  func_append objlist " $obj"
                else
                  # The command $test_cmds is almost too long, add a
                  # command to the queue.
-                 if test "$k" -eq 1 ; then
+                 if test 1 -eq "$k"; then
                    # The first file doesn't have a previous command to add.
                    reload_objs=$objlist
                    eval concat_cmds=\"$reload_cmds\"
@@ -8401,10 +9896,10 @@ EOF
                    reload_objs="$objlist $last_robj"
                    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
                  fi
-                 last_robj=$output_objdir/$output_la-${k}.$objext
+                 last_robj=$output_objdir/$output_la-$k.$objext
                  func_arith $k + 1
                  k=$func_arith_result
-                 output=$output_objdir/$output_la-${k}.$objext
+                 output=$output_objdir/$output_la-$k.$objext
                  objlist=" $obj"
                  func_len " $last_robj"
                  func_arith $len0 + $func_len_result
@@ -8416,9 +9911,9 @@ EOF
              # files will link in the last one created.
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
              reload_objs="$objlist $last_robj"
-             eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
+             eval concat_cmds=\"\$concat_cmds$reload_cmds\"
              if test -n "$last_robj"; then
-               eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
+               eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
              fi
              func_append delfiles " $output"
 
@@ -8426,9 +9921,9 @@ EOF
              output=
            fi
 
-           if ${skipped_export-false}; then
-             func_verbose "generating symbol list for \`$libname.la'"
-             export_symbols="$output_objdir/$libname.exp"
+           ${skipped_export-false} && {
+             func_verbose "generating symbol list for '$libname.la'"
+             export_symbols=$output_objdir/$libname.exp
              $opt_dry_run || $RM $export_symbols
              libobjs=$output
              # Append the command to create the export file.
@@ -8437,16 +9932,16 @@ EOF
              if test -n "$last_robj"; then
                eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
              fi
-           fi
+           }
 
            test -n "$save_libobjs" &&
              func_verbose "creating a temporary reloadable object file: $output"
 
            # Loop through the commands generated above and execute them.
-           save_ifs="$IFS"; IFS='~'
+           save_ifs=$IFS; IFS='~'
            for cmd in $concat_cmds; do
-             IFS="$save_ifs"
-             $opt_silent || {
+             IFS=$save_ifs
+             $opt_quiet || {
                  func_quote_for_expand "$cmd"
                  eval "func_echo $func_quote_for_expand_result"
              }
@@ -8454,7 +9949,7 @@ EOF
                lt_exit=$?
 
                # Restore the uninstalled library and exit
-               if test "$opt_mode" = relink; then
+               if test relink = "$opt_mode"; then
                  ( cd "$output_objdir" && \
                    $RM "${realname}T" && \
                    $MV "${realname}U" "$realname" )
@@ -8463,7 +9958,7 @@ EOF
                exit $lt_exit
              }
            done
-           IFS="$save_ifs"
+           IFS=$save_ifs
 
            if test -n "$export_symbols_regex" && ${skipped_export-false}; then
              func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
@@ -8471,18 +9966,18 @@ EOF
            fi
          fi
 
-          if ${skipped_export-false}; then
+          ${skipped_export-false} && {
            if test -n "$export_symbols" && test -n "$include_expsyms"; then
-             tmp_export_symbols="$export_symbols"
-             test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+             tmp_export_symbols=$export_symbols
+             test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
              $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
            fi
 
            if test -n "$orig_export_symbols"; then
              # The given exports_symbols file has to be filtered, so filter it.
-             func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+             func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
              # FIXME: $output_objdir/$libname.filter potentially contains lots of
-             # 's' commands which not all seds can handle. GNU sed should be fine
+             # 's' commands, which not all seds can handle. GNU sed should be fine
              # though. Also, the filter scales superlinearly with the number of
              # global variables. join(1) would be nice here, but unfortunately
              # isn't a blessed tool.
@@ -8491,7 +9986,7 @@ EOF
              export_symbols=$output_objdir/$libname.def
              $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
            fi
-         fi
+         }
 
          libobjs=$output
          # Restore the value of output.
@@ -8505,7 +10000,7 @@ EOF
          # value of $libobjs for piecewise linking.
 
          # Do each of the archive commands.
-         if test "$module" = yes && test -n "$module_cmds" ; then
+         if test yes = "$module" && test -n "$module_cmds"; then
            if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
              cmds=$module_expsym_cmds
            else
@@ -8527,7 +10022,7 @@ EOF
 
        # Add any objects from preloaded convenience libraries
        if test -n "$dlprefiles"; then
-         gentop="$output_objdir/${outputname}x"
+         gentop=$output_objdir/${outputname}x
          func_append generated " $gentop"
 
          func_extract_archives $gentop $dlprefiles
@@ -8535,11 +10030,12 @@ EOF
          test "X$libobjs" = "X " && libobjs=
        fi
 
-       save_ifs="$IFS"; IFS='~'
+       save_ifs=$IFS; IFS='~'
        for cmd in $cmds; do
-         IFS="$save_ifs"
+         IFS=$sp$nl
          eval cmd=\"$cmd\"
-         $opt_silent || {
+         IFS=$save_ifs
+         $opt_quiet || {
            func_quote_for_expand "$cmd"
            eval "func_echo $func_quote_for_expand_result"
          }
@@ -8547,7 +10043,7 @@ EOF
            lt_exit=$?
 
            # Restore the uninstalled library and exit
-           if test "$opt_mode" = relink; then
+           if test relink = "$opt_mode"; then
              ( cd "$output_objdir" && \
                $RM "${realname}T" && \
                $MV "${realname}U" "$realname" )
@@ -8556,10 +10052,10 @@ EOF
            exit $lt_exit
          }
        done
-       IFS="$save_ifs"
+       IFS=$save_ifs
 
        # Restore the uninstalled library and exit
-       if test "$opt_mode" = relink; then
+       if test relink = "$opt_mode"; then
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 
          if test -n "$convenience"; then
@@ -8579,39 +10075,39 @@ EOF
        done
 
        # If -module or -export-dynamic was specified, set the dlname.
-       if test "$module" = yes || test "$export_dynamic" = yes; then
+       if test yes = "$module" || test yes = "$export_dynamic"; then
          # On all known operating systems, these are identical.
-         dlname="$soname"
+         dlname=$soname
        fi
       fi
       ;;
 
     obj)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       func_warning "\`-dlopen' is ignored for objects"
+      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+       func_warning "'-dlopen' is ignored for objects"
       fi
 
       case " $deplibs" in
       *\ -l* | *\ -L*)
-       func_warning "\`-l' and \`-L' are ignored for objects" ;;
+       func_warning "'-l' and '-L' are ignored for objects" ;;
       esac
 
       test -n "$rpath" && \
-       func_warning "\`-rpath' is ignored for objects"
+       func_warning "'-rpath' is ignored for objects"
 
       test -n "$xrpath" && \
-       func_warning "\`-R' is ignored for objects"
+       func_warning "'-R' is ignored for objects"
 
       test -n "$vinfo" && \
-       func_warning "\`-version-info' is ignored for objects"
+       func_warning "'-version-info' is ignored for objects"
 
       test -n "$release" && \
-       func_warning "\`-release' is ignored for objects"
+       func_warning "'-release' is ignored for objects"
 
       case $output in
       *.lo)
        test -n "$objs$old_deplibs" && \
-         func_fatal_error "cannot build library object \`$output' from non-libtool objects"
+         func_fatal_error "cannot build library object '$output' from non-libtool objects"
 
        libobj=$output
        func_lo2o "$libobj"
@@ -8619,7 +10115,7 @@ EOF
        ;;
       *)
        libobj=
-       obj="$output"
+       obj=$output
        ;;
       esac
 
@@ -8632,17 +10128,19 @@ EOF
       # the extraction.
       reload_conv_objs=
       gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec and hope we can get by with
-      # turning comma into space..
-      wl=
-
+      # if reload_cmds runs $LD directly, get rid of -Wl from
+      # whole_archive_flag_spec and hope we can get by with turning comma
+      # into space.
+      case $reload_cmds in
+        *\$LD[\ \$]*) wl= ;;
+      esac
       if test -n "$convenience"; then
        if test -n "$whole_archive_flag_spec"; then
          eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-         reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+         test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+         reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags
        else
-         gentop="$output_objdir/${obj}x"
+         gentop=$output_objdir/${obj}x
          func_append generated " $gentop"
 
          func_extract_archives $gentop $convenience
@@ -8651,12 +10149,12 @@ EOF
       fi
 
       # If we're not building shared, we need to use non_pic_objs
-      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
+      test yes = "$build_libtool_libs" || libobjs=$non_pic_objects
 
       # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+      reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs
 
-      output="$obj"
+      output=$obj
       func_execute_cmds "$reload_cmds" 'exit $?'
 
       # Exit if we aren't doing a library object file.
@@ -8668,7 +10166,7 @@ EOF
        exit $EXIT_SUCCESS
       fi
 
-      if test "$build_libtool_libs" != yes; then
+      test yes = "$build_libtool_libs" || {
        if test -n "$gentop"; then
          func_show_eval '${RM}r "$gentop"'
        fi
@@ -8678,12 +10176,12 @@ EOF
        # $show "echo timestamp > $libobj"
        # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
        exit $EXIT_SUCCESS
-      fi
+      }
 
-      if test -n "$pic_flag" || test "$pic_mode" != default; then
+      if test -n "$pic_flag" || test default != "$pic_mode"; then
        # Only do commands if we really have different PIC objects.
        reload_objs="$libobjs $reload_conv_objs"
-       output="$libobj"
+       output=$libobj
        func_execute_cmds "$reload_cmds" 'exit $?'
       fi
 
@@ -8700,16 +10198,14 @@ EOF
                  output=$func_stripname_result.exe;;
       esac
       test -n "$vinfo" && \
-       func_warning "\`-version-info' is ignored for programs"
+       func_warning "'-version-info' is ignored for programs"
 
       test -n "$release" && \
-       func_warning "\`-release' is ignored for programs"
+       func_warning "'-release' is ignored for programs"
 
-      test "$preload" = yes \
-        && test "$dlopen_support" = unknown \
-       && test "$dlopen_self" = unknown \
-       && test "$dlopen_self_static" = unknown && \
-         func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
+      $preload \
+       && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \
+       && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support."
 
       case $host in
       *-*-rhapsody* | *-*-darwin1.[012])
@@ -8723,11 +10219,11 @@ EOF
       *-*-darwin*)
        # Don't allow lazy linking, it breaks C++ global constructors
        # But is supposedly fixed on 10.4 or later (yay!).
-       if test "$tagname" = CXX ; then
+       if test CXX = "$tagname"; then
          case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
            10.[0123])
-             func_append compile_command " ${wl}-bind_at_load"
-             func_append finalize_command " ${wl}-bind_at_load"
+             func_append compile_command " $wl-bind_at_load"
+             func_append finalize_command " $wl-bind_at_load"
            ;;
          esac
        fi
@@ -8763,7 +10259,7 @@ EOF
        *) func_append new_libs " $deplib" ;;
        esac
       done
-      compile_deplibs="$new_libs"
+      compile_deplibs=$new_libs
 
 
       func_append compile_command " $compile_deplibs"
@@ -8787,7 +10283,7 @@ EOF
        if test -n "$hardcode_libdir_flag_spec"; then
          if test -n "$hardcode_libdir_separator"; then
            if test -z "$hardcode_libdirs"; then
-             hardcode_libdirs="$libdir"
+             hardcode_libdirs=$libdir
            else
              # Just accumulate the unique libdirs.
              case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
@@ -8810,7 +10306,7 @@ EOF
        fi
        case $host in
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-         testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
+         testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
          case :$dllsearchpath: in
          *":$libdir:"*) ;;
          ::) dllsearchpath=$libdir;;
@@ -8827,10 +10323,10 @@ EOF
       # Substitute the hardcoded libdirs into the rpath.
       if test -n "$hardcode_libdir_separator" &&
         test -n "$hardcode_libdirs"; then
-       libdir="$hardcode_libdirs"
+       libdir=$hardcode_libdirs
        eval rpath=\" $hardcode_libdir_flag_spec\"
       fi
-      compile_rpath="$rpath"
+      compile_rpath=$rpath
 
       rpath=
       hardcode_libdirs=
@@ -8838,7 +10334,7 @@ EOF
        if test -n "$hardcode_libdir_flag_spec"; then
          if test -n "$hardcode_libdir_separator"; then
            if test -z "$hardcode_libdirs"; then
-             hardcode_libdirs="$libdir"
+             hardcode_libdirs=$libdir
            else
              # Just accumulate the unique libdirs.
              case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
@@ -8863,45 +10359,43 @@ EOF
       # Substitute the hardcoded libdirs into the rpath.
       if test -n "$hardcode_libdir_separator" &&
         test -n "$hardcode_libdirs"; then
-       libdir="$hardcode_libdirs"
+       libdir=$hardcode_libdirs
        eval rpath=\" $hardcode_libdir_flag_spec\"
       fi
-      finalize_rpath="$rpath"
+      finalize_rpath=$rpath
 
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+      if test -n "$libobjs" && test yes = "$build_old_libs"; then
        # Transform all the library objects into standard objects.
        compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
        finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
       fi
 
-      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
+      func_generate_dlsyms "$outputname" "@PROGRAM@" false
 
       # template prelinking step
       if test -n "$prelink_cmds"; then
        func_execute_cmds "$prelink_cmds" 'exit $?'
       fi
 
-      wrappers_required=yes
+      wrappers_required=:
       case $host in
       *cegcc* | *mingw32ce*)
         # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
-        wrappers_required=no
+        wrappers_required=false
         ;;
       *cygwin* | *mingw* )
-        if test "$build_libtool_libs" != yes; then
-          wrappers_required=no
-        fi
+        test yes = "$build_libtool_libs" || wrappers_required=false
         ;;
       *)
-        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-          wrappers_required=no
+        if test no = "$need_relink" || test yes != "$build_libtool_libs"; then
+          wrappers_required=false
         fi
         ;;
       esac
-      if test "$wrappers_required" = no; then
+      $wrappers_required || {
        # Replace the output file specification.
        compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
-       link_command="$compile_command$compile_rpath"
+       link_command=$compile_command$compile_rpath
 
        # We have no uninstalled library dependencies, so finalize right now.
        exit_status=0
@@ -8914,12 +10408,12 @@ EOF
        fi
 
        # Delete the generated files.
-       if test -f "$output_objdir/${outputname}S.${objext}"; then
-         func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+       if test -f "$output_objdir/${outputname}S.$objext"; then
+         func_show_eval '$RM "$output_objdir/${outputname}S.$objext"'
        fi
 
        exit $exit_status
-      fi
+      }
 
       if test -n "$compile_shlibpath$finalize_shlibpath"; then
        compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
@@ -8949,9 +10443,9 @@ EOF
        fi
       fi
 
-      if test "$no_install" = yes; then
+      if test yes = "$no_install"; then
        # We don't need to create a wrapper script.
-       link_command="$compile_var$compile_command$compile_rpath"
+       link_command=$compile_var$compile_command$compile_rpath
        # Replace the output file specification.
        link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
        # Delete the old output file.
@@ -8968,27 +10462,28 @@ EOF
        exit $EXIT_SUCCESS
       fi
 
-      if test "$hardcode_action" = relink; then
-       # Fast installation is not supported
-       link_command="$compile_var$compile_command$compile_rpath"
-       relink_command="$finalize_var$finalize_command$finalize_rpath"
+      case $hardcode_action,$fast_install in
+        relink,*)
+         # Fast installation is not supported
+         link_command=$compile_var$compile_command$compile_rpath
+         relink_command=$finalize_var$finalize_command$finalize_rpath
 
-       func_warning "this platform does not like uninstalled shared libraries"
-       func_warning "\`$output' will be relinked during installation"
-      else
-       if test "$fast_install" != no; then
-         link_command="$finalize_var$compile_command$finalize_rpath"
-         if test "$fast_install" = yes; then
-           relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
-         else
-           # fast_install is set to needless
-           relink_command=
-         fi
-       else
-         link_command="$compile_var$compile_command$compile_rpath"
-         relink_command="$finalize_var$finalize_command$finalize_rpath"
-       fi
-      fi
+         func_warning "this platform does not like uninstalled shared libraries"
+         func_warning "'$output' will be relinked during installation"
+         ;;
+        *,yes)
+         link_command=$finalize_var$compile_command$finalize_rpath
+         relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
+          ;;
+       *,no)
+         link_command=$compile_var$compile_command$compile_rpath
+         relink_command=$finalize_var$finalize_command$finalize_rpath
+          ;;
+       *,needless)
+         link_command=$finalize_var$compile_command$finalize_rpath
+         relink_command=
+          ;;
+      esac
 
       # Replace the output file specification.
       link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
@@ -9045,8 +10540,8 @@ EOF
            func_dirname_and_basename "$output" "" "."
            output_name=$func_basename_result
            output_path=$func_dirname_result
-           cwrappersource="$output_path/$objdir/lt-$output_name.c"
-           cwrapper="$output_path/$output_name.exe"
+           cwrappersource=$output_path/$objdir/lt-$output_name.c
+           cwrapper=$output_path/$output_name.exe
            $RM $cwrappersource $cwrapper
            trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
 
@@ -9067,7 +10562,7 @@ EOF
            trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
            $opt_dry_run || {
              # note: this script will not be executed, so do not chmod.
-             if test "x$build" = "x$host" ; then
+             if test "x$build" = "x$host"; then
                $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
              else
                func_emit_wrapper no > $func_ltwrapper_scriptname_result
@@ -9090,25 +10585,27 @@ EOF
     # See if we need to build an old-fashioned archive.
     for oldlib in $oldlibs; do
 
-      if test "$build_libtool_libs" = convenience; then
-       oldobjs="$libobjs_save $symfileobj"
-       addlibs="$convenience"
-       build_libtool_libs=no
-      else
-       if test "$build_libtool_libs" = module; then
-         oldobjs="$libobjs_save"
+      case $build_libtool_libs in
+        convenience)
+         oldobjs="$libobjs_save $symfileobj"
+         addlibs=$convenience
          build_libtool_libs=no
-       else
+         ;;
+       module)
+         oldobjs=$libobjs_save
+         addlibs=$old_convenience
+         build_libtool_libs=no
+          ;;
+       *)
          oldobjs="$old_deplibs $non_pic_objects"
-         if test "$preload" = yes && test -f "$symfileobj"; then
-           func_append oldobjs " $symfileobj"
-         fi
-       fi
-       addlibs="$old_convenience"
-      fi
+         $preload && test -f "$symfileobj" \
+           && func_append oldobjs " $symfileobj"
+         addlibs=$old_convenience
+         ;;
+      esac
 
       if test -n "$addlibs"; then
-       gentop="$output_objdir/${outputname}x"
+       gentop=$output_objdir/${outputname}x
        func_append generated " $gentop"
 
        func_extract_archives $gentop $addlibs
@@ -9116,13 +10613,13 @@ EOF
       fi
 
       # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+      if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then
        cmds=$old_archive_from_new_cmds
       else
 
        # Add any objects from preloaded convenience libraries
        if test -n "$dlprefiles"; then
-         gentop="$output_objdir/${outputname}x"
+         gentop=$output_objdir/${outputname}x
          func_append generated " $gentop"
 
          func_extract_archives $gentop $dlprefiles
@@ -9143,7 +10640,7 @@ EOF
          :
        else
          echo "copying selected object files to avoid basename conflicts..."
-         gentop="$output_objdir/${outputname}x"
+         gentop=$output_objdir/${outputname}x
          func_append generated " $gentop"
          func_mkdir_p "$gentop"
          save_oldobjs=$oldobjs
@@ -9152,7 +10649,7 @@ EOF
          for obj in $save_oldobjs
          do
            func_basename "$obj"
-           objbase="$func_basename_result"
+           objbase=$func_basename_result
            case " $oldobjs " in
            " ") oldobjs=$obj ;;
            *[\ /]"$objbase "*)
@@ -9221,18 +10718,18 @@ EOF
            else
              # the above command should be used before it gets too long
              oldobjs=$objlist
-             if test "$obj" = "$last_oldobj" ; then
+             if test "$obj" = "$last_oldobj"; then
                RANLIB=$save_RANLIB
              fi
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-             eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+             eval concat_cmds=\"\$concat_cmds$old_archive_cmds\"
              objlist=
              len=$len0
            fi
          done
          RANLIB=$save_RANLIB
          oldobjs=$objlist
-         if test "X$oldobjs" = "X" ; then
+         if test -z "$oldobjs"; then
            eval cmds=\"\$concat_cmds\"
          else
            eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
@@ -9249,7 +10746,7 @@ EOF
     case $output in
     *.la)
       old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      test yes = "$build_old_libs" && old_library=$libname.$libext
       func_verbose "creating $output"
 
       # Preserve any variables that may affect compiler behavior
@@ -9264,31 +10761,31 @@ EOF
        fi
       done
       # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
       relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
-      if test "$hardcode_automatic" = yes ; then
+      if test yes = "$hardcode_automatic"; then
        relink_command=
       fi
 
       # Only create the output if not a dry run.
       $opt_dry_run || {
        for installed in no yes; do
-         if test "$installed" = yes; then
+         if test yes = "$installed"; then
            if test -z "$install_libdir"; then
              break
            fi
-           output="$output_objdir/$outputname"i
+           output=$output_objdir/${outputname}i
            # Replace all uninstalled libtool libraries with the installed ones
            newdependency_libs=
            for deplib in $dependency_libs; do
              case $deplib in
              *.la)
                func_basename "$deplib"
-               name="$func_basename_result"
+               name=$func_basename_result
                func_resolve_sysroot "$deplib"
-               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
+               eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
                test -z "$libdir" && \
-                 func_fatal_error "\`$deplib' is not a valid libtool archive"
+                 func_fatal_error "'$deplib' is not a valid libtool archive"
                func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
                ;;
              -L*)
@@ -9304,23 +10801,23 @@ EOF
              *) func_append newdependency_libs " $deplib" ;;
              esac
            done
-           dependency_libs="$newdependency_libs"
+           dependency_libs=$newdependency_libs
            newdlfiles=
 
            for lib in $dlfiles; do
              case $lib in
              *.la)
                func_basename "$lib"
-               name="$func_basename_result"
-               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+               name=$func_basename_result
+               eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                test -z "$libdir" && \
-                 func_fatal_error "\`$lib' is not a valid libtool archive"
+                 func_fatal_error "'$lib' is not a valid libtool archive"
                func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
                ;;
              *) func_append newdlfiles " $lib" ;;
              esac
            done
-           dlfiles="$newdlfiles"
+           dlfiles=$newdlfiles
            newdlprefiles=
            for lib in $dlprefiles; do
              case $lib in
@@ -9330,34 +10827,34 @@ EOF
                # didn't already link the preopened objects directly into
                # the library:
                func_basename "$lib"
-               name="$func_basename_result"
-               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+               name=$func_basename_result
+               eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                test -z "$libdir" && \
-                 func_fatal_error "\`$lib' is not a valid libtool archive"
+                 func_fatal_error "'$lib' is not a valid libtool archive"
                func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
                ;;
              esac
            done
-           dlprefiles="$newdlprefiles"
+           dlprefiles=$newdlprefiles
          else
            newdlfiles=
            for lib in $dlfiles; do
              case $lib in
-               [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+               [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
                *) abs=`pwd`"/$lib" ;;
              esac
              func_append newdlfiles " $abs"
            done
-           dlfiles="$newdlfiles"
+           dlfiles=$newdlfiles
            newdlprefiles=
            for lib in $dlprefiles; do
              case $lib in
-               [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+               [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
                *) abs=`pwd`"/$lib" ;;
              esac
              func_append newdlprefiles " $abs"
            done
-           dlprefiles="$newdlprefiles"
+           dlprefiles=$newdlprefiles
          fi
          $RM $output
          # place dlname in correct position for cygwin
@@ -9373,10 +10870,9 @@ EOF
          case $host,$output,$installed,$module,$dlname in
            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
              # If a -bindir argument was supplied, place the dll there.
-             if test "x$bindir" != x ;
-             then
+             if test -n "$bindir"; then
                func_relative_path "$install_libdir" "$bindir"
-               tdlname=$func_relative_path_result$dlname
+               tdlname=$func_relative_path_result/$dlname
              else
                # Otherwise fall back on heuristic.
                tdlname=../bin/$dlname
@@ -9385,7 +10881,7 @@ EOF
          esac
          $ECHO > $output "\
 # $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 #
 # Please DO NOT delete this file!
 # It is necessary for linking the library.
@@ -9399,7 +10895,7 @@ library_names='$library_names'
 # The name of the static archive.
 old_library='$old_library'
 
-# Linker flags that can not go in dependency_libs.
+# Linker flags that cannot go in dependency_libs.
 inherited_linker_flags='$new_inherited_linker_flags'
 
 # Libraries that this one depends upon.
@@ -9425,7 +10921,7 @@ dlpreopen='$dlprefiles'
 
 # Directory that this library needs to be installed in:
 libdir='$install_libdir'"
-         if test "$installed" = no && test "$need_relink" = yes; then
+         if test no,yes = "$installed,$need_relink"; then
            $ECHO >> $output "\
 relink_command=\"$relink_command\""
          fi
@@ -9440,27 +10936,29 @@ relink_command=\"$relink_command\""
     exit $EXIT_SUCCESS
 }
 
-{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
-    func_mode_link ${1+"$@"}
+if test link = "$opt_mode" || test relink = "$opt_mode"; then
+  func_mode_link ${1+"$@"}
+fi
 
 
 # func_mode_uninstall arg...
 func_mode_uninstall ()
 {
-    $opt_debug
-    RM="$nonopt"
+    $debug_cmd
+
+    RM=$nonopt
     files=
-    rmforce=
+    rmforce=false
     exit_status=0
 
     # This variable tells wrapper scripts just to set variables rather
     # than running their programs.
-    libtool_install_magic="$magic"
+    libtool_install_magic=$magic
 
     for arg
     do
       case $arg in
-      -f) func_append RM " $arg"; rmforce=yes ;;
+      -f) func_append RM " $arg"; rmforce=: ;;
       -*) func_append RM " $arg" ;;
       *) func_append files " $arg" ;;
       esac
@@ -9473,18 +10971,18 @@ func_mode_uninstall ()
 
     for file in $files; do
       func_dirname "$file" "" "."
-      dir="$func_dirname_result"
-      if test "X$dir" = X.; then
-       odir="$objdir"
+      dir=$func_dirname_result
+      if test . = "$dir"; then
+       odir=$objdir
       else
-       odir="$dir/$objdir"
+       odir=$dir/$objdir
       fi
       func_basename "$file"
-      name="$func_basename_result"
-      test "$opt_mode" = uninstall && odir="$dir"
+      name=$func_basename_result
+      test uninstall = "$opt_mode" && odir=$dir
 
       # Remember odir for removal later, being careful to avoid duplicates
-      if test "$opt_mode" = clean; then
+      if test clean = "$opt_mode"; then
        case " $rmdirs " in
          *" $odir "*) ;;
          *) func_append rmdirs " $odir" ;;
@@ -9499,11 +10997,11 @@ func_mode_uninstall ()
       elif test -d "$file"; then
        exit_status=1
        continue
-      elif test "$rmforce" = yes; then
+      elif $rmforce; then
        continue
       fi
 
-      rmfiles="$file"
+      rmfiles=$file
 
       case $name in
       *.la)
@@ -9517,7 +11015,7 @@ func_mode_uninstall ()
          done
          test -n "$old_library" && func_append rmfiles " $odir/$old_library"
 
-         case "$opt_mode" in
+         case $opt_mode in
          clean)
            case " $library_names " in
            *" $dlname "*) ;;
@@ -9528,12 +11026,12 @@ func_mode_uninstall ()
          uninstall)
            if test -n "$library_names"; then
              # Do each command in the postuninstall commands.
-             func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+             func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1'
            fi
 
            if test -n "$old_library"; then
              # Do each command in the old_postuninstall commands.
-             func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+             func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1'
            fi
            # FIXME: should reinstall the best remaining shared library.
            ;;
@@ -9549,21 +11047,19 @@ func_mode_uninstall ()
          func_source $dir/$name
 
          # Add PIC object to the list of files to remove.
-         if test -n "$pic_object" &&
-            test "$pic_object" != none; then
+         if test -n "$pic_object" && test none != "$pic_object"; then
            func_append rmfiles " $dir/$pic_object"
          fi
 
          # Add non-PIC object to the list of files to remove.
-         if test -n "$non_pic_object" &&
-            test "$non_pic_object" != none; then
+         if test -n "$non_pic_object" && test none != "$non_pic_object"; then
            func_append rmfiles " $dir/$non_pic_object"
          fi
        fi
        ;;
 
       *)
-       if test "$opt_mode" = clean ; then
+       if test clean = "$opt_mode"; then
          noexename=$name
          case $file in
          *.exe)
@@ -9590,12 +11086,12 @@ func_mode_uninstall ()
 
            # note $name still contains .exe if it was in $file originally
            # as does the version of $file that was added into $rmfiles
-           func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
-           if test "$fast_install" = yes && test -n "$relink_command"; then
+           func_append rmfiles " $odir/$name $odir/${name}S.$objext"
+           if test yes = "$fast_install" && test -n "$relink_command"; then
              func_append rmfiles " $odir/lt-$name"
            fi
-           if test "X$noexename" != "X$name" ; then
-             func_append rmfiles " $odir/lt-${noexename}.c"
+           if test "X$noexename" != "X$name"; then
+             func_append rmfiles " $odir/lt-$noexename.c"
            fi
          fi
        fi
@@ -9604,7 +11100,7 @@ func_mode_uninstall ()
       func_show_eval "$RM $rmfiles" 'exit_status=1'
     done
 
-    # Try to remove the ${objdir}s in the directories where we deleted files
+    # Try to remove the $objdir's in the directories where we deleted files
     for dir in $rmdirs; do
       if test -d "$dir"; then
        func_show_eval "rmdir $dir >/dev/null 2>&1"
@@ -9614,16 +11110,17 @@ func_mode_uninstall ()
     exit $exit_status
 }
 
-{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
-    func_mode_uninstall ${1+"$@"}
+if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then
+  func_mode_uninstall ${1+"$@"}
+fi
 
 test -z "$opt_mode" && {
-  help="$generic_help"
+  help=$generic_help
   func_fatal_help "you must specify a MODE"
 }
 
 test -z "$exec_cmd" && \
-  func_fatal_help "invalid operation mode \`$opt_mode'"
+  func_fatal_help "invalid operation mode '$opt_mode'"
 
 if test -n "$exec_cmd"; then
   eval exec "$exec_cmd"
@@ -9634,7 +11131,7 @@ exit $exit_status
 
 
 # The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries.  Given conflicting
+# where we disable both kinds of libraries.  Given conflicting
 # choices, we go for a static library, that is the most portable,
 # since we can't tell whether shared libraries were disabled because
 # the user asked for that or because the platform doesn't support
@@ -9657,5 +11154,3 @@ build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
 # mode:shell-script
 # sh-indentation:2
 # End:
-# vi:sw=2
-
index f62bbae..db98974 100755 (executable)
@@ -3,7 +3,7 @@
 
 scriptversion=2013-10-28.13; # UTC
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
index 7ee7897..157e74d 100644 (file)
@@ -61,8 +61,7 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
 #undef LT_OBJDIR
 
 /* Name of package */
index a078e29..0268aaa 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Moonshot-ui 0.7.2.
+# Generated by GNU Autoconf 2.69 for Moonshot-ui 1.0.3.
 #
 # Report bugs to <moonshot-community@jiscmail.ac.uk>.
 #
@@ -650,8 +650,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='Moonshot-ui'
 PACKAGE_TARNAME='moonshot-ui'
-PACKAGE_VERSION='0.7.2'
-PACKAGE_STRING='Moonshot-ui 0.7.2'
+PACKAGE_VERSION='1.0.3'
+PACKAGE_STRING='Moonshot-ui 1.0.3'
 PACKAGE_BUGREPORT='moonshot-community@jiscmail.ac.uk'
 PACKAGE_URL='http://www.project-moonshot.org/'
 
@@ -748,17 +748,27 @@ OS_WIN32_FALSE
 OS_WIN32_TRUE
 OS_LINUX_FALSE
 OS_LINUX_TRUE
+LOG4VALA_FALSE
+LOG4VALA_TRUE
+GEE_VERSION
+LIB_GEE_LIBS
+LIB_GEE_CFLAGS
+LOG4VALA_VERSION
+LOG4VALA_LIBS
+LOG4VALA_CFLAGS
+GTK_VERSION
+GTK_LIBS
+GTK_CFLAGS
 GDBUS_LIBS
 GDBUS_CFLAGS
 MAC_LIBS
 MAC_CFLAGS
-GTK_LIBS
-GTK_CFLAGS
 VALAC
 PKG_CONFIG_LIBDIR
 PKG_CONFIG_PATH
 PKG_CONFIG
 CPP
+LT_SYS_LIBRARY_PATH
 OTOOL64
 OTOOL
 LIPO
@@ -855,6 +865,7 @@ infodir
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -883,10 +894,12 @@ enable_shared
 enable_static
 with_pic
 enable_fast_install
+with_aix_soname
 enable_dependency_tracking
 with_gnu_ld
 with_sysroot
 enable_libtool_lock
+enable_log4vala
 enable_nls
 enable_rpath
 with_libiconv_prefix
@@ -900,16 +913,21 @@ CFLAGS
 LDFLAGS
 LIBS
 CPPFLAGS
+LT_SYS_LIBRARY_PATH
 CPP
 PKG_CONFIG
 PKG_CONFIG_PATH
 PKG_CONFIG_LIBDIR
-GTK_CFLAGS
-GTK_LIBS
 MAC_CFLAGS
 MAC_LIBS
 GDBUS_CFLAGS
 GDBUS_LIBS
+GTK_CFLAGS
+GTK_LIBS
+LOG4VALA_CFLAGS
+LOG4VALA_LIBS
+LIB_GEE_CFLAGS
+LIB_GEE_LIBS
 moonshot_CFLAGS
 moonshot_LIBS
 libmoonshot_CFLAGS
@@ -952,6 +970,7 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1204,6 +1223,15 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1341,7 +1369,7 @@ fi
 for ac_var in  exec_prefix prefix bindir sbindir libexecdir datarootdir \
                datadir sysconfdir sharedstatedir localstatedir includedir \
                oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-               libdir localedir mandir
+               libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1454,7 +1482,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Moonshot-ui 0.7.2 to adapt to many kinds of systems.
+\`configure' configures Moonshot-ui 1.0.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1494,6 +1522,7 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1524,7 +1553,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Moonshot-ui 0.7.2:";;
+     short | recursive ) echo "Configuration of Moonshot-ui 1.0.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1546,6 +1575,7 @@ Optional Features:
   --disable-dependency-tracking
                           speeds up one-time build
   --disable-libtool-lock  avoid locking (might break parallel builds)
+  --enable-log4vala    Enable use of log4vala for logging
   --disable-nls           do not use Native Language Support
   --disable-rpath         do not hardcode runtime library paths
 
@@ -1554,9 +1584,12 @@ Optional Packages:
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
   --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                           both]
+  --with-aix-soname=aix|svr4|both
+                          shared library versioning (aka "SONAME") variant to
+                          provide on AIX, [default=aix].
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-sysroot=DIR Search for dependent libraries within DIR
-                        (or the compiler's sysroot if not specified).
+  --with-sysroot[=DIR]    Search for dependent libraries within DIR (or the
+                          compiler's sysroot if not specified).
   --with-gnu-ld           assume the C compiler uses GNU ld default=no
   --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib
   --without-libiconv-prefix     don't search for libiconv in includedir and libdir
@@ -1571,19 +1604,29 @@ Some influential environment variables:
   LIBS        libraries to pass to the linker, e.g. -l<library>
   CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
               you have headers in a nonstandard directory <include dir>
+  LT_SYS_LIBRARY_PATH
+              User-defined run-time library search path.
   CPP         C preprocessor
   PKG_CONFIG  path to pkg-config utility
   PKG_CONFIG_PATH
               directories to add to pkg-config's search path
   PKG_CONFIG_LIBDIR
               path overriding pkg-config's built-in search path
-  GTK_CFLAGS  C compiler flags for GTK, overriding pkg-config
-  GTK_LIBS    linker flags for GTK, overriding pkg-config
   MAC_CFLAGS  C compiler flags for MAC, overriding pkg-config
   MAC_LIBS    linker flags for MAC, overriding pkg-config
   GDBUS_CFLAGS
               C compiler flags for GDBUS, overriding pkg-config
   GDBUS_LIBS  linker flags for GDBUS, overriding pkg-config
+  GTK_CFLAGS  C compiler flags for GTK, overriding pkg-config
+  GTK_LIBS    linker flags for GTK, overriding pkg-config
+  LOG4VALA_CFLAGS
+              C compiler flags for LOG4VALA, overriding pkg-config
+  LOG4VALA_LIBS
+              linker flags for LOG4VALA, overriding pkg-config
+  LIB_GEE_CFLAGS
+              C compiler flags for LIB_GEE, overriding pkg-config
+  LIB_GEE_LIBS
+              linker flags for LIB_GEE, overriding pkg-config
   moonshot_CFLAGS
               C compiler flags for moonshot, overriding pkg-config
   moonshot_LIBS
@@ -1660,7 +1703,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Moonshot-ui configure 0.7.2
+Moonshot-ui configure 1.0.3
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1938,7 +1981,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Moonshot-ui $as_me 0.7.2, which was
+It was created by Moonshot-ui $as_me 1.0.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2816,7 +2859,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='moonshot-ui'
- VERSION='0.7.2'
+ VERSION='1.0.3'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3066,8 +3109,8 @@ esac
 
 
 
-macro_version='2.4.2'
-macro_revision='1.3337'
+macro_version='2.4.6'
+macro_revision='2.4.6'
 
 
 
@@ -3081,7 +3124,7 @@ macro_revision='1.3337'
 
 
 
-ltmain="$ac_aux_dir/ltmain.sh"
+ltmain=$ac_aux_dir/ltmain.sh
 
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
@@ -3201,7 +3244,7 @@ func_echo_all ()
     $ECHO ""
 }
 
-case "$ECHO" in
+case $ECHO in
   printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
 $as_echo "printf" >&6; } ;;
   print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
@@ -4563,19 +4606,19 @@ test -z "$GREP" && GREP=grep
 
 # Check whether --with-gnu-ld was given.
 if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+  withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
 else
   with_gnu_ld=no
 fi
 
 ac_prog=ld
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   # Check if gcc -print-prog-name=ld gives a path.
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
 $as_echo_n "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
+    # gcc leaves a trailing carriage return, which upsets mingw
     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
   *)
     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
@@ -4589,7 +4632,7 @@ $as_echo_n "checking for ld used by $CC... " >&6; }
       while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
        ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
       done
-      test -z "$LD" && LD="$ac_prog"
+      test -z "$LD" && LD=$ac_prog
       ;;
   "")
     # If it fails, then pretend we aren't using GCC.
@@ -4600,7 +4643,7 @@ $as_echo_n "checking for ld used by $CC... " >&6; }
     with_gnu_ld=unknown
     ;;
   esac
-elif test "$with_gnu_ld" = yes; then
+elif test yes = "$with_gnu_ld"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
 $as_echo_n "checking for GNU ld... " >&6; }
 else
@@ -4611,32 +4654,32 @@ if ${lt_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
+      lt_cv_path_LD=$ac_dir/$ac_prog
       # Check to see if the program is GNU ld.  I'd rather use --version,
       # but apparently some variants of GNU ld only accept -v.
       # Break only if it was the GNU/non-GNU ld that we prefer.
       case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
       *GNU* | *'with BFD'*)
-       test "$with_gnu_ld" != no && break
+       test no != "$with_gnu_ld" && break
        ;;
       *)
-       test "$with_gnu_ld" != yes && break
+       test yes != "$with_gnu_ld" && break
        ;;
       esac
     fi
   done
-  IFS="$lt_save_ifs"
+  IFS=$lt_save_ifs
 else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+  lt_cv_path_LD=$LD # Let the user override the test with a path.
 fi
 fi
 
-LD="$lt_cv_path_LD"
+LD=$lt_cv_path_LD
 if test -n "$LD"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
 $as_echo "$LD" >&6; }
@@ -4679,33 +4722,38 @@ if ${lt_cv_path_NM+:} false; then :
 else
   if test -n "$NM"; then
   # Let the user override the test.
-  lt_cv_path_NM="$NM"
+  lt_cv_path_NM=$NM
 else
-  lt_nm_to_check="${ac_tool_prefix}nm"
+  lt_nm_to_check=${ac_tool_prefix}nm
   if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
     lt_nm_to_check="$lt_nm_to_check nm"
   fi
   for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
     for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+      tmp_nm=$ac_dir/$lt_tmp_nm
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
        # Check to see if the nm accepts a BSD-compat flag.
-       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+       # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
        #   nm: unknown option "B" ignored
        # Tru64's nm complains that /dev/null is an invalid object file
-       case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-       */dev/null* | *'Invalid file or object type'*)
+       # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+       case $build_os in
+       mingw*) lt_bad_file=conftest.nm/nofile ;;
+       *) lt_bad_file=/dev/null ;;
+       esac
+       case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+       *$lt_bad_file* | *'Invalid file or object type'*)
          lt_cv_path_NM="$tmp_nm -B"
-         break
+         break 2
          ;;
        *)
          case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
          */dev/null*)
            lt_cv_path_NM="$tmp_nm -p"
-           break
+           break 2
            ;;
          *)
            lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
@@ -4716,15 +4764,15 @@ else
        esac
       fi
     done
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
   done
   : ${lt_cv_path_NM=no}
 fi
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
 $as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
+if test no != "$lt_cv_path_NM"; then
+  NM=$lt_cv_path_NM
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
   if test -n "$DUMPBIN"; then :
@@ -4830,9 +4878,9 @@ esac
   fi
 fi
 
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
     *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
+      DUMPBIN="$DUMPBIN -symbols -headers"
       ;;
     *)
       DUMPBIN=:
@@ -4840,8 +4888,8 @@ fi
     esac
   fi
 
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
+  if test : != "$DUMPBIN"; then
+    NM=$DUMPBIN
   fi
 fi
 test -z "$NM" && NM=nm
@@ -4892,7 +4940,7 @@ if ${lt_cv_sys_max_cmd_len+:} false; then :
   $as_echo_n "(cached) " >&6
 else
     i=0
-  teststring="ABCD"
+  teststring=ABCD
 
   case $build_os in
   msdosdjgpp*)
@@ -4932,7 +4980,7 @@ else
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
     # This has been around since 386BSD, at least.  Likely further.
     if test -x /sbin/sysctl; then
       lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -4983,22 +5031,22 @@ else
   *)
     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
     if test -n "$lt_cv_sys_max_cmd_len" && \
-       test undefined != "$lt_cv_sys_max_cmd_len"; then
+       test undefined != "$lt_cv_sys_max_cmd_len"; then
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     else
       # Make teststring a little bigger before we do anything with it.
       # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
+      for i in 1 2 3 4 5 6 7 8; do
         teststring=$teststring$teststring
       done
       SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+      while { test X`env echo "$teststring$teststring" 2>/dev/null` \
                 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-             test $i != 17 # 1/2 MB should be enough
+             test 17 != "$i" # 1/2 MB should be enough
       do
         i=`expr $i + 1`
         teststring=$teststring$teststring
@@ -5016,7 +5064,7 @@ else
 
 fi
 
-if test -n $lt_cv_sys_max_cmd_len ; then
+if test -n "$lt_cv_sys_max_cmd_len"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
 $as_echo "$lt_cv_sys_max_cmd_len" >&6; }
 else
@@ -5034,30 +5082,6 @@ max_cmd_len=$lt_cv_sys_max_cmd_len
 : ${MV="mv -f"}
 : ${RM="rm -f"}
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,b/c, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
 if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   lt_unset=unset
 else
@@ -5180,13 +5204,13 @@ esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
   cygwin* | mingw* | pw32* | cegcc*)
-    if test "$GCC" != yes; then
+    if test yes != "$GCC"; then
       reload_cmds=false
     fi
     ;;
   darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    if test yes = "$GCC"; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
     else
       reload_cmds='$LD$reload_flag -o $output$reload_objs'
     fi
@@ -5311,13 +5335,13 @@ lt_cv_deplibs_check_method='unknown'
 # Need to set the preceding variable on all platforms that support
 # interlibrary dependencies.
 # 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
+# 'unknown' -- same as none, but documents that we really don't know.
 # 'pass_all' -- all dependencies passed with no checks.
 # 'test_compile' -- check by making test program.
 # 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
 
 case $host_os in
 aix[4-9]*)
@@ -5344,8 +5368,7 @@ mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+  if ( file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
@@ -5441,8 +5464,8 @@ newos6*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+openbsd* | bitrig*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
   else
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
@@ -5495,6 +5518,9 @@ sysv4 | sysv4.3*)
 tpf*)
   lt_cv_deplibs_check_method=pass_all
   ;;
+os2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 esac
 
 fi
@@ -5649,8 +5675,8 @@ else
 
 case $host_os in
 cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh
-  # decide which to use based on capabilities of $DLLTOOL
+  # two different shell functions defined in ltmain.sh;
+  # decide which one to use based on capabilities of $DLLTOOL
   case `$DLLTOOL --help 2>&1` in
   *--identify-strict*)
     lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
@@ -5662,7 +5688,7 @@ cygwin* | mingw* | pw32* | cegcc*)
   ;;
 *)
   # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  lt_cv_sharedlib_from_linklib_cmd=$ECHO
   ;;
 esac
 
@@ -5817,7 +5843,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
-      if test "$ac_status" -eq 0; then
+      if test 0 -eq "$ac_status"; then
        # Ensure the archiver fails upon bogus file names.
        rm -f conftest.$ac_objext libconftest.a
        { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
@@ -5825,7 +5851,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
-       if test "$ac_status" -ne 0; then
+       if test 0 -ne "$ac_status"; then
           lt_cv_ar_at_file=@
         fi
       fi
@@ -5838,7 +5864,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
 $as_echo "$lt_cv_ar_at_file" >&6; }
 
-if test "x$lt_cv_ar_at_file" = xno; then
+if test no = "$lt_cv_ar_at_file"; then
   archiver_list_spec=
 else
   archiver_list_spec=$lt_cv_ar_at_file
@@ -6055,7 +6081,7 @@ old_postuninstall_cmds=
 
 if test -n "$RANLIB"; then
   case $host_os in
-  openbsd*)
+  bitrig* | openbsd*)
     old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
@@ -6145,7 +6171,7 @@ cygwin* | mingw* | pw32* | cegcc*)
   symcode='[ABCDGISTW]'
   ;;
 hpux*)
-  if test "$host_cpu" = ia64; then
+  if test ia64 = "$host_cpu"; then
     symcode='[ABCDEGRST]'
   fi
   ;;
@@ -6178,14 +6204,44 @@ case `$NM -V 2>&1` in
   symcode='[ABCDGIRSTW]' ;;
 esac
 
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  # Gets list of data symbols to import.
+  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+  # Adjust the below global symbol transforms to fixup imported variables.
+  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
+  lt_c_name_lib_hook="\
+  -e 's/^I .* \(lib.*\)$/  {\"\1\", (void *) 0},/p'\
+  -e 's/^I .* \(.*\)$/  {\"lib\1\", (void *) 0},/p'"
+else
+  # Disable hooks by default.
+  lt_cv_sys_global_symbol_to_import=
+  lt_cdecl_hook=
+  lt_c_name_hook=
+  lt_c_name_lib_hook=
+fi
+
 # Transform an extracted symbol line into a proper C declaration.
 # Some systems (esp. on ia64) link data and code symbols differently,
 # so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"lib\1\", (void *) \&\1},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -6203,21 +6259,24 @@ for ac_symprfx in "" "_"; do
 
   # Write the raw and C identifiers.
   if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
+    # Fake it for dumpbin and say T for any non-static function,
+    # D for any global variable and I for any imported variable.
     # Also find C++ and __fastcall symbols from MSVC++,
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK '"\
 "     {last_section=section; section=\$ 3};"\
 "     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+"     /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+"     /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
 "     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+"     {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+"     s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
 "     ' prfx=^$ac_symprfx"
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[     ]\($symcode$symcode*\)[         ][      ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
@@ -6265,11 +6324,11 @@ _LT_EOF
        if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
          cat <<_LT_EOF > conftest.$ac_ext
 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
    relocations are performed -- see ld's documentation on pseudo-relocs.  */
 # define LT_DLSYM_CONST
-#elif defined(__osf__)
+#elif defined __osf__
 /* This system does not cope well with relocations in const data.  */
 # define LT_DLSYM_CONST
 #else
@@ -6295,7 +6354,7 @@ lt__PROGRAM__LTX_preloaded_symbols[] =
 {
   { "@PROGRAM@", (void *) 0 },
 _LT_EOF
-         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+         $SED "s/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
          cat <<\_LT_EOF >> conftest.$ac_ext
   {0, (void *) 0}
 };
@@ -6315,13 +6374,13 @@ _LT_EOF
          mv conftest.$ac_objext conftstm.$ac_objext
          lt_globsym_save_LIBS=$LIBS
          lt_globsym_save_CFLAGS=$CFLAGS
-         LIBS="conftstm.$ac_objext"
+         LIBS=conftstm.$ac_objext
          CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
          if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
            pipe_works=yes
          fi
          LIBS=$lt_globsym_save_LIBS
@@ -6342,7 +6401,7 @@ _LT_EOF
   rm -rf conftest* conftst*
 
   # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
+  if test yes = "$pipe_works"; then
     break
   else
     lt_cv_sys_global_symbol_pipe=
@@ -6395,6 +6454,16 @@ fi
 
 
 
+
+
+
+
+
+
+
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
 $as_echo_n "checking for sysroot... " >&6; }
 
@@ -6407,9 +6476,9 @@ fi
 
 
 lt_sysroot=
-case ${with_sysroot} in #(
+case $with_sysroot in #(
  yes)
-   if test "$GCC" = yes; then
+   if test yes = "$GCC"; then
      lt_sysroot=`$CC --print-sysroot 2>/dev/null`
    fi
    ;; #(
@@ -6419,8 +6488,8 @@ case ${with_sysroot} in #(
  no|'')
    ;; #(
  *)
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
-$as_echo "${with_sysroot}" >&6; }
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+$as_echo "$with_sysroot" >&6; }
    as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
    ;;
 esac
@@ -6432,18 +6501,99 @@ $as_echo "${lt_sysroot:-no}" >&6; }
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+$as_echo_n "checking for a working dd... " >&6; }
+if ${ac_cv_path_lt_DD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+if test -z "$lt_DD"; then
+  ac_path_lt_DD_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in dd; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_lt_DD" || continue
+if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi
+      $ac_path_lt_DD_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_lt_DD"; then
+    :
+  fi
+else
+  ac_cv_path_lt_DD=$lt_DD
+fi
+
+rm -f conftest.i conftest2.i conftest.out
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+$as_echo "$ac_cv_path_lt_DD" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+$as_echo_n "checking how to truncate binary pipes... " >&6; }
+if ${lt_cv_truncate_bin+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+$as_echo "$lt_cv_truncate_bin" >&6; }
+
+
+
+
+
+
+
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in $*""; do
+      case $cc_temp in
+        compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+        distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
 # Check whether --enable-libtool-lock was given.
 if test "${enable_libtool_lock+set}" = set; then :
   enableval=$enable_libtool_lock;
 fi
 
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
 
 # Some flags need to be propagated to the compiler or linker for good
 # libtool support.
 case $host in
 ia64-*-hpux*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set mode
+  # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
@@ -6452,24 +6602,25 @@ ia64-*-hpux*)
   test $ac_status = 0; }; then
     case `/usr/bin/file conftest.$ac_objext` in
       *ELF-32*)
-       HPUX_IA64_MODE="32"
+       HPUX_IA64_MODE=32
        ;;
       *ELF-64*)
-       HPUX_IA64_MODE="64"
+       HPUX_IA64_MODE=64
        ;;
     esac
   fi
   rm -rf conftest*
   ;;
 *-*-irix6*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
   echo '#line '$LINENO' "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
+    if test yes = "$lt_cv_prog_gnu_ld"; then
       case `/usr/bin/file conftest.$ac_objext` in
        *32-bit*)
          LD="${LD-ld} -melf32bsmip"
@@ -6498,9 +6649,50 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
+mips64*-*linux*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    emul=elf
+    case `/usr/bin/file conftest.$ac_objext` in
+      *32-bit*)
+       emul="${emul}32"
+       ;;
+      *64-bit*)
+       emul="${emul}64"
+       ;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *MSB*)
+       emul="${emul}btsmip"
+       ;;
+      *LSB*)
+       emul="${emul}ltsmip"
+       ;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *N32*)
+       emul="${emul}n32"
+       ;;
+    esac
+    LD="${LD-ld} -m $emul"
+  fi
+  rm -rf conftest*
+  ;;
+
 x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.  Note that the listed cases only cover the
+  # situations where additional linker options are needed (such as when
+  # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+  # vice versa); the common cases where no linker options are needed do
+  # not appear in the list.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
@@ -6523,10 +6715,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
                ;;
            esac
            ;;
-         powerpc64le-*)
+         powerpc64le-*linux*)
            LD="${LD-ld} -m elf32lppclinux"
            ;;
-         powerpc64-*)
+         powerpc64-*linux*)
            LD="${LD-ld} -m elf32ppclinux"
            ;;
          s390x-*linux*)
@@ -6545,10 +6737,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
          x86_64-*linux*)
            LD="${LD-ld} -m elf_x86_64"
            ;;
-         powerpcle-*)
+         powerpcle-*linux*)
            LD="${LD-ld} -m elf64lppc"
            ;;
-         powerpc-*)
+         powerpc-*linux*)
            LD="${LD-ld} -m elf64ppc"
            ;;
          s390*-*linux*|s390*-*tpf*)
@@ -6566,7 +6758,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 
 *-*-sco3.2v5*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
+  SAVE_CFLAGS=$CFLAGS
   CFLAGS="$CFLAGS -belf"
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
@@ -6606,13 +6798,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
 $as_echo "$lt_cv_cc_needs_belf" >&6; }
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+  if test yes != "$lt_cv_cc_needs_belf"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
+    CFLAGS=$SAVE_CFLAGS
   fi
   ;;
 *-*solaris*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
@@ -6624,7 +6817,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
       case $lt_cv_prog_gnu_ld in
       yes*)
         case $host in
-        i?86-*-solaris*)
+        i?86-*-solaris*|x86_64-*-solaris*)
           LD="${LD-ld} -m elf_x86_64"
           ;;
         sparc*-*-solaris*)
@@ -6633,7 +6826,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
         esac
         # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
         if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD="${LD-ld}_sol2"
+          LD=${LD-ld}_sol2
         fi
         ;;
       *)
@@ -6649,7 +6842,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
   ;;
 esac
 
-need_locks="$enable_libtool_lock"
+need_locks=$enable_libtool_lock
 
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
@@ -6760,7 +6953,7 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
 $as_echo "$lt_cv_path_mainfest_tool" >&6; }
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
+if test yes != "$lt_cv_path_mainfest_tool"; then
   MANIFEST_TOOL=:
 fi
 
@@ -7263,7 +7456,7 @@ if ${lt_cv_apple_cc_single_mod+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
+      if test -z "$LT_MULTI_MODULE"; then
        # By default we will add the -single_module flag. You can override
        # by either setting the environment variable LT_MULTI_MODULE
        # non-empty at configure time, or by adding -multi_module to the
@@ -7281,7 +7474,7 @@ else
          cat conftest.err >&5
        # Otherwise, if the output was created with a 0 exit code from
        # the compiler, it worked.
-       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
+       elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
          lt_cv_apple_cc_single_mod=yes
        else
          cat conftest.err >&5
@@ -7320,7 +7513,7 @@ else
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-       LDFLAGS="$save_LDFLAGS"
+       LDFLAGS=$save_LDFLAGS
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
@@ -7349,7 +7542,7 @@ _LT_EOF
       _lt_result=$?
       if test -s conftest.err && $GREP force_load conftest.err; then
        cat conftest.err >&5
-      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+      elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
        lt_cv_ld_force_load=yes
       else
        cat conftest.err >&5
@@ -7362,32 +7555,32 @@ fi
 $as_echo "$lt_cv_ld_force_load" >&6; }
     case $host_os in
     rhapsody* | darwin1.[012])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
     darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
     darwin*) # darwin 5.x on
       # if running on 10.5 or later, the deployment target defaults
       # to the OS version, if on x86, and 10.4, the deployment
       # target defaults to 10.4. Don't you love it?
       case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
        10.0,*86*-darwin8*|10.0,*-darwin[91]*)
-         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-       10.[012]*)
-         _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+         _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+       10.[012][,.]*)
+         _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
        10.*)
-         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+         _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
       esac
     ;;
   esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+    if test yes = "$lt_cv_apple_cc_single_mod"; then
       _lt_dar_single_mod='$single_module'
     fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    if test yes = "$lt_cv_ld_exported_symbols_list"; then
+      _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
     else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
     fi
-    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+    if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -7395,6 +7588,41 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
     ;;
   esac
 
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x$2 in
+    x)
+        ;;
+    *:)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+        ;;
+    x:*)
+        eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+        ;;
+    *)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -7996,14 +8224,14 @@ if test "${enable_shared+set}" = set; then :
     *)
       enable_shared=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$pkg" = "X$p"; then
          enable_shared=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac
 else
@@ -8027,14 +8255,14 @@ if test "${enable_static+set}" = set; then :
     *)
      enable_static=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$pkg" = "X$p"; then
          enable_static=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac
 else
@@ -8058,14 +8286,14 @@ if test "${with_pic+set}" = set; then :
     *)
       pic_mode=default
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for lt_pkg in $withval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$lt_pkg" = "X$lt_p"; then
          pic_mode=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac
 else
@@ -8073,8 +8301,6 @@ else
 fi
 
 
-test -z "$pic_mode" && pic_mode=default
-
 
 
 
@@ -8090,14 +8316,14 @@ if test "${enable_fast_install+set}" = set; then :
     *)
       enable_fast_install=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$pkg" = "X$p"; then
          enable_fast_install=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac
 else
@@ -8111,11 +8337,63 @@ fi
 
 
 
+  shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[5-9]*,yes)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+
+# Check whether --with-aix-soname was given.
+if test "${with_aix_soname+set}" = set; then :
+  withval=$with_aix_soname; case $withval in
+    aix|svr4|both)
+      ;;
+    *)
+      as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
+      ;;
+    esac
+    lt_cv_with_aix_soname=$with_aix_soname
+else
+  if ${lt_cv_with_aix_soname+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_with_aix_soname=aix
+fi
+
+    with_aix_soname=$lt_cv_with_aix_soname
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+$as_echo "$with_aix_soname" >&6; }
+  if test aix != "$with_aix_soname"; then
+    # For the AIX way of multilib, we name the shared archive member
+    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+    # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+    # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+    # the AIX toolchain works better with OBJECT_MODE set (default 32).
+    if test 64 = "${OBJECT_MODE-32}"; then
+      shared_archive_member_spec=shr_64
+    else
+      shared_archive_member_spec=shr
+    fi
+  fi
+  ;;
+*)
+  with_aix_soname=aix
+  ;;
+esac
+
+
+
+
+
+
+
 
 
 
 # This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
+LIBTOOL_DEPS=$ltmain
 
 # Always use our own libtool.
 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
@@ -8164,7 +8442,7 @@ test -z "$LN_S" && LN_S="ln -s"
 
 
 
-if test -n "${ZSH_VERSION+set}" ; then
+if test -n "${ZSH_VERSION+set}"; then
    setopt NO_GLOB_SUBST
 fi
 
@@ -8203,7 +8481,7 @@ aix3*)
   # AIX sometimes has problems with the GCC collect2 program.  For some
   # reason, if we set the COLLECT_NAMES environment variable, the problems
   # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
+  if test set != "${COLLECT_NAMES+set}"; then
     COLLECT_NAMES=
     export COLLECT_NAMES
   fi
@@ -8214,14 +8492,14 @@ esac
 ofile=libtool
 can_build_shared=yes
 
-# All known linkers require a `.a' archive for static linking (except MSVC,
+# All known linkers require a '.a' archive for static linking (except MSVC,
 # which needs '.lib').
 libext=a
 
-with_gnu_ld="$lt_cv_prog_gnu_ld"
+with_gnu_ld=$lt_cv_prog_gnu_ld
 
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
+old_CC=$CC
+old_CFLAGS=$CFLAGS
 
 # Set sane defaults for various variables
 test -z "$CC" && CC=cc
@@ -8230,15 +8508,8 @@ test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
 test -z "$LD" && LD=ld
 test -z "$ac_objext" && ac_objext=o
 
-for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
 
 
 # Only perform the check for file, if the check method requires it
@@ -8253,22 +8524,22 @@ if ${lt_cv_path_MAGIC_CMD+:} false; then :
 else
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
   ;;
 *)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_MAGIC_CMD=$MAGIC_CMD
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
   for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/${ac_tool_prefix}file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+    if test -f "$ac_dir/${ac_tool_prefix}file"; then
+      lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
       if test -n "$file_magic_test_file"; then
        case $deplibs_check_method in
        "file_magic "*)
          file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+         MAGIC_CMD=$lt_cv_path_MAGIC_CMD
          if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
            $EGREP "$file_magic_regex" > /dev/null; then
            :
@@ -8291,13 +8562,13 @@ _LT_EOF
       break
     fi
   done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  IFS=$lt_save_ifs
+  MAGIC_CMD=$lt_save_MAGIC_CMD
   ;;
 esac
 fi
 
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 if test -n "$MAGIC_CMD"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
@@ -8319,22 +8590,22 @@ if ${lt_cv_path_MAGIC_CMD+:} false; then :
 else
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
   ;;
 *)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_MAGIC_CMD=$MAGIC_CMD
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
   for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/file"
+    if test -f "$ac_dir/file"; then
+      lt_cv_path_MAGIC_CMD=$ac_dir/"file"
       if test -n "$file_magic_test_file"; then
        case $deplibs_check_method in
        "file_magic "*)
          file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+         MAGIC_CMD=$lt_cv_path_MAGIC_CMD
          if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
            $EGREP "$file_magic_regex" > /dev/null; then
            :
@@ -8357,13 +8628,13 @@ _LT_EOF
       break
     fi
   done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  IFS=$lt_save_ifs
+  MAGIC_CMD=$lt_save_MAGIC_CMD
   ;;
 esac
 fi
 
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 if test -n "$MAGIC_CMD"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
@@ -8384,7 +8655,7 @@ esac
 
 # Use C for the default configuration in the libtool script
 
-lt_save_CC="$CC"
+lt_save_CC=$CC
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -8446,7 +8717,7 @@ if test -n "$compiler"; then
 
 lt_prog_compiler_no_builtin_flag=
 
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   case $cc_basename in
   nvcc*)
     lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
@@ -8462,7 +8733,7 @@ else
   lt_cv_prog_compiler_rtti_exceptions=no
    ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   lt_compiler_flag="-fno-rtti -fno-exceptions"  ## exclude from sc_useless_quotes_in_assignment
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
    # Note that $ac_compile itself does not contain backslashes and begins
@@ -8492,7 +8763,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
     lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
 else
     :
@@ -8510,17 +8781,18 @@ lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
 
-  if test "$GCC" = yes; then
+  if test yes = "$GCC"; then
     lt_prog_compiler_wl='-Wl,'
     lt_prog_compiler_static='-static'
 
     case $host_os in
       aix*)
       # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # AIX 5 now supports IA64 processor
        lt_prog_compiler_static='-Bstatic'
       fi
+      lt_prog_compiler_pic='-fPIC'
       ;;
 
     amigaos*)
@@ -8531,8 +8803,8 @@ lt_prog_compiler_static=
         ;;
       m68k)
             # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
             lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
         ;;
       esac
@@ -8548,6 +8820,11 @@ lt_prog_compiler_static=
       # Although the cygwin gcc ignores -fPIC, still need this for old-style
       # (--disable-auto-import) libraries
       lt_prog_compiler_pic='-DDLL_EXPORT'
+      case $host_os in
+      os2*)
+       lt_prog_compiler_static='$wl-static'
+       ;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -8618,7 +8895,7 @@ lt_prog_compiler_static=
     case $host_os in
     aix*)
       lt_prog_compiler_wl='-Wl,'
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # AIX 5 now supports IA64 processor
        lt_prog_compiler_static='-Bstatic'
       else
@@ -8626,10 +8903,29 @@ lt_prog_compiler_static=
       fi
       ;;
 
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic='-fno-common'
+      case $cc_basename in
+      nagfor*)
+        # NAG Fortran compiler
+        lt_prog_compiler_wl='-Wl,-Wl,,'
+        lt_prog_compiler_pic='-PIC'
+        lt_prog_compiler_static='-Bstatic'
+        ;;
+      esac
+      ;;
+
     mingw* | cygwin* | pw32* | os2* | cegcc*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       lt_prog_compiler_pic='-DDLL_EXPORT'
+      case $host_os in
+      os2*)
+       lt_prog_compiler_static='$wl-static'
+       ;;
+      esac
       ;;
 
     hpux9* | hpux10* | hpux11*)
@@ -8645,7 +8941,7 @@ lt_prog_compiler_static=
        ;;
       esac
       # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static='${wl}-a ${wl}archive'
+      lt_prog_compiler_static='$wl-a ${wl}archive'
       ;;
 
     irix5* | irix6* | nonstopux*)
@@ -8656,7 +8952,7 @@ lt_prog_compiler_static=
 
     linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
       case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
+      # old Intel for x86_64, which still supported -KPIC.
       ecc*)
        lt_prog_compiler_wl='-Wl,'
        lt_prog_compiler_pic='-KPIC'
@@ -8681,6 +8977,12 @@ lt_prog_compiler_static=
        lt_prog_compiler_pic='-PIC'
        lt_prog_compiler_static='-Bstatic'
        ;;
+      tcc*)
+       # Fabrice Bellard et al's Tiny C Compiler
+       lt_prog_compiler_wl='-Wl,'
+       lt_prog_compiler_pic='-fPIC'
+       lt_prog_compiler_static='-static'
+       ;;
       pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
        # which looks to be a dead project)
@@ -8778,7 +9080,7 @@ lt_prog_compiler_static=
       ;;
 
     sysv4*MP*)
-      if test -d /usr/nec ;then
+      if test -d /usr/necthen
        lt_prog_compiler_pic='-Kconform_pic'
        lt_prog_compiler_static='-Bstatic'
       fi
@@ -8807,7 +9109,7 @@ lt_prog_compiler_static=
   fi
 
 case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
+  # For platforms that do not support PIC, -DPIC is meaningless:
   *djgpp*)
     lt_prog_compiler_pic=
     ;;
@@ -8839,7 +9141,7 @@ else
   lt_cv_prog_compiler_pic_works=no
    ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"  ## exclude from sc_useless_quotes_in_assignment
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
    # Note that $ac_compile itself does not contain backslashes and begins
@@ -8869,7 +9171,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
 
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+if test yes = "$lt_cv_prog_compiler_pic_works"; then
     case $lt_prog_compiler_pic in
      "" | " "*) ;;
      *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
@@ -8901,7 +9203,7 @@ if ${lt_cv_prog_compiler_static_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works=no
-   save_LDFLAGS="$LDFLAGS"
+   save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
@@ -8920,13 +9222,13 @@ else
      fi
    fi
    $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
+   LDFLAGS=$save_LDFLAGS
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
 $as_echo "$lt_cv_prog_compiler_static_works" >&6; }
 
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+if test yes = "$lt_cv_prog_compiler_static_works"; then
     :
 else
     lt_prog_compiler_static=
@@ -9046,8 +9348,8 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
 
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
   # do not overwrite the value of need_locks provided by the user
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
 $as_echo_n "checking if we can lock with hard links... " >&6; }
@@ -9059,9 +9361,9 @@ $as_echo_n "checking if we can lock with hard links... " >&6; }
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
 $as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+  if test no = "$hard_links"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
@@ -9104,9 +9406,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   # included in the symbol list
   include_expsyms=
   # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
+  # it will be wrapped by ' (' and ')$', so one must not match beginning or
+  # end of line.  Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+  # as well as any symbol that contains 'd'.
   exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
@@ -9121,7 +9423,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
     # FIXME: the MSVC++ port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
     # Microsoft Visual C++.
-    if test "$GCC" != yes; then
+    if test yes != "$GCC"; then
       with_gnu_ld=no
     fi
     ;;
@@ -9129,7 +9431,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
     # we just hope/assume this is gcc and not c89 (= MSVC++)
     with_gnu_ld=yes
     ;;
-  openbsd*)
+  openbsd* | bitrig*)
     with_gnu_ld=no
     ;;
   linux* | k*bsd*-gnu | gnu*)
@@ -9142,7 +9444,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   # On some targets, GNU ld is compatible enough with the native linker
   # that we're better off using the native interface for both.
   lt_use_gnu_ld_interface=no
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     case $host_os in
       aix*)
        # The AIX port of GNU ld has always aspired to compatibility
@@ -9164,24 +9466,24 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
     esac
   fi
 
-  if test "$lt_use_gnu_ld_interface" = yes; then
+  if test yes = "$lt_use_gnu_ld_interface"; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
+    wlarc='$wl'
 
     # Set some defaults for GNU ld with shared library support. These
     # are reset later if shared libraries are not supported. Putting them
     # here allows them to be overridden if necessary.
     runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    export_dynamic_flag_spec='${wl}--export-dynamic'
+    hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+    export_dynamic_flag_spec='$wl--export-dynamic'
     # ancient GNU ld didn't support --whole-archive et. al.
     if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
     else
       whole_archive_flag_spec=
     fi
     supports_anon_versioning=no
-    case `$LD -v 2>&1` in
+    case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
       *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@@ -9194,7 +9496,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
     case $host_os in
     aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
+      if test ia64 != "$host_cpu"; then
        ld_shlibs=no
        cat <<_LT_EOF 1>&2
 
@@ -9213,7 +9515,7 @@ _LT_EOF
       case $host_cpu in
       powerpc)
             # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
             archive_expsym_cmds=''
         ;;
       m68k)
@@ -9229,7 +9531,7 @@ _LT_EOF
        allow_undefined_flag=unsupported
        # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
        # support --undefined.  This deserves some investigation.  FIXME
-       archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
       else
        ld_shlibs=no
       fi
@@ -9239,7 +9541,7 @@ _LT_EOF
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
       hardcode_libdir_flag_spec='-L$libdir'
-      export_dynamic_flag_spec='${wl}--export-all-symbols'
+      export_dynamic_flag_spec='$wl--export-all-symbols'
       allow_undefined_flag=unsupported
       always_export_symbols=no
       enable_shared_with_static_runtimes=yes
@@ -9247,61 +9549,89 @@ _LT_EOF
       exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-       # If the export-symbols file already is a .def file (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-         cp $export_symbols $output_objdir/$soname.def;
-       else
-         echo EXPORTS > $output_objdir/$soname.def;
-         cat $export_symbols >> $output_objdir/$soname.def;
-       fi~
-       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+       # If the export-symbols file already is a .def file, use it as
+       # is; otherwise, prepend EXPORTS...
+       archive_expsym_cmds='if   test DEF = "`$SED -n     -e '\''s/^[   ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([     ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
+          cp $export_symbols $output_objdir/$soname.def;
+        else
+          echo EXPORTS > $output_objdir/$soname.def;
+          cat $export_symbols >> $output_objdir/$soname.def;
+        fi~
+        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
       else
        ld_shlibs=no
       fi
       ;;
 
     haiku*)
-      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
       link_all_deplibs=yes
       ;;
 
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      allow_undefined_flag=unsupported
+      shrext_cmds=.dll
+      archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       prefix_cmds="$SED"~
+       if test EXPORTS = "`$SED 1q $export_symbols`"; then
+         prefix_cmds="$prefix_cmds -e 1d";
+       fi~
+       prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+       cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      enable_shared_with_static_runtimes=yes
+      ;;
+
     interix[3-9]*)
       hardcode_direct=no
       hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-      export_dynamic_flag_spec='${wl}-E'
+      hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+      export_dynamic_flag_spec='$wl-E'
       # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
       # Instead, shared libraries are loaded at an image base (0x10000000 by
       # default) and relocated if they conflict, which is a slow very memory
       # consuming and fragmenting process.  To avoid this, we pick a random,
       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
       # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
     gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
+      if test linux-dietlibc = "$host_os"; then
        case $cc_basename in
          diet\ *) tmp_diet=yes;;       # linux-dietlibc with static linking (!diet-dyn)
        esac
       fi
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-        && test "$tmp_diet" = no
+        && test no = "$tmp_diet"
       then
        tmp_addflag=' $pic_flag'
        tmp_sharedflag='-shared'
        case $cc_basename,$host_cpu in
         pgcc*)                         # Portland Group C compiler
-         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          tmp_addflag=' $pic_flag'
          ;;
        pgf77* | pgf90* | pgf95* | pgfortran*)
                                        # Portland Group f77 and f90 compilers
-         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          tmp_addflag=' $pic_flag -Mnomain' ;;
        ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
          tmp_addflag=' -i_dynamic' ;;
@@ -9312,42 +9642,47 @@ _LT_EOF
        lf95*)                          # Lahey Fortran 8.1
          whole_archive_flag_spec=
          tmp_sharedflag='--shared' ;;
+        nagfor*)                        # NAGFOR 5.3
+          tmp_sharedflag='-Wl,-shared' ;;
        xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
          tmp_sharedflag='-qmkshrobj'
          tmp_addflag= ;;
        nvcc*)  # Cuda Compiler Driver 2.2
-         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          compiler_needs_object=yes
          ;;
        esac
        case `$CC -V 2>&1 | sed 5q` in
        *Sun\ C*)                       # Sun C 5.9
-         whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          compiler_needs_object=yes
          tmp_sharedflag='-G' ;;
        *Sun\ F*)                       # Sun Fortran 8.3
          tmp_sharedflag='-G' ;;
        esac
-       archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
 
-        if test "x$supports_anon_versioning" = xyes; then
+        if test yes = "$supports_anon_versioning"; then
           archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-           cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-           echo "local: *; };" >> $output_objdir/$libname.ver~
-           $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+            echo "local: *; };" >> $output_objdir/$libname.ver~
+            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
         fi
 
        case $cc_basename in
+       tcc*)
+         export_dynamic_flag_spec='-rdynamic'
+         ;;
        xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-         hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+         hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
          archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-         if test "x$supports_anon_versioning" = xyes; then
+         if test yes = "$supports_anon_versioning"; then
            archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-             cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-             echo "local: *; };" >> $output_objdir/$libname.ver~
-             $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+              echo "local: *; };" >> $output_objdir/$libname.ver~
+              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
          fi
          ;;
        esac
@@ -9361,8 +9696,8 @@ _LT_EOF
        archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
       else
-       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -9380,8 +9715,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       else
        ld_shlibs=no
       fi
@@ -9393,7 +9728,7 @@ _LT_EOF
        ld_shlibs=no
        cat <<_LT_EOF 1>&2
 
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
 *** reliably create shared libraries on SCO systems.  Therefore, libtool
 *** is disabling shared libraries support.  We urge you to upgrade GNU
 *** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
@@ -9408,9 +9743,9 @@ _LT_EOF
          # DT_RUNPATH tag from executables and libraries.  But doing so
          # requires that you compile everything twice, which is a pain.
          if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-           hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-           archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-           archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+           hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+           archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+           archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
          else
            ld_shlibs=no
          fi
@@ -9427,15 +9762,15 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       else
        ld_shlibs=no
       fi
       ;;
     esac
 
-    if test "$ld_shlibs" = no; then
+    if test no = "$ld_shlibs"; then
       runpath_var=
       hardcode_libdir_flag_spec=
       export_dynamic_flag_spec=
@@ -9451,7 +9786,7 @@ _LT_EOF
       # Note: this linker hardcodes the directories in LIBPATH if there
       # are no directories specified by -L.
       hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+      if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
        # Neither direct hardcoding nor static linking is supported with a
        # broken collect2.
        hardcode_direct=unsupported
@@ -9459,34 +9794,57 @@ _LT_EOF
       ;;
 
     aix[4-9]*)
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # On IA64, the linker does run time linking by default, so we don't
        # have to do anything special.
        aix_use_runtimelinking=no
        exp_sym_flag='-Bexport'
-       no_entry_flag=""
+       no_entry_flag=
       else
        # If we're using GNU nm, then we don't want the "-C" option.
-       # -C means demangle to AIX nm, but means don't demangle with GNU nm
-       # Also, AIX nm treats weak defined symbols like other global
-       # defined symbols, whereas GNU nm marks them as "W".
+       # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+       # Without the "-l" option, or with the "-B" option, AIX nm treats
+       # weak defined symbols like other global defined symbols, whereas
+       # GNU nm marks them as "W".
+       # While the 'weak' keyword is ignored in the Export File, we need
+       # it in the Import File for the 'aix-soname' feature, so we have
+       # to replace the "-B" option with "-P" for AIX nm.
        if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-         export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
        else
-         export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
        fi
        aix_use_runtimelinking=no
 
        # Test if we are trying to use run time linking or normal
        # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-       # need to do runtime linking.
+       # have runtime linking enabled, and use it for executables.
+       # For shared libraries, we enable/disable runtime linking
+       # depending on the kind of the shared library created -
+       # when "with_aix_soname,aix_use_runtimelinking" is:
+       # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+       # "aix,yes"  lib.so          shared, rtl:yes, for executables
+       #            lib.a           static archive
+       # "both,no"  lib.so.V(shr.o) shared, rtl:yes
+       #            lib.a(lib.so.V) shared, rtl:no,  for executables
+       # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+       #            lib.a(lib.so.V) shared, rtl:no
+       # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+       #            lib.a           static archive
        case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
          for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+         if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
            aix_use_runtimelinking=yes
            break
          fi
          done
+         if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+           # With aix-soname=svr4, we create the lib.so.V shared archives only,
+           # so we don't have lib.a shared libs to link our executables.
+           # We have to force runtime linking in this case.
+           aix_use_runtimelinking=yes
+           LDFLAGS="$LDFLAGS -Wl,-brtl"
+         fi
          ;;
        esac
 
@@ -9505,13 +9863,21 @@ _LT_EOF
       hardcode_direct_absolute=yes
       hardcode_libdir_separator=':'
       link_all_deplibs=yes
-      file_list_spec='${wl}-f,'
+      file_list_spec='$wl-f,'
+      case $with_aix_soname,$aix_use_runtimelinking in
+      aix,*) ;; # traditional, no import file
+      svr4,* | *,yes) # use import file
+       # The Import File defines what to hardcode.
+       hardcode_direct=no
+       hardcode_direct_absolute=no
+       ;;
+      esac
 
-      if test "$GCC" = yes; then
+      if test yes = "$GCC"; then
        case $host_os in aix4.[012]|aix4.[012].*)
        # We only want to do this on AIX 4.2 and lower, the check
        # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
+         collect2name=`$CC -print-prog-name=collect2`
          if test -f "$collect2name" &&
           strings "$collect2name" | $GREP resolve_lib_name >/dev/null
          then
@@ -9530,36 +9896,42 @@ _LT_EOF
          ;;
        esac
        shared_flag='-shared'
-       if test "$aix_use_runtimelinking" = yes; then
-         shared_flag="$shared_flag "'${wl}-G'
+       if test yes = "$aix_use_runtimelinking"; then
+         shared_flag="$shared_flag "'$wl-G'
        fi
-       link_all_deplibs=no
+       # Need to ensure runtime linking is disabled for the traditional
+       # shared library, or the linker may eventually find shared libraries
+       # /with/ Import File - we do not want to mix them.
+       shared_flag_aix='-shared'
+       shared_flag_svr4='-shared $wl-G'
       else
        # not using gcc
-       if test "$host_cpu" = ia64; then
+       if test ia64 = "$host_cpu"; then
        # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
        # chokes on -Wl,-G. The following line is correct:
          shared_flag='-G'
        else
-         if test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
+         if test yes = "$aix_use_runtimelinking"; then
+           shared_flag='$wl-G'
          else
-           shared_flag='${wl}-bM:SRE'
+           shared_flag='$wl-bM:SRE'
          fi
+         shared_flag_aix='$wl-bM:SRE'
+         shared_flag_svr4='$wl-G'
        fi
       fi
 
-      export_dynamic_flag_spec='${wl}-bexpall'
+      export_dynamic_flag_spec='$wl-bexpall'
       # It seems that -bexpall does not export symbols beginning with
       # underscore (_), so it is better to generate a list of symbols to export.
       always_export_symbols=yes
-      if test "$aix_use_runtimelinking" = yes; then
+      if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
        # Warning - without using the other runtime loading flags (-brtl),
        # -berok will link without error, but may produce a broken library.
        allow_undefined_flag='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        if test "${lt_cv_aix_libpath+set}" = set; then
+        if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
   if ${lt_cv_aix_libpath_+:} false; then :
@@ -9594,7 +9966,7 @@ fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
   if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_="/usr/lib:/lib"
+    lt_cv_aix_libpath_=/usr/lib:/lib
   fi
 
 fi
@@ -9602,17 +9974,17 @@ fi
   aix_libpath=$lt_cv_aix_libpath_
 fi
 
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
       else
-       if test "$host_cpu" = ia64; then
-         hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+       if test ia64 = "$host_cpu"; then
+         hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
          allow_undefined_flag="-z nodefs"
-         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
        else
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        if test "${lt_cv_aix_libpath+set}" = set; then
+        if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
   if ${lt_cv_aix_libpath_+:} false; then :
@@ -9647,7 +10019,7 @@ fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
   if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_="/usr/lib:/lib"
+    lt_cv_aix_libpath_=/usr/lib:/lib
   fi
 
 fi
   aix_libpath=$lt_cv_aix_libpath_
 fi
 
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+        hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
          # Warning - without using the other run time loading flags,
          # -berok will link without error, but may produce a broken library.
-         no_undefined_flag=' ${wl}-bernotok'
-         allow_undefined_flag=' ${wl}-berok'
-         if test "$with_gnu_ld" = yes; then
+         no_undefined_flag=' $wl-bernotok'
+         allow_undefined_flag=' $wl-berok'
+         if test yes = "$with_gnu_ld"; then
            # We only use this code for GNU lds that support --whole-archive.
-           whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
          else
            # Exported symbols can be pulled into shared objects from archives
            whole_archive_flag_spec='$convenience'
          fi
          archive_cmds_need_lc=yes
-         # This is similar to how AIX traditionally builds its shared libraries.
-         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+         archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+         # -brtl affects multiple linker settings, -berok does not and is overridden later
+         compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+         if test svr4 != "$with_aix_soname"; then
+           # This is similar to how AIX traditionally builds its shared libraries.
+           archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+         fi
+         if test aix != "$with_aix_soname"; then
+           archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+         else
+           # used by -dlpreopen to get the symbols
+           archive_expsym_cmds="$archive_expsym_cmds"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+         fi
+         archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
        fi
       fi
       ;;
@@ -9678,7 +10062,7 @@ fi
       case $host_cpu in
       powerpc)
             # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
             archive_expsym_cmds=''
         ;;
       m68k)
        # Tell ltmain to make .lib files, not .a files.
        libext=lib
        # Tell ltmain to make .dll files, not .so files.
-       shrext_cmds=".dll"
+       shrext_cmds=.dll
        # FIXME: Setting linknames here is a bad hack.
-       archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-         else
-           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-         fi~
-         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-         linknames='
+       archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+       archive_expsym_cmds='if   test DEF = "`$SED -n     -e '\''s/^[   ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([     ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
+            cp "$export_symbols" "$output_objdir/$soname.def";
+            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+          else
+            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+          fi~
+          $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+          linknames='
        # The linker will not automatically build a static lib if we build a DLL.
        # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
        enable_shared_with_static_runtimes=yes
        # Don't use ranlib
        old_postinstall_cmds='chmod 644 $oldlib'
        postlink_cmds='lt_outputfile="@OUTPUT@"~
-         lt_tool_outputfile="@TOOL_OUTPUT@"~
-         case $lt_outputfile in
-           *.exe|*.EXE) ;;
-           *)
-             lt_outputfile="$lt_outputfile.exe"
-             lt_tool_outputfile="$lt_tool_outputfile.exe"
-             ;;
-         esac~
-         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-           $RM "$lt_outputfile.manifest";
-         fi'
+          lt_tool_outputfile="@TOOL_OUTPUT@"~
+          case $lt_outputfile in
+            *.exe|*.EXE) ;;
+            *)
+              lt_outputfile=$lt_outputfile.exe
+              lt_tool_outputfile=$lt_tool_outputfile.exe
+              ;;
+          esac~
+          if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+            $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+            $RM "$lt_outputfile.manifest";
+          fi'
        ;;
       *)
        # Assume MSVC wrapper
@@ -9746,7 +10131,7 @@ fi
        # Tell ltmain to make .lib files, not .a files.
        libext=lib
        # Tell ltmain to make .dll files, not .so files.
-       shrext_cmds=".dll"
+       shrext_cmds=.dll
        # FIXME: Setting linknames here is a bad hack.
        archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
        # The linker will automatically build a .lib file if we build a DLL.
   hardcode_direct=no
   hardcode_automatic=yes
   hardcode_shlibpath_var=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  if test yes = "$lt_cv_ld_force_load"; then
+    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
 
   else
     whole_archive_flag_spec=''
   fi
   link_all_deplibs=yes
-  allow_undefined_flag="$_lt_dar_allow_undefined"
+  allow_undefined_flag=$_lt_dar_allow_undefined
   case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
+     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
      *) _lt_dar_can_shared=$GCC ;;
   esac
-  if test "$_lt_dar_can_shared" = "yes"; then
+  if test yes = "$_lt_dar_can_shared"; then
     output_verbose_link_cmd=func_echo_all
-    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+    archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+    module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
 
   else
   ld_shlibs=no
       ;;
 
     hpux9*)
-      if test "$GCC" = yes; then
-       archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      if test yes = "$GCC"; then
+       archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
       else
-       archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+       archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
       fi
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_flag_spec='$wl+b $wl$libdir'
       hardcode_libdir_separator=:
       hardcode_direct=yes
 
       # hardcode_minus_L: Not really in the search PATH,
       # but as the default location of the library.
       hardcode_minus_L=yes
-      export_dynamic_flag_spec='${wl}-E'
+      export_dynamic_flag_spec='$wl-E'
       ;;
 
     hpux10*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-       archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes,no = "$GCC,$with_gnu_ld"; then
+       archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
        archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
-      if test "$with_gnu_ld" = no; then
-       hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      if test no = "$with_gnu_ld"; then
+       hardcode_libdir_flag_spec='$wl+b $wl$libdir'
        hardcode_libdir_separator=:
        hardcode_direct=yes
        hardcode_direct_absolute=yes
-       export_dynamic_flag_spec='${wl}-E'
+       export_dynamic_flag_spec='$wl-E'
        # hardcode_minus_L: Not really in the search PATH,
        # but as the default location of the library.
        hardcode_minus_L=yes
       ;;
 
     hpux11*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+      if test yes,no = "$GCC,$with_gnu_ld"; then
        case $host_cpu in
        hppa*64*)
-         archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        esac
       else
        case $host_cpu in
        hppa*64*)
-         archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
 
@@ -9888,7 +10273,7 @@ if ${lt_cv_prog_compiler__b+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler__b=no
-   save_LDFLAGS="$LDFLAGS"
+   save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS -b"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
@@ -9907,14 +10292,14 @@ else
      fi
    fi
    $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
+   LDFLAGS=$save_LDFLAGS
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
 $as_echo "$lt_cv_prog_compiler__b" >&6; }
 
-if test x"$lt_cv_prog_compiler__b" = xyes; then
-    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+if test yes = "$lt_cv_prog_compiler__b"; then
+    archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 else
     archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
 fi
@@ -9922,8 +10307,8 @@ fi
          ;;
        esac
       fi
-      if test "$with_gnu_ld" = no; then
-       hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      if test no = "$with_gnu_ld"; then
+       hardcode_libdir_flag_spec='$wl+b $wl$libdir'
        hardcode_libdir_separator=:
 
        case $host_cpu in
@@ -9934,7 +10319,7 @@ fi
        *)
          hardcode_direct=yes
          hardcode_direct_absolute=yes
-         export_dynamic_flag_spec='${wl}-E'
+         export_dynamic_flag_spec='$wl-E'
 
          # hardcode_minus_L: Not really in the search PATH,
          # but as the default location of the library.
@@ -9945,8 +10330,8 @@ fi
       ;;
 
     irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      if test yes = "$GCC"; then
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
        # Try to use the -exported_symbol ld option, if it does not
        # work, assume that -exports_file does not work either and
        # implicitly export all symbols.
@@ -9956,8 +10341,8 @@ $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >
 if ${lt_cv_irix_exported_symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  save_LDFLAGS="$LDFLAGS"
-          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+  save_LDFLAGS=$LDFLAGS
+          LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 int foo (void) { return 0; }
@@ -9969,24 +10354,35 @@ else
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-           LDFLAGS="$save_LDFLAGS"
+           LDFLAGS=$save_LDFLAGS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
 $as_echo "$lt_cv_irix_exported_symbol" >&6; }
-       if test "$lt_cv_irix_exported_symbol" = yes; then
-          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+       if test yes = "$lt_cv_irix_exported_symbol"; then
+          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
        fi
+       link_all_deplibs=no
       else
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
       fi
       archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
       hardcode_libdir_separator=:
       inherit_rpath=yes
       link_all_deplibs=yes
       ;;
 
+    linux*)
+      case $cc_basename in
+      tcc*)
+       # Fabrice Bellard et al's Tiny C Compiler
+       ld_shlibs=yes
+       archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+       ;;
+      esac
+      ;;
+
     netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
        archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
@@ -10001,7 +10397,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
     newsos6)
       archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
       hardcode_direct=yes
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
       hardcode_libdir_separator=:
       hardcode_shlibpath_var=no
       ;;
@@ -10009,27 +10405,19 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
     *nto* | *qnx*)
       ;;
 
-    openbsd*)
+    openbsd* | bitrig*)
       if test -f /usr/libexec/ld.so; then
        hardcode_direct=yes
        hardcode_shlibpath_var=no
        hardcode_direct_absolute=yes
-       if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+       if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
          archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-         archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-         hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-         export_dynamic_flag_spec='${wl}-E'
+         archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+         hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+         export_dynamic_flag_spec='$wl-E'
        else
-         case $host_os in
-          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-            archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-            hardcode_libdir_flag_spec='-R$libdir'
-            ;;
-          *)
-            archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-            ;;
-         esac
+         archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+         hardcode_libdir_flag_spec='$wl-rpath,$libdir'
        fi
       else
        ld_shlibs=no
@@ -10040,33 +10428,53 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
       hardcode_libdir_flag_spec='-L$libdir'
       hardcode_minus_L=yes
       allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      shrext_cmds=.dll
+      archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       prefix_cmds="$SED"~
+       if test EXPORTS = "`$SED 1q $export_symbols`"; then
+         prefix_cmds="$prefix_cmds -e 1d";
+       fi~
+       prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+       cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      enable_shared_with_static_runtimes=yes
       ;;
 
     osf3*)
-      if test "$GCC" = yes; then
-       allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      if test yes = "$GCC"; then
+       allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+       archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
       else
        allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
       fi
       archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
       hardcode_libdir_separator=:
       ;;
 
     osf4* | osf5*)     # as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-       allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      if test yes = "$GCC"; then
+       allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+       archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+       hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
       else
        allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
        archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+          $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
 
        # Both c and cxx compiler support -rpath directly
        hardcode_libdir_flag_spec='-rpath $libdir'
@@ -10077,24 +10485,24 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
 
     solaris*)
       no_undefined_flag=' -z defs'
-      if test "$GCC" = yes; then
-       wlarc='${wl}'
-       archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+       wlarc='$wl'
+       archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
        archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
        case `$CC -V 2>&1` in
        *"Compilers 5.0"*)
          wlarc=''
-         archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
          archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+            $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
          ;;
        *)
-         wlarc='${wl}'
-         archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+         wlarc='$wl'
+         archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
          archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+            $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
          ;;
        esac
       fi
@@ -10104,11 +10512,11 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
       solaris2.[0-5] | solaris2.[0-5].*) ;;
       *)
        # The compiler driver will combine and reorder linker options,
-       # but understands `-z linker_flag'.  GCC discards it without `$wl',
+       # but understands '-z linker_flag'.  GCC discards it without '$wl',
        # but is careful enough not to reorder.
        # Supported since Solaris 2.6 (maybe 2.5.1?)
-       if test "$GCC" = yes; then
-         whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+       if test yes = "$GCC"; then
+         whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
        else
          whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
        fi
@@ -10118,10 +10526,10 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
       ;;
 
     sunos4*)
-      if test "x$host_vendor" = xsequent; then
+      if test sequent = "$host_vendor"; then
        # Use $CC to link under sequent, because it throws in some extra .o
        # files that make .init and .fini sections work.
-       archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
       else
        archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
       fi
@@ -10170,43 +10578,43 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
       ;;
 
     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag='${wl}-z,text'
+      no_undefined_flag='$wl-z,text'
       archive_cmds_need_lc=no
       hardcode_shlibpath_var=no
       runpath_var='LD_RUN_PATH'
 
-      if test "$GCC" = yes; then
-       archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+       archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-       archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
       ;;
 
     sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
+      # Note: We CANNOT use -z defs as we might desire, because we do not
       # link with -lc, and that would cause any symbols used from libc to
       # always be unresolved, which means just about no library would
       # ever link correctly.  If we're not using GNU ld we use -z text
       # though, which does catch some bad symbols but isn't as heavy-handed
       # as -z defs.
-      no_undefined_flag='${wl}-z,text'
-      allow_undefined_flag='${wl}-z,nodefs'
+      no_undefined_flag='$wl-z,text'
+      allow_undefined_flag='$wl-z,nodefs'
       archive_cmds_need_lc=no
       hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-R,$libdir'
+      hardcode_libdir_flag_spec='$wl-R,$libdir'
       hardcode_libdir_separator=':'
       link_all_deplibs=yes
-      export_dynamic_flag_spec='${wl}-Bexport'
+      export_dynamic_flag_spec='$wl-Bexport'
       runpath_var='LD_RUN_PATH'
 
-      if test "$GCC" = yes; then
-       archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+       archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-       archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
       ;;
 
@@ -10221,10 +10629,10 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
       ;;
     esac
 
-    if test x$host_vendor = xsni; then
+    if test sni = "$host_vendor"; then
       case $host in
       sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-       export_dynamic_flag_spec='${wl}-Blargedynsym'
+       export_dynamic_flag_spec='$wl-Blargedynsym'
        ;;
       esac
     fi
@@ -10232,7 +10640,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
 $as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
+test no = "$ld_shlibs" && can_build_shared=no
 
 with_gnu_ld=$with_gnu_ld
 
@@ -10258,7 +10666,7 @@ x|xyes)
   # Assume -lc should be added
   archive_cmds_need_lc=yes
 
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
+  if test yes,yes = "$GCC,$enable_shared"; then
     case $archive_cmds in
     *'~'*)
       # FIXME: we may have to deal with multi-command sequences.
@@ -10473,14 +10881,14 @@ esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
+    darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+    *) lt_awk_arg='/^libraries:/' ;;
   esac
   case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
-    *) lt_sed_strip_eq="s,=/,/,g" ;;
+    mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
+    *) lt_sed_strip_eq='s|=/|/|g' ;;
   esac
   lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
   case $lt_search_path_spec in
@@ -10496,28 +10904,35 @@ if test "$GCC" = yes; then
     ;;
   esac
   # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
+  # and add multilib dir if necessary...
   lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  # ...but if some path component already ends with the multilib dir we assume
+  # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+  case "$lt_multi_os_dir; $lt_search_path_spec " in
+  "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+    lt_multi_os_dir=
+    ;;
+  esac
   for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
+    if test -d "$lt_sys_path$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+    elif test -n "$lt_multi_os_dir"; then
       test -d "$lt_sys_path" && \
        lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
   lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
+BEGIN {RS = " "; FS = "/|\n";} {
+  lt_foo = "";
+  lt_count = 0;
   for (lt_i = NF; lt_i > 0; lt_i--) {
     if ($lt_i != "" && $lt_i != ".") {
       if ($lt_i == "..") {
         lt_count++;
       } else {
         if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
+          lt_foo = "/" $lt_i lt_foo;
         } else {
           lt_count--;
         }
@@ -10531,7 +10946,7 @@ BEGIN {RS=" "; FS="/|\n";} {
   # for these hosts.
   case $host_os in
     mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+      $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
   esac
   sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
@@ -10540,7 +10955,7 @@ fi
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
-shrext_cmds=".so"
+shrext_cmds=.so
 postinstall_cmds=
 postuninstall_cmds=
 finish_cmds=
@@ -10557,14 +10972,16 @@ hardcode_into_libs=no
 # flags to be left without arguments
 need_version=unknown
 
+
+
 case $host_os in
 aix3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
   # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
+  soname_spec='$libname$release$shared_ext$major'
   ;;
 
 aix[4-9]*)
@@ -10572,41 +10989,91 @@ aix[4-9]*)
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
+  if test ia64 = "$host_cpu"; then
     # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
     shlibpath_var=LD_LIBRARY_PATH
   else
     # With GCC up to 2.95.x, collect2 would create an import file
     # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
+    # the line '#! .'.  This would cause the generated library to
+    # depend on '.', always an invalid library.  This was fixed in
     # development snapshots of GCC prior to 3.0.
     case $host_os in
       aix4 | aix4.[01] | aix4.[01].*)
       if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
           echo ' yes '
-          echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+          echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
        :
       else
        can_build_shared=no
       fi
       ;;
     esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # Using Import Files as archive members, it is possible to support
+    # filename-based versioning of shared library archives on AIX. While
+    # this would work for both with and without runtime linking, it will
+    # prevent static linking of such archives. So we do filename-based
+    # shared library versioning with .so extension only, which is used
+    # when both runtime linking and shared linking is enabled.
+    # Unfortunately, runtime linking may impact performance, so we do
+    # not want this to be the default eventually. Also, we use the
+    # versioned .so libs for executables only if there is the -brtl
+    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+    # To allow for filename-based versioning support, we need to create
+    # libNAME.so.V as an archive file, containing:
+    # *) an Import File, referring to the versioned filename of the
+    #    archive as well as the shared archive member, telling the
+    #    bitwidth (32 or 64) of that shared object, and providing the
+    #    list of exported symbols of that shared object, eventually
+    #    decorated with the 'weak' keyword
+    # *) the shared object with the F_LOADONLY flag set, to really avoid
+    #    it being seen by the linker.
+    # At run time we better use the real file rather than another symlink,
+    # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+    case $with_aix_soname,$aix_use_runtimelinking in
+    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
     # soname into executable. Probably we can add versioning support to
     # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
+    aix,yes) # traditional libtool
+      dynamic_linker='AIX unversionable lib.so'
       # If using run time linking (on AIX 4.2 or later) use lib<name>.so
       # instead of lib<name>.a to let people know that these are not
       # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      ;;
+    aix,no) # traditional AIX only
+      dynamic_linker='AIX lib.a(lib.so.V)'
       # We preserve .a as extension for shared libraries through AIX4.2
       # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      ;;
+    svr4,*) # full svr4 only
+      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,yes) # both, prefer svr4
+      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # unpreferred sharedlib libNAME.a needs extra handling
+      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,no) # both, prefer aix
+      dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+      ;;
+    esac
     shlibpath_var=LIBPATH
   fi
   ;;
@@ -10616,18 +11083,18 @@ amigaos*)
   powerpc)
     # Since July 2007 AmigaOS4 officially supports .so libraries.
     # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
     ;;
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
 
 beos*)
-  library_names_spec='${libname}${shared_ext}'
+  library_names_spec='$libname$shared_ext'
   dynamic_linker="$host_os ld.so"
   shlibpath_var=LIBRARY_PATH
   ;;
@@ -10635,8 +11102,8 @@ beos*)
 bsdi[45]*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
@@ -10648,7 +11115,7 @@ bsdi[45]*)
 
 cygwin* | mingw* | pw32* | cegcc*)
   version_type=windows
-  shrext_cmds=".dll"
+  shrext_cmds=.dll
   need_version=no
   need_lib_prefix=no
 
@@ -10657,8 +11124,8 @@ cygwin* | mingw* | pw32* | cegcc*)
     # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname~
@@ -10674,17 +11141,17 @@ cygwin* | mingw* | pw32* | cegcc*)
     case $host_os in
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
 
       sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
       ;;
     esac
     dynamic_linker='Win32 ld.exe'
@@ -10693,8 +11160,8 @@ cygwin* | mingw* | pw32* | cegcc*)
   *,cl*)
     # Native MSVC
     libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
+    soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+    library_names_spec='$libname.dll.lib'
 
     case $build_os in
     mingw*)
@@ -10721,7 +11188,7 @@ cygwin* | mingw* | pw32* | cegcc*)
       sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
       ;;
     *)
-      sys_lib_search_path_spec="$LIB"
+      sys_lib_search_path_spec=$LIB
       if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
         # It is most probably a Windows format PATH.
         sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
@@ -10734,8 +11201,8 @@ cygwin* | mingw* | pw32* | cegcc*)
     esac
 
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname'
@@ -10748,7 +11215,7 @@ cygwin* | mingw* | pw32* | cegcc*)
 
   *)
     # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
     dynamic_linker='Win32 ld.exe'
     ;;
   esac
@@ -10761,8 +11228,8 @@ darwin* | rhapsody*)
   version_type=darwin
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
+  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$major$shared_ext'
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
@@ -10775,8 +11242,8 @@ dgux*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -10794,12 +11261,13 @@ freebsd* | dragonfly*)
   version_type=freebsd-$objformat
   case $version_type in
     freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      soname_spec='$libname$release$shared_ext$major'
       need_version=no
       need_lib_prefix=no
       ;;
     freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
       need_version=yes
       ;;
   esac
@@ -10829,10 +11297,10 @@ haiku*)
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
+  shlibpath_overrides_runpath=no
   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
@@ -10850,14 +11318,15 @@ hpux9* | hpux10* | hpux11*)
     dynamic_linker="$host_os dld.so"
     shlibpath_var=LD_LIBRARY_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    if test 32 = "$HPUX_IA64_MODE"; then
       sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
     else
       sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
     fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
   hppa*64*)
     shrext_cmds='.sl'
@@ -10865,8 +11334,8 @@ hpux9* | hpux10* | hpux11*)
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
@@ -10875,8 +11344,8 @@ hpux9* | hpux10* | hpux11*)
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=SHLIB_PATH
     shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     ;;
   esac
   # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
@@ -10889,8 +11358,8 @@ interix[3-9]*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
@@ -10901,7 +11370,7 @@ irix5* | irix6* | nonstopux*)
   case $host_os in
     nonstopux*) version_type=nonstopux ;;
     *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
+       if test yes = "$lt_cv_prog_gnu_ld"; then
                version_type=linux # correct to gnu/linux during the next big refactor
        else
                version_type=irix
@@ -10909,8 +11378,8 @@ irix5* | irix6* | nonstopux*)
   esac
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
   case $host_os in
   irix5* | nonstopux*)
     libsuff= shlibsuff=
@@ -10929,8 +11398,8 @@ irix5* | irix6* | nonstopux*)
   esac
   shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
   shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
   hardcode_into_libs=yes
   ;;
 
@@ -10939,13 +11408,33 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
+linux*android*)
+  version_type=none # Android doesn't support versioned libraries.
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext'
+  soname_spec='$libname$release$shared_ext'
+  finish_cmds=
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  dynamic_linker='Android linker'
+  # Don't embed -rpath directories since the linker doesn't support them.
+  hardcode_libdir_flag_spec='-L$libdir'
+  ;;
+
 # This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   # before this can be enabled.
   hardcode_into_libs=yes
 
-  # Append ld.so.conf contents to the search path
+  # Ideally, we could use ldconfig to report *all* directores which are
+  # searched for libraries, however this is still not possible.  Aside from not
+  # being certain /sbin/ldconfig is available, command
+  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+  # even though it is searched at run-time.  Try to do the best guess by
+  # appending ld.so.conf contents (and includes) to the search path.
   if test -f /etc/ld.so.conf; then
     lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[      ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
@@ -11021,12 +11515,12 @@ netbsd*)
   need_lib_prefix=no
   need_version=no
   if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
     finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
     dynamic_linker='NetBSD (a.out) ld.so'
   else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     dynamic_linker='NetBSD ld.elf_so'
   fi
   shlibpath_var=LD_LIBRARY_PATH
@@ -11036,7 +11530,7 @@ netbsd*)
 
 newsos6)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   ;;
@@ -11045,58 +11539,68 @@ newsos6)
   version_type=qnx
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
   dynamic_linker='ldqnx.so'
   ;;
 
-openbsd*)
+openbsd* | bitrig*)
   version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
+  sys_lib_dlsearch_path_spec=/usr/lib
   need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
-    *)                         need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    need_version=no
   else
-    shlibpath_overrides_runpath=yes
+    need_version=yes
   fi
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
   ;;
 
 os2*)
   libname_spec='$name'
-  shrext_cmds=".dll"
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
   need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
+  # OS/2 can only load a DLL with a base name of 8 characters or less.
+  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+    v=$($ECHO $release$versuffix | tr -d .-);
+    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+    $ECHO $n$v`$shared_ext'
+  library_names_spec='${libname}_dll.$libext'
   dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
+  shlibpath_var=BEGINLIBPATH
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  postinstall_cmds='base_file=`basename \$file`~
+    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+    dldir=$destdir/`dirname \$dlpath`~
+    test -d \$dldir || mkdir -p \$dldir~
+    $install_prog $dir/$dlname \$dldir/$dlname~
+    chmod a+x \$dldir/$dlname~
+    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+    fi'
+  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+    dlpath=$dir/\$dldll~
+    $RM \$dlpath'
   ;;
 
 osf3* | osf4* | osf5*)
   version_type=osf
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
   ;;
 
 rdos*)
@@ -11107,8 +11611,8 @@ solaris*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
@@ -11118,11 +11622,11 @@ solaris*)
 
 sunos4*)
   version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
   finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     need_lib_prefix=no
   fi
   need_version=yes
@@ -11130,8 +11634,8 @@ sunos4*)
 
 sysv4 | sysv4.3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   case $host_vendor in
     sni)
@@ -11152,24 +11656,24 @@ sysv4 | sysv4.3*)
   ;;
 
 sysv4*MP*)
-  if test -d /usr/nec ;then
+  if test -d /usr/necthen
     version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
+    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+    soname_spec='$libname$shared_ext.$major'
     shlibpath_var=LD_LIBRARY_PATH
   fi
   ;;
 
 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
+  version_type=sco
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
   else
     sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
@@ -11187,7 +11691,7 @@ tpf*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
@@ -11195,8 +11699,8 @@ tpf*)
 
 uts4*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -11206,20 +11710,35 @@ uts4*)
 esac
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
 $as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
+test no = "$dynamic_linker" && can_build_shared=no
 
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
 fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
 fi
 
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
+
+
+
 
 
 
@@ -11316,15 +11835,15 @@ $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
 if test -n "$hardcode_libdir_flag_spec" ||
    test -n "$runpath_var" ||
-   test "X$hardcode_automatic" = "Xyes" ; then
+   test yes = "$hardcode_automatic"; then
 
   # We can hardcode non-existent directories.
-  if test "$hardcode_direct" != no &&
+  if test no != "$hardcode_direct" &&
      # If the only mechanism to avoid hardcoding is shlibpath_var, we
      # have to relink, otherwise we might link with an installed library
      # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; then
+     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
+     test no != "$hardcode_minus_L"; then
     # Linking always hardcodes the temporary library directory.
     hardcode_action=relink
   else
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
 $as_echo "$hardcode_action" >&6; }
 
-if test "$hardcode_action" = relink ||
-   test "$inherit_rpath" = yes; then
+if test relink = "$hardcode_action" ||
+   test yes = "$inherit_rpath"; then
   # Fast installation is not supported
   enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
+elif test yes = "$shlibpath_overrides_runpath" ||
+     test no = "$enable_shared"; then
   # Fast installation is not necessary
   enable_fast_install=needless
 fi
@@ -11354,7 +11873,7 @@ fi
 
 
 
-  if test "x$enable_dlopen" != xyes; then
+  if test yes != "$enable_dlopen"; then
   enable_dlopen=unknown
   enable_dlopen_self=unknown
   enable_dlopen_self_static=unknown
@@ -11364,23 +11883,23 @@ else
 
   case $host_os in
   beos*)
-    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen=load_add_on
     lt_cv_dlopen_libs=
     lt_cv_dlopen_self=yes
     ;;
 
   mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen=LoadLibrary
     lt_cv_dlopen_libs=
     ;;
 
   cygwin*)
-    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen=dlopen
     lt_cv_dlopen_libs=
     ;;
 
   darwin*)
-  # if libdl is installed we need to link against it
+    # if libdl is installed we need to link against it
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
 if ${ac_cv_lib_dl_dlopen+:} false; then :
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
 else
 
-    lt_cv_dlopen="dyld"
+    lt_cv_dlopen=dyld
     lt_cv_dlopen_libs=
     lt_cv_dlopen_self=yes
 
 
     ;;
 
+  tpf*)
+    # Don't try to run any link tests for TPF.  We know it's impossible
+    # because TPF is a cross-compiler, and we know how we open DSOs.
+    lt_cv_dlopen=dlopen
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=no
+    ;;
+
   *)
     ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
 if test "x$ac_cv_func_shl_load" = xyes; then :
-  lt_cv_dlopen="shl_load"
+  lt_cv_dlopen=shl_load
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
 $as_echo_n "checking for shl_load in -ldld... " >&6; }
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
 if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+  lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
 else
   ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
 if test "x$ac_cv_func_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen"
+  lt_cv_dlopen=dlopen
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
@@ -11514,7 +12041,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
@@ -11553,7 +12080,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
 if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
 $as_echo_n "checking for dld_link in -ldld... " >&6; }
@@ -11592,7 +12119,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
 if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+  lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
 fi
 
 
     ;;
   esac
 
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
+  if test no = "$lt_cv_dlopen"; then
     enable_dlopen=no
+  else
+    enable_dlopen=yes
   fi
 
   case $lt_cv_dlopen in
   dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+    save_CPPFLAGS=$CPPFLAGS
+    test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
 
-    save_LDFLAGS="$LDFLAGS"
+    save_LDFLAGS=$LDFLAGS
     wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
 
-    save_LIBS="$LIBS"
+    save_LIBS=$LIBS
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
@@ -11635,7 +12162,7 @@ $as_echo_n "checking whether a program can dlopen itself... " >&6; }
 if ${lt_cv_dlopen_self+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-         if test "$cross_compiling" = yes; then :
+         if test yes = "$cross_compiling"; then :
   lt_cv_dlopen_self=cross
 else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
@@ -11682,9 +12209,9 @@ else
 #  endif
 #endif
 
-/* When -fvisbility=hidden is used, assume the code has been annotated
+/* When -fvisibility=hidden is used, assume the code has been annotated
    correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
 int fnord () __attribute__((visibility("default")));
 #endif
 
@@ -11714,7 +12241,7 @@ _LT_EOF
   (eval $ac_link) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+  test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
 $as_echo "$lt_cv_dlopen_self" >&6; }
 
-    if test "x$lt_cv_dlopen_self" = xyes; then
+    if test yes = "$lt_cv_dlopen_self"; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
 if ${lt_cv_dlopen_self_static+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-         if test "$cross_compiling" = yes; then :
+         if test yes = "$cross_compiling"; then :
   lt_cv_dlopen_self_static=cross
 else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
@@ -11788,9 +12315,9 @@ else
 #  endif
 #endif
 
-/* When -fvisbility=hidden is used, assume the code has been annotated
+/* When -fvisibility=hidden is used, assume the code has been annotated
    correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
 int fnord () __attribute__((visibility("default")));
 #endif
 
@@ -11820,7 +12347,7 @@ _LT_EOF
   (eval $ac_link) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+  test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -11841,9 +12368,9 @@ fi
 $as_echo "$lt_cv_dlopen_self_static" >&6; }
     fi
 
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
+    CPPFLAGS=$save_CPPFLAGS
+    LDFLAGS=$save_LDFLAGS
+    LIBS=$save_LIBS
     ;;
   esac
 
@@ -11887,7 +12414,7 @@ else
 # FIXME - insert some real tests, host_os isn't really good enough
   case $host_os in
   darwin*)
-    if test -n "$STRIP" ; then
+    if test -n "$STRIP"; then
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -11915,7 +12442,7 @@ fi
 
 
 
-  # Report which library types will actually be built
+  # Report what library types will actually be built
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
 $as_echo_n "checking if libtool supports shared libraries... " >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
@@ -11923,13 +12450,13 @@ $as_echo "$can_build_shared" >&6; }
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
 $as_echo_n "checking whether to build shared libraries... " >&6; }
-  test "$can_build_shared" = "no" && enable_shared=no
+  test no = "$can_build_shared" && enable_shared=no
 
   # On AIX, shared libraries and static libraries use the same namespace, and
   # are all built from PIC.
   case $host_os in
   aix3*)
-    test "$enable_shared" = yes && enable_static=no
+    test yes = "$enable_shared" && enable_static=no
     if test -n "$RANLIB"; then
       archive_cmds="$archive_cmds~\$RANLIB \$lib"
       postinstall_cmds='$RANLIB $lib'
@@ -11937,8 +12464,12 @@ $as_echo_n "checking whether to build shared libraries... " >&6; }
     ;;
 
   aix[4-9]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
+    if test ia64 != "$host_cpu"; then
+      case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+      yes,aix,yes) ;;                  # shared object as lib.so file only
+      yes,svr4,*) ;;                   # shared object as lib.so archive member only
+      yes,*) enable_static=no ;;       # shared object in lib.a archive as well
+      esac
     fi
     ;;
   esac
@@ -11948,7 +12479,7 @@ $as_echo "$enable_shared" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
 $as_echo_n "checking whether to build static libraries... " >&6; }
   # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
+  test yes = "$enable_shared" || enable_static=yes
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
 $as_echo "$enable_static" >&6; }
 
@@ -11962,7 +12493,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-CC="$lt_save_CC"
+CC=$lt_save_CC
 
 
 
@@ -12937,21 +13468,38 @@ case "$host" in
     linux=no
     SERVER_IPC_MODULE="msrpc-glib2-1.0"
     CLIENT_IPC_MODULE="msrpc-mingw-1.0"
+    ;;
+
+  *darwin*)
+    win32=no
+    macos=yes
+    linux=no
+
+    # We require dbus-glib for the client library even if we are using GDBus
+    # in the server. The reason we can't always use dbus-glib in the server is
+    # because Vala drops support for it, but as it ships with DBus there is very
+    # little danger of it being dropped by distros any time soon.
+    CLIENT_IPC_MODULE="dbus-glib-1"
+       SERVER_IPC_MODULE="dbus-glib-1"
+
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
-$as_echo_n "checking for GTK... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAC" >&5
+$as_echo_n "checking for MAC... " >&6; }
 
-if test -n "$GTK_CFLAGS"; then
-    pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
+if test -n "$MAC_CFLAGS"; then
+    pkg_cv_MAC_CFLAGS="$MAC_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-mac-integration >= 1.0.1
+       \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk-mac-integration >= 1.0.1
+       ") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.18" 2>/dev/null`
+  pkg_cv_MAC_CFLAGS=`$PKG_CONFIG --cflags "gtk-mac-integration >= 1.0.1
+       " 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
  else
     pkg_failed=untried
 fi
-if test -n "$GTK_LIBS"; then
-    pkg_cv_GTK_LIBS="$GTK_LIBS"
+if test -n "$MAC_LIBS"; then
+    pkg_cv_MAC_LIBS="$MAC_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-mac-integration >= 1.0.1
+       \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk-mac-integration >= 1.0.1
+       ") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.18" 2>/dev/null`
+  pkg_cv_MAC_LIBS=`$PKG_CONFIG --libs "gtk-mac-integration >= 1.0.1
+       " 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -12989,22 +13540,25 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1`
+               MAC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk-mac-integration >= 1.0.1
+       " 2>&1`
         else
-               GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1`
+               MAC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk-mac-integration >= 1.0.1
+       " 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
-       echo "$GTK_PKG_ERRORS" >&5
+       echo "$MAC_PKG_ERRORS" >&5
 
-       as_fn_error $? "Package requirements (gtk+-2.0 >= 2.18) were not met:
+       as_fn_error $? "Package requirements (gtk-mac-integration >= 1.0.1
+       ) were not met:
 
-$GTK_PKG_ERRORS
+$MAC_PKG_ERRORS
 
 Consider adjusting the PKG_CONFIG_PATH environment variable if you
 installed software in a non-standard prefix.
 
-Alternatively, you may set the environment variables GTK_CFLAGS
-and GTK_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables MAC_CFLAGS
+and MAC_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details." "$LINENO" 5
 elif test $pkg_failed = untried; then
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -13015,52 +13569,125 @@ as_fn_error $? "The pkg-config script could not be found or is too old.  Make su
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
-Alternatively, you may set the environment variables GTK_CFLAGS
-and GTK_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables MAC_CFLAGS
+and MAC_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5; }
 else
-       GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
-       GTK_LIBS=$pkg_cv_GTK_LIBS
+       MAC_CFLAGS=$pkg_cv_MAC_CFLAGS
+       MAC_LIBS=$pkg_cv_MAC_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-       GTK_VERSION="gtk+-2.0"
 
 fi
-    ;;
 
-  *darwin*)
+    ;;
+  *)
+    macos=no
     win32=no
-    macos=yes
-    linux=no
+    linux=yes
 
     # We require dbus-glib for the client library even if we are using GDBus
     # in the server. The reason we can't always use dbus-glib in the server is
     # because Vala drops support for it, but as it ships with DBus there is very
     # little danger of it being dropped by distros any time soon.
     CLIENT_IPC_MODULE="dbus-glib-1"
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GDBUS" >&5
+$as_echo_n "checking for GDBUS... " >&6; }
+
+if test -n "$GDBUS_CFLAGS"; then
+    pkg_cv_GDBUS_CFLAGS="$GDBUS_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-2.0 >= 2.26\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gio-2.0 >= 2.26") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GDBUS_CFLAGS=`$PKG_CONFIG --cflags "gio-2.0 >= 2.26" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GDBUS_LIBS"; then
+    pkg_cv_GDBUS_LIBS="$GDBUS_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-2.0 >= 2.26\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gio-2.0 >= 2.26") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GDBUS_LIBS=`$PKG_CONFIG --libs "gio-2.0 >= 2.26" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               GDBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gio-2.0 >= 2.26" 2>&1`
+        else
+               GDBUS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gio-2.0 >= 2.26" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$GDBUS_PKG_ERRORS" >&5
+
+       SERVER_IPC_MODULE="dbus-glib-1"
+
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
        SERVER_IPC_MODULE="dbus-glib-1"
 
+else
+       GDBUS_CFLAGS=$pkg_cv_GDBUS_CFLAGS
+       GDBUS_LIBS=$pkg_cv_GDBUS_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       SERVER_IPC_MODULE="gio-2.0"
+fi
+
+    ;;
+esac
+
+
+# For all platforms: Use Gtk+3.0 if available; else revert to Gtk+2.0
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAC" >&5
-$as_echo_n "checking for MAC... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
+$as_echo_n "checking for GTK... " >&6; }
 
-if test -n "$MAC_CFLAGS"; then
-    pkg_cv_MAC_CFLAGS="$MAC_CFLAGS"
+if test -n "$GTK_CFLAGS"; then
+    pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-mac-integration >= 1.0.1
-       \""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk-mac-integration >= 1.0.1
-       ") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.1") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_MAC_CFLAGS=`$PKG_CONFIG --cflags "gtk-mac-integration >= 1.0.1
-       " 2>/dev/null`
+  pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.1" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
  else
     pkg_failed=untried
 fi
-if test -n "$MAC_LIBS"; then
-    pkg_cv_MAC_LIBS="$MAC_LIBS"
+if test -n "$GTK_LIBS"; then
+    pkg_cv_GTK_LIBS="$GTK_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-mac-integration >= 1.0.1
-       \""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk-mac-integration >= 1.0.1
-       ") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.1") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_MAC_LIBS=`$PKG_CONFIG --libs "gtk-mac-integration >= 1.0.1
-       " 2>/dev/null`
+  pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.1" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -13101,25 +13725,437 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               MAC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk-mac-integration >= 1.0.1
-       " 2>&1`
+               GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.1" 2>&1`
         else
-               MAC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk-mac-integration >= 1.0.1
-       " 2>&1`
+               GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.1" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
-       echo "$MAC_PKG_ERRORS" >&5
+       echo "$GTK_PKG_ERRORS" >&5
 
-       as_fn_error $? "Package requirements (gtk-mac-integration >= 1.0.1
-       ) were not met:
 
-$MAC_PKG_ERRORS
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
+$as_echo_n "checking for GTK... " >&6; }
 
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
+if test -n "$GTK_CFLAGS"; then
+    pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.18" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GTK_LIBS"; then
+    pkg_cv_GTK_LIBS="$GTK_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.18" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
 
-Alternatively, you may set the environment variables MAC_CFLAGS
-and MAC_LIBS to avoid the need to call pkg-config.
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1`
+        else
+               GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$GTK_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (gtk+-2.0 >= 2.18) were not met:
+
+$GTK_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GTK_CFLAGS
+and GTK_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GTK_CFLAGS
+and GTK_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
+       GTK_LIBS=$pkg_cv_GTK_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       GTK_VERSION="gtk+-2.0"
+
+fi
+
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
+$as_echo_n "checking for GTK... " >&6; }
+
+if test -n "$GTK_CFLAGS"; then
+    pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.18" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GTK_LIBS"; then
+    pkg_cv_GTK_LIBS="$GTK_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.18" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1`
+        else
+               GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$GTK_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (gtk+-2.0 >= 2.18) were not met:
+
+$GTK_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GTK_CFLAGS
+and GTK_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GTK_CFLAGS
+and GTK_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
+       GTK_LIBS=$pkg_cv_GTK_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       GTK_VERSION="gtk+-2.0"
+
+fi
+
+else
+       GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
+       GTK_LIBS=$pkg_cv_GTK_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       GTK_VERSION="gtk+-3.0"
+fi
+
+
+
+# For all platforms: If Log4Vala is enabled, then Use Log4Vala 0.2 if available; else revert to 0.1
+if test x$log4vala = xtrue; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LOG4VALA" >&5
+$as_echo_n "checking for LOG4VALA... " >&6; }
+
+if test -n "$LOG4VALA_CFLAGS"; then
+    pkg_cv_LOG4VALA_CFLAGS="$LOG4VALA_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"log4vala-0.2\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "log4vala-0.2") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LOG4VALA_CFLAGS=`$PKG_CONFIG --cflags "log4vala-0.2" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$LOG4VALA_LIBS"; then
+    pkg_cv_LOG4VALA_LIBS="$LOG4VALA_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"log4vala-0.2\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "log4vala-0.2") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LOG4VALA_LIBS=`$PKG_CONFIG --libs "log4vala-0.2" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               LOG4VALA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "log4vala-0.2" 2>&1`
+        else
+               LOG4VALA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "log4vala-0.2" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$LOG4VALA_PKG_ERRORS" >&5
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LOG4VALA" >&5
+$as_echo_n "checking for LOG4VALA... " >&6; }
+
+if test -n "$LOG4VALA_CFLAGS"; then
+    pkg_cv_LOG4VALA_CFLAGS="$LOG4VALA_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"log4vala-0.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "log4vala-0.1") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LOG4VALA_CFLAGS=`$PKG_CONFIG --cflags "log4vala-0.1" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$LOG4VALA_LIBS"; then
+    pkg_cv_LOG4VALA_LIBS="$LOG4VALA_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"log4vala-0.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "log4vala-0.1") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LOG4VALA_LIBS=`$PKG_CONFIG --libs "log4vala-0.1" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               LOG4VALA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "log4vala-0.1" 2>&1`
+        else
+               LOG4VALA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "log4vala-0.1" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$LOG4VALA_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (log4vala-0.1) were not met:
+
+$LOG4VALA_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables LOG4VALA_CFLAGS
+and LOG4VALA_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables LOG4VALA_CFLAGS
+and LOG4VALA_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       LOG4VALA_CFLAGS=$pkg_cv_LOG4VALA_CFLAGS
+       LOG4VALA_LIBS=$pkg_cv_LOG4VALA_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       LOG4VALA_VERSION="log4vala-0.1"
+
+fi
+
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LOG4VALA" >&5
+$as_echo_n "checking for LOG4VALA... " >&6; }
+
+if test -n "$LOG4VALA_CFLAGS"; then
+    pkg_cv_LOG4VALA_CFLAGS="$LOG4VALA_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"log4vala-0.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "log4vala-0.1") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LOG4VALA_CFLAGS=`$PKG_CONFIG --cflags "log4vala-0.1" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$LOG4VALA_LIBS"; then
+    pkg_cv_LOG4VALA_LIBS="$LOG4VALA_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"log4vala-0.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "log4vala-0.1") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LOG4VALA_LIBS=`$PKG_CONFIG --libs "log4vala-0.1" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               LOG4VALA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "log4vala-0.1" 2>&1`
+        else
+               LOG4VALA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "log4vala-0.1" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$LOG4VALA_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (log4vala-0.1) were not met:
+
+$LOG4VALA_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables LOG4VALA_CFLAGS
+and LOG4VALA_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details." "$LINENO" 5
 elif test $pkg_failed = untried; then
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -13130,38 +14166,49 @@ as_fn_error $? "The pkg-config script could not be found or is too old.  Make su
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
-Alternatively, you may set the environment variables MAC_CFLAGS
-and MAC_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables LOG4VALA_CFLAGS
+and LOG4VALA_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5; }
 else
-       MAC_CFLAGS=$pkg_cv_MAC_CFLAGS
-       MAC_LIBS=$pkg_cv_MAC_LIBS
+       LOG4VALA_CFLAGS=$pkg_cv_LOG4VALA_CFLAGS
+       LOG4VALA_LIBS=$pkg_cv_LOG4VALA_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       LOG4VALA_VERSION="log4vala-0.1"
+
+fi
+
+else
+       LOG4VALA_CFLAGS=$pkg_cv_LOG4VALA_CFLAGS
+       LOG4VALA_LIBS=$pkg_cv_LOG4VALA_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+       LOG4VALA_VERSION="log4vala-0.2"
+fi
 
 fi
 
-# TODO: Move to GTK+-3
-#            [gtk+-3.0 >= 2.0],
-#            [GTK_VERSION="gtk+-3.0"]
+
+# For all platforms: Use gee-0.8 if available; else revert to gee-1.0
+# (yes, gee-0.8 is an upgrade from gee-1.0!)
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
-$as_echo_n "checking for GTK... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIB_GEE" >&5
+$as_echo_n "checking for LIB_GEE... " >&6; }
 
-if test -n "$GTK_CFLAGS"; then
-    pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
+if test -n "$LIB_GEE_CFLAGS"; then
+    pkg_cv_LIB_GEE_CFLAGS="$LIB_GEE_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gee-0.8 >= 0.10.5\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gee-0.8 >= 0.10.5") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.18" 2>/dev/null`
+  pkg_cv_LIB_GEE_CFLAGS=`$PKG_CONFIG --cflags "gee-0.8 >= 0.10.5" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
  else
     pkg_failed=untried
 fi
-if test -n "$GTK_LIBS"; then
-    pkg_cv_GTK_LIBS="$GTK_LIBS"
+if test -n "$LIB_GEE_LIBS"; then
+    pkg_cv_LIB_GEE_LIBS="$LIB_GEE_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gee-0.8 >= 0.10.5\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gee-0.8 >= 0.10.5") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.18" 2>/dev/null`
+  pkg_cv_LIB_GEE_LIBS=`$PKG_CONFIG --libs "gee-0.8 >= 0.10.5" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -13199,73 +14246,28 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1`
+               LIB_GEE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gee-0.8 >= 0.10.5" 2>&1`
         else
-               GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1`
+               LIB_GEE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gee-0.8 >= 0.10.5" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
-       echo "$GTK_PKG_ERRORS" >&5
-
-       as_fn_error $? "Package requirements (gtk+-2.0 >= 2.18) were not met:
-
-$GTK_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables GTK_CFLAGS
-and GTK_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details." "$LINENO" 5
-elif test $pkg_failed = untried; then
-       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables GTK_CFLAGS
-and GTK_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5; }
-else
-       GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
-       GTK_LIBS=$pkg_cv_GTK_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-       GTK_VERSION="gtk+-2.0"
-
-fi
-
-    ;;
-  *)
-    macos=no
-    win32=no
-    linux=yes
+       echo "$LIB_GEE_PKG_ERRORS" >&5
 
-    # We require dbus-glib for the client library even if we are using GDBus
-    # in the server. The reason we can't always use dbus-glib in the server is
-    # because Vala drops support for it, but as it ships with DBus there is very
-    # little danger of it being dropped by distros any time soon.
-    CLIENT_IPC_MODULE="dbus-glib-1"
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GDBUS" >&5
-$as_echo_n "checking for GDBUS... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIB_GEE" >&5
+$as_echo_n "checking for LIB_GEE... " >&6; }
 
-if test -n "$GDBUS_CFLAGS"; then
-    pkg_cv_GDBUS_CFLAGS="$GDBUS_CFLAGS"
+if test -n "$LIB_GEE_CFLAGS"; then
+    pkg_cv_LIB_GEE_CFLAGS="$LIB_GEE_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-2.0 >= 2.26\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gio-2.0 >= 2.26") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gee-1.0 >= 0.5\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gee-1.0 >= 0.5") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GDBUS_CFLAGS=`$PKG_CONFIG --cflags "gio-2.0 >= 2.26" 2>/dev/null`
+  pkg_cv_LIB_GEE_CFLAGS=`$PKG_CONFIG --cflags "gee-1.0 >= 0.5" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
  else
     pkg_failed=untried
 fi
-if test -n "$GDBUS_LIBS"; then
-    pkg_cv_GDBUS_LIBS="$GDBUS_LIBS"
+if test -n "$LIB_GEE_LIBS"; then
+    pkg_cv_LIB_GEE_LIBS="$LIB_GEE_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-2.0 >= 2.26\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gio-2.0 >= 2.26") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gee-1.0 >= 0.5\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gee-1.0 >= 0.5") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GDBUS_LIBS=`$PKG_CONFIG --libs "gio-2.0 >= 2.26" 2>/dev/null`
+  pkg_cv_LIB_GEE_LIBS=`$PKG_CONFIG --libs "gee-1.0 >= 0.5" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -13303,45 +14305,65 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               GDBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gio-2.0 >= 2.26" 2>&1`
+               LIB_GEE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gee-1.0 >= 0.5" 2>&1`
         else
-               GDBUS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gio-2.0 >= 2.26" 2>&1`
+               LIB_GEE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gee-1.0 >= 0.5" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
-       echo "$GDBUS_PKG_ERRORS" >&5
+       echo "$LIB_GEE_PKG_ERRORS" >&5
 
-       SERVER_IPC_MODULE="dbus-glib-1"
+       as_fn_error $? "Package requirements (gee-1.0 >= 0.5) were not met:
+
+$LIB_GEE_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
 
+Alternatively, you may set the environment variables LIB_GEE_CFLAGS
+and LIB_GEE_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
 elif test $pkg_failed = untried; then
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-       SERVER_IPC_MODULE="dbus-glib-1"
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
 
+Alternatively, you may set the environment variables LIB_GEE_CFLAGS
+and LIB_GEE_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
 else
-       GDBUS_CFLAGS=$pkg_cv_GDBUS_CFLAGS
-       GDBUS_LIBS=$pkg_cv_GDBUS_LIBS
+       LIB_GEE_CFLAGS=$pkg_cv_LIB_GEE_CFLAGS
+       LIB_GEE_LIBS=$pkg_cv_LIB_GEE_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-       SERVER_IPC_MODULE="gio-2.0"
+       GEE_VERSION="gee-1.0"
+
 fi
-# TODO: Move to GTK+-3
-#            [gtk+-3.0 >= 2.0],
-#            [GTK_VERSION="gtk+-3.0"]
+
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
-$as_echo_n "checking for GTK... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIB_GEE" >&5
+$as_echo_n "checking for LIB_GEE... " >&6; }
 
-if test -n "$GTK_CFLAGS"; then
-    pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
+if test -n "$LIB_GEE_CFLAGS"; then
+    pkg_cv_LIB_GEE_CFLAGS="$LIB_GEE_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gee-1.0 >= 0.5\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gee-1.0 >= 0.5") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.18" 2>/dev/null`
+  pkg_cv_LIB_GEE_CFLAGS=`$PKG_CONFIG --cflags "gee-1.0 >= 0.5" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
  else
     pkg_failed=untried
 fi
-if test -n "$GTK_LIBS"; then
-    pkg_cv_GTK_LIBS="$GTK_LIBS"
+if test -n "$LIB_GEE_LIBS"; then
+    pkg_cv_LIB_GEE_LIBS="$LIB_GEE_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gee-1.0 >= 0.5\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gee-1.0 >= 0.5") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.18" 2>/dev/null`
+  pkg_cv_LIB_GEE_LIBS=`$PKG_CONFIG --libs "gee-1.0 >= 0.5" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -13379,22 +14401,22 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1`
+               LIB_GEE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gee-1.0 >= 0.5" 2>&1`
         else
-               GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1`
+               LIB_GEE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gee-1.0 >= 0.5" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
-       echo "$GTK_PKG_ERRORS" >&5
+       echo "$LIB_GEE_PKG_ERRORS" >&5
 
-       as_fn_error $? "Package requirements (gtk+-2.0 >= 2.18) were not met:
+       as_fn_error $? "Package requirements (gee-1.0 >= 0.5) were not met:
 
-$GTK_PKG_ERRORS
+$LIB_GEE_PKG_ERRORS
 
 Consider adjusting the PKG_CONFIG_PATH environment variable if you
 installed software in a non-standard prefix.
 
-Alternatively, you may set the environment variables GTK_CFLAGS
-and GTK_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables LIB_GEE_CFLAGS
+and LIB_GEE_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details." "$LINENO" 5
 elif test $pkg_failed = untried; then
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -13405,23 +14427,51 @@ as_fn_error $? "The pkg-config script could not be found or is too old.  Make su
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
-Alternatively, you may set the environment variables GTK_CFLAGS
-and GTK_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables LIB_GEE_CFLAGS
+and LIB_GEE_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5; }
 else
-       GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
-       GTK_LIBS=$pkg_cv_GTK_LIBS
+       LIB_GEE_CFLAGS=$pkg_cv_LIB_GEE_CFLAGS
+       LIB_GEE_LIBS=$pkg_cv_LIB_GEE_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-       GTK_VERSION="gtk+-2.0"
+       GEE_VERSION="gee-1.0"
 
 fi
 
-    ;;
+else
+       LIB_GEE_CFLAGS=$pkg_cv_LIB_GEE_CFLAGS
+       LIB_GEE_LIBS=$pkg_cv_LIB_GEE_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       GEE_VERSION="gee-0.8"
+fi
+
+
+#enable the optional use of Log4Vala (Must have the package installed!)
+# Check whether --enable-log4vala was given.
+if test "${enable_log4vala+set}" = set; then :
+  enableval=$enable_log4vala; case "${enableval}" in
+  yes) log4vala=true ;;
+  no)  log4vala=false ;;
+  *) as_fn_error $? "bad value ${enableval} for --enable-log4vala" "$LINENO" 5 ;;
 esac
+else
+  log4vala=false
+fi
+
+ if test x$log4vala = xtrue; then
+  LOG4VALA_TRUE=
+  LOG4VALA_FALSE='#'
+else
+  LOG4VALA_TRUE='#'
+  LOG4VALA_FALSE=
+fi
+
+
 
  if test "$linux" = "yes"; then
   OS_LINUX_TRUE=
@@ -14095,8 +15145,9 @@ if test -n "$moonshot_CFLAGS"; then
         atk >= 1.20
         glib-2.0 >= 2.22
         gobject-2.0 >= 2.22
+        libssl
         \$GTK_VERSION
-        gee-1.0 >= 0.5
+        \$GEE_VERSION
         \$SERVER_IPC_MODULE
                \$MAC
 \""; } >&5
@@ -14104,8 +15155,9 @@ if test -n "$moonshot_CFLAGS"; then
         atk >= 1.20
         glib-2.0 >= 2.22
         gobject-2.0 >= 2.22
+        libssl
         $GTK_VERSION
-        gee-1.0 >= 0.5
+        $GEE_VERSION
         $SERVER_IPC_MODULE
                $MAC
 ") 2>&5
@@ -14116,8 +15168,9 @@ if test -n "$moonshot_CFLAGS"; then
         atk >= 1.20
         glib-2.0 >= 2.22
         gobject-2.0 >= 2.22
+        libssl
         $GTK_VERSION
-        gee-1.0 >= 0.5
+        $GEE_VERSION
         $SERVER_IPC_MODULE
                $MAC
 " 2>/dev/null`
@@ -14136,8 +15189,9 @@ if test -n "$moonshot_LIBS"; then
         atk >= 1.20
         glib-2.0 >= 2.22
         gobject-2.0 >= 2.22
+        libssl
         \$GTK_VERSION
-        gee-1.0 >= 0.5
+        \$GEE_VERSION
         \$SERVER_IPC_MODULE
                \$MAC
 \""; } >&5
@@ -14145,8 +15199,9 @@ if test -n "$moonshot_LIBS"; then
         atk >= 1.20
         glib-2.0 >= 2.22
         gobject-2.0 >= 2.22
+        libssl
         $GTK_VERSION
-        gee-1.0 >= 0.5
+        $GEE_VERSION
         $SERVER_IPC_MODULE
                $MAC
 ") 2>&5
@@ -14157,8 +15212,9 @@ if test -n "$moonshot_LIBS"; then
         atk >= 1.20
         glib-2.0 >= 2.22
         gobject-2.0 >= 2.22
+        libssl
         $GTK_VERSION
-        gee-1.0 >= 0.5
+        $GEE_VERSION
         $SERVER_IPC_MODULE
                $MAC
 " 2>/dev/null`
@@ -14186,8 +15242,9 @@ fi
         atk >= 1.20
         glib-2.0 >= 2.22
         gobject-2.0 >= 2.22
+        libssl
         $GTK_VERSION
-        gee-1.0 >= 0.5
+        $GEE_VERSION
         $SERVER_IPC_MODULE
                $MAC
 " 2>&1`
@@ -14196,8 +15253,9 @@ fi
         atk >= 1.20
         glib-2.0 >= 2.22
         gobject-2.0 >= 2.22
+        libssl
         $GTK_VERSION
-        gee-1.0 >= 0.5
+        $GEE_VERSION
         $SERVER_IPC_MODULE
                $MAC
 " 2>&1`
@@ -14209,8 +15267,9 @@ fi
         atk >= 1.20
         glib-2.0 >= 2.22
         gobject-2.0 >= 2.22
+        libssl
         $GTK_VERSION
-        gee-1.0 >= 0.5
+        $GEE_VERSION
         $SERVER_IPC_MODULE
                $MAC
 ) were not met:
@@ -14380,7 +15439,7 @@ $as_echo "$USE_NLS" >&6; }
 
 
 
-      GETTEXT_MACRO_VERSION=0.17
+      GETTEXT_MACRO_VERSION=0.18
 
 
 
@@ -14720,7 +15779,7 @@ $as_echo_n "checking for ld used by GCC... " >&6; }
       # Canonicalize the path of ld
       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-       ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+        ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
       done
       test -z "$LD" && LD="$ac_prog"
       ;;
@@ -14754,9 +15813,9 @@ else
       # Break only if it was the GNU/non-GNU ld that we prefer.
       case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
       *GNU* | *'with BFD'*)
-       test "$with_gnu_ld" != no && break ;;
+        test "$with_gnu_ld" != no && break ;;
       *)
-       test "$with_gnu_ld" != yes && break ;;
+        test "$with_gnu_ld" != yes && break ;;
       esac
     fi
   done
 
 
 
-                  acl_libdirstem=lib
-  searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
-  if test -n "$searchpath"; then
-    acl_save_IFS="${IFS=       }"; IFS=":"
-    for searchdir in $searchpath; do
-      if test -d "$searchdir"; then
-        case "$searchdir" in
-          */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
-          *) searchdir=`cd "$searchdir" && pwd`
-             case "$searchdir" in
-               */lib64 ) acl_libdirstem=lib64 ;;
-             esac ;;
+
+  acl_libdirstem=lib
+  acl_libdirstem2=
+  case "$host_os" in
+    solaris*)
+                                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
+$as_echo_n "checking for 64-bit host... " >&6; }
+if ${gl_cv_solaris_64bit+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#ifdef _LP64
+sixtyfour bits
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
+  gl_cv_solaris_64bit=yes
+else
+  gl_cv_solaris_64bit=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5
+$as_echo "$gl_cv_solaris_64bit" >&6; }
+      if test $gl_cv_solaris_64bit = yes; then
+        acl_libdirstem=lib/64
+        case "$host_cpu" in
+          sparc*)        acl_libdirstem2=lib/sparcv9 ;;
+          i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
         esac
       fi
-    done
-    IFS="$acl_save_IFS"
-  fi
+      ;;
+    *)
+      searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+      if test -n "$searchpath"; then
+        acl_save_IFS="${IFS=   }"; IFS=":"
+        for searchdir in $searchpath; do
+          if test -d "$searchdir"; then
+            case "$searchdir" in
+              */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
+              */../ | */.. )
+                # Better ignore directories of this form. They are misleading.
+                ;;
+              *) searchdir=`cd "$searchdir" && pwd`
+                 case "$searchdir" in
+                   */lib64 ) acl_libdirstem=lib64 ;;
+                 esac ;;
+            esac
+          fi
+        done
+        IFS="$acl_save_IFS"
+      fi
+      ;;
+  esac
+  test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+
+
+
 
 
 
@@ -14890,6 +15996,10 @@ if test "${with_libiconv_prefix+set}" = set; then :
       else
         additional_includedir="$withval/include"
         additional_libdir="$withval/$acl_libdirstem"
+        if test "$acl_libdirstem2" != "$acl_libdirstem" \
+           && ! test -d "$withval/$acl_libdirstem"; then
+          additional_libdir="$withval/$acl_libdirstem2"
+        fi
       fi
     fi
 
@@ -14899,6 +16009,7 @@ fi
   LTLIBICONV=
   INCICONV=
   LIBICONV_PREFIX=
+      HAVE_LIBICONV=
   rpathdirs=
   ltrpathdirs=
   names_already_handled=
@@ -15041,7 +16152,9 @@ fi
           if test "X$found_dir" != "X"; then
                         LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
             if test "X$found_so" != "X"; then
-                                                        if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
+                                                        if test "$enable_rpath" = no \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
                                 LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
               else
                                                                                 haveit=
             case "$found_dir" in
               */$acl_libdirstem | */$acl_libdirstem/)
                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
-                LIBICONV_PREFIX="$basedir"
+                if test "$name" = 'iconv'; then
+                  LIBICONV_PREFIX="$basedir"
+                fi
+                additional_includedir="$basedir/include"
+                ;;
+              */$acl_libdirstem2 | */$acl_libdirstem2/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+                if test "$name" = 'iconv'; then
+                  LIBICONV_PREFIX="$basedir"
+                fi
                 additional_includedir="$basedir/include"
                 ;;
             esac
                 case "$dep" in
                   -L*)
                     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
                       haveit=
-                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
                         if test -n "$GCC"; then
                           case $host_os in
                             linux* | gnu* | k*bsd*-gnu) haveit=yes;;
 
 
 
+
+
+
+
+
+
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
 if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
@@ -15581,6 +16711,25 @@ int main ()
           return 1;
       }
   }
+  /* Test against Solaris 10 bug: Failures are not distinguishable from
+     successful returns.  */
+  {
+    iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
+    if (cd_ascii_to_88591 != (iconv_t)(-1))
+      {
+        static const char input[] = "\263";
+        char buf[10];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_ascii_to_88591,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if (res == 0)
+          return 1;
+      }
+  }
 #if 0 /* This bug could be worked around by the caller.  */
   /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
   {
@@ -15659,6 +16808,9 @@ $as_echo "$LIBICONV" >&6; }
 
 
 
+
+
+
     use_additional=yes
 
   acl_save_prefix="$prefix"
@@ -15695,6 +16847,10 @@ if test "${with_libintl_prefix+set}" = set; then :
       else
         additional_includedir="$withval/include"
         additional_libdir="$withval/$acl_libdirstem"
+        if test "$acl_libdirstem2" != "$acl_libdirstem" \
+           && ! test -d "$withval/$acl_libdirstem"; then
+          additional_libdir="$withval/$acl_libdirstem2"
+        fi
       fi
     fi
 
@@ -15704,6 +16860,7 @@ fi
   LTLIBINTL=
   INCINTL=
   LIBINTL_PREFIX=
+      HAVE_LIBINTL=
   rpathdirs=
   ltrpathdirs=
   names_already_handled=
@@ -15846,7 +17003,9 @@ fi
           if test "X$found_dir" != "X"; then
                         LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
             if test "X$found_so" != "X"; then
-                                                        if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
+                                                        if test "$enable_rpath" = no \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
                                 LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
               else
                                                                                 haveit=
             case "$found_dir" in
               */$acl_libdirstem | */$acl_libdirstem/)
                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
-                LIBINTL_PREFIX="$basedir"
+                if test "$name" = 'intl'; then
+                  LIBINTL_PREFIX="$basedir"
+                fi
+                additional_includedir="$basedir/include"
+                ;;
+              */$acl_libdirstem2 | */$acl_libdirstem2/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+                if test "$name" = 'intl'; then
+                  LIBINTL_PREFIX="$basedir"
+                fi
                 additional_includedir="$basedir/include"
                 ;;
             esac
                 case "$dep" in
                   -L*)
                     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
                       haveit=
-                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
                         if test -n "$GCC"; then
                           case $host_os in
                             linux* | gnu* | k*bsd*-gnu) haveit=yes;;
     done
   fi
 
+
+
+
+
+
           { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
 $as_echo_n "checking for GNU gettext in libintl... " >&6; }
 if eval \${$gt_func_gnugettext_libintl+:} false; then :
@@ -16419,6 +17594,10 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
   as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${LOG4VALA_TRUE}" && test -z "${LOG4VALA_FALSE}"; then
+  as_fn_error $? "conditional \"LOG4VALA\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${OS_LINUX_TRUE}" && test -z "${OS_LINUX_FALSE}"; then
   as_fn_error $? "conditional \"OS_LINUX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -16848,7 +18027,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Moonshot-ui $as_me 0.7.2, which was
+This file was extended by Moonshot-ui $as_me 1.0.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16915,7 +18094,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Moonshot-ui config.status 0.7.2
+Moonshot-ui config.status 1.0.3
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -17053,6 +18232,7 @@ enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
 enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
 pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
 enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
 SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
 ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
 PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
@@ -17100,10 +18280,13 @@ compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
 GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
 nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
 lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
 objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
 MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
 lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
@@ -17168,7 +18351,8 @@ finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
 finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
 hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
 sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
 hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
 enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
 enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
@@ -17220,9 +18404,12 @@ CFLAGS \
 compiler \
 lt_cv_sys_global_symbol_pipe \
 lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_import \
 lt_cv_sys_global_symbol_to_c_name_address \
 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_cv_nm_interface \
 nm_file_list_spec \
+lt_cv_truncate_bin \
 lt_prog_compiler_no_builtin_flag \
 lt_prog_compiler_pic \
 lt_prog_compiler_wl \
@@ -17257,7 +18444,7 @@ old_striplib \
 striplib; do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -17284,10 +18471,11 @@ postinstall_cmds \
 postuninstall_cmds \
 finish_cmds \
 sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec; do
+configure_time_dlsearch_path \
+configure_time_lt_sys_library_path; do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -17296,19 +18484,16 @@ sys_lib_dlsearch_path_spec; do
 done
 
 ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
 
-# See if we are running on zsh, and set the options which allow our
+# See if we are running on zsh, and set the options that allow our
 # commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
+if test -n "\${ZSH_VERSION+set}"; then
    setopt NO_GLOB_SUBST
 fi
 
 
     PACKAGE='$PACKAGE'
     VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
     RM='$RM'
     ofile='$ofile'
 
@@ -18029,55 +19214,52 @@ $as_echo X"$file" |
  ;;
     "libtool":C)
 
-    # See if we are running on zsh, and set the options which allow our
+    # See if we are running on zsh, and set the options that allow our
     # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
+    if test -n "${ZSH_VERSION+set}"; then
       setopt NO_GLOB_SUBST
     fi
 
-    cfgfile="${ofile}T"
+    cfgfile=${ofile}T
     trap "$RM \"$cfgfile\"; exit 1" 1 2 15
     $RM "$cfgfile"
 
     cat <<_LT_EOF >> "$cfgfile"
 #! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# Generated automatically by $as_me ($PACKAGE) $VERSION
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
 #
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the  same
+# distribution terms that you use for the rest of that program.
 #
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
 # The names of the tagged configurations supported by this script.
-available_tags=""
+available_tags=''
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
 
 # ### BEGIN LIBTOOL CONFIG
 
@@ -18106,6 +19288,9 @@ pic_mode=$pic_mode
 # Whether or not to optimize for fast installation.
 fast_install=$enable_fast_install
 
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=$shared_archive_member_spec
+
 # Shell to use when invoking shell scripts.
 SHELL=$lt_SHELL
 
@@ -18217,18 +19402,27 @@ global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
 # Transform the output of nm in a proper C declaration.
 global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
 
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
+
 # Transform the output of nm in a C name address pair.
 global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
 
 # Transform the output of nm in a C name address pair when lib prefix is needed.
 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
 
+# The name lister interface.
+nm_interface=$lt_lt_cv_nm_interface
+
 # Specify filename containing input files for \$NM.
 nm_file_list_spec=$lt_nm_file_list_spec
 
-# The root where to search for dependent libraries,and in which our libraries should be installed.
+# The root where to search for dependent libraries,and where our libraries should be installed.
 lt_sysroot=$lt_sysroot
 
+# Command to truncate a binary pipe.
+lt_truncate_bin=$lt_lt_cv_truncate_bin
+
 # The name of the directory that contains temporary libtool files.
 objdir=$objdir
 
@@ -18319,8 +19513,11 @@ hardcode_into_libs=$hardcode_into_libs
 # Compile-time system search path for libraries.
 sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
 
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
 
 # Whether dlopen is supported.
 dlopen_support=$enable_dlopen
@@ -18413,13 +19610,13 @@ hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator
 
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
 # DIR into the resulting binary.
 hardcode_direct=$hardcode_direct
 
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
 # DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
 # library is relocated.
 hardcode_direct_absolute=$hardcode_direct_absolute
 
@@ -18471,13 +19668,72 @@ hardcode_action=$hardcode_action
 
 _LT_EOF
 
+    cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x$2 in
+    x)
+        ;;
+    *:)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+        ;;
+    x:*)
+        eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+        ;;
+    *)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+
+
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in $*""; do
+      case $cc_temp in
+        compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+        distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
   case $host_os in
   aix3*)
     cat <<\_LT_EOF >> "$cfgfile"
 # AIX sometimes has problems with the GCC collect2 program.  For some
 # reason, if we set the COLLECT_NAMES environment variable, the problems
 # vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
+if test set != "${COLLECT_NAMES+set}"; then
   COLLECT_NAMES=
   export COLLECT_NAMES
 fi
@@ -18486,7 +19742,7 @@ _LT_EOF
   esac
 
 
-ltmain="$ac_aux_dir/ltmain.sh"
+ltmain=$ac_aux_dir/ltmain.sh
 
 
   # We use sed instead of cat because bash on DJGPP gets confused if
@@ -18496,165 +19752,6 @@ ltmain="$ac_aux_dir/ltmain.sh"
   sed '$q' "$ltmain" >> "$cfgfile" \
      || (rm -f "$cfgfile"; exit 1)
 
-  if test x"$xsi_shell" = xyes; then
-  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
-func_dirname ()\
-{\
-\    case ${1} in\
-\      */*) func_dirname_result="${1%/*}${2}" ;;\
-\      *  ) func_dirname_result="${3}" ;;\
-\    esac\
-} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_basename ()$/,/^} # func_basename /c\
-func_basename ()\
-{\
-\    func_basename_result="${1##*/}"\
-} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
-func_dirname_and_basename ()\
-{\
-\    case ${1} in\
-\      */*) func_dirname_result="${1%/*}${2}" ;;\
-\      *  ) func_dirname_result="${3}" ;;\
-\    esac\
-\    func_basename_result="${1##*/}"\
-} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
-func_stripname ()\
-{\
-\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
-\    # positional parameters, so assign one to ordinary parameter first.\
-\    func_stripname_result=${3}\
-\    func_stripname_result=${func_stripname_result#"${1}"}\
-\    func_stripname_result=${func_stripname_result%"${2}"}\
-} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
-func_split_long_opt ()\
-{\
-\    func_split_long_opt_name=${1%%=*}\
-\    func_split_long_opt_arg=${1#*=}\
-} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
-func_split_short_opt ()\
-{\
-\    func_split_short_opt_arg=${1#??}\
-\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
-} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
-func_lo2o ()\
-{\
-\    case ${1} in\
-\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
-\      *)    func_lo2o_result=${1} ;;\
-\    esac\
-} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_xform ()$/,/^} # func_xform /c\
-func_xform ()\
-{\
-    func_xform_result=${1%.*}.lo\
-} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_arith ()$/,/^} # func_arith /c\
-func_arith ()\
-{\
-    func_arith_result=$(( $* ))\
-} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_len ()$/,/^} # func_len /c\
-func_len ()\
-{\
-    func_len_result=${#1}\
-} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-fi
-
-if test x"$lt_shell_append" = xyes; then
-  sed -e '/^func_append ()$/,/^} # func_append /c\
-func_append ()\
-{\
-    eval "${1}+=\\${2}"\
-} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
-func_append_quoted ()\
-{\
-\    func_quote_for_eval "${2}"\
-\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
-} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  # Save a `func_append' function call where possible by direct use of '+='
-  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-else
-  # Save a `func_append' function call even when '+=' is not available
-  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
-$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
-fi
-
-
    mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
index c9f63b4..2532216 100644 (file)
@@ -1,6 +1,6 @@
 AC_PREREQ([2.63])
 AC_INIT([Moonshot-ui],
-        [0.7.2],
+        [1.0.3],
         [moonshot-community@jiscmail.ac.uk],
         [moonshot-ui],
         [http://www.project-moonshot.org/])
@@ -37,10 +37,6 @@ case "$host" in
     linux=no
     SERVER_IPC_MODULE="msrpc-glib2-1.0"
     CLIENT_IPC_MODULE="msrpc-mingw-1.0"
-    PKG_CHECK_MODULES([GTK],
-            [gtk+-2.0 >= 2.18],
-            [GTK_VERSION="gtk+-2.0"]
-    )
     ;;
     
   *darwin*) 
@@ -59,14 +55,6 @@ case "$host" in
                        [gtk-mac-integration >= 1.0.1]
        )
 
-# TODO: Move to GTK+-3
-#            [gtk+-3.0 >= 2.0],
-#            [GTK_VERSION="gtk+-3.0"]
-    PKG_CHECK_MODULES([GTK],
-            [gtk+-2.0 >= 2.18],
-            [GTK_VERSION="gtk+-2.0"]
-    )
-
     ;;
   *)
     macos=no
@@ -83,17 +71,60 @@ case "$host" in
             [SERVER_IPC_MODULE="gio-2.0"],
             [SERVER_IPC_MODULE="dbus-glib-1"]
     )
-# TODO: Move to GTK+-3
-#            [gtk+-3.0 >= 2.0],
-#            [GTK_VERSION="gtk+-3.0"]
-    PKG_CHECK_MODULES([GTK],
-            [gtk+-2.0 >= 2.18],
-            [GTK_VERSION="gtk+-2.0"]
-    )
 
     ;;
 esac
 
+
+# For all platforms: Use Gtk+3.0 if available; else revert to Gtk+2.0
+PKG_CHECK_MODULES([GTK],
+        [gtk+-3.0 >= 3.1],
+        [GTK_VERSION="gtk+-3.0"],
+            [PKG_CHECK_MODULES([GTK],
+                        [gtk+-2.0 >= 2.18],
+                        [GTK_VERSION="gtk+-2.0"]
+            )]                            
+)
+AC_SUBST(GTK_VERSION)
+
+
+# For all platforms: If Log4Vala is enabled, then Use Log4Vala 0.2 if available; else revert to 0.1
+if [test x$log4vala = xtrue]; then
+PKG_CHECK_MODULES([LOG4VALA],
+        [log4vala-0.2],
+        [LOG4VALA_VERSION="log4vala-0.2"],
+            [PKG_CHECK_MODULES([LOG4VALA],
+                        [log4vala-0.1],
+                        [LOG4VALA_VERSION="log4vala-0.1"]
+            )]                            
+)
+AC_SUBST(LOG4VALA_VERSION)
+fi
+
+
+# For all platforms: Use gee-0.8 if available; else revert to gee-1.0
+# (yes, gee-0.8 is an upgrade from gee-1.0!)
+PKG_CHECK_MODULES([LIB_GEE],
+        [gee-0.8 >= 0.10.5],
+        [GEE_VERSION="gee-0.8"],
+            [PKG_CHECK_MODULES([LIB_GEE],
+                        [gee-1.0 >= 0.5],
+                        [GEE_VERSION="gee-1.0"]
+            )]                            
+)
+AC_SUBST(GEE_VERSION)
+
+#enable the optional use of Log4Vala (Must have the package installed!)
+AC_ARG_ENABLE([log4vala],
+[  --enable-log4vala    Enable use of log4vala for logging],
+[case "${enableval}" in
+  yes) log4vala=true ;;
+  no)  log4vala=false ;;
+  *) AC_MSG_ERROR([bad value ${enableval} for --enable-log4vala]) ;;
+esac],[log4vala=false])
+AM_CONDITIONAL([LOG4VALA], [test x$log4vala = xtrue])
+
+
 AM_CONDITIONAL([OS_LINUX], [test "$linux" = "yes"])
 AM_CONDITIONAL([OS_WIN32], [test "$win32" = "yes"])
 AM_CONDITIONAL([OS_MACOS], [test "$macos" = "yes"])
@@ -219,8 +250,9 @@ PKG_CHECK_MODULES(moonshot,[
         atk >= 1.20
         glib-2.0 >= 2.22
         gobject-2.0 >= 2.22
+        libssl
         $GTK_VERSION
-        gee-1.0 >= 0.5
+        $GEE_VERSION
         $SERVER_IPC_MODULE
                $MAC
 ])
@@ -231,7 +263,7 @@ PKG_CHECK_MODULES(libmoonshot,[
 
 # i18n stuff
 AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([0.17])
+AM_GNU_GETTEXT_VERSION([0.18.1])
 
 AC_SUBST([GETTEXT_PACKAGE],[PACKAGE_TARNAME])
 AC_DEFINE([GETTEXT_PACKAGE],[PACKAGE_TARNAME],[Define to the gettext package name.])
index b97f6f8..f00b032 100644 (file)
@@ -2,4 +2,5 @@ root
 gdm
 freerad
 radius
+radiusd
 trustrouter
index 84f8975..52d1b0e 100644 (file)
@@ -34,6 +34,7 @@
 
 #include <assert.h>
 #include <stdlib.h>
+#include <stdio.h>
 #include <string.h>
 #include <unistd.h>
 #include <dbus/dbus-glib.h>
@@ -435,6 +436,9 @@ int moonshot_install_id_card (const char     *display_name,
                        G_TYPE_INVALID);
 
     g_object_unref (dbus_proxy);
+    g_free(rules_patterns_strv);
+    g_free(rules_always_confirm_strv);
+    g_free(services_strv);
 
     if (g_error != NULL) {
         *error = moonshot_error_new (MOONSHOT_ERROR_IPC_ERROR,
@@ -444,3 +448,53 @@ int moonshot_install_id_card (const char     *display_name,
 
     return success;
 }
+
+int moonshot_confirm_ca_certificate (const char           *identity_name,
+                                     const char           *realm,
+                                     const unsigned char  *ca_hash,
+                                     int                   hash_len,
+                                     MoonshotError       **error)
+{
+    GError     *g_error = NULL;
+    int         success = 99;
+    int         confirmed = 99;
+    char        hash_str[65];
+    DBusGProxy *dbus_proxy = get_dbus_proxy (error);
+    int         out = 0;
+    int         i;
+
+    if (*error != NULL) {
+        return FALSE;
+    }
+
+    g_return_val_if_fail (DBUS_IS_G_PROXY (dbus_proxy), FALSE);
+
+    /* Convert hash byte array to string */
+    out = 0;
+    for (i = 0; i < hash_len; i++) {
+        sprintf(&(hash_str[out]), "%02X", ca_hash[i]);
+        out += 2;
+    }
+
+    dbus_g_proxy_call_with_timeout (dbus_proxy,
+                                    "ConfirmCaCertificate",
+                                    INFINITE_TIMEOUT,
+                                    &g_error,
+                                    G_TYPE_STRING, identity_name,
+                                    G_TYPE_STRING, realm,
+                                    G_TYPE_STRING, hash_str,
+                                    G_TYPE_INVALID,
+                                    G_TYPE_INT,   &confirmed,
+                                    G_TYPE_BOOLEAN, &success,
+                                    G_TYPE_INVALID);
+
+    g_object_unref (dbus_proxy);
+
+    if (g_error != NULL) {
+        *error = moonshot_error_new (MOONSHOT_ERROR_IPC_ERROR,
+                                     g_error->message);
+        return FALSE;
+    }
+
+    return (int) confirmed;
+}
index d7830c2..5b2524d 100644 (file)
@@ -187,4 +187,19 @@ int moonshot_install_id_card (const char     *display_name,
                               int             force_flat_file_store,
                               MoonshotError **error);
 
+
+
+/**
+ * moonshot_confirm_ca_certificate
+ * @
+ * Return value: %TRUE if the certificate is approved; %FALSE otherwise
+ */
+
+int moonshot_confirm_ca_certificate (const char           *identity_name,
+                                     const char           *realm,
+                                     const unsigned char  *sha256,
+                                     int                   sha256_length,
+                                     MoonshotError       **error);
+
+
 #endif
index 8662596..840e19f 100644 (file)
@@ -51,4 +51,11 @@ namespace Moonshot {
                                  string? server_cert,
                                  int force_flat_file_store,
                                  out Moonshot.Error error);
+
+    [CCode (cname = "moonshot_confirm_ca_certificate")]
+    public bool moonshot_confirm_ca_certificate (string identity_name,
+                                                 string realm,
+                                                 string ca_hash,
+                                                 out uint32 confirmed,
+                                                 out Moonshot.Error error);
 }
index c9ae1f7..f84e6a5 100644 (file)
@@ -1,5 +1,5 @@
-# gettext.m4 serial 60 (gettext-0.17)
-dnl Copyright (C) 1995-2007 Free Software Foundation, Inc.
+# gettext.m4 serial 63 (gettext-0.18)
+dnl Copyright (C) 1995-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -15,7 +15,7 @@ dnl They are *not* in the public domain.
 
 dnl Authors:
 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2006.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010.
 
 dnl Macro to add for using GNU gettext.
 
@@ -60,6 +60,8 @@ AC_DEFUN([AM_GNU_GETTEXT],
   ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
     [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
 ])])])])])
+  ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old],
+    [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])])
   ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
     [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
 ])])])])
@@ -123,11 +125,11 @@ AC_DEFUN([AM_GNU_GETTEXT],
     gt_use_preinstalled_gnugettext=no
     ifelse(gt_included_intl, yes, [
       AC_MSG_CHECKING([whether included gettext is requested])
-      AC_ARG_WITH(included-gettext,
+      AC_ARG_WITH([included-gettext],
         [  --with-included-gettext use the GNU gettext library included here],
         nls_cv_force_use_gnu_gettext=$withval,
         nls_cv_force_use_gnu_gettext=no)
-      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+      AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext])
 
       nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
       if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
@@ -267,7 +269,7 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
 
     if test "$gt_use_preinstalled_gnugettext" = "yes" \
        || test "$nls_cv_use_gnu_gettext" = "yes"; then
-      AC_DEFINE(ENABLE_NLS, 1,
+      AC_DEFINE([ENABLE_NLS], [1],
         [Define to 1 if translation of program messages to the user's native language
    is requested.])
     else
@@ -301,9 +303,9 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
       fi
 
       dnl For backward compatibility. Some packages may be using this.
-      AC_DEFINE(HAVE_GETTEXT, 1,
+      AC_DEFINE([HAVE_GETTEXT], [1],
        [Define if the GNU gettext() function is already present or preinstalled.])
-      AC_DEFINE(HAVE_DCGETTEXT, 1,
+      AC_DEFINE([HAVE_DCGETTEXT], [1],
        [Define if the GNU dcgettext() function is already present or preinstalled.])
     fi
 
@@ -319,9 +321,9 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
     fi
 
     dnl Make all variables we use known to autoconf.
-    AC_SUBST(BUILD_INCLUDED_LIBINTL)
-    AC_SUBST(USE_INCLUDED_LIBINTL)
-    AC_SUBST(CATOBJEXT)
+    AC_SUBST([BUILD_INCLUDED_LIBINTL])
+    AC_SUBST([USE_INCLUDED_LIBINTL])
+    AC_SUBST([CATOBJEXT])
 
     dnl For backward compatibility. Some configure.ins may be using this.
     nls_cv_header_intl=
@@ -329,36 +331,36 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
 
     dnl For backward compatibility. Some Makefiles may be using this.
     DATADIRNAME=share
-    AC_SUBST(DATADIRNAME)
+    AC_SUBST([DATADIRNAME])
 
     dnl For backward compatibility. Some Makefiles may be using this.
     INSTOBJEXT=.mo
-    AC_SUBST(INSTOBJEXT)
+    AC_SUBST([INSTOBJEXT])
 
     dnl For backward compatibility. Some Makefiles may be using this.
     GENCAT=gencat
-    AC_SUBST(GENCAT)
+    AC_SUBST([GENCAT])
 
     dnl For backward compatibility. Some Makefiles may be using this.
     INTLOBJS=
     if test "$USE_INCLUDED_LIBINTL" = yes; then
       INTLOBJS="\$(GETTOBJS)"
     fi
-    AC_SUBST(INTLOBJS)
+    AC_SUBST([INTLOBJS])
 
     dnl Enable libtool support if the surrounding package wishes it.
     INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
-    AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
+    AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX])
   ])
 
   dnl For backward compatibility. Some Makefiles may be using this.
   INTLLIBS="$LIBINTL"
-  AC_SUBST(INTLLIBS)
+  AC_SUBST([INTLLIBS])
 
   dnl Make all documented variables known to autoconf.
-  AC_SUBST(LIBINTL)
-  AC_SUBST(LTLIBINTL)
-  AC_SUBST(POSUB)
+  AC_SUBST([LIBINTL])
+  AC_SUBST([LTLIBINTL])
+  AC_SUBST([POSUB])
 ])
 
 
index 66bc76f..e2041b9 100644 (file)
@@ -1,5 +1,5 @@
-# iconv.m4 serial AM6 (gettext-0.17)
-dnl Copyright (C) 2000-2002, 2007 Free Software Foundation, Inc.
+# iconv.m4 serial 11 (gettext-0.18.1)
+dnl Copyright (C) 2000-2002, 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,7 @@ AC_DEFUN([AM_ICONV_LINK],
   am_save_CPPFLAGS="$CPPFLAGS"
   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
 
-  AC_CACHE_CHECK([for iconv], am_cv_func_iconv, [
+  AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [
     am_cv_func_iconv="no, consider installing GNU libiconv"
     am_cv_lib_iconv=no
     AC_TRY_LINK([#include <stdlib.h>
@@ -42,7 +42,7 @@ AC_DEFUN([AM_ICONV_LINK],
       [iconv_t cd = iconv_open("","");
        iconv(cd,NULL,NULL,NULL,NULL);
        iconv_close(cd);],
-      am_cv_func_iconv=yes)
+      [am_cv_func_iconv=yes])
     if test "$am_cv_func_iconv" != yes; then
       am_save_LIBS="$LIBS"
       LIBS="$LIBS $LIBICONV"
@@ -51,14 +51,14 @@ AC_DEFUN([AM_ICONV_LINK],
         [iconv_t cd = iconv_open("","");
          iconv(cd,NULL,NULL,NULL,NULL);
          iconv_close(cd);],
-        am_cv_lib_iconv=yes
-        am_cv_func_iconv=yes)
+        [am_cv_lib_iconv=yes]
+        [am_cv_func_iconv=yes])
       LIBS="$am_save_LIBS"
     fi
   ])
   if test "$am_cv_func_iconv" = yes; then
-    AC_CACHE_CHECK([for working iconv], am_cv_func_iconv_works, [
-      dnl This tests against bugs in AIX 5.1 and HP-UX 11.11.
+    AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [
+      dnl This tests against bugs in AIX 5.1, HP-UX 11.11, Solaris 10.
       am_save_LIBS="$LIBS"
       if test $am_cv_lib_iconv = yes; then
         LIBS="$LIBS $LIBICONV"
@@ -87,6 +87,25 @@ int main ()
           return 1;
       }
   }
+  /* Test against Solaris 10 bug: Failures are not distinguishable from
+     successful returns.  */
+  {
+    iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
+    if (cd_ascii_to_88591 != (iconv_t)(-1))
+      {
+        static const char input[] = "\263";
+        char buf[10];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_ascii_to_88591,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if (res == 0)
+          return 1;
+      }
+  }
 #if 0 /* This bug could be worked around by the caller.  */
   /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
   {
@@ -134,7 +153,7 @@ int main ()
     am_func_iconv=no am_cv_lib_iconv=no
   fi
   if test "$am_func_iconv" = yes; then
-    AC_DEFINE(HAVE_ICONV, 1,
+    AC_DEFINE([HAVE_ICONV], [1],
       [Define if you have the iconv() function and it works.])
   fi
   if test "$am_cv_lib_iconv" = yes; then
@@ -147,16 +166,31 @@ int main ()
     LIBICONV=
     LTLIBICONV=
   fi
-  AC_SUBST(LIBICONV)
-  AC_SUBST(LTLIBICONV)
+  AC_SUBST([LIBICONV])
+  AC_SUBST([LTLIBICONV])
 ])
 
-AC_DEFUN([AM_ICONV],
+dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to
+dnl avoid warnings like
+dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
+dnl This is tricky because of the way 'aclocal' is implemented:
+dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
+dnl   Otherwise aclocal's initial scan pass would miss the macro definition.
+dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
+dnl   Otherwise aclocal would emit many "Use of uninitialized value $1"
+dnl   warnings.
+m4_define([gl_iconv_AC_DEFUN],
+  m4_version_prereq([2.64],
+    [[AC_DEFUN_ONCE(
+        [$1], [$2])]],
+    [[AC_DEFUN(
+        [$1], [$2])]]))
+gl_iconv_AC_DEFUN([AM_ICONV],
 [
   AM_ICONV_LINK
   if test "$am_cv_func_iconv" = yes; then
     AC_MSG_CHECKING([for iconv declaration])
-    AC_CACHE_VAL(am_cv_proto_iconv, [
+    AC_CACHE_VAL([am_cv_proto_iconv], [
       AC_TRY_COMPILE([
 #include <stdlib.h>
 #include <iconv.h>
@@ -169,12 +203,12 @@ size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, si
 #else
 size_t iconv();
 #endif
-], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+], [], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"])
       am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
     am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
-    AC_MSG_RESULT([$]{ac_t:-
-         }[$]am_cv_proto_iconv)
-    AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+    AC_MSG_RESULT([
+         $am_cv_proto_iconv])
+    AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
       [Define as const if the declaration of iconv() needs const.])
   fi
 ])
index d3f0d90..dd91025 100644 (file)
@@ -1,5 +1,5 @@
-# intlmacosx.m4 serial 1 (gettext-0.17)
-dnl Copyright (C) 2004-2007 Free Software Foundation, Inc.
+# intlmacosx.m4 serial 3 (gettext-0.18)
+dnl Copyright (C) 2004-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -19,7 +19,7 @@ AC_DEFUN([gt_INTL_MACOSX],
 [
   dnl Check for API introduced in MacOS X 10.2.
   AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
-    gt_cv_func_CFPreferencesCopyAppValue,
+    [gt_cv_func_CFPreferencesCopyAppValue],
     [gt_save_LIBS="$LIBS"
      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
      AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>],
@@ -28,11 +28,11 @@ AC_DEFUN([gt_INTL_MACOSX],
        [gt_cv_func_CFPreferencesCopyAppValue=no])
      LIBS="$gt_save_LIBS"])
   if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
-    AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1,
+    AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
       [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
   fi
   dnl Check for API introduced in MacOS X 10.3.
-  AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent,
+  AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent],
     [gt_save_LIBS="$LIBS"
      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
      AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();],
@@ -40,7 +40,7 @@ AC_DEFUN([gt_INTL_MACOSX],
        [gt_cv_func_CFLocaleCopyCurrent=no])
      LIBS="$gt_save_LIBS"])
   if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
-    AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1,
+    AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1],
       [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
   fi
   INTL_MACOSX_LIBS=
index 96c4e2c..ebb3052 100644 (file)
@@ -1,5 +1,5 @@
-# lib-ld.m4 serial 3 (gettext-0.13)
-dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+# lib-ld.m4 serial 4 (gettext-0.18)
+dnl Copyright (C) 1996-2003, 2009-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -10,7 +10,7 @@ dnl with libtool.m4.
 
 dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
 AC_DEFUN([AC_LIB_PROG_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
 case `$LD -v 2>&1 </dev/null` in
 *GNU* | *'with BFD'*)
@@ -23,7 +23,7 @@ with_gnu_ld=$acl_cv_prog_gnu_ld
 
 dnl From libtool-1.4. Sets the variable LD.
 AC_DEFUN([AC_LIB_PROG_LD],
-[AC_ARG_WITH(gnu-ld,
+[AC_ARG_WITH([gnu-ld],
 [  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
 AC_REQUIRE([AC_PROG_CC])dnl
@@ -59,7 +59,7 @@ if test "$GCC" = yes; then
       # Canonicalize the path of ld
       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-       ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+        ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
       done
       test -z "$LD" && LD="$ac_prog"
       ;;
@@ -77,7 +77,7 @@ elif test "$with_gnu_ld" = yes; then
 else
   AC_MSG_CHECKING([for non-GNU ld])
 fi
-AC_CACHE_VAL(acl_cv_path_LD,
+AC_CACHE_VAL([acl_cv_path_LD],
 [if test -z "$LD"; then
   IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
   for ac_dir in $PATH; do
@@ -89,9 +89,9 @@ AC_CACHE_VAL(acl_cv_path_LD,
       # Break only if it was the GNU/non-GNU ld that we prefer.
       case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
       *GNU* | *'with BFD'*)
-       test "$with_gnu_ld" != no && break ;;
+        test "$with_gnu_ld" != no && break ;;
       *)
-       test "$with_gnu_ld" != yes && break ;;
+        test "$with_gnu_ld" != yes && break ;;
       esac
     fi
   done
@@ -101,9 +101,9 @@ else
 fi])
 LD="$acl_cv_path_LD"
 if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
+  AC_MSG_RESULT([$LD])
 else
-  AC_MSG_RESULT(no)
+  AC_MSG_RESULT([no])
 fi
 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
 AC_LIB_PROG_LD_GNU
index e3d26fc..c73bd8e 100644 (file)
@@ -1,12 +1,12 @@
-# lib-link.m4 serial 13 (gettext-0.17)
-dnl Copyright (C) 2001-2007 Free Software Foundation, Inc.
+# lib-link.m4 serial 21 (gettext-0.18)
+dnl Copyright (C) 2001-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 dnl From Bruno Haible.
 
-AC_PREREQ(2.54)
+AC_PREREQ([2.54])
 
 dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
 dnl the libraries corresponding to explicit and implicit dependencies.
@@ -18,9 +18,9 @@ AC_DEFUN([AC_LIB_LINKFLAGS],
 [
   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
   AC_REQUIRE([AC_LIB_RPATH])
-  define([Name],[translit([$1],[./-], [___])])
-  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  pushdef([Name],[translit([$1],[./-], [___])])
+  pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
   AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
     AC_LIB_LINKFLAGS_BODY([$1], [$2])
     ac_cv_lib[]Name[]_libs="$LIB[]NAME"
@@ -39,16 +39,17 @@ AC_DEFUN([AC_LIB_LINKFLAGS],
   dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
   dnl results of this search when this library appears as a dependency.
   HAVE_LIB[]NAME=yes
-  undefine([Name])
-  undefine([NAME])
+  popdef([NAME])
+  popdef([Name])
 ])
 
-dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message])
 dnl searches for libname and the libraries corresponding to explicit and
 dnl implicit dependencies, together with the specified include files and
-dnl the ability to compile and link the specified testcode. If found, it
-dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
-dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl the ability to compile and link the specified testcode. The missing-message
+dnl defaults to 'no' and may contain additional hints for the user.
+dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME}
+dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and
 dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
 dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
 dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
@@ -57,9 +58,9 @@ AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
 [
   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
   AC_REQUIRE([AC_LIB_RPATH])
-  define([Name],[translit([$1],[./-], [___])])
-  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  pushdef([Name],[translit([$1],[./-], [___])])
+  pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
 
   dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
   dnl accordingly.
@@ -73,13 +74,25 @@ AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
 
   AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
     ac_save_LIBS="$LIBS"
-    LIBS="$LIBS $LIB[]NAME"
-    AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
+    dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS,
+    dnl because these -l options might require -L options that are present in
+    dnl LIBS. -l options benefit only from the -L options listed before it.
+    dnl Otherwise, add it to the front of LIBS, because it may be a static
+    dnl library that depends on another static library that is present in LIBS.
+    dnl Static libraries benefit only from the static libraries listed after
+    dnl it.
+    case " $LIB[]NAME" in
+      *" -l"*) LIBS="$LIBS $LIB[]NAME" ;;
+      *)       LIBS="$LIB[]NAME $LIBS" ;;
+    esac
+    AC_TRY_LINK([$3], [$4],
+      [ac_cv_lib[]Name=yes],
+      [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])'])
     LIBS="$ac_save_LIBS"
   ])
   if test "$ac_cv_lib[]Name" = yes; then
     HAVE_LIB[]NAME=yes
-    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
+    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.])
     AC_MSG_CHECKING([how to link with lib[]$1])
     AC_MSG_RESULT([$LIB[]NAME])
   else
@@ -95,8 +108,8 @@ AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
   AC_SUBST([LIB]NAME)
   AC_SUBST([LTLIB]NAME)
   AC_SUBST([LIB]NAME[_PREFIX])
-  undefine([Name])
-  undefine([NAME])
+  popdef([NAME])
+  popdef([Name])
 ])
 
 dnl Determine the platform dependent parameters needed to use rpath:
@@ -114,7 +127,7 @@ AC_DEFUN([AC_LIB_RPATH],
   AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
   AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
   AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
-  AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
+  AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [
     CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
     ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
     . ./conftest.sh
@@ -131,11 +144,32 @@ AC_DEFUN([AC_LIB_RPATH],
   acl_hardcode_direct="$acl_cv_hardcode_direct"
   acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
   dnl Determine whether the user wants rpath handling at all.
-  AC_ARG_ENABLE(rpath,
+  AC_ARG_ENABLE([rpath],
     [  --disable-rpath         do not hardcode runtime library paths],
     :, enable_rpath=yes)
 ])
 
+dnl AC_LIB_FROMPACKAGE(name, package)
+dnl declares that libname comes from the given package. The configure file
+dnl will then not have a --with-libname-prefix option but a
+dnl --with-package-prefix option. Several libraries can come from the same
+dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
+dnl macro call that searches for libname.
+AC_DEFUN([AC_LIB_FROMPACKAGE],
+[
+  pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  define([acl_frompackage_]NAME, [$2])
+  popdef([NAME])
+  pushdef([PACK],[$2])
+  pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
+                                  [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  define([acl_libsinpackage_]PACKUP,
+    m4_ifdef([acl_libsinpackage_]PACKUP, [acl_libsinpackage_]PACKUP[[, ]],)[lib$1])
+  popdef([PACKUP])
+  popdef([PACK])
+])
+
 dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
 dnl the libraries corresponding to explicit and implicit dependencies.
 dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
@@ -144,19 +178,23 @@ dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
 AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
 [
   AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
-  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
+  pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
+                                  [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
   dnl Autoconf >= 2.61 supports dots in --with options.
-  define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])])
+  pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)])
   dnl By default, look in $includedir and $libdir.
   use_additional=yes
   AC_LIB_WITH_FINAL_PREFIX([
     eval additional_includedir=\"$includedir\"
     eval additional_libdir=\"$libdir\"
   ])
-  AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix],
-[  --with-lib]N_A_M_E[-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
-  --without-lib]N_A_M_E[-prefix     don't search for lib$1 in includedir and libdir],
+  AC_ARG_WITH(P_A_C_K[-prefix],
+[[  --with-]]P_A_C_K[[-prefix[=DIR]  search for ]PACKLIBS[ in DIR/include and DIR/lib
+  --without-]]P_A_C_K[[-prefix     don't search for ]PACKLIBS[ in includedir and libdir]],
 [
     if test "X$withval" = "Xno"; then
       use_additional=no
@@ -169,6 +207,10 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
       else
         additional_includedir="$withval/include"
         additional_libdir="$withval/$acl_libdirstem"
+        if test "$acl_libdirstem2" != "$acl_libdirstem" \
+           && ! test -d "$withval/$acl_libdirstem"; then
+          additional_libdir="$withval/$acl_libdirstem2"
+        fi
       fi
     fi
 ])
@@ -178,6 +220,9 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
   LTLIB[]NAME=
   INC[]NAME=
   LIB[]NAME[]_PREFIX=
+  dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been
+  dnl computed. So it has to be reset here.
+  HAVE_LIB[]NAME=
   rpathdirs=
   ltrpathdirs=
   names_already_handled=
@@ -327,7 +372,9 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
               dnl Linking with a shared library. We attempt to hardcode its
               dnl directory into the executable's runpath, unless it's the
               dnl standard /usr/lib.
-              if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
+              if test "$enable_rpath" = no \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
                 dnl No hardcoding is needed.
                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
               else
@@ -415,7 +462,16 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
             case "$found_dir" in
               */$acl_libdirstem | */$acl_libdirstem/)
                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
-                LIB[]NAME[]_PREFIX="$basedir"
+                if test "$name" = '$1'; then
+                  LIB[]NAME[]_PREFIX="$basedir"
+                fi
+                additional_includedir="$basedir/include"
+                ;;
+              */$acl_libdirstem2 | */$acl_libdirstem2/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+                if test "$name" = '$1'; then
+                  LIB[]NAME[]_PREFIX="$basedir"
+                fi
                 additional_includedir="$basedir/include"
                 ;;
             esac
@@ -476,9 +532,11 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
                     dnl   3. if it's already present in $LDFLAGS or the already
                     dnl      constructed $LIBNAME,
                     dnl   4. if it doesn't exist as a directory.
-                    if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+                    if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
                       haveit=
-                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
                         if test -n "$GCC"; then
                           case $host_os in
                             linux* | gnu* | k*bsd*-gnu) haveit=yes;;
@@ -609,6 +667,11 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
       LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
     done
   fi
+  popdef([P_A_C_K])
+  popdef([PACKLIBS])
+  popdef([PACKUP])
+  popdef([PACK])
+  popdef([NAME])
 ])
 
 dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
@@ -654,7 +717,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
         if test -n "$next"; then
           dir="$next"
           dnl No need to hardcode the standard /usr/lib.
-          if test "X$dir" != "X/usr/$acl_libdirstem"; then
+          if test "X$dir" != "X/usr/$acl_libdirstem" \
+             && test "X$dir" != "X/usr/$acl_libdirstem2"; then
             rpathdirs="$rpathdirs $dir"
           fi
           next=
@@ -663,7 +727,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
             -L) next=yes ;;
             -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
                  dnl No need to hardcode the standard /usr/lib.
-                 if test "X$dir" != "X/usr/$acl_libdirstem"; then
+                 if test "X$dir" != "X/usr/$acl_libdirstem" \
+                    && test "X$dir" != "X/usr/$acl_libdirstem2"; then
                    rpathdirs="$rpathdirs $dir"
                  fi
                  next= ;;
index a8684e1..1601cea 100644 (file)
@@ -1,5 +1,5 @@
-# lib-prefix.m4 serial 5 (gettext-0.15)
-dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
+# lib-prefix.m4 serial 7 (gettext-0.18)
+dnl Copyright (C) 2001-2005, 2008-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -153,33 +153,72 @@ AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
   prefix="$acl_save_prefix"
 ])
 
-dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing
-dnl the basename of the libdir, either "lib" or "lib64".
+dnl AC_LIB_PREPARE_MULTILIB creates
+dnl - a variable acl_libdirstem, containing the basename of the libdir, either
+dnl   "lib" or "lib64" or "lib/64",
+dnl - a variable acl_libdirstem2, as a secondary possible value for
+dnl   acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or
+dnl   "lib/amd64".
 AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
 [
-  dnl There is no formal standard regarding lib and lib64. The current
-  dnl practice is that on a system supporting 32-bit and 64-bit instruction
-  dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit
-  dnl libraries go under $prefix/lib. We determine the compiler's default
-  dnl mode by looking at the compiler's library search path. If at least
-  dnl of its elements ends in /lib64 or points to a directory whose absolute
-  dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the
-  dnl default, namely "lib".
+  dnl There is no formal standard regarding lib and lib64.
+  dnl On glibc systems, the current practice is that on a system supporting
+  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
+  dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine
+  dnl the compiler's default mode by looking at the compiler's library search
+  dnl path. If at least one of its elements ends in /lib64 or points to a
+  dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI.
+  dnl Otherwise we use the default, namely "lib".
+  dnl On Solaris systems, the current practice is that on a system supporting
+  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
+  dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
+  dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
+  AC_REQUIRE([AC_CANONICAL_HOST])
   acl_libdirstem=lib
-  searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
-  if test -n "$searchpath"; then
-    acl_save_IFS="${IFS=       }"; IFS=":"
-    for searchdir in $searchpath; do
-      if test -d "$searchdir"; then
-        case "$searchdir" in
-          */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
-          *) searchdir=`cd "$searchdir" && pwd`
-             case "$searchdir" in
-               */lib64 ) acl_libdirstem=lib64 ;;
-             esac ;;
+  acl_libdirstem2=
+  case "$host_os" in
+    solaris*)
+      dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
+      dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>.
+      dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
+      dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
+      dnl symlink is missing, so we set acl_libdirstem2 too.
+      AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
+        [AC_EGREP_CPP([sixtyfour bits], [
+#ifdef _LP64
+sixtyfour bits
+#endif
+           ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no])
+        ])
+      if test $gl_cv_solaris_64bit = yes; then
+        acl_libdirstem=lib/64
+        case "$host_cpu" in
+          sparc*)        acl_libdirstem2=lib/sparcv9 ;;
+          i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
         esac
       fi
-    done
-    IFS="$acl_save_IFS"
-  fi
+      ;;
+    *)
+      searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+      if test -n "$searchpath"; then
+        acl_save_IFS="${IFS=   }"; IFS=":"
+        for searchdir in $searchpath; do
+          if test -d "$searchdir"; then
+            case "$searchdir" in
+              */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
+              */../ | */.. )
+                # Better ignore directories of this form. They are misleading.
+                ;;
+              *) searchdir=`cd "$searchdir" && pwd`
+                 case "$searchdir" in
+                   */lib64 ) acl_libdirstem=lib64 ;;
+                 esac ;;
+            esac
+          fi
+        done
+        IFS="$acl_save_IFS"
+      fi
+      ;;
+  esac
+  test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
 ])
index d7c043f..ee80844 100644 (file)
@@ -1,8 +1,6 @@
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
+#   Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
 # modifications, as long as this notice is preserved.
 
 m4_define([_LT_COPYING], [dnl
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
 #
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the  same
+# distribution terms that you use for the rest of that program.
 #
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ])
 
-# serial 57 LT_INIT
+# serial 58 LT_INIT
 
 
 # LT_PREREQ(VERSION)
@@ -67,7 +59,7 @@ esac
 # LT_INIT([OPTIONS])
 # ------------------
 AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
 AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
 AC_BEFORE([$0], [LT_LANG])dnl
 AC_BEFORE([$0], [LT_OUTPUT])dnl
@@ -91,7 +83,7 @@ dnl Parse OPTIONS
 _LT_SET_OPTIONS([$0], [$1])
 
 # This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
+LIBTOOL_DEPS=$ltmain
 
 # Always use our own libtool.
 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
@@ -111,26 +103,43 @@ dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
 dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
 
 
+# _LT_PREPARE_CC_BASENAME
+# -----------------------
+m4_defun([_LT_PREPARE_CC_BASENAME], [
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in @S|@*""; do
+      case $cc_temp in
+        compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+        distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+])# _LT_PREPARE_CC_BASENAME
+
+
 # _LT_CC_BASENAME(CC)
 # -------------------
-# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME,
+# but that macro is also expanded into generated libtool script, which
+# arranges for $SED and $ECHO to be set by different means.
 m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
-  case $cc_temp in
-    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
-    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+[m4_require([_LT_PREPARE_CC_BASENAME])dnl
+AC_REQUIRE([_LT_DECL_SED])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+func_cc_basename $1
+cc_basename=$func_cc_basename_result
 ])
 
 
 # _LT_FILEUTILS_DEFAULTS
 # ----------------------
 # It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'.
 m4_defun([_LT_FILEUTILS_DEFAULTS],
 [: ${CP="cp -f"}
 : ${MV="mv -f"}
@@ -177,15 +186,16 @@ m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
 m4_require([_LT_WITH_SYSROOT])dnl
+m4_require([_LT_CMD_TRUNCATE])dnl
 
 _LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
+# See if we are running on zsh, and set the options that allow our
 # commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
+if test -n "\${ZSH_VERSION+set}"; then
    setopt NO_GLOB_SUBST
 fi
 ])
-if test -n "${ZSH_VERSION+set}" ; then
+if test -n "${ZSH_VERSION+set}"; then
    setopt NO_GLOB_SUBST
 fi
 
@@ -198,7 +208,7 @@ aix3*)
   # AIX sometimes has problems with the GCC collect2 program.  For some
   # reason, if we set the COLLECT_NAMES environment variable, the problems
   # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
+  if test set != "${COLLECT_NAMES+set}"; then
     COLLECT_NAMES=
     export COLLECT_NAMES
   fi
@@ -209,14 +219,14 @@ esac
 ofile=libtool
 can_build_shared=yes
 
-# All known linkers require a `.a' archive for static linking (except MSVC,
+# All known linkers require a '.a' archive for static linking (except MSVC,
 # which needs '.lib').
 libext=a
 
-with_gnu_ld="$lt_cv_prog_gnu_ld"
+with_gnu_ld=$lt_cv_prog_gnu_ld
 
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
+old_CC=$CC
+old_CFLAGS=$CFLAGS
 
 # Set sane defaults for various variables
 test -z "$CC" && CC=cc
@@ -269,14 +279,14 @@ no_glob_subst='s/\*/\\\*/g'
 
 # _LT_PROG_LTMAIN
 # ---------------
-# Note that this code is called both from `configure', and `config.status'
+# Note that this code is called both from 'configure', and 'config.status'
 # now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# 'config.status' has no value for ac_aux_dir unless we are using Automake,
 # so we pass a copy along to make sure it has a sensible value anyway.
 m4_defun([_LT_PROG_LTMAIN],
 [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
 _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
+ltmain=$ac_aux_dir/ltmain.sh
 ])# _LT_PROG_LTMAIN
 
 
@@ -286,7 +296,7 @@ ltmain="$ac_aux_dir/ltmain.sh"
 
 # So that we can recreate a full libtool script including additional
 # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
+# in macros and then make a single call at the end using the 'libtool'
 # label.
 
 
@@ -421,8 +431,8 @@ m4_define([_lt_decl_all_varnames],
 
 # _LT_CONFIG_STATUS_DECLARE([VARNAME])
 # ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'.  VARNAME
+# Quote a variable value, and forward it to 'config.status' so that its
+# declaration there will have the same value as in 'configure'.  VARNAME
 # must have a single quote delimited value for this to work.
 m4_define([_LT_CONFIG_STATUS_DECLARE],
 [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
@@ -446,7 +456,7 @@ m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
 # Output comment and list of tags supported by the script
 m4_defun([_LT_LIBTOOL_TAGS],
 [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
+available_tags='_LT_TAGS'dnl
 ])
 
 
@@ -474,7 +484,7 @@ m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
 # _LT_LIBTOOL_CONFIG_VARS
 # -----------------------
 # Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool'
 # script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
 # section) are produced by _LT_LIBTOOL_TAG_VARS.
 m4_defun([_LT_LIBTOOL_CONFIG_VARS],
@@ -500,8 +510,8 @@ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
 # Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
 # variables for single and double quote escaping we saved from calls
 # to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'.  Finally, any additional code accumulated
+# into 'config.status', and then the shell code to quote escape them in
+# for loops in 'config.status'.  Finally, any additional code accumulated
 # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
 m4_defun([_LT_CONFIG_COMMANDS],
 [AC_PROVIDE_IFELSE([LT_OUTPUT],
@@ -547,7 +557,7 @@ for var in lt_decl_all_varnames([[ \
 ]], lt_decl_quote_varnames); do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -560,7 +570,7 @@ for var in lt_decl_all_varnames([[ \
 ]], lt_decl_dquote_varnames); do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -576,7 +586,7 @@ _LT_OUTPUT_LIBTOOL_INIT
 # Generate a child script FILE with all initialization necessary to
 # reuse the environment learned by the parent script, and make the
 # file executable.  If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins.  After this
+# '#!' sequence but before initialization text begins.  After this
 # macro, additional text can be appended to FILE to form the body of
 # the child script.  The macro ends with non-zero status if the
 # file could not be fully written (such as if the disk is full).
@@ -598,7 +608,7 @@ AS_SHELL_SANITIZE
 _AS_PREPARE
 exec AS_MESSAGE_FD>&1
 _ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
+test 0 = "$lt_write_fail" && chmod +x $1[]dnl
 m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
 
 # LT_OUTPUT
@@ -621,7 +631,7 @@ exec AS_MESSAGE_LOG_FD>>config.log
 } >&AS_MESSAGE_LOG_FD
 
 lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
+'$as_me' creates a local libtool stub from the current configuration,
 for use in further configure time tests before the real libtool is
 generated.
 
@@ -643,7 +653,7 @@ Copyright (C) 2011 Free Software Foundation, Inc.
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
-while test $[#] != 0
+while test 0 != $[#]
 do
   case $[1] in
     --version | --v* | -V )
@@ -656,10 +666,10 @@ do
       lt_cl_silent=: ;;
 
     -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
+Try '$[0] --help' for more information.]) ;;
 
     *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
+Try '$[0] --help' for more information.]) ;;
   esac
   shift
 done
@@ -685,7 +695,7 @@ chmod +x "$CONFIG_LT"
 # open by configure.  Here we exec the FD to /dev/null, effectively closing
 # config.log, so it can be properly (re)opened and appended to by config.lt.
 lt_cl_success=:
-test "$silent" = yes &&
+test yes = "$silent" &&
   lt_config_lt_args="$lt_config_lt_args --quiet"
 exec AS_MESSAGE_LOG_FD>/dev/null
 $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
@@ -705,27 +715,30 @@ m4_defun([_LT_CONFIG],
 _LT_CONFIG_SAVE_COMMANDS([
   m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
   m4_if(_LT_TAG, [C], [
-    # See if we are running on zsh, and set the options which allow our
+    # See if we are running on zsh, and set the options that allow our
     # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
+    if test -n "${ZSH_VERSION+set}"; then
       setopt NO_GLOB_SUBST
     fi
 
-    cfgfile="${ofile}T"
+    cfgfile=${ofile}T
     trap "$RM \"$cfgfile\"; exit 1" 1 2 15
     $RM "$cfgfile"
 
     cat <<_LT_EOF >> "$cfgfile"
 #! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# Generated automatically by $as_me ($PACKAGE) $VERSION
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
 _LT_COPYING
 _LT_LIBTOOL_TAGS
 
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
 # ### BEGIN LIBTOOL CONFIG
 _LT_LIBTOOL_CONFIG_VARS
 _LT_LIBTOOL_TAG_VARS
@@ -733,13 +746,24 @@ _LT_LIBTOOL_TAG_VARS
 
 _LT_EOF
 
+    cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_PREPARE_MUNGE_PATH_LIST
+_LT_PREPARE_CC_BASENAME
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
   case $host_os in
   aix3*)
     cat <<\_LT_EOF >> "$cfgfile"
 # AIX sometimes has problems with the GCC collect2 program.  For some
 # reason, if we set the COLLECT_NAMES environment variable, the problems
 # vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
+if test set != "${COLLECT_NAMES+set}"; then
   COLLECT_NAMES=
   export COLLECT_NAMES
 fi
@@ -756,8 +780,6 @@ _LT_EOF
   sed '$q' "$ltmain" >> "$cfgfile" \
      || (rm -f "$cfgfile"; exit 1)
 
-  _LT_PROG_REPLACE_SHELLFNS
-
    mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
@@ -775,7 +797,6 @@ _LT_EOF
 [m4_if([$1], [], [
     PACKAGE='$PACKAGE'
     VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
     RM='$RM'
     ofile='$ofile'], [])
 ])dnl /_LT_CONFIG_SAVE_COMMANDS
@@ -974,7 +995,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
 
     AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
       [lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
+      if test -z "$LT_MULTI_MODULE"; then
        # By default we will add the -single_module flag. You can override
        # by either setting the environment variable LT_MULTI_MODULE
        # non-empty at configure time, or by adding -multi_module to the
@@ -992,7 +1013,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
          cat conftest.err >&AS_MESSAGE_LOG_FD
        # Otherwise, if the output was created with a 0 exit code from
        # the compiler, it worked.
-       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
+       elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
          lt_cv_apple_cc_single_mod=yes
        else
          cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -1010,7 +1031,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
       AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
        [lt_cv_ld_exported_symbols_list=yes],
        [lt_cv_ld_exported_symbols_list=no])
-       LDFLAGS="$save_LDFLAGS"
+       LDFLAGS=$save_LDFLAGS
     ])
 
     AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
@@ -1032,7 +1053,7 @@ _LT_EOF
       _lt_result=$?
       if test -s conftest.err && $GREP force_load conftest.err; then
        cat conftest.err >&AS_MESSAGE_LOG_FD
-      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+      elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
        lt_cv_ld_force_load=yes
       else
        cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -1042,32 +1063,32 @@ _LT_EOF
     ])
     case $host_os in
     rhapsody* | darwin1.[[012]])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
     darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
     darwin*) # darwin 5.x on
       # if running on 10.5 or later, the deployment target defaults
       # to the OS version, if on x86, and 10.4, the deployment
       # target defaults to 10.4. Don't you love it?
       case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
        10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
-         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-       10.[[012]]*)
-         _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+         _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+       10.[[012]][[,.]]*)
+         _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
        10.*)
-         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+         _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
       esac
     ;;
   esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+    if test yes = "$lt_cv_apple_cc_single_mod"; then
       _lt_dar_single_mod='$single_module'
     fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    if test yes = "$lt_cv_ld_exported_symbols_list"; then
+      _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
     else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
     fi
-    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+    if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -1087,29 +1108,29 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_automatic, $1)=yes
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  if test yes = "$lt_cv_ld_force_load"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
     m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
                   [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
   else
     _LT_TAGVAR(whole_archive_flag_spec, $1)=''
   fi
   _LT_TAGVAR(link_all_deplibs, $1)=yes
-  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+  _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined
   case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
+     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
      *) _lt_dar_can_shared=$GCC ;;
   esac
-  if test "$_lt_dar_can_shared" = "yes"; then
+  if test yes = "$_lt_dar_can_shared"; then
     output_verbose_link_cmd=func_echo_all
-    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
     m4_if([$1], [CXX],
-[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+[   if test yes != "$lt_cv_apple_cc_single_mod"; then
+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
     fi
 ],[])
   else
@@ -1129,7 +1150,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
 # Allow to override them for all tags through lt_cv_aix_libpath.
 m4_defun([_LT_SYS_MODULE_PATH_AIX],
 [m4_require([_LT_DECL_SED])dnl
-if test "${lt_cv_aix_libpath+set}" = set; then
+if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
   AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
@@ -1147,7 +1168,7 @@ else
     _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
   fi],[])
   if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib
   fi
   ])
   aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
@@ -1167,8 +1188,8 @@ m4_define([_LT_SHELL_INIT],
 # -----------------------
 # Find how we can fake an echo command that does not interpret backslash.
 # In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
+# of the generated configure script that will find a shell with a builtin
+# printf (that we can use as an echo command).
 m4_defun([_LT_PROG_ECHO_BACKSLASH],
 [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
@@ -1196,10 +1217,10 @@ fi
 # Invoke $ECHO with all args, space-separated.
 func_echo_all ()
 {
-    $ECHO "$*" 
+    $ECHO "$*"
 }
 
-case "$ECHO" in
+case $ECHO in
   printf*) AC_MSG_RESULT([printf]) ;;
   print*) AC_MSG_RESULT([print -r]) ;;
   *) AC_MSG_RESULT([cat]) ;;
@@ -1225,16 +1246,17 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
 AC_DEFUN([_LT_WITH_SYSROOT],
 [AC_MSG_CHECKING([for sysroot])
 AC_ARG_WITH([sysroot],
-[  --with-sysroot[=DIR] Search for dependent libraries within DIR
-                        (or the compiler's sysroot if not specified).],
+[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
+  [Search for dependent libraries within DIR (or the compiler's sysroot
+   if not specified).])],
 [], [with_sysroot=no])
 
 dnl lt_sysroot will always be passed unquoted.  We quote it here
 dnl in case the user passed a directory name.
 lt_sysroot=
-case ${with_sysroot} in #(
+case $with_sysroot in #(
  yes)
-   if test "$GCC" = yes; then
+   if test yes = "$GCC"; then
      lt_sysroot=`$CC --print-sysroot 2>/dev/null`
    fi
    ;; #(
@@ -1244,14 +1266,14 @@ case ${with_sysroot} in #(
  no|'')
    ;; #(
  *)
-   AC_MSG_RESULT([${with_sysroot}])
+   AC_MSG_RESULT([$with_sysroot])
    AC_MSG_ERROR([The sysroot must be an absolute path.])
    ;;
 esac
 
  AC_MSG_RESULT([${lt_sysroot:-no}])
 _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and in which our libraries should be installed.])])
+[dependent libraries, and where our libraries should be installed.])])
 
 # _LT_ENABLE_LOCK
 # ---------------
@@ -1259,31 +1281,33 @@ m4_defun([_LT_ENABLE_LOCK],
 [AC_ARG_ENABLE([libtool-lock],
   [AS_HELP_STRING([--disable-libtool-lock],
     [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
 
 # Some flags need to be propagated to the compiler or linker for good
 # libtool support.
 case $host in
 ia64-*-hpux*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set mode
+  # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.$ac_objext` in
       *ELF-32*)
-       HPUX_IA64_MODE="32"
+       HPUX_IA64_MODE=32
        ;;
       *ELF-64*)
-       HPUX_IA64_MODE="64"
+       HPUX_IA64_MODE=64
        ;;
     esac
   fi
   rm -rf conftest*
   ;;
 *-*-irix6*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
   echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
+    if test yes = "$lt_cv_prog_gnu_ld"; then
       case `/usr/bin/file conftest.$ac_objext` in
        *32-bit*)
          LD="${LD-ld} -melf32bsmip"
@@ -1312,9 +1336,46 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
+mips64*-*linux*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    emul=elf
+    case `/usr/bin/file conftest.$ac_objext` in
+      *32-bit*)
+       emul="${emul}32"
+       ;;
+      *64-bit*)
+       emul="${emul}64"
+       ;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *MSB*)
+       emul="${emul}btsmip"
+       ;;
+      *LSB*)
+       emul="${emul}ltsmip"
+       ;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *N32*)
+       emul="${emul}n32"
+       ;;
+    esac
+    LD="${LD-ld} -m $emul"
+  fi
+  rm -rf conftest*
+  ;;
+
 x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.  Note that the listed cases only cover the
+  # situations where additional linker options are needed (such as when
+  # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+  # vice versa); the common cases where no linker options are needed do
+  # not appear in the list.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
@@ -1333,10 +1394,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
                ;;
            esac
            ;;
-         powerpc64le-*)
+         powerpc64le-*linux*)
            LD="${LD-ld} -m elf32lppclinux"
            ;;
-         powerpc64-*)
+         powerpc64-*linux*)
            LD="${LD-ld} -m elf32ppclinux"
            ;;
          s390x-*linux*)
@@ -1355,10 +1416,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
          x86_64-*linux*)
            LD="${LD-ld} -m elf_x86_64"
            ;;
-         powerpcle-*)
+         powerpcle-*linux*)
            LD="${LD-ld} -m elf64lppc"
            ;;
-         powerpc-*)
+         powerpc-*linux*)
            LD="${LD-ld} -m elf64ppc"
            ;;
          s390*-*linux*|s390*-*tpf*)
@@ -1376,19 +1437,20 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 
 *-*-sco3.2v5*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
+  SAVE_CFLAGS=$CFLAGS
   CFLAGS="$CFLAGS -belf"
   AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
     [AC_LANG_PUSH(C)
      AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
      AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+  if test yes != "$lt_cv_cc_needs_belf"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
+    CFLAGS=$SAVE_CFLAGS
   fi
   ;;
 *-*solaris*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
@@ -1396,7 +1458,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
       case $lt_cv_prog_gnu_ld in
       yes*)
         case $host in
-        i?86-*-solaris*)
+        i?86-*-solaris*|x86_64-*-solaris*)
           LD="${LD-ld} -m elf_x86_64"
           ;;
         sparc*-*-solaris*)
@@ -1405,7 +1467,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
         esac
         # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
         if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD="${LD-ld}_sol2"
+          LD=${LD-ld}_sol2
         fi
         ;;
       *)
@@ -1421,7 +1483,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   ;;
 esac
 
-need_locks="$enable_libtool_lock"
+need_locks=$enable_libtool_lock
 ])# _LT_ENABLE_LOCK
 
 
@@ -1440,11 +1502,11 @@ AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
      [echo conftest.$ac_objext > conftest.lst
       lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
       AC_TRY_EVAL([lt_ar_try])
-      if test "$ac_status" -eq 0; then
+      if test 0 -eq "$ac_status"; then
        # Ensure the archiver fails upon bogus file names.
        rm -f conftest.$ac_objext libconftest.a
        AC_TRY_EVAL([lt_ar_try])
-       if test "$ac_status" -ne 0; then
+       if test 0 -ne "$ac_status"; then
           lt_cv_ar_at_file=@
         fi
       fi
@@ -1452,7 +1514,7 @@ AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
      ])
   ])
 
-if test "x$lt_cv_ar_at_file" = xno; then
+if test no = "$lt_cv_ar_at_file"; then
   archiver_list_spec=
 else
   archiver_list_spec=$lt_cv_ar_at_file
@@ -1483,7 +1545,7 @@ old_postuninstall_cmds=
 
 if test -n "$RANLIB"; then
   case $host_os in
-  openbsd*)
+  bitrig* | openbsd*)
     old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
@@ -1519,7 +1581,7 @@ AC_CACHE_CHECK([$1], [$2],
   [$2=no
    m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
+   lt_compiler_flag="$3"  ## exclude from sc_useless_quotes_in_assignment
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
    # Note that $ac_compile itself does not contain backslashes and begins
@@ -1546,7 +1608,7 @@ AC_CACHE_CHECK([$1], [$2],
    $RM conftest*
 ])
 
-if test x"[$]$2" = xyes; then
+if test yes = "[$]$2"; then
     m4_if([$5], , :, [$5])
 else
     m4_if([$6], , :, [$6])
@@ -1568,7 +1630,7 @@ AC_DEFUN([_LT_LINKER_OPTION],
 m4_require([_LT_DECL_SED])dnl
 AC_CACHE_CHECK([$1], [$2],
   [$2=no
-   save_LDFLAGS="$LDFLAGS"
+   save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS $3"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
@@ -1587,10 +1649,10 @@ AC_CACHE_CHECK([$1], [$2],
      fi
    fi
    $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
+   LDFLAGS=$save_LDFLAGS
 ])
 
-if test x"[$]$2" = xyes; then
+if test yes = "[$]$2"; then
     m4_if([$4], , :, [$4])
 else
     m4_if([$5], , :, [$5])
@@ -1611,7 +1673,7 @@ AC_DEFUN([LT_CMD_MAX_LEN],
 AC_MSG_CHECKING([the maximum length of command line arguments])
 AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
   i=0
-  teststring="ABCD"
+  teststring=ABCD
 
   case $build_os in
   msdosdjgpp*)
@@ -1651,7 +1713,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
     # This has been around since 386BSD, at least.  Likely further.
     if test -x /sbin/sysctl; then
       lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -1702,22 +1764,22 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
   *)
     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
     if test -n "$lt_cv_sys_max_cmd_len" && \
-       test undefined != "$lt_cv_sys_max_cmd_len"; then
+       test undefined != "$lt_cv_sys_max_cmd_len"; then
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     else
       # Make teststring a little bigger before we do anything with it.
       # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
+      for i in 1 2 3 4 5 6 7 8; do
         teststring=$teststring$teststring
       done
       SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+      while { test X`env echo "$teststring$teststring" 2>/dev/null` \
                 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-             test $i != 17 # 1/2 MB should be enough
+             test 17 != "$i" # 1/2 MB should be enough
       do
         i=`expr $i + 1`
         teststring=$teststring$teststring
@@ -1733,7 +1795,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     ;;
   esac
 ])
-if test -n $lt_cv_sys_max_cmd_len ; then
+if test -n "$lt_cv_sys_max_cmd_len"; then
   AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
 else
   AC_MSG_RESULT(none)
@@ -1761,7 +1823,7 @@ m4_defun([_LT_HEADER_DLFCN],
 # ----------------------------------------------------------------
 m4_defun([_LT_TRY_DLOPEN_SELF],
 [m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
+if test yes = "$cross_compiling"; then :
   [$4]
 else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
@@ -1808,9 +1870,9 @@ else
 #  endif
 #endif
 
-/* When -fvisbility=hidden is used, assume the code has been annotated
+/* When -fvisibility=hidden is used, assume the code has been annotated
    correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
 int fnord () __attribute__((visibility("default")));
 #endif
 
@@ -1836,7 +1898,7 @@ int main ()
   return status;
 }]
 _LT_EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+  if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
     (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -1857,7 +1919,7 @@ rm -fr conftest*
 # ------------------
 AC_DEFUN([LT_SYS_DLOPEN_SELF],
 [m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
+if test yes != "$enable_dlopen"; then
   enable_dlopen=unknown
   enable_dlopen_self=unknown
   enable_dlopen_self_static=unknown
@@ -1867,44 +1929,52 @@ else
 
   case $host_os in
   beos*)
-    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen=load_add_on
     lt_cv_dlopen_libs=
     lt_cv_dlopen_self=yes
     ;;
 
   mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen=LoadLibrary
     lt_cv_dlopen_libs=
     ;;
 
   cygwin*)
-    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen=dlopen
     lt_cv_dlopen_libs=
     ;;
 
   darwin*)
-  # if libdl is installed we need to link against it
+    # if libdl is installed we need to link against it
     AC_CHECK_LIB([dl], [dlopen],
-               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
+               [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[
+    lt_cv_dlopen=dyld
     lt_cv_dlopen_libs=
     lt_cv_dlopen_self=yes
     ])
     ;;
 
+  tpf*)
+    # Don't try to run any link tests for TPF.  We know it's impossible
+    # because TPF is a cross-compiler, and we know how we open DSOs.
+    lt_cv_dlopen=dlopen
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=no
+    ;;
+
   *)
     AC_CHECK_FUNC([shl_load],
-         [lt_cv_dlopen="shl_load"],
+         [lt_cv_dlopen=shl_load],
       [AC_CHECK_LIB([dld], [shl_load],
-           [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+           [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld],
        [AC_CHECK_FUNC([dlopen],
-             [lt_cv_dlopen="dlopen"],
+             [lt_cv_dlopen=dlopen],
          [AC_CHECK_LIB([dl], [dlopen],
-               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+               [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],
            [AC_CHECK_LIB([svld], [dlopen],
-                 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+                 [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld],
              [AC_CHECK_LIB([dld], [dld_link],
-                   [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+                   [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld])
              ])
            ])
          ])
@@ -1913,21 +1983,21 @@ else
     ;;
   esac
 
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
+  if test no = "$lt_cv_dlopen"; then
     enable_dlopen=no
+  else
+    enable_dlopen=yes
   fi
 
   case $lt_cv_dlopen in
   dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+    save_CPPFLAGS=$CPPFLAGS
+    test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
 
-    save_LDFLAGS="$LDFLAGS"
+    save_LDFLAGS=$LDFLAGS
     wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
 
-    save_LIBS="$LIBS"
+    save_LIBS=$LIBS
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
     AC_CACHE_CHECK([whether a program can dlopen itself],
@@ -1937,7 +2007,7 @@ else
            lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
     ])
 
-    if test "x$lt_cv_dlopen_self" = xyes; then
+    if test yes = "$lt_cv_dlopen_self"; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
       AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
          lt_cv_dlopen_self_static, [dnl
@@ -1947,9 +2017,9 @@ else
       ])
     fi
 
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
+    CPPFLAGS=$save_CPPFLAGS
+    LDFLAGS=$save_LDFLAGS
+    LIBS=$save_LIBS
     ;;
   esac
 
@@ -2041,8 +2111,8 @@ m4_defun([_LT_COMPILER_FILE_LOCKS],
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 _LT_COMPILER_C_O([$1])
 
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+hard_links=nottested
+if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then
   # do not overwrite the value of need_locks provided by the user
   AC_MSG_CHECKING([if we can lock with hard links])
   hard_links=yes
@@ -2052,8 +2122,8 @@ if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" !=
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+  if test no = "$hard_links"; then
+    AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe])
     need_locks=warn
   fi
 else
@@ -2080,8 +2150,8 @@ objdir=$lt_cv_objdir
 _LT_DECL([], [objdir], [0],
          [The name of the directory that contains temporary libtool files])dnl
 m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
-  [Define to the sub-directory in which libtool stores uninstalled libraries.])
+AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/",
+  [Define to the sub-directory where libtool stores uninstalled libraries.])
 ])# _LT_CHECK_OBJDIR
 
 
@@ -2093,15 +2163,15 @@ m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
 _LT_TAGVAR(hardcode_action, $1)=
 if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
    test -n "$_LT_TAGVAR(runpath_var, $1)" ||
-   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+   test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then
 
   # We can hardcode non-existent directories.
-  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
+  if test no != "$_LT_TAGVAR(hardcode_direct, $1)" &&
      # If the only mechanism to avoid hardcoding is shlibpath_var, we
      # have to relink, otherwise we might link with an installed library
      # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
+     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" &&
+     test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then
     # Linking always hardcodes the temporary library directory.
     _LT_TAGVAR(hardcode_action, $1)=relink
   else
@@ -2115,12 +2185,12 @@ else
 fi
 AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
 
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
-   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
+if test relink = "$_LT_TAGVAR(hardcode_action, $1)" ||
+   test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then
   # Fast installation is not supported
   enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
+elif test yes = "$shlibpath_overrides_runpath" ||
+     test no = "$enable_shared"; then
   # Fast installation is not necessary
   enable_fast_install=needless
 fi
@@ -2144,7 +2214,7 @@ else
 # FIXME - insert some real tests, host_os isn't really good enough
   case $host_os in
   darwin*)
-    if test -n "$STRIP" ; then
+    if test -n "$STRIP"; then
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
       AC_MSG_RESULT([yes])
@@ -2162,6 +2232,47 @@ _LT_DECL([], [striplib], [1])
 ])# _LT_CMD_STRIPLIB
 
 
+# _LT_PREPARE_MUNGE_PATH_LIST
+# ---------------------------
+# Make sure func_munge_path_list() is defined correctly.
+m4_defun([_LT_PREPARE_MUNGE_PATH_LIST],
+[[# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x@S|@2 in
+    x)
+        ;;
+    *:)
+        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+        ;;
+    x:*)
+        eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+        ;;
+    *)
+        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+]])# _LT_PREPARE_PATH_LIST
+
+
 # _LT_SYS_DYNAMIC_LINKER([TAG])
 # -----------------------------
 # PORTME Fill in your ld.so characteristics
@@ -2172,17 +2283,18 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_OBJDUMP])dnl
 m4_require([_LT_DECL_SED])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl
 AC_MSG_CHECKING([dynamic linker characteristics])
 m4_if([$1],
        [], [
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
+    darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+    *) lt_awk_arg='/^libraries:/' ;;
   esac
   case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
-    *) lt_sed_strip_eq="s,=/,/,g" ;;
+    mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
+    *) lt_sed_strip_eq='s|=/|/|g' ;;
   esac
   lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
   case $lt_search_path_spec in
@@ -2198,28 +2310,35 @@ if test "$GCC" = yes; then
     ;;
   esac
   # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
+  # and add multilib dir if necessary...
   lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  # ...but if some path component already ends with the multilib dir we assume
+  # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+  case "$lt_multi_os_dir; $lt_search_path_spec " in
+  "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+    lt_multi_os_dir=
+    ;;
+  esac
   for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
+    if test -d "$lt_sys_path$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+    elif test -n "$lt_multi_os_dir"; then
       test -d "$lt_sys_path" && \
        lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
   lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
+BEGIN {RS = " "; FS = "/|\n";} {
+  lt_foo = "";
+  lt_count = 0;
   for (lt_i = NF; lt_i > 0; lt_i--) {
     if ($lt_i != "" && $lt_i != ".") {
       if ($lt_i == "..") {
         lt_count++;
       } else {
         if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
+          lt_foo = "/" $lt_i lt_foo;
         } else {
           lt_count--;
         }
@@ -2233,7 +2352,7 @@ BEGIN {RS=" "; FS="/|\n";} {
   # for these hosts.
   case $host_os in
     mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+      $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
   esac
   sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
@@ -2242,7 +2361,7 @@ fi])
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
-shrext_cmds=".so"
+shrext_cmds=.so
 postinstall_cmds=
 postuninstall_cmds=
 finish_cmds=
@@ -2259,14 +2378,17 @@ hardcode_into_libs=no
 # flags to be left without arguments
 need_version=unknown
 
+AC_ARG_VAR([LT_SYS_LIBRARY_PATH],
+[User-defined run-time library search path.])
+
 case $host_os in
 aix3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
   # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
+  soname_spec='$libname$release$shared_ext$major'
   ;;
 
 aix[[4-9]]*)
@@ -2274,41 +2396,91 @@ aix[[4-9]]*)
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
+  if test ia64 = "$host_cpu"; then
     # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
     shlibpath_var=LD_LIBRARY_PATH
   else
     # With GCC up to 2.95.x, collect2 would create an import file
     # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
+    # the line '#! .'.  This would cause the generated library to
+    # depend on '.', always an invalid library.  This was fixed in
     # development snapshots of GCC prior to 3.0.
     case $host_os in
       aix4 | aix4.[[01]] | aix4.[[01]].*)
       if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
           echo ' yes '
-          echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+          echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
        :
       else
        can_build_shared=no
       fi
       ;;
     esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # Using Import Files as archive members, it is possible to support
+    # filename-based versioning of shared library archives on AIX. While
+    # this would work for both with and without runtime linking, it will
+    # prevent static linking of such archives. So we do filename-based
+    # shared library versioning with .so extension only, which is used
+    # when both runtime linking and shared linking is enabled.
+    # Unfortunately, runtime linking may impact performance, so we do
+    # not want this to be the default eventually. Also, we use the
+    # versioned .so libs for executables only if there is the -brtl
+    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+    # To allow for filename-based versioning support, we need to create
+    # libNAME.so.V as an archive file, containing:
+    # *) an Import File, referring to the versioned filename of the
+    #    archive as well as the shared archive member, telling the
+    #    bitwidth (32 or 64) of that shared object, and providing the
+    #    list of exported symbols of that shared object, eventually
+    #    decorated with the 'weak' keyword
+    # *) the shared object with the F_LOADONLY flag set, to really avoid
+    #    it being seen by the linker.
+    # At run time we better use the real file rather than another symlink,
+    # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+    case $with_aix_soname,$aix_use_runtimelinking in
+    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
     # soname into executable. Probably we can add versioning support to
     # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
+    aix,yes) # traditional libtool
+      dynamic_linker='AIX unversionable lib.so'
       # If using run time linking (on AIX 4.2 or later) use lib<name>.so
       # instead of lib<name>.a to let people know that these are not
       # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      ;;
+    aix,no) # traditional AIX only
+      dynamic_linker='AIX lib.a[(]lib.so.V[)]'
       # We preserve .a as extension for shared libraries through AIX4.2
       # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      ;;
+    svr4,*) # full svr4 only
+      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,yes) # both, prefer svr4
+      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # unpreferred sharedlib libNAME.a needs extra handling
+      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,no) # both, prefer aix
+      dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]"
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+      ;;
+    esac
     shlibpath_var=LIBPATH
   fi
   ;;
@@ -2318,18 +2490,18 @@ amigaos*)
   powerpc)
     # Since July 2007 AmigaOS4 officially supports .so libraries.
     # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
     ;;
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
 
 beos*)
-  library_names_spec='${libname}${shared_ext}'
+  library_names_spec='$libname$shared_ext'
   dynamic_linker="$host_os ld.so"
   shlibpath_var=LIBRARY_PATH
   ;;
@@ -2337,8 +2509,8 @@ beos*)
 bsdi[[45]]*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
@@ -2350,7 +2522,7 @@ bsdi[[45]]*)
 
 cygwin* | mingw* | pw32* | cegcc*)
   version_type=windows
-  shrext_cmds=".dll"
+  shrext_cmds=.dll
   need_version=no
   need_lib_prefix=no
 
@@ -2359,8 +2531,8 @@ cygwin* | mingw* | pw32* | cegcc*)
     # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname~
@@ -2376,17 +2548,17 @@ cygwin* | mingw* | pw32* | cegcc*)
     case $host_os in
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
 m4_if([$1], [],[
       sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
       ;;
     esac
     dynamic_linker='Win32 ld.exe'
@@ -2395,8 +2567,8 @@ m4_if([$1], [],[
   *,cl*)
     # Native MSVC
     libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
+    soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+    library_names_spec='$libname.dll.lib'
 
     case $build_os in
     mingw*)
@@ -2423,7 +2595,7 @@ m4_if([$1], [],[
       sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
       ;;
     *)
-      sys_lib_search_path_spec="$LIB"
+      sys_lib_search_path_spec=$LIB
       if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
         # It is most probably a Windows format PATH.
         sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
@@ -2436,8 +2608,8 @@ m4_if([$1], [],[
     esac
 
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname'
@@ -2450,7 +2622,7 @@ m4_if([$1], [],[
 
   *)
     # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
     dynamic_linker='Win32 ld.exe'
     ;;
   esac
@@ -2463,8 +2635,8 @@ darwin* | rhapsody*)
   version_type=darwin
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
+  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$major$shared_ext'
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
@@ -2477,8 +2649,8 @@ dgux*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -2496,12 +2668,13 @@ freebsd* | dragonfly*)
   version_type=freebsd-$objformat
   case $version_type in
     freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      soname_spec='$libname$release$shared_ext$major'
       need_version=no
       need_lib_prefix=no
       ;;
     freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
       need_version=yes
       ;;
   esac
@@ -2531,10 +2704,10 @@ haiku*)
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
+  shlibpath_overrides_runpath=no
   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
@@ -2552,14 +2725,15 @@ hpux9* | hpux10* | hpux11*)
     dynamic_linker="$host_os dld.so"
     shlibpath_var=LD_LIBRARY_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    if test 32 = "$HPUX_IA64_MODE"; then
       sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
     else
       sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
     fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
   hppa*64*)
     shrext_cmds='.sl'
@@ -2567,8 +2741,8 @@ hpux9* | hpux10* | hpux11*)
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
@@ -2577,8 +2751,8 @@ hpux9* | hpux10* | hpux11*)
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=SHLIB_PATH
     shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     ;;
   esac
   # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
@@ -2591,8 +2765,8 @@ interix[[3-9]]*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
@@ -2603,7 +2777,7 @@ irix5* | irix6* | nonstopux*)
   case $host_os in
     nonstopux*) version_type=nonstopux ;;
     *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
+       if test yes = "$lt_cv_prog_gnu_ld"; then
                version_type=linux # correct to gnu/linux during the next big refactor
        else
                version_type=irix
@@ -2611,8 +2785,8 @@ irix5* | irix6* | nonstopux*)
   esac
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
   case $host_os in
   irix5* | nonstopux*)
     libsuff= shlibsuff=
@@ -2631,8 +2805,8 @@ irix5* | irix6* | nonstopux*)
   esac
   shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
   shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
   hardcode_into_libs=yes
   ;;
 
@@ -2641,13 +2815,33 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
+linux*android*)
+  version_type=none # Android doesn't support versioned libraries.
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext'
+  soname_spec='$libname$release$shared_ext'
+  finish_cmds=
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  dynamic_linker='Android linker'
+  # Don't embed -rpath directories since the linker doesn't support them.
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+  ;;
+
 # This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
@@ -2672,7 +2866,12 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   # before this can be enabled.
   hardcode_into_libs=yes
 
-  # Append ld.so.conf contents to the search path
+  # Ideally, we could use ldconfig to report *all* directores which are
+  # searched for libraries, however this is still not possible.  Aside from not
+  # being certain /sbin/ldconfig is available, command
+  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+  # even though it is searched at run-time.  Try to do the best guess by
+  # appending ld.so.conf contents (and includes) to the search path.
   if test -f /etc/ld.so.conf; then
     lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[  ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
@@ -2704,12 +2903,12 @@ netbsd*)
   need_lib_prefix=no
   need_version=no
   if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
     finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
     dynamic_linker='NetBSD (a.out) ld.so'
   else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     dynamic_linker='NetBSD ld.elf_so'
   fi
   shlibpath_var=LD_LIBRARY_PATH
@@ -2719,7 +2918,7 @@ netbsd*)
 
 newsos6)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   ;;
@@ -2728,58 +2927,68 @@ newsos6)
   version_type=qnx
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
   dynamic_linker='ldqnx.so'
   ;;
 
-openbsd*)
+openbsd* | bitrig*)
   version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
+  sys_lib_dlsearch_path_spec=/usr/lib
   need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
-    *)                         need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    need_version=no
   else
-    shlibpath_overrides_runpath=yes
+    need_version=yes
   fi
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
   ;;
 
 os2*)
   libname_spec='$name'
-  shrext_cmds=".dll"
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
   need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
+  # OS/2 can only load a DLL with a base name of 8 characters or less.
+  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+    v=$($ECHO $release$versuffix | tr -d .-);
+    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+    $ECHO $n$v`$shared_ext'
+  library_names_spec='${libname}_dll.$libext'
   dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
+  shlibpath_var=BEGINLIBPATH
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  postinstall_cmds='base_file=`basename \$file`~
+    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+    dldir=$destdir/`dirname \$dlpath`~
+    test -d \$dldir || mkdir -p \$dldir~
+    $install_prog $dir/$dlname \$dldir/$dlname~
+    chmod a+x \$dldir/$dlname~
+    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+    fi'
+  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+    dlpath=$dir/\$dldll~
+    $RM \$dlpath'
   ;;
 
 osf3* | osf4* | osf5*)
   version_type=osf
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
   ;;
 
 rdos*)
@@ -2790,8 +2999,8 @@ solaris*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
@@ -2801,11 +3010,11 @@ solaris*)
 
 sunos4*)
   version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
   finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     need_lib_prefix=no
   fi
   need_version=yes
@@ -2813,8 +3022,8 @@ sunos4*)
 
 sysv4 | sysv4.3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   case $host_vendor in
     sni)
@@ -2835,24 +3044,24 @@ sysv4 | sysv4.3*)
   ;;
 
 sysv4*MP*)
-  if test -d /usr/nec ;then
+  if test -d /usr/necthen
     version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
+    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+    soname_spec='$libname$shared_ext.$major'
     shlibpath_var=LD_LIBRARY_PATH
   fi
   ;;
 
 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
+  version_type=sco
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
   else
     sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
@@ -2870,7 +3079,7 @@ tpf*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
@@ -2878,8 +3087,8 @@ tpf*)
 
 uts4*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -2888,20 +3097,30 @@ uts4*)
   ;;
 esac
 AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
+test no = "$dynamic_linker" && can_build_shared=no
 
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
 fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
 fi
 
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
 _LT_DECL([], [variables_saved_for_relink], [1],
     [Variables whose values should be saved in libtool wrapper scripts and
     restored at link time])
@@ -2934,39 +3153,41 @@ _LT_DECL([], [hardcode_into_libs], [0],
     [Whether we should hardcode library paths into libraries])
 _LT_DECL([], [sys_lib_search_path_spec], [2],
     [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
-    [Run-time system search path for libraries])
+_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2],
+    [Detected run-time system search path for libraries])
+_LT_DECL([], [configure_time_lt_sys_library_path], [2],
+    [Explicit LT_SYS_LIBRARY_PATH set during ./configure time])
 ])# _LT_SYS_DYNAMIC_LINKER
 
 
 # _LT_PATH_TOOL_PREFIX(TOOL)
 # --------------------------
-# find a file program which can recognize shared library
+# find a file program that can recognize shared library
 AC_DEFUN([_LT_PATH_TOOL_PREFIX],
 [m4_require([_LT_DECL_EGREP])dnl
 AC_MSG_CHECKING([for $1])
 AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
 [case $MAGIC_CMD in
 [[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
   ;;
 *)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_MAGIC_CMD=$MAGIC_CMD
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
 dnl $ac_dummy forces splitting on constant user-supplied paths.
 dnl POSIX.2 word splitting is done only on the output of word expansions,
 dnl not every word.  This closes a longstanding sh security hole.
   ac_dummy="m4_if([$2], , $PATH, [$2])"
   for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+    if test -f "$ac_dir/$1"; then
+      lt_cv_path_MAGIC_CMD=$ac_dir/"$1"
       if test -n "$file_magic_test_file"; then
        case $deplibs_check_method in
        "file_magic "*)
          file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+         MAGIC_CMD=$lt_cv_path_MAGIC_CMD
          if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
            $EGREP "$file_magic_regex" > /dev/null; then
            :
@@ -2989,11 +3210,11 @@ _LT_EOF
       break
     fi
   done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  IFS=$lt_save_ifs
+  MAGIC_CMD=$lt_save_MAGIC_CMD
   ;;
 esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 if test -n "$MAGIC_CMD"; then
   AC_MSG_RESULT($MAGIC_CMD)
 else
@@ -3011,7 +3232,7 @@ dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
 
 # _LT_PATH_MAGIC
 # --------------
-# find a file program which can recognize a shared library
+# find a file program that can recognize a shared library
 m4_defun([_LT_PATH_MAGIC],
 [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
 if test -z "$lt_cv_path_MAGIC_CMD"; then
@@ -3038,16 +3259,16 @@ m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
 AC_ARG_WITH([gnu-ld],
     [AS_HELP_STRING([--with-gnu-ld],
        [assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
+    [test no = "$withval" || with_gnu_ld=yes],
     [with_gnu_ld=no])dnl
 
 ac_prog=ld
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   # Check if gcc -print-prog-name=ld gives a path.
   AC_MSG_CHECKING([for ld used by $CC])
   case $host in
   *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
+    # gcc leaves a trailing carriage return, which upsets mingw
     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
   *)
     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
@@ -3061,7 +3282,7 @@ if test "$GCC" = yes; then
       while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
        ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
       done
-      test -z "$LD" && LD="$ac_prog"
+      test -z "$LD" && LD=$ac_prog
       ;;
   "")
     # If it fails, then pretend we aren't using GCC.
@@ -3072,37 +3293,37 @@ if test "$GCC" = yes; then
     with_gnu_ld=unknown
     ;;
   esac
-elif test "$with_gnu_ld" = yes; then
+elif test yes = "$with_gnu_ld"; then
   AC_MSG_CHECKING([for GNU ld])
 else
   AC_MSG_CHECKING([for non-GNU ld])
 fi
 AC_CACHE_VAL(lt_cv_path_LD,
 [if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
+      lt_cv_path_LD=$ac_dir/$ac_prog
       # Check to see if the program is GNU ld.  I'd rather use --version,
       # but apparently some variants of GNU ld only accept -v.
       # Break only if it was the GNU/non-GNU ld that we prefer.
       case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
       *GNU* | *'with BFD'*)
-       test "$with_gnu_ld" != no && break
+       test no != "$with_gnu_ld" && break
        ;;
       *)
-       test "$with_gnu_ld" != yes && break
+       test yes != "$with_gnu_ld" && break
        ;;
       esac
     fi
   done
-  IFS="$lt_save_ifs"
+  IFS=$lt_save_ifs
 else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+  lt_cv_path_LD=$LD # Let the user override the test with a path.
 fi])
-LD="$lt_cv_path_LD"
+LD=$lt_cv_path_LD
 if test -n "$LD"; then
   AC_MSG_RESULT($LD)
 else
@@ -3156,13 +3377,13 @@ esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
   cygwin* | mingw* | pw32* | cegcc*)
-    if test "$GCC" != yes; then
+    if test yes != "$GCC"; then
       reload_cmds=false
     fi
     ;;
   darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    if test yes = "$GCC"; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
     else
       reload_cmds='$LD$reload_flag -o $output$reload_objs'
     fi
@@ -3173,6 +3394,43 @@ _LT_TAGDECL([], [reload_cmds], [2])dnl
 ])# _LT_CMD_RELOAD
 
 
+# _LT_PATH_DD
+# -----------
+# find a working dd
+m4_defun([_LT_PATH_DD],
+[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd],
+[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi])
+rm -f conftest.i conftest2.i conftest.out])
+])# _LT_PATH_DD
+
+
+# _LT_CMD_TRUNCATE
+# ----------------
+# find command to truncate a binary pipe
+m4_defun([_LT_CMD_TRUNCATE],
+[m4_require([_LT_PATH_DD])
+AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"])
+_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1],
+  [Command to truncate a binary pipe])
+])# _LT_CMD_TRUNCATE
+
+
 # _LT_CHECK_MAGIC_METHOD
 # ----------------------
 # how to check for library dependencies
@@ -3188,13 +3446,13 @@ lt_cv_deplibs_check_method='unknown'
 # Need to set the preceding variable on all platforms that support
 # interlibrary dependencies.
 # 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
+# 'unknown' -- same as none, but documents that we really don't know.
 # 'pass_all' -- all dependencies passed with no checks.
 # 'test_compile' -- check by making test program.
 # 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
 
 case $host_os in
 aix[[4-9]]*)
@@ -3221,8 +3479,7 @@ mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+  if ( file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
@@ -3318,8 +3575,8 @@ newos6*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+openbsd* | bitrig*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
   else
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
@@ -3372,6 +3629,9 @@ sysv4 | sysv4.3*)
 tpf*)
   lt_cv_deplibs_check_method=pass_all
   ;;
+os2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 esac
 ])
 
@@ -3412,33 +3672,38 @@ AC_DEFUN([LT_PATH_NM],
 AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
 [if test -n "$NM"; then
   # Let the user override the test.
-  lt_cv_path_NM="$NM"
+  lt_cv_path_NM=$NM
 else
-  lt_nm_to_check="${ac_tool_prefix}nm"
+  lt_nm_to_check=${ac_tool_prefix}nm
   if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
     lt_nm_to_check="$lt_nm_to_check nm"
   fi
   for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
     for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+      tmp_nm=$ac_dir/$lt_tmp_nm
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
        # Check to see if the nm accepts a BSD-compat flag.
-       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+       # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
        #   nm: unknown option "B" ignored
        # Tru64's nm complains that /dev/null is an invalid object file
-       case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-       */dev/null* | *'Invalid file or object type'*)
+       # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+       case $build_os in
+       mingw*) lt_bad_file=conftest.nm/nofile ;;
+       *) lt_bad_file=/dev/null ;;
+       esac
+       case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+       *$lt_bad_file* | *'Invalid file or object type'*)
          lt_cv_path_NM="$tmp_nm -B"
-         break
+         break 2
          ;;
        *)
          case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
          */dev/null*)
            lt_cv_path_NM="$tmp_nm -p"
-           break
+           break 2
            ;;
          *)
            lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
@@ -3449,21 +3714,21 @@ else
        esac
       fi
     done
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
   done
   : ${lt_cv_path_NM=no}
 fi])
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
+if test no != "$lt_cv_path_NM"; then
+  NM=$lt_cv_path_NM
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
   if test -n "$DUMPBIN"; then :
     # Let the user override the test.
   else
     AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
     *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
+      DUMPBIN="$DUMPBIN -symbols -headers"
       ;;
     *)
       DUMPBIN=:
@@ -3471,8 +3736,8 @@ else
     esac
   fi
   AC_SUBST([DUMPBIN])
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
+  if test : != "$DUMPBIN"; then
+    NM=$DUMPBIN
   fi
 fi
 test -z "$NM" && NM=nm
@@ -3518,8 +3783,8 @@ lt_cv_sharedlib_from_linklib_cmd,
 
 case $host_os in
 cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh
-  # decide which to use based on capabilities of $DLLTOOL
+  # two different shell functions defined in ltmain.sh;
+  # decide which one to use based on capabilities of $DLLTOOL
   case `$DLLTOOL --help 2>&1` in
   *--identify-strict*)
     lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
@@ -3531,7 +3796,7 @@ cygwin* | mingw* | pw32* | cegcc*)
   ;;
 *)
   # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  lt_cv_sharedlib_from_linklib_cmd=$ECHO
   ;;
 esac
 ])
@@ -3558,13 +3823,28 @@ AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool
     lt_cv_path_mainfest_tool=yes
   fi
   rm -f conftest*])
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
+if test yes != "$lt_cv_path_mainfest_tool"; then
   MANIFEST_TOOL=:
 fi
 _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
 ])# _LT_PATH_MANIFEST_TOOL
 
 
+# _LT_DLL_DEF_P([FILE])
+# ---------------------
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with func_dll_def_p in the libtool script
+AC_DEFUN([_LT_DLL_DEF_P],
+[dnl
+  test DEF = "`$SED -n dnl
+    -e '\''s/^[[        ]]*//'\'' dnl Strip leading whitespace
+    -e '\''/^\(;.*\)*$/d'\'' dnl      Delete empty lines and comments
+    -e '\''s/^\(EXPORTS\|LIBRARY\)\([[  ]].*\)*$/DEF/p'\'' dnl
+    -e q dnl                          Only consider the first "real" line
+    $1`" dnl
+])# _LT_DLL_DEF_P
+
+
 # LT_LIB_M
 # --------
 # check for math library
@@ -3576,11 +3856,11 @@ case $host in
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw)
   AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
   ;;
 *)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  AC_CHECK_LIB(m, cos, LIBM=-lm)
   ;;
 esac
 AC_SUBST([LIBM])
@@ -3599,7 +3879,7 @@ m4_defun([_LT_COMPILER_NO_RTTI],
 
 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
 
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   case $cc_basename in
   nvcc*)
     _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
@@ -3651,7 +3931,7 @@ cygwin* | mingw* | pw32* | cegcc*)
   symcode='[[ABCDGISTW]]'
   ;;
 hpux*)
-  if test "$host_cpu" = ia64; then
+  if test ia64 = "$host_cpu"; then
     symcode='[[ABCDEGRST]]'
   fi
   ;;
@@ -3684,14 +3964,44 @@ case `$NM -V 2>&1` in
   symcode='[[ABCDGIRSTW]]' ;;
 esac
 
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  # Gets list of data symbols to import.
+  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+  # Adjust the below global symbol transforms to fixup imported variables.
+  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
+  lt_c_name_lib_hook="\
+  -e 's/^I .* \(lib.*\)$/  {\"\1\", (void *) 0},/p'\
+  -e 's/^I .* \(.*\)$/  {\"lib\1\", (void *) 0},/p'"
+else
+  # Disable hooks by default.
+  lt_cv_sys_global_symbol_to_import=
+  lt_cdecl_hook=
+  lt_c_name_hook=
+  lt_c_name_lib_hook=
+fi
+
 # Transform an extracted symbol line into a proper C declaration.
 # Some systems (esp. on ia64) link data and code symbols differently,
 # so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"lib\1\", (void *) \&\1},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -3709,21 +4019,24 @@ for ac_symprfx in "" "_"; do
 
   # Write the raw and C identifiers.
   if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
+    # Fake it for dumpbin and say T for any non-static function,
+    # D for any global variable and I for any imported variable.
     # Also find C++ and __fastcall symbols from MSVC++,
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
 "     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+"     /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+"     /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
 "     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+"     {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+"     s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
 "     ' prfx=^$ac_symprfx]"
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[    ]]\($symcode$symcode*\)[[       ]][[    ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
@@ -3763,11 +4076,11 @@ _LT_EOF
        if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
          cat <<_LT_EOF > conftest.$ac_ext
 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
    relocations are performed -- see ld's documentation on pseudo-relocs.  */
 # define LT@&t@_DLSYM_CONST
-#elif defined(__osf__)
+#elif defined __osf__
 /* This system does not cope well with relocations in const data.  */
 # define LT@&t@_DLSYM_CONST
 #else
@@ -3793,7 +4106,7 @@ lt__PROGRAM__LTX_preloaded_symbols[[]] =
 {
   { "@PROGRAM@", (void *) 0 },
 _LT_EOF
-         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+         $SED "s/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
          cat <<\_LT_EOF >> conftest.$ac_ext
   {0, (void *) 0}
 };
@@ -3813,9 +4126,9 @@ _LT_EOF
          mv conftest.$ac_objext conftstm.$ac_objext
          lt_globsym_save_LIBS=$LIBS
          lt_globsym_save_CFLAGS=$CFLAGS
-         LIBS="conftstm.$ac_objext"
+         LIBS=conftstm.$ac_objext
          CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-         if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+         if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then
            pipe_works=yes
          fi
          LIBS=$lt_globsym_save_LIBS
@@ -3836,7 +4149,7 @@ _LT_EOF
   rm -rf conftest* conftst*
 
   # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
+  if test yes = "$pipe_works"; then
     break
   else
     lt_cv_sys_global_symbol_pipe=
@@ -3863,12 +4176,16 @@ _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
     [Take the output of nm and produce a listing of raw symbols and C names])
 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
     [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1],
+    [Transform the output of nm into a list of symbols to manually relocate])
 _LT_DECL([global_symbol_to_c_name_address],
     [lt_cv_sys_global_symbol_to_c_name_address], [1],
     [Transform the output of nm in a C name address pair])
 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
     [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
     [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([nm_interface], [lt_cv_nm_interface], [1],
+    [The name lister interface])
 _LT_DECL([], [nm_file_list_spec], [1],
     [Specify filename containing input files for $NM])
 ]) # _LT_CMD_GLOBAL_SYMBOLS
@@ -3884,17 +4201,18 @@ _LT_TAGVAR(lt_prog_compiler_static, $1)=
 
 m4_if([$1], [CXX], [
   # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
+  if test yes = "$GXX"; then
     _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
     _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
 
     case $host_os in
     aix*)
       # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # AIX 5 now supports IA64 processor
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       fi
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;
 
     amigaos*)
@@ -3905,8 +4223,8 @@ m4_if([$1], [CXX], [
         ;;
       m68k)
             # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
         ;;
       esac
@@ -3922,6 +4240,11 @@ m4_if([$1], [CXX], [
       # (--disable-auto-import) libraries
       m4_if([$1], [GCJ], [],
        [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+       ;;
+      esac
       ;;
     darwin* | rhapsody*)
       # PIC is the default on this platform
@@ -3971,7 +4294,7 @@ m4_if([$1], [CXX], [
     case $host_os in
       aix[[4-9]]*)
        # All AIX code is PIC.
-       if test "$host_cpu" = ia64; then
+       if test ia64 = "$host_cpu"; then
          # AIX 5 now supports IA64 processor
          _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
        else
@@ -4012,14 +4335,14 @@ m4_if([$1], [CXX], [
        case $cc_basename in
          CC*)
            _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-           if test "$host_cpu" != ia64; then
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+           if test ia64 != "$host_cpu"; then
              _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
            fi
            ;;
          aCC*)
            _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
            case $host_cpu in
            hppa*64*|ia64*)
              # +Z the default
@@ -4056,7 +4379,7 @@ m4_if([$1], [CXX], [
            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
            ;;
          ecpc* )
-           # old Intel C++ for x86_64 which still supported -KPIC.
+           # old Intel C++ for x86_64, which still supported -KPIC.
            _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
            _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
@@ -4201,17 +4524,18 @@ m4_if([$1], [CXX], [
   fi
 ],
 [
-  if test "$GCC" = yes; then
+  if test yes = "$GCC"; then
     _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
     _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
 
     case $host_os in
       aix*)
       # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # AIX 5 now supports IA64 processor
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       fi
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;
 
     amigaos*)
@@ -4222,8 +4546,8 @@ m4_if([$1], [CXX], [
         ;;
       m68k)
             # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
         ;;
       esac
@@ -4240,6 +4564,11 @@ m4_if([$1], [CXX], [
       # (--disable-auto-import) libraries
       m4_if([$1], [GCJ], [],
        [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+       ;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -4310,7 +4639,7 @@ m4_if([$1], [CXX], [
     case $host_os in
     aix*)
       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # AIX 5 now supports IA64 processor
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       else
@@ -4318,11 +4647,30 @@ m4_if([$1], [CXX], [
       fi
       ;;
 
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      case $cc_basename in
+      nagfor*)
+        # NAG Fortran compiler
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      esac
+      ;;
+
     mingw* | cygwin* | pw32* | os2* | cegcc*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       m4_if([$1], [GCJ], [],
        [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+       ;;
+      esac
       ;;
 
     hpux9* | hpux10* | hpux11*)
@@ -4338,7 +4686,7 @@ m4_if([$1], [CXX], [
        ;;
       esac
       # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
       ;;
 
     irix5* | irix6* | nonstopux*)
@@ -4349,7 +4697,7 @@ m4_if([$1], [CXX], [
 
     linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
       case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
+      # old Intel for x86_64, which still supported -KPIC.
       ecc*)
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@@ -4374,6 +4722,12 @@ m4_if([$1], [CXX], [
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
        ;;
+      tcc*)
+       # Fabrice Bellard et al's Tiny C Compiler
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+       ;;
       pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
        # which looks to be a dead project)
@@ -4471,7 +4825,7 @@ m4_if([$1], [CXX], [
       ;;
 
     sysv4*MP*)
-      if test -d /usr/nec ;then
+      if test -d /usr/necthen
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       fi
@@ -4500,7 +4854,7 @@ m4_if([$1], [CXX], [
   fi
 ])
 case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
+  # For platforms that do not support PIC, -DPIC is meaningless:
   *djgpp*)
     _LT_TAGVAR(lt_prog_compiler_pic, $1)=
     ;;
@@ -4566,17 +4920,21 @@ m4_if([$1], [CXX], [
   case $host_os in
   aix[[4-9]]*)
     # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    # Also, AIX nm treats weak defined symbols like other global defined
-    # symbols, whereas GNU nm marks them as "W".
+    # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+    # Without the "-l" option, or with the "-B" option, AIX nm treats
+    # weak defined symbols like other global defined symbols, whereas
+    # GNU nm marks them as "W".
+    # While the 'weak' keyword is ignored in the Export File, we need
+    # it in the Import File for the 'aix-soname' feature, so we have
+    # to replace the "-B" option with "-P" for AIX nm.
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
     else
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
-    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+    _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
     ;;
   cygwin* | mingw* | cegcc*)
     case $cc_basename in
@@ -4625,9 +4983,9 @@ m4_if([$1], [CXX], [
   # included in the symbol list
   _LT_TAGVAR(include_expsyms, $1)=
   # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
+  # it will be wrapped by ' (' and ')$', so one must not match beginning or
+  # end of line.  Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+  # as well as any symbol that contains 'd'.
   _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
@@ -4643,7 +5001,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
     # FIXME: the MSVC++ port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
     # Microsoft Visual C++.
-    if test "$GCC" != yes; then
+    if test yes != "$GCC"; then
       with_gnu_ld=no
     fi
     ;;
@@ -4651,7 +5009,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
     # we just hope/assume this is gcc and not c89 (= MSVC++)
     with_gnu_ld=yes
     ;;
-  openbsd*)
+  openbsd* | bitrig*)
     with_gnu_ld=no
     ;;
   linux* | k*bsd*-gnu | gnu*)
@@ -4664,7 +5022,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
   # On some targets, GNU ld is compatible enough with the native linker
   # that we're better off using the native interface for both.
   lt_use_gnu_ld_interface=no
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     case $host_os in
       aix*)
        # The AIX port of GNU ld has always aspired to compatibility
@@ -4686,24 +5044,24 @@ dnl Note also adjust exclude_expsyms for C++ above.
     esac
   fi
 
-  if test "$lt_use_gnu_ld_interface" = yes; then
+  if test yes = "$lt_use_gnu_ld_interface"; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
+    wlarc='$wl'
 
     # Set some defaults for GNU ld with shared library support. These
     # are reset later if shared libraries are not supported. Putting them
     # here allows them to be overridden if necessary.
     runpath_var=LD_RUN_PATH
-    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
     # ancient GNU ld didn't support --whole-archive et. al.
     if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
     else
       _LT_TAGVAR(whole_archive_flag_spec, $1)=
     fi
     supports_anon_versioning=no
-    case `$LD -v 2>&1` in
+    case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
       *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@@ -4716,7 +5074,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
     case $host_os in
     aix[[3-9]]*)
       # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
+      if test ia64 != "$host_cpu"; then
        _LT_TAGVAR(ld_shlibs, $1)=no
        cat <<_LT_EOF 1>&2
 
@@ -4735,7 +5093,7 @@ _LT_EOF
       case $host_cpu in
       powerpc)
             # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
             _LT_TAGVAR(archive_expsym_cmds, $1)=''
         ;;
       m68k)
@@ -4751,7 +5109,7 @@ _LT_EOF
        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
        # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
        # support --undefined.  This deserves some investigation.  FIXME
-       _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4761,7 +5119,7 @@ _LT_EOF
       # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
       # as there is no search path for DLLs.
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
       _LT_TAGVAR(always_export_symbols, $1)=no
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
@@ -4769,61 +5127,89 @@ _LT_EOF
       _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-       # If the export-symbols file already is a .def file (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-         cp $export_symbols $output_objdir/$soname.def;
-       else
-         echo EXPORTS > $output_objdir/$soname.def;
-         cat $export_symbols >> $output_objdir/$soname.def;
-       fi~
-       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+       # If the export-symbols file already is a .def file, use it as
+       # is; otherwise, prepend EXPORTS...
+       _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+          cp $export_symbols $output_objdir/$soname.def;
+        else
+          echo EXPORTS > $output_objdir/$soname.def;
+          cat $export_symbols >> $output_objdir/$soname.def;
+        fi~
+        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
 
     haiku*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      shrext_cmds=.dll
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       prefix_cmds="$SED"~
+       if test EXPORTS = "`$SED 1q $export_symbols`"; then
+         prefix_cmds="$prefix_cmds -e 1d";
+       fi~
+       prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+       cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
     interix[[3-9]]*)
       _LT_TAGVAR(hardcode_direct, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
       # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
       # Instead, shared libraries are loaded at an image base (0x10000000 by
       # default) and relocated if they conflict, which is a slow very memory
       # consuming and fragmenting process.  To avoid this, we pick a random,
       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
       # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
     gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
+      if test linux-dietlibc = "$host_os"; then
        case $cc_basename in
          diet\ *) tmp_diet=yes;;       # linux-dietlibc with static linking (!diet-dyn)
        esac
       fi
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-        && test "$tmp_diet" = no
+        && test no = "$tmp_diet"
       then
        tmp_addflag=' $pic_flag'
        tmp_sharedflag='-shared'
        case $cc_basename,$host_cpu in
         pgcc*)                         # Portland Group C compiler
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          tmp_addflag=' $pic_flag'
          ;;
        pgf77* | pgf90* | pgf95* | pgfortran*)
                                        # Portland Group f77 and f90 compilers
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          tmp_addflag=' $pic_flag -Mnomain' ;;
        ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
          tmp_addflag=' -i_dynamic' ;;
@@ -4834,42 +5220,47 @@ _LT_EOF
        lf95*)                          # Lahey Fortran 8.1
          _LT_TAGVAR(whole_archive_flag_spec, $1)=
          tmp_sharedflag='--shared' ;;
+        nagfor*)                        # NAGFOR 5.3
+          tmp_sharedflag='-Wl,-shared' ;;
        xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
          tmp_sharedflag='-qmkshrobj'
          tmp_addflag= ;;
        nvcc*)  # Cuda Compiler Driver 2.2
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          _LT_TAGVAR(compiler_needs_object, $1)=yes
          ;;
        esac
        case `$CC -V 2>&1 | sed 5q` in
        *Sun\ C*)                       # Sun C 5.9
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          _LT_TAGVAR(compiler_needs_object, $1)=yes
          tmp_sharedflag='-G' ;;
        *Sun\ F*)                       # Sun Fortran 8.3
          tmp_sharedflag='-G' ;;
        esac
-       _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
 
-        if test "x$supports_anon_versioning" = xyes; then
+        if test yes = "$supports_anon_versioning"; then
           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-           cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-           echo "local: *; };" >> $output_objdir/$libname.ver~
-           $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+            echo "local: *; };" >> $output_objdir/$libname.ver~
+            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
         fi
 
        case $cc_basename in
+       tcc*)
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic'
+         ;;
        xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
          _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-         if test "x$supports_anon_versioning" = xyes; then
+         if test yes = "$supports_anon_versioning"; then
            _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-             cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-             echo "local: *; };" >> $output_objdir/$libname.ver~
-             $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+              echo "local: *; };" >> $output_objdir/$libname.ver~
+              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
          fi
          ;;
        esac
@@ -4883,8 +5274,8 @@ _LT_EOF
        _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -4902,8 +5293,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4915,7 +5306,7 @@ _LT_EOF
        _LT_TAGVAR(ld_shlibs, $1)=no
        cat <<_LT_EOF 1>&2
 
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
 *** reliably create shared libraries on SCO systems.  Therefore, libtool
 *** is disabling shared libraries support.  We urge you to upgrade GNU
 *** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
@@ -4930,9 +5321,9 @@ _LT_EOF
          # DT_RUNPATH tag from executables and libraries.  But doing so
          # requires that you compile everything twice, which is a pain.
          if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
          else
            _LT_TAGVAR(ld_shlibs, $1)=no
          fi
@@ -4949,15 +5340,15 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
     esac
 
-    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
+    if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then
       runpath_var=
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
       _LT_TAGVAR(export_dynamic_flag_spec, $1)=
@@ -4973,7 +5364,7 @@ _LT_EOF
       # Note: this linker hardcodes the directories in LIBPATH if there
       # are no directories specified by -L.
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+      if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
        # Neither direct hardcoding nor static linking is supported with a
        # broken collect2.
        _LT_TAGVAR(hardcode_direct, $1)=unsupported
@@ -4981,34 +5372,57 @@ _LT_EOF
       ;;
 
     aix[[4-9]]*)
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # On IA64, the linker does run time linking by default, so we don't
        # have to do anything special.
        aix_use_runtimelinking=no
        exp_sym_flag='-Bexport'
-       no_entry_flag=""
+       no_entry_flag=
       else
        # If we're using GNU nm, then we don't want the "-C" option.
-       # -C means demangle to AIX nm, but means don't demangle with GNU nm
-       # Also, AIX nm treats weak defined symbols like other global
-       # defined symbols, whereas GNU nm marks them as "W".
+       # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+       # Without the "-l" option, or with the "-B" option, AIX nm treats
+       # weak defined symbols like other global defined symbols, whereas
+       # GNU nm marks them as "W".
+       # While the 'weak' keyword is ignored in the Export File, we need
+       # it in the Import File for the 'aix-soname' feature, so we have
+       # to replace the "-B" option with "-P" for AIX nm.
        if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
        else
-         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
        fi
        aix_use_runtimelinking=no
 
        # Test if we are trying to use run time linking or normal
        # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-       # need to do runtime linking.
+       # have runtime linking enabled, and use it for executables.
+       # For shared libraries, we enable/disable runtime linking
+       # depending on the kind of the shared library created -
+       # when "with_aix_soname,aix_use_runtimelinking" is:
+       # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+       # "aix,yes"  lib.so          shared, rtl:yes, for executables
+       #            lib.a           static archive
+       # "both,no"  lib.so.V(shr.o) shared, rtl:yes
+       #            lib.a(lib.so.V) shared, rtl:no,  for executables
+       # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+       #            lib.a(lib.so.V) shared, rtl:no
+       # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+       #            lib.a           static archive
        case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
          for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+         if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
            aix_use_runtimelinking=yes
            break
          fi
          done
+         if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+           # With aix-soname=svr4, we create the lib.so.V shared archives only,
+           # so we don't have lib.a shared libs to link our executables.
+           # We have to force runtime linking in this case.
+           aix_use_runtimelinking=yes
+           LDFLAGS="$LDFLAGS -Wl,-brtl"
+         fi
          ;;
        esac
 
@@ -5027,13 +5441,21 @@ _LT_EOF
       _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
       _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
       _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+      _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+      case $with_aix_soname,$aix_use_runtimelinking in
+      aix,*) ;; # traditional, no import file
+      svr4,* | *,yes) # use import file
+       # The Import File defines what to hardcode.
+       _LT_TAGVAR(hardcode_direct, $1)=no
+       _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+       ;;
+      esac
 
-      if test "$GCC" = yes; then
+      if test yes = "$GCC"; then
        case $host_os in aix4.[[012]]|aix4.[[012]].*)
        # We only want to do this on AIX 4.2 and lower, the check
        # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
+         collect2name=`$CC -print-prog-name=collect2`
          if test -f "$collect2name" &&
           strings "$collect2name" | $GREP resolve_lib_name >/dev/null
          then
@@ -5052,62 +5474,80 @@ _LT_EOF
          ;;
        esac
        shared_flag='-shared'
-       if test "$aix_use_runtimelinking" = yes; then
-         shared_flag="$shared_flag "'${wl}-G'
+       if test yes = "$aix_use_runtimelinking"; then
+         shared_flag="$shared_flag "'$wl-G'
        fi
-       _LT_TAGVAR(link_all_deplibs, $1)=no
+       # Need to ensure runtime linking is disabled for the traditional
+       # shared library, or the linker may eventually find shared libraries
+       # /with/ Import File - we do not want to mix them.
+       shared_flag_aix='-shared'
+       shared_flag_svr4='-shared $wl-G'
       else
        # not using gcc
-       if test "$host_cpu" = ia64; then
+       if test ia64 = "$host_cpu"; then
        # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
        # chokes on -Wl,-G. The following line is correct:
          shared_flag='-G'
        else
-         if test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
+         if test yes = "$aix_use_runtimelinking"; then
+           shared_flag='$wl-G'
          else
-           shared_flag='${wl}-bM:SRE'
+           shared_flag='$wl-bM:SRE'
          fi
+         shared_flag_aix='$wl-bM:SRE'
+         shared_flag_svr4='$wl-G'
        fi
       fi
 
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
       # It seems that -bexpall does not export symbols beginning with
       # underscore (_), so it is better to generate a list of symbols to export.
       _LT_TAGVAR(always_export_symbols, $1)=yes
-      if test "$aix_use_runtimelinking" = yes; then
+      if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
        # Warning - without using the other runtime loading flags (-brtl),
        # -berok will link without error, but may produce a broken library.
        _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
         _LT_SYS_MODULE_PATH_AIX([$1])
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
       else
-       if test "$host_cpu" = ia64; then
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+       if test ia64 = "$host_cpu"; then
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
          _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-         _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+         _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
        else
         # Determine the default libpath from the value encoded in an
         # empty executable.
         _LT_SYS_MODULE_PATH_AIX([$1])
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
          # Warning - without using the other run time loading flags,
          # -berok will link without error, but may produce a broken library.
-         _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-         _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-         if test "$with_gnu_ld" = yes; then
+         _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+         _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+         if test yes = "$with_gnu_ld"; then
            # We only use this code for GNU lds that support --whole-archive.
-           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
          else
            # Exported symbols can be pulled into shared objects from archives
            _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
          fi
          _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-         # This is similar to how AIX traditionally builds its shared libraries.
-         _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+         # -brtl affects multiple linker settings, -berok does not and is overridden later
+         compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+         if test svr4 != "$with_aix_soname"; then
+           # This is similar to how AIX traditionally builds its shared libraries.
+           _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+         fi
+         if test aix != "$with_aix_soname"; then
+           _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+         else
+           # used by -dlpreopen to get the symbols
+           _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+         fi
+         _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
        fi
       fi
       ;;
@@ -5116,7 +5556,7 @@ _LT_EOF
       case $host_cpu in
       powerpc)
             # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
             _LT_TAGVAR(archive_expsym_cmds, $1)=''
         ;;
       m68k)
@@ -5146,16 +5586,17 @@ _LT_EOF
        # Tell ltmain to make .lib files, not .a files.
        libext=lib
        # Tell ltmain to make .dll files, not .so files.
-       shrext_cmds=".dll"
+       shrext_cmds=.dll
        # FIXME: Setting linknames here is a bad hack.
-       _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-       _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-         else
-           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-         fi~
-         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-         linknames='
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+       _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+            cp "$export_symbols" "$output_objdir/$soname.def";
+            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+          else
+            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+          fi~
+          $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+          linknames='
        # The linker will not automatically build a static lib if we build a DLL.
        # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
@@ -5164,18 +5605,18 @@ _LT_EOF
        # Don't use ranlib
        _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
        _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-         lt_tool_outputfile="@TOOL_OUTPUT@"~
-         case $lt_outputfile in
-           *.exe|*.EXE) ;;
-           *)
-             lt_outputfile="$lt_outputfile.exe"
-             lt_tool_outputfile="$lt_tool_outputfile.exe"
-             ;;
-         esac~
-         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-           $RM "$lt_outputfile.manifest";
-         fi'
+          lt_tool_outputfile="@TOOL_OUTPUT@"~
+          case $lt_outputfile in
+            *.exe|*.EXE) ;;
+            *)
+              lt_outputfile=$lt_outputfile.exe
+              lt_tool_outputfile=$lt_tool_outputfile.exe
+              ;;
+          esac~
+          if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+            $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+            $RM "$lt_outputfile.manifest";
+          fi'
        ;;
       *)
        # Assume MSVC wrapper
@@ -5184,7 +5625,7 @@ _LT_EOF
        # Tell ltmain to make .lib files, not .a files.
        libext=lib
        # Tell ltmain to make .dll files, not .so files.
-       shrext_cmds=".dll"
+       shrext_cmds=.dll
        # FIXME: Setting linknames here is a bad hack.
        _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
        # The linker will automatically build a .lib file if we build a DLL.
@@ -5234,33 +5675,33 @@ _LT_EOF
       ;;
 
     hpux9*)
-      if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      if test yes = "$GCC"; then
+       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
       else
-       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
       fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
       _LT_TAGVAR(hardcode_direct, $1)=yes
 
       # hardcode_minus_L: Not really in the search PATH,
       # but as the default location of the library.
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
       ;;
 
     hpux10*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes,no = "$GCC,$with_gnu_ld"; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
        _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
-      if test "$with_gnu_ld" = no; then
-       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      if test no = "$with_gnu_ld"; then
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
        _LT_TAGVAR(hardcode_direct, $1)=yes
        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
        # hardcode_minus_L: Not really in the search PATH,
        # but as the default location of the library.
        _LT_TAGVAR(hardcode_minus_L, $1)=yes
@@ -5268,25 +5709,25 @@ _LT_EOF
       ;;
 
     hpux11*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+      if test yes,no = "$GCC,$with_gnu_ld"; then
        case $host_cpu in
        hppa*64*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        esac
       else
        case $host_cpu in
        hppa*64*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
        m4_if($1, [], [
@@ -5294,14 +5735,14 @@ _LT_EOF
          # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
          _LT_LINKER_OPTION([if $CC understands -b],
            _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
-           [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+           [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
            [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
-         [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
+         [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
          ;;
        esac
       fi
-      if test "$with_gnu_ld" = no; then
-       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      if test no = "$with_gnu_ld"; then
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
 
        case $host_cpu in
@@ -5312,7 +5753,7 @@ _LT_EOF
        *)
          _LT_TAGVAR(hardcode_direct, $1)=yes
          _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
 
          # hardcode_minus_L: Not really in the search PATH,
          # but as the default location of the library.
@@ -5323,16 +5764,16 @@ _LT_EOF
       ;;
 
     irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      if test yes = "$GCC"; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
        # Try to use the -exported_symbol ld option, if it does not
        # work, assume that -exports_file does not work either and
        # implicitly export all symbols.
        # This should be the same for all languages, so no per-tag cache variable.
        AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
          [lt_cv_irix_exported_symbol],
-         [save_LDFLAGS="$LDFLAGS"
-          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+         [save_LDFLAGS=$LDFLAGS
+          LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
           AC_LINK_IFELSE(
             [AC_LANG_SOURCE(
                [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
@@ -5345,21 +5786,32 @@ _LT_EOF
       end]])])],
              [lt_cv_irix_exported_symbol=yes],
              [lt_cv_irix_exported_symbol=no])
-           LDFLAGS="$save_LDFLAGS"])
-       if test "$lt_cv_irix_exported_symbol" = yes; then
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+           LDFLAGS=$save_LDFLAGS])
+       if test yes = "$lt_cv_irix_exported_symbol"; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
        fi
+       _LT_TAGVAR(link_all_deplibs, $1)=no
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
       _LT_TAGVAR(inherit_rpath, $1)=yes
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
+    linux*)
+      case $cc_basename in
+      tcc*)
+       # Fabrice Bellard et al's Tiny C Compiler
+       _LT_TAGVAR(ld_shlibs, $1)=yes
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+       ;;
+      esac
+      ;;
+
     netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
        _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
@@ -5374,7 +5826,7 @@ _LT_EOF
     newsos6)
       _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
       _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
@@ -5382,27 +5834,19 @@ _LT_EOF
     *nto* | *qnx*)
       ;;
 
-    openbsd*)
+    openbsd* | bitrig*)
       if test -f /usr/libexec/ld.so; then
        _LT_TAGVAR(hardcode_direct, $1)=yes
        _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-       if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+       if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
        else
-         case $host_os in
-          openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-            _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-            ;;
-          *)
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-            ;;
-         esac
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
        fi
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
@@ -5413,33 +5857,53 @@ _LT_EOF
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      shrext_cmds=.dll
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       prefix_cmds="$SED"~
+       if test EXPORTS = "`$SED 1q $export_symbols`"; then
+         prefix_cmds="$prefix_cmds -e 1d";
+       fi~
+       prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+       cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
       ;;
 
     osf3*)
-      if test "$GCC" = yes; then
-       _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      if test yes = "$GCC"; then
+       _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
       else
        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
       ;;
 
     osf4* | osf5*)     # as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-       _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      if test yes = "$GCC"; then
+       _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
       else
        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+          $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
 
        # Both c and cxx compiler support -rpath directly
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
@@ -5450,24 +5914,24 @@ _LT_EOF
 
     solaris*)
       _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
-      if test "$GCC" = yes; then
-       wlarc='${wl}'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+       wlarc='$wl'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
        case `$CC -V 2>&1` in
        *"Compilers 5.0"*)
          wlarc=''
-         _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+            $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
          ;;
        *)
-         wlarc='${wl}'
-         _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+         wlarc='$wl'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+            $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
          ;;
        esac
       fi
@@ -5477,11 +5941,11 @@ _LT_EOF
       solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
       *)
        # The compiler driver will combine and reorder linker options,
-       # but understands `-z linker_flag'.  GCC discards it without `$wl',
+       # but understands '-z linker_flag'.  GCC discards it without '$wl',
        # but is careful enough not to reorder.
        # Supported since Solaris 2.6 (maybe 2.5.1?)
-       if test "$GCC" = yes; then
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+       if test yes = "$GCC"; then
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
        else
          _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
        fi
@@ -5491,10 +5955,10 @@ _LT_EOF
       ;;
 
     sunos4*)
-      if test "x$host_vendor" = xsequent; then
+      if test sequent = "$host_vendor"; then
        # Use $CC to link under sequent, because it throws in some extra .o
        # files that make .init and .fini sections work.
-       _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
       else
        _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
       fi
@@ -5543,43 +6007,43 @@ _LT_EOF
       ;;
 
     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       runpath_var='LD_RUN_PATH'
 
-      if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
       ;;
 
     sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
+      # Note: We CANNOT use -z defs as we might desire, because we do not
       # link with -lc, and that would cause any symbols used from libc to
       # always be unresolved, which means just about no library would
       # ever link correctly.  If we're not using GNU ld we use -z text
       # though, which does catch some bad symbols but isn't as heavy-handed
       # as -z defs.
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+      _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
       _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
       runpath_var='LD_RUN_PATH'
 
-      if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
       ;;
 
@@ -5594,17 +6058,17 @@ _LT_EOF
       ;;
     esac
 
-    if test x$host_vendor = xsni; then
+    if test sni = "$host_vendor"; then
       case $host in
       sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym'
        ;;
       esac
     fi
   fi
 ])
 AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
 
 _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
 
@@ -5621,7 +6085,7 @@ x|xyes)
   # Assume -lc should be added
   _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
 
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
+  if test yes,yes = "$GCC,$enable_shared"; then
     case $_LT_TAGVAR(archive_cmds, $1) in
     *'~'*)
       # FIXME: we may have to deal with multi-command sequences.
@@ -5701,12 +6165,12 @@ _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
 _LT_TAGDECL([], [hardcode_libdir_separator], [1],
     [Whether we need a single "-rpath" flag with a separated argument])
 _LT_TAGDECL([], [hardcode_direct], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
     DIR into the resulting binary])
 _LT_TAGDECL([], [hardcode_direct_absolute], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
     DIR into the resulting binary and the resulting library dependency is
-    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
+    "absolute", i.e impossible to change by setting $shlibpath_var if the
     library is relocated])
 _LT_TAGDECL([], [hardcode_minus_L], [0],
     [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
@@ -5747,10 +6211,10 @@ dnl    [Compiler flag to generate thread safe objects])
 # ------------------------
 # Ensure that the configuration variables for a C compiler are suitably
 # defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
+# the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_C_CONFIG],
 [m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
+lt_save_CC=$CC
 AC_LANG_PUSH(C)
 
 # Source file extension for C test sources.
@@ -5790,18 +6254,18 @@ if test -n "$compiler"; then
   LT_SYS_DLOPEN_SELF
   _LT_CMD_STRIPLIB
 
-  # Report which library types will actually be built
+  # Report what library types will actually be built
   AC_MSG_CHECKING([if libtool supports shared libraries])
   AC_MSG_RESULT([$can_build_shared])
 
   AC_MSG_CHECKING([whether to build shared libraries])
-  test "$can_build_shared" = "no" && enable_shared=no
+  test no = "$can_build_shared" && enable_shared=no
 
   # On AIX, shared libraries and static libraries use the same namespace, and
   # are all built from PIC.
   case $host_os in
   aix3*)
-    test "$enable_shared" = yes && enable_static=no
+    test yes = "$enable_shared" && enable_static=no
     if test -n "$RANLIB"; then
       archive_cmds="$archive_cmds~\$RANLIB \$lib"
       postinstall_cmds='$RANLIB $lib'
@@ -5809,8 +6273,12 @@ if test -n "$compiler"; then
     ;;
 
   aix[[4-9]]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
+    if test ia64 != "$host_cpu"; then
+      case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+      yes,aix,yes) ;;                  # shared object as lib.so file only
+      yes,svr4,*) ;;                   # shared object as lib.so archive member only
+      yes,*) enable_static=no ;;       # shared object in lib.a archive as well
+      esac
     fi
     ;;
   esac
@@ -5818,13 +6286,13 @@ if test -n "$compiler"; then
 
   AC_MSG_CHECKING([whether to build static libraries])
   # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
+  test yes = "$enable_shared" || enable_static=yes
   AC_MSG_RESULT([$enable_static])
 
   _LT_CONFIG($1)
 fi
 AC_LANG_POP
-CC="$lt_save_CC"
+CC=$lt_save_CC
 ])# _LT_LANG_C_CONFIG
 
 
@@ -5832,14 +6300,14 @@ CC="$lt_save_CC"
 # --------------------------
 # Ensure that the configuration variables for a C++ compiler are suitably
 # defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
+# the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_CXX_CONFIG],
 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
+if test -n "$CXX" && ( test no != "$CXX" &&
+    ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
+    (test g++ != "$CXX"))); then
   AC_PROG_CXXCPP
 else
   _lt_caught_CXX_error=yes
@@ -5881,7 +6349,7 @@ _LT_TAGVAR(objext, $1)=$objext
 # the CXX compiler isn't working.  Some variables (like enable_shared)
 # are currently assumed to apply to all compilers on this platform,
 # and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
+if test yes != "$_lt_caught_CXX_error"; then
   # Code to be used in simple compile tests
   lt_simple_compile_test_code="int some_variable = 0;"
 
@@ -5923,35 +6391,35 @@ if test "$_lt_caught_CXX_error" != yes; then
   if test -n "$compiler"; then
     # We don't want -fno-exception when compiling C++ code, so set the
     # no_builtin_flag separately
-    if test "$GXX" = yes; then
+    if test yes = "$GXX"; then
       _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
     else
       _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
     fi
 
-    if test "$GXX" = yes; then
+    if test yes = "$GXX"; then
       # Set up default GNU C++ configuration
 
       LT_PATH_LD
 
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      if test yes = "$with_gnu_ld"; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
 
         # If archive_cmds runs LD, not CC, wlarc should be empty
         # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
         #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
+        wlarc='$wl'
 
         # ancient GNU ld didn't support --whole-archive et. al.
         if eval "`$CC -print-prog-name=ld` --help 2>&1" |
          $GREP 'no-whole-archive' > /dev/null; then
-          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
         else
           _LT_TAGVAR(whole_archive_flag_spec, $1)=
         fi
@@ -5987,18 +6455,30 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(ld_shlibs, $1)=no
         ;;
       aix[[4-9]]*)
-        if test "$host_cpu" = ia64; then
+        if test ia64 = "$host_cpu"; then
           # On IA64, the linker does run time linking by default, so we don't
           # have to do anything special.
           aix_use_runtimelinking=no
           exp_sym_flag='-Bexport'
-          no_entry_flag=""
+          no_entry_flag=
         else
           aix_use_runtimelinking=no
 
           # Test if we are trying to use run time linking or normal
           # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
+          # have runtime linking enabled, and use it for executables.
+          # For shared libraries, we enable/disable runtime linking
+          # depending on the kind of the shared library created -
+          # when "with_aix_soname,aix_use_runtimelinking" is:
+          # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "aix,yes"  lib.so          shared, rtl:yes, for executables
+          #            lib.a           static archive
+          # "both,no"  lib.so.V(shr.o) shared, rtl:yes
+          #            lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a(lib.so.V) shared, rtl:no
+          # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a           static archive
           case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
            for ld_flag in $LDFLAGS; do
              case $ld_flag in
@@ -6008,6 +6488,13 @@ if test "$_lt_caught_CXX_error" != yes; then
                ;;
              esac
            done
+           if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+             # With aix-soname=svr4, we create the lib.so.V shared archives only,
+             # so we don't have lib.a shared libs to link our executables.
+             # We have to force runtime linking in this case.
+             aix_use_runtimelinking=yes
+             LDFLAGS="$LDFLAGS -Wl,-brtl"
+           fi
            ;;
           esac
 
@@ -6026,13 +6513,21 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
         _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
         _LT_TAGVAR(link_all_deplibs, $1)=yes
-        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+        _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+        case $with_aix_soname,$aix_use_runtimelinking in
+        aix,*) ;;      # no import file
+        svr4,* | *,yes) # use import file
+          # The Import File defines what to hardcode.
+          _LT_TAGVAR(hardcode_direct, $1)=no
+          _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+          ;;
+        esac
 
-        if test "$GXX" = yes; then
+        if test yes = "$GXX"; then
           case $host_os in aix4.[[012]]|aix4.[[012]].*)
           # We only want to do this on AIX 4.2 and lower, the check
           # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
+         collect2name=`$CC -print-prog-name=collect2`
          if test -f "$collect2name" &&
             strings "$collect2name" | $GREP resolve_lib_name >/dev/null
          then
@@ -6050,64 +6545,84 @@ if test "$_lt_caught_CXX_error" != yes; then
          fi
           esac
           shared_flag='-shared'
-         if test "$aix_use_runtimelinking" = yes; then
-           shared_flag="$shared_flag "'${wl}-G'
+         if test yes = "$aix_use_runtimelinking"; then
+           shared_flag=$shared_flag' $wl-G'
          fi
+         # Need to ensure runtime linking is disabled for the traditional
+         # shared library, or the linker may eventually find shared libraries
+         # /with/ Import File - we do not want to mix them.
+         shared_flag_aix='-shared'
+         shared_flag_svr4='-shared $wl-G'
         else
           # not using gcc
-          if test "$host_cpu" = ia64; then
+          if test ia64 = "$host_cpu"; then
          # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
          # chokes on -Wl,-G. The following line is correct:
          shared_flag='-G'
           else
-           if test "$aix_use_runtimelinking" = yes; then
-             shared_flag='${wl}-G'
+           if test yes = "$aix_use_runtimelinking"; then
+             shared_flag='$wl-G'
            else
-             shared_flag='${wl}-bM:SRE'
+             shared_flag='$wl-bM:SRE'
            fi
+           shared_flag_aix='$wl-bM:SRE'
+           shared_flag_svr4='$wl-G'
           fi
         fi
 
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
         # It seems that -bexpall does not export symbols beginning with
         # underscore (_), so it is better to generate a list of symbols to
        # export.
         _LT_TAGVAR(always_export_symbols, $1)=yes
-        if test "$aix_use_runtimelinking" = yes; then
+       if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
           # Warning - without using the other runtime loading flags (-brtl),
           # -berok will link without error, but may produce a broken library.
-          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+          # The "-G" linker flag allows undefined symbols.
+          _LT_TAGVAR(no_undefined_flag, $1)='-bernotok'
           # Determine the default libpath from the value encoded in an empty
           # executable.
           _LT_SYS_MODULE_PATH_AIX([$1])
-          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
 
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
         else
-          if test "$host_cpu" = ia64; then
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+          if test ia64 = "$host_cpu"; then
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
            _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-           _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+           _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
           else
            # Determine the default libpath from the value encoded in an
            # empty executable.
            _LT_SYS_MODULE_PATH_AIX([$1])
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
            # Warning - without using the other run time loading flags,
            # -berok will link without error, but may produce a broken library.
-           _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-           _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-           if test "$with_gnu_ld" = yes; then
+           _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+           _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+           if test yes = "$with_gnu_ld"; then
              # We only use this code for GNU lds that support --whole-archive.
-             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
            else
              # Exported symbols can be pulled into shared objects from archives
              _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
            fi
            _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-           # This is similar to how AIX traditionally builds its shared
-           # libraries.
-           _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+           # -brtl affects multiple linker settings, -berok does not and is overridden later
+           compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+           if test svr4 != "$with_aix_soname"; then
+             # This is similar to how AIX traditionally builds its shared
+             # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
+             _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+           fi
+           if test aix != "$with_aix_soname"; then
+             _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+           else
+             # used by -dlpreopen to get the symbols
+             _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+           fi
+           _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
           fi
         fi
         ;;
@@ -6117,7 +6632,7 @@ if test "$_lt_caught_CXX_error" != yes; then
          _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
          # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
          # support --undefined.  This deserves some investigation.  FIXME
-         _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
        else
          _LT_TAGVAR(ld_shlibs, $1)=no
        fi
@@ -6145,57 +6660,58 @@ if test "$_lt_caught_CXX_error" != yes; then
          # Tell ltmain to make .lib files, not .a files.
          libext=lib
          # Tell ltmain to make .dll files, not .so files.
-         shrext_cmds=".dll"
+         shrext_cmds=.dll
          # FIXME: Setting linknames here is a bad hack.
-         _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-         _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-             $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-           else
-             $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-           fi~
-           $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-           linknames='
+         _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+         _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+              cp "$export_symbols" "$output_objdir/$soname.def";
+              echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+            else
+              $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+            fi~
+            $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+            linknames='
          # The linker will not automatically build a static lib if we build a DLL.
          # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
          _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
          # Don't use ranlib
          _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
          _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-           lt_tool_outputfile="@TOOL_OUTPUT@"~
-           case $lt_outputfile in
-             *.exe|*.EXE) ;;
-             *)
-               lt_outputfile="$lt_outputfile.exe"
-               lt_tool_outputfile="$lt_tool_outputfile.exe"
-               ;;
-           esac~
-           func_to_tool_file "$lt_outputfile"~
-           if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-             $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-             $RM "$lt_outputfile.manifest";
-           fi'
+            lt_tool_outputfile="@TOOL_OUTPUT@"~
+            case $lt_outputfile in
+              *.exe|*.EXE) ;;
+              *)
+                lt_outputfile=$lt_outputfile.exe
+                lt_tool_outputfile=$lt_tool_outputfile.exe
+                ;;
+            esac~
+            func_to_tool_file "$lt_outputfile"~
+            if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+              $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+              $RM "$lt_outputfile.manifest";
+            fi'
          ;;
        *)
          # g++
          # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
          # as there is no search path for DLLs.
          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
          _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
          _LT_TAGVAR(always_export_symbols, $1)=no
          _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
 
          if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-           # If the export-symbols file already is a .def file (1st line
-           # is EXPORTS), use it as is; otherwise, prepend...
-           _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-             cp $export_symbols $output_objdir/$soname.def;
-           else
-             echo EXPORTS > $output_objdir/$soname.def;
-             cat $export_symbols >> $output_objdir/$soname.def;
-           fi~
-           $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+           # If the export-symbols file already is a .def file, use it as
+           # is; otherwise, prepend EXPORTS...
+           _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+              cp $export_symbols $output_objdir/$soname.def;
+            else
+              echo EXPORTS > $output_objdir/$soname.def;
+              cat $export_symbols >> $output_objdir/$soname.def;
+            fi~
+            $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
          else
            _LT_TAGVAR(ld_shlibs, $1)=no
          fi
@@ -6206,6 +6722,34 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_DARWIN_LINKER_FEATURES($1)
        ;;
 
+      os2*)
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+       _LT_TAGVAR(hardcode_minus_L, $1)=yes
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       shrext_cmds=.dll
+       _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+         $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+         $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+         $ECHO EXPORTS >> $output_objdir/$libname.def~
+         emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+         $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+         emximp -o $lib $output_objdir/$libname.def'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+         $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+         $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+         $ECHO EXPORTS >> $output_objdir/$libname.def~
+         prefix_cmds="$SED"~
+         if test EXPORTS = "`$SED 1q $export_symbols`"; then
+           prefix_cmds="$prefix_cmds -e 1d";
+         fi~
+         prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+         cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+         $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+         emximp -o $lib $output_objdir/$libname.def'
+       _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       ;;
+
       dgux*)
         case $cc_basename in
           ec++*)
@@ -6241,14 +6785,14 @@ if test "$_lt_caught_CXX_error" != yes; then
         ;;
 
       haiku*)
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
         _LT_TAGVAR(link_all_deplibs, $1)=yes
         ;;
 
       hpux9*)
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
         _LT_TAGVAR(hardcode_direct, $1)=yes
         _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
                                             # but as the default
@@ -6260,7 +6804,7 @@ if test "$_lt_caught_CXX_error" != yes; then
             _LT_TAGVAR(ld_shlibs, $1)=no
             ;;
           aCC*)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
             # Commands to make compiler produce verbose output that lists
             # what "hidden" libraries, object files and flags are used when
             # linking a shared library.
@@ -6269,11 +6813,11 @@ if test "$_lt_caught_CXX_error" != yes; then
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
-            if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            if test yes = "$GXX"; then
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
             else
               # FIXME: insert proper C++ library support
               _LT_TAGVAR(ld_shlibs, $1)=no
@@ -6283,15 +6827,15 @@ if test "$_lt_caught_CXX_error" != yes; then
         ;;
 
       hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        if test no = "$with_gnu_ld"; then
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
          _LT_TAGVAR(hardcode_libdir_separator, $1)=:
 
           case $host_cpu in
             hppa*64*|ia64*)
               ;;
             *)
-             _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+             _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
               ;;
           esac
         fi
@@ -6317,13 +6861,13 @@ if test "$_lt_caught_CXX_error" != yes; then
           aCC*)
            case $host_cpu in
              hppa*64*)
-               _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                ;;
              ia64*)
-               _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                ;;
              *)
-               _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                ;;
            esac
            # Commands to make compiler produce verbose output that lists
@@ -6334,20 +6878,20 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
            ;;
           *)
-           if test "$GXX" = yes; then
-             if test $with_gnu_ld = no; then
+           if test yes = "$GXX"; then
+             if test no = "$with_gnu_ld"; then
                case $host_cpu in
                  hppa*64*)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  ia64*)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  *)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                esac
              fi
@@ -6362,22 +6906,22 @@ if test "$_lt_caught_CXX_error" != yes; then
       interix[[3-9]]*)
        _LT_TAGVAR(hardcode_direct, $1)=no
        _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
        # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
        # Instead, shared libraries are loaded at an image base (0x10000000 by
        # default) and relocated if they conflict, which is a slow very memory
        # consuming and fragmenting process.  To avoid this, we pick a random,
        # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
        # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
        ;;
       irix5* | irix6*)
         case $cc_basename in
           CC*)
            # SGI C++
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
 
            # Archives containing C++ object files must be created using
            # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
@@ -6386,17 +6930,17 @@ if test "$_lt_caught_CXX_error" != yes; then
            _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
            ;;
           *)
-           if test "$GXX" = yes; then
-             if test "$with_gnu_ld" = no; then
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+           if test yes = "$GXX"; then
+             if test no = "$with_gnu_ld"; then
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
              else
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
              fi
            fi
            _LT_TAGVAR(link_all_deplibs, $1)=yes
            ;;
         esac
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
         _LT_TAGVAR(inherit_rpath, $1)=yes
         ;;
@@ -6409,8 +6953,8 @@ if test "$_lt_caught_CXX_error" != yes; then
            # KCC will only create a shared library if the output file
            # ends with ".so" (or ".sl" for HP-UX), so rename the library
            # to its proper name (with version) after linking.
-           _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-           _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+           _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
            # Commands to make compiler produce verbose output that lists
            # what "hidden" libraries, object files and flags are used when
            # linking a shared library.
@@ -6419,10 +6963,10 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
 
            # Archives containing C++ object files must be created using
            # "CC -Bstatic", where "CC" is the KAI C++ compiler.
@@ -6436,59 +6980,59 @@ if test "$_lt_caught_CXX_error" != yes; then
            # earlier do not add the objects themselves.
            case `$CC -V 2>&1` in
              *"Version 7."*)
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-               _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
                ;;
              *)  # Version 8.0 or newer
                tmp_idyn=
                case $host_cpu in
                  ia64*) tmp_idyn=' -i_dynamic';;
                esac
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-               _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
                ;;
            esac
            _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
            ;;
           pgCC* | pgcpp*)
             # Portland Group C++ compiler
            case `$CC -V` in
            *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
              _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
-               rm -rf $tpldir~
-               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
              _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
-               rm -rf $tpldir~
-               $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-               $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
-               $RANLIB $oldlib'
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+                $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+                $RANLIB $oldlib'
              _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
-               rm -rf $tpldir~
-               $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
              _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
-               rm -rf $tpldir~
-               $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
              ;;
            *) # Version 6 and above use weak symbols
-             _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+             _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
              ;;
            esac
 
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
             ;;
          cxx*)
            # Compaq C++
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname  -o $lib $wl-retain-symbols-file $wl$export_symbols'
 
            runpath_var=LD_RUN_PATH
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
@@ -6502,18 +7046,18 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
            ;;
          xl* | mpixl* | bgxl*)
            # IBM XL 8.0 on PPC, with GNU ld
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-           _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-           if test "x$supports_anon_versioning" = xyes; then
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+           if test yes = "$supports_anon_versioning"; then
              _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-               cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-               echo "local: *; };" >> $output_objdir/$libname.ver~
-               $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+                cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+                echo "local: *; };" >> $output_objdir/$libname.ver~
+                $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
            fi
            ;;
          *)
@@ -6521,10 +7065,10 @@ if test "$_lt_caught_CXX_error" != yes; then
            *Sun\ C*)
              # Sun C++ 5.9
              _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-             _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+             _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
              _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
              _LT_TAGVAR(compiler_needs_object, $1)=yes
 
              # Not sure whether something based on
@@ -6582,22 +7126,17 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(ld_shlibs, $1)=yes
        ;;
 
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-       _LT_TAGVAR(ld_shlibs, $1)=no
-       ;;
-
-      openbsd*)
+      openbsd* | bitrig*)
        if test -f /usr/libexec/ld.so; then
          _LT_TAGVAR(hardcode_direct, $1)=yes
          _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
          _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-         if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-           _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+         if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
          fi
          output_verbose_link_cmd=func_echo_all
        else
@@ -6613,9 +7152,9 @@ if test "$_lt_caught_CXX_error" != yes; then
            # KCC will only create a shared library if the output file
            # ends with ".so" (or ".sl" for HP-UX), so rename the library
            # to its proper name (with version) after linking.
-           _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+           _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
 
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
            _LT_TAGVAR(hardcode_libdir_separator, $1)=:
 
            # Archives containing C++ object files must be created using
@@ -6633,17 +7172,17 @@ if test "$_lt_caught_CXX_error" != yes; then
           cxx*)
            case $host in
              osf3*)
-               _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-               _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+               _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+               _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
                ;;
              *)
                _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
                _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-                 echo "-hidden">> $lib.exp~
-                 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
-                 $RM $lib.exp'
+                  echo "-hidden">> $lib.exp~
+                  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
+                  $RM $lib.exp'
                _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
                ;;
            esac
@@ -6658,21 +7197,21 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
            ;;
          *)
-           if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-             _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+           if test yes,no = "$GXX,$with_gnu_ld"; then
+             _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
              case $host in
                osf3*)
-                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
                  ;;
                *)
-                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
                  ;;
              esac
 
-             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
              _LT_TAGVAR(hardcode_libdir_separator, $1)=:
 
              # Commands to make compiler produce verbose output that lists
@@ -6718,9 +7257,9 @@ if test "$_lt_caught_CXX_error" != yes; then
            # Sun C++ 4.2, 5.x and Centerline C++
             _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
            _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-           _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
            _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-             $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+              $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -6728,7 +7267,7 @@ if test "$_lt_caught_CXX_error" != yes; then
              solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
              *)
                # The compiler driver will combine and reorder linker options,
-               # but understands `-z linker_flag'.
+               # but understands '-z linker_flag'.
                # Supported since Solaris 2.6 (maybe 2.5.1?)
                _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
                ;;
@@ -6745,30 +7284,30 @@ if test "$_lt_caught_CXX_error" != yes; then
            ;;
           gcx*)
            # Green Hills C++ Compiler
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
 
            # The C++ compiler must be used to create the archive.
            _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
            ;;
           *)
            # GNU C++ compiler with Solaris linker
-           if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-             _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+           if test yes,no = "$GXX,$with_gnu_ld"; then
+             _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
              if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
                _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                 $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+                  $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
                output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              else
-               # g++ 2.7 appears to require `-G' NOT `-shared' on this
+               # g++ 2.7 appears to require '-G' NOT '-shared' on this
                # platform.
-               _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
                _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                 $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+                  $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
@@ -6776,11 +7315,11 @@ if test "$_lt_caught_CXX_error" != yes; then
                output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              fi
 
-             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
              case $host_os in
                solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
                *)
-                 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+                 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
                  ;;
              esac
            fi
@@ -6789,52 +7328,52 @@ if test "$_lt_caught_CXX_error" != yes; then
         ;;
 
     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       runpath_var='LD_RUN_PATH'
 
       case $cc_basename in
         CC*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
       esac
       ;;
 
       sysv5* | sco3.2v5* | sco5v6*)
-       # Note: We can NOT use -z defs as we might desire, because we do not
+       # Note: We CANNOT use -z defs as we might desire, because we do not
        # link with -lc, and that would cause any symbols used from libc to
        # always be unresolved, which means just about no library would
        # ever link correctly.  If we're not using GNU ld we use -z text
        # though, which does catch some bad symbols but isn't as heavy-handed
        # as -z defs.
-       _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-       _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+       _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+       _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
        _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
        _LT_TAGVAR(link_all_deplibs, $1)=yes
-       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
        runpath_var='LD_RUN_PATH'
 
        case $cc_basename in
           CC*)
-           _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
            _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
-             '"$_LT_TAGVAR(old_archive_cmds, $1)"
+              '"$_LT_TAGVAR(old_archive_cmds, $1)"
            _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
-             '"$_LT_TAGVAR(reload_cmds, $1)"
+              '"$_LT_TAGVAR(reload_cmds, $1)"
            ;;
          *)
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
            ;;
        esac
       ;;
@@ -6865,10 +7404,10 @@ if test "$_lt_caught_CXX_error" != yes; then
     esac
 
     AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+    test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
 
-    _LT_TAGVAR(GCC, $1)="$GXX"
-    _LT_TAGVAR(LD, $1)="$LD"
+    _LT_TAGVAR(GCC, $1)=$GXX
+    _LT_TAGVAR(LD, $1)=$LD
 
     ## CAVEAT EMPTOR:
     ## There is no encapsulation within the following macros, do not change
@@ -6895,7 +7434,7 @@ if test "$_lt_caught_CXX_error" != yes; then
   lt_cv_path_LD=$lt_save_path_LD
   lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
   lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
+fi # test yes != "$_lt_caught_CXX_error"
 
 AC_LANG_POP
 ])# _LT_LANG_CXX_CONFIG
@@ -6917,13 +7456,14 @@ AC_REQUIRE([_LT_DECL_SED])
 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
 func_stripname_cnf ()
 {
-  case ${2} in
-  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  case @S|@2 in
+  .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;;
+  *)  func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;;
   esac
 } # func_stripname_cnf
 ])# _LT_FUNC_STRIPNAME_CNF
 
+
 # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
 # ---------------------------------
 # Figure out "hidden" library dependencies from verbose
@@ -7007,13 +7547,13 @@ if AC_TRY_EVAL(ac_compile); then
   pre_test_object_deps_done=no
 
   for p in `eval "$output_verbose_link_cmd"`; do
-    case ${prev}${p} in
+    case $prev$p in
 
     -L* | -R* | -l*)
        # Some compilers place space between "-{L,R}" and the path.
        # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
+       if test x-L = "$p" ||
+          test x-R = "$p"; then
         prev=$p
         continue
        fi
@@ -7029,16 +7569,16 @@ if AC_TRY_EVAL(ac_compile); then
        case $p in
        =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
        esac
-       if test "$pre_test_object_deps_done" = no; then
-        case ${prev} in
+       if test no = "$pre_test_object_deps_done"; then
+        case $prev in
         -L | -R)
           # Internal compiler library paths should come after those
           # provided the user.  The postdeps already come after the
           # user supplied libs so there is no need to process them.
           if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
-            _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+            _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p
           else
-            _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+            _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p"
           fi
           ;;
         # The "-l" case would never come before the object being
@@ -7046,9 +7586,9 @@ if AC_TRY_EVAL(ac_compile); then
         esac
        else
         if test -z "$_LT_TAGVAR(postdeps, $1)"; then
-          _LT_TAGVAR(postdeps, $1)="${prev}${p}"
+          _LT_TAGVAR(postdeps, $1)=$prev$p
         else
-          _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+          _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p"
         fi
        fi
        prev=
@@ -7063,15 +7603,15 @@ if AC_TRY_EVAL(ac_compile); then
         continue
        fi
 
-       if test "$pre_test_object_deps_done" = no; then
+       if test no = "$pre_test_object_deps_done"; then
         if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
-          _LT_TAGVAR(predep_objects, $1)="$p"
+          _LT_TAGVAR(predep_objects, $1)=$p
         else
           _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
         fi
        else
         if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
-          _LT_TAGVAR(postdep_objects, $1)="$p"
+          _LT_TAGVAR(postdep_objects, $1)=$p
         else
           _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
         fi
@@ -7102,51 +7642,6 @@ interix[[3-9]]*)
   _LT_TAGVAR(postdep_objects,$1)=
   _LT_TAGVAR(postdeps,$1)=
   ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC* | sunCC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
 esac
 ])
 
@@ -7155,7 +7650,7 @@ case " $_LT_TAGVAR(postdeps, $1) " in
 esac
  _LT_TAGVAR(compiler_lib_search_dirs, $1)=
 if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'`
 fi
 _LT_TAGDECL([], [compiler_lib_search_dirs], [1],
     [The directories searched by this compiler when creating a shared library])
@@ -7175,10 +7670,10 @@ _LT_TAGDECL([], [compiler_lib_search_path], [1],
 # --------------------------
 # Ensure that the configuration variables for a Fortran 77 compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_F77_CONFIG],
 [AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
+if test -z "$F77" || test no = "$F77"; then
   _lt_disable_F77=yes
 fi
 
@@ -7215,7 +7710,7 @@ _LT_TAGVAR(objext, $1)=$objext
 # the F77 compiler isn't working.  Some variables (like enable_shared)
 # are currently assumed to apply to all compilers on this platform,
 # and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
+if test yes != "$_lt_disable_F77"; then
   # Code to be used in simple compile tests
   lt_simple_compile_test_code="\
       subroutine t
@@ -7237,7 +7732,7 @@ if test "$_lt_disable_F77" != yes; then
   _LT_LINKER_BOILERPLATE
 
   # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
+  lt_save_CC=$CC
   lt_save_GCC=$GCC
   lt_save_CFLAGS=$CFLAGS
   CC=${F77-"f77"}
@@ -7251,21 +7746,25 @@ if test "$_lt_disable_F77" != yes; then
     AC_MSG_RESULT([$can_build_shared])
 
     AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
+    test no = "$can_build_shared" && enable_shared=no
 
     # On AIX, shared libraries and static libraries use the same namespace, and
     # are all built from PIC.
     case $host_os in
       aix3*)
-        test "$enable_shared" = yes && enable_static=no
+        test yes = "$enable_shared" && enable_static=no
         if test -n "$RANLIB"; then
           archive_cmds="$archive_cmds~\$RANLIB \$lib"
           postinstall_cmds='$RANLIB $lib'
         fi
         ;;
       aix[[4-9]]*)
-       if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-         test "$enable_shared" = yes && enable_static=no
+       if test ia64 != "$host_cpu"; then
+         case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+         yes,aix,yes) ;;               # shared object as lib.so file only
+         yes,svr4,*) ;;                # shared object as lib.so archive member only
+         yes,*) enable_static=no ;;    # shared object in lib.a archive as well
+         esac
        fi
         ;;
     esac
@@ -7273,11 +7772,11 @@ if test "$_lt_disable_F77" != yes; then
 
     AC_MSG_CHECKING([whether to build static libraries])
     # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
+    test yes = "$enable_shared" || enable_static=yes
     AC_MSG_RESULT([$enable_static])
 
-    _LT_TAGVAR(GCC, $1)="$G77"
-    _LT_TAGVAR(LD, $1)="$LD"
+    _LT_TAGVAR(GCC, $1)=$G77
+    _LT_TAGVAR(LD, $1)=$LD
 
     ## CAVEAT EMPTOR:
     ## There is no encapsulation within the following macros, do not change
@@ -7294,9 +7793,9 @@ if test "$_lt_disable_F77" != yes; then
   fi # test -n "$compiler"
 
   GCC=$lt_save_GCC
-  CC="$lt_save_CC"
-  CFLAGS="$lt_save_CFLAGS"
-fi # test "$_lt_disable_F77" != yes
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+fi # test yes != "$_lt_disable_F77"
 
 AC_LANG_POP
 ])# _LT_LANG_F77_CONFIG
@@ -7306,11 +7805,11 @@ AC_LANG_POP
 # -------------------------
 # Ensure that the configuration variables for a Fortran compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_FC_CONFIG],
 [AC_LANG_PUSH(Fortran)
 
-if test -z "$FC" || test "X$FC" = "Xno"; then
+if test -z "$FC" || test no = "$FC"; then
   _lt_disable_FC=yes
 fi
 
@@ -7347,7 +7846,7 @@ _LT_TAGVAR(objext, $1)=$objext
 # the FC compiler isn't working.  Some variables (like enable_shared)
 # are currently assumed to apply to all compilers on this platform,
 # and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
+if test yes != "$_lt_disable_FC"; then
   # Code to be used in simple compile tests
   lt_simple_compile_test_code="\
       subroutine t
@@ -7369,7 +7868,7 @@ if test "$_lt_disable_FC" != yes; then
   _LT_LINKER_BOILERPLATE
 
   # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
+  lt_save_CC=$CC
   lt_save_GCC=$GCC
   lt_save_CFLAGS=$CFLAGS
   CC=${FC-"f95"}
@@ -7385,21 +7884,25 @@ if test "$_lt_disable_FC" != yes; then
     AC_MSG_RESULT([$can_build_shared])
 
     AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
+    test no = "$can_build_shared" && enable_shared=no
 
     # On AIX, shared libraries and static libraries use the same namespace, and
     # are all built from PIC.
     case $host_os in
       aix3*)
-        test "$enable_shared" = yes && enable_static=no
+        test yes = "$enable_shared" && enable_static=no
         if test -n "$RANLIB"; then
           archive_cmds="$archive_cmds~\$RANLIB \$lib"
           postinstall_cmds='$RANLIB $lib'
         fi
         ;;
       aix[[4-9]]*)
-       if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-         test "$enable_shared" = yes && enable_static=no
+       if test ia64 != "$host_cpu"; then
+         case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+         yes,aix,yes) ;;               # shared object as lib.so file only
+         yes,svr4,*) ;;                # shared object as lib.so archive member only
+         yes,*) enable_static=no ;;    # shared object in lib.a archive as well
+         esac
        fi
         ;;
     esac
@@ -7407,11 +7910,11 @@ if test "$_lt_disable_FC" != yes; then
 
     AC_MSG_CHECKING([whether to build static libraries])
     # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
+    test yes = "$enable_shared" || enable_static=yes
     AC_MSG_RESULT([$enable_static])
 
-    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
-    _LT_TAGVAR(LD, $1)="$LD"
+    _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu
+    _LT_TAGVAR(LD, $1)=$LD
 
     ## CAVEAT EMPTOR:
     ## There is no encapsulation within the following macros, do not change
@@ -7431,7 +7934,7 @@ if test "$_lt_disable_FC" != yes; then
   GCC=$lt_save_GCC
   CC=$lt_save_CC
   CFLAGS=$lt_save_CFLAGS
-fi # test "$_lt_disable_FC" != yes
+fi # test yes != "$_lt_disable_FC"
 
 AC_LANG_POP
 ])# _LT_LANG_FC_CONFIG
@@ -7441,7 +7944,7 @@ AC_LANG_POP
 # --------------------------
 # Ensure that the configuration variables for the GNU Java Compiler compiler
 # are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_GCJ_CONFIG],
 [AC_REQUIRE([LT_PROG_GCJ])dnl
 AC_LANG_SAVE
@@ -7475,7 +7978,7 @@ CC=${GCJ-"gcj"}
 CFLAGS=$GCJFLAGS
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
+_LT_TAGVAR(LD, $1)=$LD
 _LT_CC_BASENAME([$compiler])
 
 # GCJ did not exist at the time GCC didn't implicitly link libc in.
@@ -7512,7 +8015,7 @@ CFLAGS=$lt_save_CFLAGS
 # --------------------------
 # Ensure that the configuration variables for the GNU Go compiler
 # are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_GO_CONFIG],
 [AC_REQUIRE([LT_PROG_GO])dnl
 AC_LANG_SAVE
@@ -7546,7 +8049,7 @@ CC=${GOC-"gccgo"}
 CFLAGS=$GOFLAGS
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
+_LT_TAGVAR(LD, $1)=$LD
 _LT_CC_BASENAME([$compiler])
 
 # Go did not exist at the time GCC didn't implicitly link libc in.
@@ -7583,7 +8086,7 @@ CFLAGS=$lt_save_CFLAGS
 # -------------------------
 # Ensure that the configuration variables for the Windows resource compiler
 # are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_RC_CONFIG],
 [AC_REQUIRE([LT_PROG_RC])dnl
 AC_LANG_SAVE
@@ -7599,7 +8102,7 @@ _LT_TAGVAR(objext, $1)=$objext
 lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
 
 # Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
+lt_simple_link_test_code=$lt_simple_compile_test_code
 
 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
 _LT_TAG_COMPILER
@@ -7609,7 +8112,7 @@ _LT_COMPILER_BOILERPLATE
 _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
+lt_save_CC=$CC
 lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=
@@ -7638,7 +8141,7 @@ AC_DEFUN([LT_PROG_GCJ],
 [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
   [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
     [AC_CHECK_TOOL(GCJ, gcj,)
-      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+      test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2"
       AC_SUBST(GCJFLAGS)])])[]dnl
 ])
 
@@ -7749,7 +8252,7 @@ lt_ac_count=0
 # Add /usr/xpg4/bin/sed as it is typically found on Solaris
 # along with /bin/sed that truncates output.
 for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && continue
+  test ! -f "$lt_ac_sed" && continue
   cat /dev/null > conftest.in
   lt_ac_count=0
   echo $ECHO_N "0123456789$ECHO_C" >conftest.in
@@ -7766,9 +8269,9 @@ for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
     $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
     cmp -s conftest.out conftest.nl || break
     # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
+    test 10 -lt "$lt_ac_count" && break
     lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
+    if test "$lt_ac_count" -gt "$lt_ac_max"; then
       lt_ac_max=$lt_ac_count
       lt_cv_path_SED=$lt_ac_sed
     fi
@@ -7792,27 +8295,7 @@ dnl AC_DEFUN([LT_AC_PROG_SED], [])
 # Find out whether the shell is Bourne or XSI compatible,
 # or has some other useful features.
 m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,b/c, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   lt_unset=unset
 else
   lt_unset=false
@@ -7836,102 +8319,9 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
 ])# _LT_CHECK_SHELL_FEATURES
 
 
-# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-# ------------------------------------------------------
-# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-m4_defun([_LT_PROG_FUNCTION_REPLACE],
-[dnl {
-sed -e '/^$1 ()$/,/^} # $1 /c\
-$1 ()\
-{\
-m4_bpatsubsts([$2], [$], [\\], [^\([    ]\)], [\\\1])
-} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-])
-
-
-# _LT_PROG_REPLACE_SHELLFNS
-# -------------------------
-# Replace existing portable implementations of several shell functions with
-# equivalent extended shell implementations where those features are available..
-m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-[if test x"$xsi_shell" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
-    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-    # positional parameters, so assign one to ordinary parameter first.
-    func_stripname_result=${3}
-    func_stripname_result=${func_stripname_result#"${1}"}
-    func_stripname_result=${func_stripname_result%"${2}"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
-    func_split_long_opt_name=${1%%=*}
-    func_split_long_opt_arg=${1#*=}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
-    func_split_short_opt_arg=${1#??}
-    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
-    case ${1} in
-      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-      *)    func_lo2o_result=${1} ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
-
-  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
-
-  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
-fi
-
-if test x"$lt_shell_append" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
-    func_quote_for_eval "${2}"
-dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
-    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-
-  # Save a `func_append' function call where possible by direct use of '+='
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-else
-  # Save a `func_append' function call even when '+=' is not available
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
-  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-fi
-])
-
 # _LT_PATH_CONVERSION_FUNCTIONS
 # -----------------------------
-# Determine which file name conversion functions should be used by
+# Determine what file name conversion functions should be used by
 # func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
 # for certain cross-compile configurations and native mingw.
 m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
index 5d9acd8..94b0829 100644 (file)
@@ -1,14 +1,14 @@
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
-#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-#   Inc.
+#   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
+#   Foundation, Inc.
 #   Written by Gary V. Vaughan, 2004
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# serial 7 ltoptions.m4
+# serial 8 ltoptions.m4
 
 # This is to help aclocal find these macros, as it can't see m4_define.
 AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@@ -29,7 +29,7 @@ m4_define([_LT_SET_OPTION],
 [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
 m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
         _LT_MANGLE_DEFUN([$1], [$2]),
-    [m4_warning([Unknown $1 option `$2'])])[]dnl
+    [m4_warning([Unknown $1 option '$2'])])[]dnl
 ])
 
 
@@ -75,13 +75,15 @@ m4_if([$1],[LT_INIT],[
   dnl
   dnl If no reference was made to various pairs of opposing options, then
   dnl we run the default mode handler for the pair.  For example, if neither
-  dnl `shared' nor `disable-shared' was passed, we enable building of shared
+  dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
   dnl archives by default:
   _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
   _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
   _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
   _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
-                  [_LT_ENABLE_FAST_INSTALL])
+                  [_LT_ENABLE_FAST_INSTALL])
+  _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
+                  [_LT_WITH_AIX_SONAME([aix])])
   ])
 ])# _LT_SET_OPTIONS
 
@@ -112,7 +114,7 @@ AU_DEFUN([AC_LIBTOOL_DLOPEN],
 [_LT_SET_OPTION([LT_INIT], [dlopen])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
+put the 'dlopen' option into LT_INIT's first parameter.])
 ])
 
 dnl aclocal-1.4 backwards compatibility:
@@ -148,7 +150,7 @@ AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
 _LT_SET_OPTION([LT_INIT], [win32-dll])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
+put the 'win32-dll' option into LT_INIT's first parameter.])
 ])
 
 dnl aclocal-1.4 backwards compatibility:
@@ -157,9 +159,9 @@ dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
 
 # _LT_ENABLE_SHARED([DEFAULT])
 # ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# implement the --enable-shared flag, and supports the 'shared' and
+# 'disable-shared' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
 m4_define([_LT_ENABLE_SHARED],
 [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
 AC_ARG_ENABLE([shared],
@@ -172,14 +174,14 @@ AC_ARG_ENABLE([shared],
     *)
       enable_shared=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$pkg" = "X$p"; then
          enable_shared=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac],
     [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
@@ -211,9 +213,9 @@ dnl AC_DEFUN([AM_DISABLE_SHARED], [])
 
 # _LT_ENABLE_STATIC([DEFAULT])
 # ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# implement the --enable-static flag, and support the 'static' and
+# 'disable-static' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
 m4_define([_LT_ENABLE_STATIC],
 [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
 AC_ARG_ENABLE([static],
@@ -226,14 +228,14 @@ AC_ARG_ENABLE([static],
     *)
      enable_static=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$pkg" = "X$p"; then
          enable_static=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac],
     [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
@@ -265,9 +267,9 @@ dnl AC_DEFUN([AM_DISABLE_STATIC], [])
 
 # _LT_ENABLE_FAST_INSTALL([DEFAULT])
 # ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# implement the --enable-fast-install flag, and support the 'fast-install'
+# and 'disable-fast-install' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
 m4_define([_LT_ENABLE_FAST_INSTALL],
 [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
 AC_ARG_ENABLE([fast-install],
@@ -280,14 +282,14 @@ AC_ARG_ENABLE([fast-install],
     *)
       enable_fast_install=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$pkg" = "X$p"; then
          enable_fast_install=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac],
     [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
@@ -304,14 +306,14 @@ AU_DEFUN([AC_ENABLE_FAST_INSTALL],
 [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
+the 'fast-install' option into LT_INIT's first parameter.])
 ])
 
 AU_DEFUN([AC_DISABLE_FAST_INSTALL],
 [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
+the 'disable-fast-install' option into LT_INIT's first parameter.])
 ])
 
 dnl aclocal-1.4 backwards compatibility:
@@ -319,11 +321,64 @@ dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
 dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
 
 
+# _LT_WITH_AIX_SONAME([DEFAULT])
+# ----------------------------------
+# implement the --with-aix-soname flag, and support the `aix-soname=aix'
+# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
+# is either `aix', `both' or `svr4'.  If omitted, it defaults to `aix'.
+m4_define([_LT_WITH_AIX_SONAME],
+[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
+shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[[5-9]]*,yes)
+  AC_MSG_CHECKING([which variant of shared library versioning to provide])
+  AC_ARG_WITH([aix-soname],
+    [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
+      [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
+    [case $withval in
+    aix|svr4|both)
+      ;;
+    *)
+      AC_MSG_ERROR([Unknown argument to --with-aix-soname])
+      ;;
+    esac
+    lt_cv_with_aix_soname=$with_aix_soname],
+    [AC_CACHE_VAL([lt_cv_with_aix_soname],
+      [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
+    with_aix_soname=$lt_cv_with_aix_soname])
+  AC_MSG_RESULT([$with_aix_soname])
+  if test aix != "$with_aix_soname"; then
+    # For the AIX way of multilib, we name the shared archive member
+    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+    # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+    # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+    # the AIX toolchain works better with OBJECT_MODE set (default 32).
+    if test 64 = "${OBJECT_MODE-32}"; then
+      shared_archive_member_spec=shr_64
+    else
+      shared_archive_member_spec=shr
+    fi
+  fi
+  ;;
+*)
+  with_aix_soname=aix
+  ;;
+esac
+
+_LT_DECL([], [shared_archive_member_spec], [0],
+    [Shared archive member basename, for filename based shared library versioning on AIX])dnl
+])# _LT_WITH_AIX_SONAME
+
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
+
+
 # _LT_WITH_PIC([MODE])
 # --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
 # LT_INIT options.
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+# MODE is either 'yes' or 'no'.  If omitted, it defaults to 'both'.
 m4_define([_LT_WITH_PIC],
 [AC_ARG_WITH([pic],
     [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
@@ -334,19 +389,17 @@ m4_define([_LT_WITH_PIC],
     *)
       pic_mode=default
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for lt_pkg in $withval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$lt_pkg" = "X$lt_p"; then
          pic_mode=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac],
-    [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+    [pic_mode=m4_default([$1], [default])])
 
 _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
 ])# _LT_WITH_PIC
@@ -359,7 +412,7 @@ AU_DEFUN([AC_LIBTOOL_PICMODE],
 [_LT_SET_OPTION([LT_INIT], [pic-only])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
+put the 'pic-only' option into LT_INIT's first parameter.])
 ])
 
 dnl aclocal-1.4 backwards compatibility:
index 07a8602..fa04b52 100644 (file)
@@ -1,6 +1,6 @@
 # ltversion.m4 -- version numbers                      -*- Autoconf -*-
 #
-#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
 #   Written by Scott James Remnant, 2004
 #
 # This file is free software; the Free Software Foundation gives
@@ -9,15 +9,15 @@
 
 # @configure_input@
 
-# serial 3337 ltversion.m4
+# serial 4179 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.4.2])
-m4_define([LT_PACKAGE_REVISION], [1.3337])
+m4_define([LT_PACKAGE_VERSION], [2.4.6])
+m4_define([LT_PACKAGE_REVISION], [2.4.6])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.2'
-macro_revision='1.3337'
+[macro_version='2.4.6'
+macro_revision='2.4.6'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
index 7967cc2..003704c 100644 (file)
--- a/m4/nls.m4
+++ b/m4/nls.m4
@@ -1,5 +1,6 @@
-# nls.m4 serial 3 (gettext-0.15)
-dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc.
+# nls.m4 serial 5 (gettext-0.18)
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation,
+dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -17,15 +18,15 @@ dnl Authors:
 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
 dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
 
-AC_PREREQ(2.50)
+AC_PREREQ([2.50])
 
 AC_DEFUN([AM_NLS],
 [
   AC_MSG_CHECKING([whether NLS is requested])
   dnl Default is enabled NLS
-  AC_ARG_ENABLE(nls,
+  AC_ARG_ENABLE([nls],
     [  --disable-nls           do not use Native Language Support],
     USE_NLS=$enableval, USE_NLS=yes)
-  AC_MSG_RESULT($USE_NLS)
-  AC_SUBST(USE_NLS)
+  AC_MSG_RESULT([$USE_NLS])
+  AC_SUBST([USE_NLS])
 ])
index 0734762..47f36a4 100644 (file)
--- a/m4/po.m4
+++ b/m4/po.m4
@@ -1,5 +1,5 @@
-# po.m4 serial 15 (gettext-0.17)
-dnl Copyright (C) 1995-2007 Free Software Foundation, Inc.
+# po.m4 serial 17 (gettext-0.18)
+dnl Copyright (C) 1995-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -17,7 +17,7 @@ dnl Authors:
 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
 dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
 
-AC_PREREQ(2.50)
+AC_PREREQ([2.50])
 
 dnl Checks for all prerequisites of the po subdirectory.
 AC_DEFUN([AM_PO_SUBDIRS],
@@ -29,7 +29,7 @@ AC_DEFUN([AM_PO_SUBDIRS],
 
   dnl Release version of the gettext macros. This is used to ensure that
   dnl the gettext macros and po/Makefile.in.in are in sync.
-  AC_SUBST([GETTEXT_MACRO_VERSION], [0.17])
+  AC_SUBST([GETTEXT_MACRO_VERSION], [0.18])
 
   dnl Perform the following tests also if --disable-nls has been given,
   dnl because they are needed for "make dist" to work.
@@ -41,7 +41,7 @@ AC_DEFUN([AM_PO_SUBDIRS],
     [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
      (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
     :)
-  AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+  AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT])
 
   dnl Test whether it is GNU msgfmt >= 0.15.
 changequote(,)dnl
index a56365c..2d804ac 100644 (file)
@@ -1,5 +1,5 @@
-# progtest.m4 serial 4 (gettext-0.14.2)
-dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc.
+# progtest.m4 serial 6 (gettext-0.18)
+dnl Copyright (C) 1996-2003, 2005, 2008-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -16,7 +16,7 @@ dnl They are *not* in the public domain.
 dnl Authors:
 dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
 
-AC_PREREQ(2.50)
+AC_PREREQ([2.50])
 
 # Search path for a program which passes the given test.
 
@@ -55,7 +55,7 @@ rm -f conf$$.file
 # Extract the first word of "$2", so it can be a program name with args.
 set dummy $2; ac_word=[$]2
 AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
+AC_CACHE_VAL([ac_cv_path_$1],
 [case "[$]$1" in
   [[\\/]]* | ?:[[\\/]]*)
     ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
@@ -84,9 +84,9 @@ ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
 esac])dnl
 $1="$ac_cv_path_$1"
 if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
-  AC_MSG_RESULT([$]$1)
+  AC_MSG_RESULT([$][$1])
 else
-  AC_MSG_RESULT(no)
+  AC_MSG_RESULT([no])
 fi
-AC_SUBST($1)dnl
+AC_SUBST([$1])dnl
 ])
index 90462e1..72282d5 100644 (file)
@@ -1,5 +1,5 @@
 Name:           moonshot-ui
-Version:        0.7.2
+Version:        1.0.3
 Release:        2%{?dist}
 Summary:        Moonshot Federated Identity User Interface
 
index fecf500..83d8838 100644 (file)
@@ -1,5 +1,5 @@
 # Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2007 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
 #
 # This file can be copied and used freely without restrictions.  It can
 # be used in projects which are not available under the GNU General Public
@@ -8,8 +8,8 @@
 # Please note that the actual code of GNU gettext is covered by the GNU
 # General Public License and is *not* in the public domain.
 #
-# Origin: gettext-0.17
-GETTEXT_MACRO_VERSION = 0.17
+# Origin: gettext-0.18
+GETTEXT_MACRO_VERSION = 0.18
 
 PACKAGE = @PACKAGE@
 VERSION = @VERSION@
@@ -88,8 +88,8 @@ CATALOGS = @CATALOGS@
 .po.gmo:
        @lang=`echo $* | sed -e 's,.*/,,'`; \
        test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-       echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
-       cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+       echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \
+       cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
 
 .sin.sed:
        sed -e '/^#/d' $< > t-$@
@@ -193,8 +193,15 @@ $(POFILES): $(srcdir)/$(DOMAIN).pot
        @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
        if test -f "$(srcdir)/$${lang}.po"; then \
          test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-         echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
-         cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
+         echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \
+         cd $(srcdir) \
+           && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+                  '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+                    $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
+                  *) \
+                    $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \
+                esac; \
+              }; \
        else \
          $(MAKE) $${lang}.po-create; \
        fi
@@ -217,7 +224,6 @@ install-data: install-data-@USE_NLS@
        fi
 install-data-no: all
 install-data-yes: all
-       $(mkdir_p) $(DESTDIR)$(datadir)
        @catalogs='$(CATALOGS)'; \
        for cat in $$catalogs; do \
          cat=`basename $$cat`; \
@@ -269,7 +275,6 @@ installdirs-data: installdirs-data-@USE_NLS@
        fi
 installdirs-data-no:
 installdirs-data-yes:
-       $(mkdir_p) $(DESTDIR)$(datadir)
        @catalogs='$(CATALOGS)'; \
        for cat in $$catalogs; do \
          cat=`basename $$cat`; \
@@ -395,9 +400,15 @@ update-po: Makefile
        tmpdir=`pwd`; \
        echo "$$lang:"; \
        test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-       echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+       echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
        cd $(srcdir); \
-       if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
+       if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+              '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+                $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+              *) \
+                $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+            esac; \
+          }; then \
          if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
            rm -f $$tmpdir/$$lang.new.po; \
          else \
@@ -418,9 +429,13 @@ $(DUMMYPOFILES):
 update-gmo: Makefile $(GMOFILES)
        @:
 
+# Recreate Makefile by invoking config.status. Explicitly invoke the shell,
+# because execution permission bits may not work on the current file system.
+# Use @SHELL@, which is the shell determined by autoconf for the use by its
+# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient.
 Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
        cd $(top_builddir) \
-         && $(SHELL) ./config.status $(subdir)/$@.in po-directories
+         && @SHELL@ ./config.status $(subdir)/$@.in po-directories
 
 force:
 
index b330862..1a705ee 100644 (file)
@@ -1,2 +1,11 @@
 # List of source files which contain translatable strings.
+src/moonshot-idcard-widget.vala
+src/moonshot-identities-manager.vala
+src/moonshot-identity-dialog.vala
 src/moonshot-identity-management-view.vala
+src/moonshot-identity-manager-app.vala
+src/moonshot-password-dialog.vala
+src/moonshot-server-linux.vala
+src/moonshot-trust-anchor-dialog.vala
+src/moonshot-warning-dialog.vala
+src/moonshot-webp-parser.vala
index 9c2a995..af52487 100644 (file)
@@ -20,7 +20,7 @@ en@boldquot.po-update: en@boldquot.po-update-en
        ll=`echo $$lang | sed -e 's/@.*//'`; \
        LC_ALL=C; export LC_ALL; \
        cd $(srcdir); \
-       if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
+       if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
          if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
            rm -f $$tmpdir/$$lang.new.po; \
          else \
index 7c7b026..207b964 100644 (file)
@@ -1,16 +1,15 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR Free Software Foundation, Inc.
-# This file is distributed under the same license as the PACKAGE package.
+# This file is distributed under the same license as the moonshot-ui package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
-#: src/moonshot-identity-management-view.vala:561
-#: src/moonshot-identity-management-view.vala:829
+#: src/moonshot-identity-manager-app.vala:448
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: moonshot-ui 0.7.2\n"
+"Project-Id-Version: moonshot-ui 1.0.3\n"
 "Report-Msgid-Bugs-To: moonshot-community@jiscmail.ac.uk\n"
-"POT-Creation-Date: 2015-07-14 19:31+0000\n"
+"POT-Creation-Date: 2017-07-09 19:59+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,127 +18,405 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/moonshot-identity-management-view.vala:397
+#: src/moonshot-idcard-widget.vala:131
+msgid "Do not use a Moonshot identity for this service"
+msgstr ""
+
+#: src/moonshot-idcard-widget.vala:153 src/moonshot-identity-dialog.vala:57
+msgid "Username"
+msgstr ""
+
+#: src/moonshot-idcard-widget.vala:154
+msgid "Realm:"
+msgstr ""
+
+#: src/moonshot-idcard-widget.vala:156
+msgid "Trust anchor: Enterprise provisioned"
+msgstr ""
+
+#: src/moonshot-idcard-widget.vala:163
+msgid "Services: "
+msgstr ""
+
+#: src/moonshot-identities-manager.vala:316
+msgid "Before "
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:55
+msgid "Display Name"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:56
+msgid "Realm"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:58
+msgid "Password"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:114
+msgid "Add ID Card"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:130
+msgid "OK"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:154 src/moonshot-password-dialog.vala:86
+msgid "Remember password"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:226
+msgid "Trust anchor: "
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:227
+msgid "None"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:232
+msgid "Enterprise provisioned"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:247
+msgid "Clear Trust Anchor"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:252
 #, c-format
+msgid "You are about to clear the trust anchor fingerprint for '%s'."
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:255 src/moonshot-identity-dialog.vala:502
 msgid ""
-"Would you like to replace ID Card '%s' using nai '%s' with the new ID Card "
-"'%s'?"
+"\n"
+"\n"
+"Are you sure you want to do this?"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:283
+msgid "Added: "
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:293
+msgid "CA Certificate:"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:295
+msgid "Export Certificate"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:303
+msgid "Subject: "
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:310
+msgid "Subject-Alt: "
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:316
+msgid "Expiration date: "
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:322
+msgid "Constraint: "
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:406
+#: src/moonshot-identity-dialog.vala:348
+msgid "Missing required field: "
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:349
+msgid "Missing required fields: "
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:444
+msgid "Services:"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:499
 #, c-format
-msgid "Would you like to update ID Card '%s' using nai '%s'?"
+msgid ""
+"You are about to remove the service\n"
+"'%s'."
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:415
+#: src/moonshot-identity-dialog.vala:525
+#: src/moonshot-identity-management-view.vala:912
+#: src/moonshot-password-dialog.vala:63
+#: src/moonshot-trust-anchor-dialog.vala:154
+msgid "Cancel"
+msgstr ""
+
+#: src/moonshot-identity-dialog.vala:526
+msgid "Save"
+msgstr ""
+
+#: src/moonshot-identity-management-view.vala:101
+msgid "Moonshot Identity Selector"
+msgstr ""
+
+#: src/moonshot-identity-management-view.vala:115
 #, c-format
-msgid "Would you like to add '%s' ID Card to the ID Card Organizer?"
+msgid ""
+"The following identities use the same Network Access Identifier (NAI),\n"
+"'%s'."
+msgstr ""
+
+#: src/moonshot-identity-management-view.vala:116
+msgid ""
+"\n"
+"\n"
+"Duplicate NAIs are not allowed. Please remove identities you don't need, or "
+"modify"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:489
+#: src/moonshot-identity-management-view.vala:117
+msgid " user ID or issuer fields so that they are no longer the same NAI."
+msgstr ""
+
+#: src/moonshot-identity-management-view.vala:120
 #, c-format
-msgid "Are you sure you want to delete %s ID Card?"
+msgid ""
+"\n"
+"\n"
+"Display Name: '%s'\n"
+"Services:\n"
+"     %s"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:503
+#: src/moonshot-identity-management-view.vala:367
 #, c-format
-msgid "Identity requested for service: %s"
+msgid ""
+"Would you like to replace ID Card '%s' using nai '%s' with the new ID Card "
+"'%s'?"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:631
+#: src/moonshot-identity-management-view.vala:376
 #, c-format
-msgid "Are you sure you want to stop '%s' ID Card from being used with %s?"
+msgid "Would you like to update ID Card '%s' using nai '%s'?"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:713
-msgid "Moonshot project UI"
+#: src/moonshot-identity-management-view.vala:385
+#, c-format
+msgid "Would you like to add '%s' ID Card to the ID Card Organizer?"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:718
-msgid "Visit the Moonshot project web site"
+#: src/moonshot-identity-management-view.vala:423
+msgid "Edit Identity"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:720
-msgid "translator-credits"
+#: src/moonshot-identity-management-view.vala:478
+#, c-format
+msgid "You are about to remove the identity '%s'."
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:730
-msgid "_File"
+#: src/moonshot-identity-management-view.vala:480
+msgid "Are you sure you want to do this?"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:739
-msgid "Add ID Card"
+#: src/moonshot-identity-management-view.vala:490
+#, c-format
+msgid ""
+"Identity requested for service:\n"
+"%s"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:741
-msgid "Add a new ID Card"
+#: src/moonshot-identity-management-view.vala:496
+msgid "Select your identity:"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:750
-msgid "Quit"
+#: src/moonshot-identity-management-view.vala:665
+msgid "Moonshot project UI"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:752
-msgid "Quit the application"
+#: src/moonshot-identity-management-view.vala:668
+msgid "Visit the Moonshot project web site"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:758
+#: src/moonshot-identity-management-view.vala:686
 msgid "_Help"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:767
+#: src/moonshot-identity-management-view.vala:699
 msgid "About"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:769
+#: src/moonshot-identity-management-view.vala:701
 msgid "About this application"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:799
+#: src/moonshot-identity-management-view.vala:749
+msgid "Search for an identity or service"
+msgstr ""
+
+#: src/moonshot-identity-management-view.vala:752
 msgid "Search entry"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:799
+#: src/moonshot-identity-management-view.vala:752
 msgid "Search for a specific ID Card"
 msgstr ""
 
+#: src/moonshot-identity-management-view.vala:795
+msgid "Remember my identity choice for this service"
+msgstr ""
+
+#: src/moonshot-identity-management-view.vala:799
+msgid "Add"
+msgstr ""
+
 #: src/moonshot-identity-management-view.vala:804
-msgid "Search identity or service"
+msgid "Import"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:811
-msgid "Clear the current search"
+#: src/moonshot-identity-management-view.vala:809
+msgid "Edit"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:839
-msgid ""
-"No Identity: Send this identity to services which should not use Moonshot"
+#: src/moonshot-identity-management-view.vala:815
+msgid "Remove"
+msgstr ""
+
+#: src/moonshot-identity-management-view.vala:823
+msgid "Send"
+msgstr ""
+
+#: src/moonshot-identity-management-view.vala:885
+#, c-format
+msgid "Do you wish to use the %s service?"
+msgstr ""
+
+#: src/moonshot-identity-management-view.vala:887
+msgid "Select Yes to select an ID for this service, or No to cancel"
+msgstr ""
+
+#: src/moonshot-identity-management-view.vala:909
+msgid "Import File"
+msgstr ""
+
+#: src/moonshot-identity-management-view.vala:913
+msgid "Open"
+msgstr ""
+
+#: src/moonshot-identity-management-view.vala:964
+msgid "Import completed. No identities were added or updated."
+msgstr ""
+
+#: src/moonshot-identity-manager-app.vala:300
+msgid "Showed previously launched identity manager.\n"
+msgstr ""
+
+#: src/moonshot-identity-manager-app.vala:441
+#: src/moonshot-identity-manager-app.vala:453
+#, c-format
+msgid "error: %s\n"
+msgstr ""
+
+#: src/moonshot-identity-manager-app.vala:442
+#: src/moonshot-identity-manager-app.vala:454
+#, c-format
+msgid "Run '%s --help' to see a full list of available options\n"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:844
-msgid "Login: "
+#: src/moonshot-identity-manager-app.vala:449
+msgid "unable to initialize window\n"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:847
-msgid "Issuer:"
+#: src/moonshot-password-dialog.vala:59
+msgid "Moonshot - Password"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:851
-msgid "Username:"
+#: src/moonshot-password-dialog.vala:64
+msgid "Connect"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:855
+#: src/moonshot-password-dialog.vala:72
+msgid "Enter the password for "
+msgstr ""
+
+#: src/moonshot-password-dialog.vala:75
+msgid "User (NAI):"
+msgstr ""
+
+#: src/moonshot-password-dialog.vala:80
 msgid "Password:"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:861
-msgid "Remember password"
+#: src/moonshot-trust-anchor-dialog.vala:147
+msgid "Server's trust anchor certificate (SHA-256 fingerprint):"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:863
-msgid "Update Password"
+#: src/moonshot-trust-anchor-dialog.vala:149
+msgid "Trust Anchor"
 msgstr ""
 
-#: src/moonshot-identity-management-view.vala:888
-msgid "Services:"
+#: src/moonshot-trust-anchor-dialog.vala:155
+msgid "Confirm"
+msgstr ""
+
+#: src/moonshot-trust-anchor-dialog.vala:169
+msgid ""
+"You are using this identity for the first time with the following trust "
+"anchor:"
+msgstr ""
+
+#: src/moonshot-trust-anchor-dialog.vala:174
+#, c-format
+msgid ""
+"WARNING: The certificate we received for the authentication server for %s"
+msgstr ""
+
+#: src/moonshot-trust-anchor-dialog.vala:175
+msgid ""
+" is different than expected.  Either the server certificate has changed, or "
+"an"
+msgstr ""
+
+#: src/moonshot-trust-anchor-dialog.vala:176
+msgid ""
+" attack may be underway.  If you proceed to the wrong server, your login "
+"credentials may be compromised."
+msgstr ""
+
+#: src/moonshot-trust-anchor-dialog.vala:184
+msgid "Username: "
+msgstr ""
+
+#: src/moonshot-trust-anchor-dialog.vala:187
+msgid "Realm: "
+msgstr ""
+
+#: src/moonshot-trust-anchor-dialog.vala:190
+msgid ""
+"\n"
+"Please check with your realm administrator for the correct fingerprint"
+msgstr ""
+
+#: src/moonshot-trust-anchor-dialog.vala:191
+msgid " for your authentication server.  If it matches the above fingerprint,"
+msgstr ""
+
+#: src/moonshot-trust-anchor-dialog.vala:192
+msgid " confirm the change.  If not, then cancel."
+msgstr ""
+
+#: src/moonshot-warning-dialog.vala:71
+msgid "Do not show this message again"
+msgstr ""
+
+#: src/moonshot-warning-dialog.vala:95
+msgid "Warning"
+msgstr ""
+
+#: src/moonshot-webp-parser.vala:65
+#, c-format
+msgid ""
+"Usage %s [-f] WEB_PROVISIONING_FILE\n"
+" -f: add identities to flat file store.\n"
+msgstr ""
+
+#: src/moonshot-webp-parser.vala:72
+#, c-format
+msgid "%s does not exist\n"
 msgstr ""
diff --git a/src/moonshot-add-dialog.c b/src/moonshot-add-dialog.c
deleted file mode 100644 (file)
index d6a3ee0..0000000
+++ /dev/null
@@ -1,1101 +0,0 @@
-/* moonshot-add-dialog.c generated by valac 0.28.0, the Vala compiler
- * generated from moonshot-add-dialog.vala, do not modify */
-
-/*
- * Copyright (c) 2011-2014, JANET(UK)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of JANET(UK) nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
-*/
-
-#include <glib.h>
-#include <glib-object.h>
-#include <gtk/gtk.h>
-#include <stdlib.h>
-#include <string.h>
-#include <glib/gi18n-lib.h>
-#include <float.h>
-#include <math.h>
-#include <atk/atk.h>
-
-
-#define TYPE_ADD_IDENTITY_DIALOG (add_identity_dialog_get_type ())
-#define ADD_IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialog))
-#define ADD_IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialogClass))
-#define IS_ADD_IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_IDENTITY_DIALOG))
-#define IS_ADD_IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_IDENTITY_DIALOG))
-#define ADD_IDENTITY_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialogClass))
-
-typedef struct _AddIdentityDialog AddIdentityDialog;
-typedef struct _AddIdentityDialogClass AddIdentityDialogClass;
-typedef struct _AddIdentityDialogPrivate AddIdentityDialogPrivate;
-#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
-#define _g_free0(var) (var = (g_free (var), NULL))
-
-struct _AddIdentityDialog {
-       GtkDialog parent_instance;
-       AddIdentityDialogPrivate * priv;
-       gboolean complete;
-};
-
-struct _AddIdentityDialogClass {
-       GtkDialogClass parent_class;
-};
-
-struct _AddIdentityDialogPrivate {
-       GtkEntry* displayname_entry;
-       GtkLabel* displayname_label;
-       GtkEntry* issuer_entry;
-       GtkLabel* issuer_label;
-       GtkEntry* username_entry;
-       GtkLabel* username_label;
-       GtkEntry* password_entry;
-       GtkLabel* password_label;
-       GtkCheckButton* remember_checkbutton;
-       GtkLabel* message_label;
-};
-
-
-static gpointer add_identity_dialog_parent_class = NULL;
-
-GType add_identity_dialog_get_type (void) G_GNUC_CONST;
-#define ADD_IDENTITY_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialogPrivate))
-enum  {
-       ADD_IDENTITY_DIALOG_DUMMY_PROPERTY,
-       ADD_IDENTITY_DIALOG_DISPLAY_NAME,
-       ADD_IDENTITY_DIALOG_ISSUER,
-       ADD_IDENTITY_DIALOG_USERNAME,
-       ADD_IDENTITY_DIALOG_PASSWORD,
-       ADD_IDENTITY_DIALOG_STORE_PASSWORD
-};
-#define ADD_IDENTITY_DIALOG_displayname_labeltext _ ("Display Name")
-#define ADD_IDENTITY_DIALOG_issuer_labeltext _ ("Issuer")
-#define ADD_IDENTITY_DIALOG_username_labeltext _ ("Username")
-#define ADD_IDENTITY_DIALOG_password_labeltext _ ("Password")
-AddIdentityDialog* add_identity_dialog_new (void);
-AddIdentityDialog* add_identity_dialog_construct (GType object_type);
-static void add_identity_dialog_set_atk_relation (AddIdentityDialog* self, GtkWidget* widget, GtkWidget* target_widget, AtkRelationType relationship);
-static void add_identity_dialog_on_response (AddIdentityDialog* self, GtkDialog* source, gint response_id);
-static void _add_identity_dialog_on_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
-static gchar* add_identity_dialog_update_preamble (const gchar* preamble);
-static gchar* add_identity_dialog_update_message (const gchar* old_message, const gchar* new_item);
-static void add_identity_dialog_check_field (const gchar* field, GtkLabel* label, const gchar* fieldname, gchar** preamble, gchar** message);
-static gboolean add_identity_dialog_check_fields (AddIdentityDialog* self);
-gboolean add_identity_dialog_get_store_password (AddIdentityDialog* self);
-const gchar* add_identity_dialog_get_password (AddIdentityDialog* self);
-const gchar* add_identity_dialog_get_display_name (AddIdentityDialog* self);
-const gchar* add_identity_dialog_get_issuer (AddIdentityDialog* self);
-const gchar* add_identity_dialog_get_username (AddIdentityDialog* self);
-static void add_identity_dialog_finalize (GObject* obj);
-static void _vala_add_identity_dialog_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-
-
-static gpointer _g_object_ref0 (gpointer self) {
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       return self ? g_object_ref (self) : NULL;
-#line 122 "moonshot-add-dialog.c"
-}
-
-
-static const gchar* string_to_string (const gchar* self) {
-       const gchar* result = NULL;
-#line 1314 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 1315 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
-       result = self;
-#line 1315 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
-       return result;
-#line 134 "moonshot-add-dialog.c"
-}
-
-
-static void _add_identity_dialog_on_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) {
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       add_identity_dialog_on_response ((AddIdentityDialog*) self, _sender, response_id);
-#line 141 "moonshot-add-dialog.c"
-}
-
-
-AddIdentityDialog* add_identity_dialog_construct (GType object_type) {
-       AddIdentityDialog * self = NULL;
-       const gchar* _tmp0_ = NULL;
-       const gchar* _tmp1_ = NULL;
-       GtkWidget* content_area = NULL;
-       GtkWidget* _tmp2_ = NULL;
-       GtkWidget* _tmp3_ = NULL;
-       const gchar* _tmp4_ = NULL;
-       gchar* _tmp5_ = NULL;
-       gchar* _tmp6_ = NULL;
-       GtkLabel* _tmp7_ = NULL;
-       GtkLabel* _tmp8_ = NULL;
-       GtkEntry* _tmp9_ = NULL;
-       const gchar* _tmp10_ = NULL;
-       gchar* _tmp11_ = NULL;
-       gchar* _tmp12_ = NULL;
-       GtkLabel* _tmp13_ = NULL;
-       GtkLabel* _tmp14_ = NULL;
-       GtkEntry* _tmp15_ = NULL;
-       const gchar* _tmp16_ = NULL;
-       gchar* _tmp17_ = NULL;
-       gchar* _tmp18_ = NULL;
-       GtkLabel* _tmp19_ = NULL;
-       GtkLabel* _tmp20_ = NULL;
-       GtkEntry* _tmp21_ = NULL;
-       const gchar* _tmp22_ = NULL;
-       gchar* _tmp23_ = NULL;
-       gchar* _tmp24_ = NULL;
-       GtkLabel* _tmp25_ = NULL;
-       GtkLabel* _tmp26_ = NULL;
-       GtkEntry* _tmp27_ = NULL;
-       GtkEntry* _tmp28_ = NULL;
-       GtkEntry* _tmp29_ = NULL;
-       const gchar* _tmp30_ = NULL;
-       GtkCheckButton* _tmp31_ = NULL;
-       GtkLabel* _tmp32_ = NULL;
-       GtkLabel* _tmp33_ = NULL;
-       GtkLabel* _tmp34_ = NULL;
-       GtkEntry* _tmp35_ = NULL;
-       GtkLabel* _tmp36_ = NULL;
-       GtkEntry* _tmp37_ = NULL;
-       GtkLabel* _tmp38_ = NULL;
-       GtkEntry* _tmp39_ = NULL;
-       GtkEntry* _tmp40_ = NULL;
-       GtkEntry* _tmp41_ = NULL;
-       GtkTable* table = NULL;
-       GtkTable* _tmp42_ = NULL;
-       GtkLabel* _tmp43_ = NULL;
-       GtkLabel* _tmp44_ = NULL;
-       GtkEntry* _tmp45_ = NULL;
-       GtkLabel* _tmp46_ = NULL;
-       GtkEntry* _tmp47_ = NULL;
-       GtkLabel* _tmp48_ = NULL;
-       GtkEntry* _tmp49_ = NULL;
-       GtkLabel* _tmp50_ = NULL;
-       GtkEntry* _tmp51_ = NULL;
-       GtkCheckButton* _tmp52_ = NULL;
-       GtkVBox* vbox = NULL;
-       GtkVBox* _tmp53_ = NULL;
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       self = (AddIdentityDialog*) g_object_new (object_type, NULL);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp0_ = _ ("Add ID Card");
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_window_set_title ((GtkWindow*) self, _tmp0_);
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_window_set_modal ((GtkWindow*) self, TRUE);
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp1_ = _ ("Add ID Card");
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_dialog_add_buttons ((GtkDialog*) self, _tmp1_, GTK_RESPONSE_OK, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp2_ = gtk_dialog_get_content_area ((GtkDialog*) self);
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp3_ = _g_object_ref0 (_tmp2_);
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       content_area = _tmp3_;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_box_set_spacing (G_TYPE_CHECK_INSTANCE_CAST (content_area, GTK_TYPE_BOX, GtkBox), 12);
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp4_ = string_to_string (ADD_IDENTITY_DIALOG_displayname_labeltext);
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp5_ = g_strconcat (_tmp4_, ":", NULL);
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp6_ = _tmp5_;
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp7_ = (GtkLabel*) gtk_label_new (_tmp6_);
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_ref_sink (_tmp7_);
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->displayname_label);
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       self->priv->displayname_label = _tmp7_;
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_free0 (_tmp6_);
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp8_ = self->priv->displayname_label;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_misc_set_alignment ((GtkMisc*) _tmp8_, (gfloat) 1, (gfloat) 0.5);
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp9_ = (GtkEntry*) gtk_entry_new ();
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_ref_sink (_tmp9_);
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->displayname_entry);
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       self->priv->displayname_entry = _tmp9_;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp10_ = string_to_string (ADD_IDENTITY_DIALOG_issuer_labeltext);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp11_ = g_strconcat (_tmp10_, ":", NULL);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp12_ = _tmp11_;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp13_ = (GtkLabel*) gtk_label_new (_tmp12_);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_ref_sink (_tmp13_);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->issuer_label);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       self->priv->issuer_label = _tmp13_;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_free0 (_tmp12_);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp14_ = self->priv->issuer_label;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_misc_set_alignment ((GtkMisc*) _tmp14_, (gfloat) 1, (gfloat) 0.5);
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp15_ = (GtkEntry*) gtk_entry_new ();
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_ref_sink (_tmp15_);
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->issuer_entry);
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       self->priv->issuer_entry = _tmp15_;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp16_ = string_to_string (ADD_IDENTITY_DIALOG_username_labeltext);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp17_ = g_strconcat (_tmp16_, ":", NULL);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp18_ = _tmp17_;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp19_ = (GtkLabel*) gtk_label_new (_tmp18_);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_ref_sink (_tmp19_);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->username_label);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       self->priv->username_label = _tmp19_;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_free0 (_tmp18_);
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp20_ = self->priv->username_label;
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_misc_set_alignment ((GtkMisc*) _tmp20_, (gfloat) 1, (gfloat) 0.5);
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp21_ = (GtkEntry*) gtk_entry_new ();
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_ref_sink (_tmp21_);
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->username_entry);
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       self->priv->username_entry = _tmp21_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp22_ = string_to_string (ADD_IDENTITY_DIALOG_password_labeltext);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp23_ = g_strconcat (_tmp22_, ":", NULL);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp24_ = _tmp23_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp25_ = (GtkLabel*) gtk_label_new (_tmp24_);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_ref_sink (_tmp25_);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->password_label);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       self->priv->password_label = _tmp25_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_free0 (_tmp24_);
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp26_ = self->priv->password_label;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_misc_set_alignment ((GtkMisc*) _tmp26_, (gfloat) 1, (gfloat) 0.5);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp27_ = (GtkEntry*) gtk_entry_new ();
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_ref_sink (_tmp27_);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->password_entry);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       self->priv->password_entry = _tmp27_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp28_ = self->priv->password_entry;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_entry_set_invisible_char (_tmp28_, (gunichar) '*');
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp29_ = self->priv->password_entry;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_entry_set_visibility (_tmp29_, FALSE);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp30_ = _ ("Remember password");
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp31_ = (GtkCheckButton*) gtk_check_button_new_with_label (_tmp30_);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_ref_sink (_tmp31_);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->remember_checkbutton);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       self->priv->remember_checkbutton = _tmp31_;
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp32_ = (GtkLabel*) gtk_label_new ("");
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_ref_sink (_tmp32_);
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->message_label);
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       self->priv->message_label = _tmp32_;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp33_ = self->priv->message_label;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_widget_set_visible ((GtkWidget*) _tmp33_, FALSE);
-#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp34_ = self->priv->displayname_label;
-#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp35_ = self->priv->displayname_entry;
-#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       add_identity_dialog_set_atk_relation (self, (GtkWidget*) _tmp34_, (GtkWidget*) _tmp35_, ATK_RELATION_LABEL_FOR);
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp36_ = self->priv->issuer_label;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp37_ = self->priv->issuer_entry;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       add_identity_dialog_set_atk_relation (self, (GtkWidget*) _tmp36_, (GtkWidget*) _tmp37_, ATK_RELATION_LABEL_FOR);
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp38_ = self->priv->username_label;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp39_ = self->priv->username_entry;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       add_identity_dialog_set_atk_relation (self, (GtkWidget*) _tmp38_, (GtkWidget*) _tmp39_, ATK_RELATION_LABEL_FOR);
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp40_ = self->priv->password_entry;
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp41_ = self->priv->password_entry;
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       add_identity_dialog_set_atk_relation (self, (GtkWidget*) _tmp40_, (GtkWidget*) _tmp41_, ATK_RELATION_LABEL_FOR);
-#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp42_ = (GtkTable*) gtk_table_new ((guint) 6, (guint) 2, FALSE);
-#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_ref_sink (_tmp42_);
-#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       table = _tmp42_;
-#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_table_set_col_spacings (table, (guint) 10);
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_table_set_row_spacings (table, (guint) 10);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp43_ = self->priv->message_label;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_table_attach_defaults (table, (GtkWidget*) _tmp43_, (guint) 0, (guint) 2, (guint) 0, (guint) 1);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp44_ = self->priv->displayname_label;
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_table_attach_defaults (table, (GtkWidget*) _tmp44_, (guint) 0, (guint) 1, (guint) 1, (guint) 2);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp45_ = self->priv->displayname_entry;
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_table_attach_defaults (table, (GtkWidget*) _tmp45_, (guint) 1, (guint) 2, (guint) 1, (guint) 2);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp46_ = self->priv->issuer_label;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_table_attach_defaults (table, (GtkWidget*) _tmp46_, (guint) 0, (guint) 1, (guint) 2, (guint) 3);
-#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp47_ = self->priv->issuer_entry;
-#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_table_attach_defaults (table, (GtkWidget*) _tmp47_, (guint) 1, (guint) 2, (guint) 2, (guint) 3);
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp48_ = self->priv->username_label;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_table_attach_defaults (table, (GtkWidget*) _tmp48_, (guint) 0, (guint) 1, (guint) 3, (guint) 4);
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp49_ = self->priv->username_entry;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_table_attach_defaults (table, (GtkWidget*) _tmp49_, (guint) 1, (guint) 2, (guint) 3, (guint) 4);
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp50_ = self->priv->password_label;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_table_attach_defaults (table, (GtkWidget*) _tmp50_, (guint) 0, (guint) 1, (guint) 4, (guint) 5);
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp51_ = self->priv->password_entry;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_table_attach_defaults (table, (GtkWidget*) _tmp51_, (guint) 1, (guint) 2, (guint) 4, (guint) 5);
-#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp52_ = self->priv->remember_checkbutton;
-#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_table_attach_defaults (table, (GtkWidget*) _tmp52_, (guint) 1, (guint) 2, (guint) 5, (guint) 6);
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_signal_connect_object ((GtkDialog*) self, "response", (GCallback) _add_identity_dialog_on_response_gtk_dialog_response, self, 0);
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp53_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_ref_sink (_tmp53_);
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       vbox = _tmp53_;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_container_set_border_width ((GtkContainer*) vbox, (guint) 6);
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) table, FALSE, FALSE, (guint) 0);
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (content_area, GTK_TYPE_CONTAINER, GtkContainer), (GtkWidget*) vbox);
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_container_set_border_width ((GtkContainer*) self, (guint) 6);
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_window_set_resizable ((GtkWindow*) self, FALSE);
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_widget_show_all ((GtkWidget*) self);
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (vbox);
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (table);
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (content_area);
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       return self;
-#line 468 "moonshot-add-dialog.c"
-}
-
-
-AddIdentityDialog* add_identity_dialog_new (void) {
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       return add_identity_dialog_construct (TYPE_ADD_IDENTITY_DIALOG);
-#line 475 "moonshot-add-dialog.c"
-}
-
-
-static gchar* add_identity_dialog_update_preamble (const gchar* preamble) {
-       gchar* result = NULL;
-       const gchar* _tmp0_ = NULL;
-       const gchar* _tmp3_ = NULL;
-       gchar* _tmp4_ = NULL;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_val_if_fail (preamble != NULL, NULL);
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp0_ = preamble;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       if (g_strcmp0 (_tmp0_, "") == 0) {
-#line 490 "moonshot-add-dialog.c"
-               const gchar* _tmp1_ = NULL;
-               gchar* _tmp2_ = NULL;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp1_ = _ ("Missing required field: ");
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp2_ = g_strdup (_tmp1_);
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               result = _tmp2_;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               return result;
-#line 501 "moonshot-add-dialog.c"
-       }
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp3_ = _ ("Missing required fields: ");
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp4_ = g_strdup (_tmp3_);
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       result = _tmp4_;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       return result;
-#line 511 "moonshot-add-dialog.c"
-}
-
-
-static gchar* add_identity_dialog_update_message (const gchar* old_message, const gchar* new_item) {
-       gchar* result = NULL;
-       gchar* message = NULL;
-       const gchar* _tmp0_ = NULL;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_val_if_fail (old_message != NULL, NULL);
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_val_if_fail (new_item != NULL, NULL);
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp0_ = old_message;
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       if (g_strcmp0 (_tmp0_, "") == 0) {
-#line 527 "moonshot-add-dialog.c"
-               const gchar* _tmp1_ = NULL;
-               gchar* _tmp2_ = NULL;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp1_ = new_item;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp2_ = g_strdup (_tmp1_);
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _g_free0 (message);
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               message = _tmp2_;
-#line 538 "moonshot-add-dialog.c"
-       } else {
-               const gchar* _tmp3_ = NULL;
-               gchar* _tmp4_ = NULL;
-               gchar* _tmp5_ = NULL;
-               const gchar* _tmp6_ = NULL;
-               gchar* _tmp7_ = NULL;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp3_ = old_message;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp4_ = g_strconcat (_tmp3_, ", ", NULL);
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp5_ = _tmp4_;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp6_ = new_item;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp7_ = g_strconcat (_tmp5_, _tmp6_, NULL);
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _g_free0 (message);
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               message = _tmp7_;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _g_free0 (_tmp5_);
-#line 561 "moonshot-add-dialog.c"
-       }
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       result = message;
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       return result;
-#line 567 "moonshot-add-dialog.c"
-}
-
-
-static void add_identity_dialog_check_field (const gchar* field, GtkLabel* label, const gchar* fieldname, gchar** preamble, gchar** message) {
-       const gchar* _tmp0_ = NULL;
-       GtkLabel* _tmp6_ = NULL;
-       const gchar* _tmp7_ = NULL;
-       const gchar* _tmp8_ = NULL;
-       gchar* _tmp9_ = NULL;
-       gchar* _tmp10_ = NULL;
-       const gchar* _tmp11_ = NULL;
-       gchar* _tmp12_ = NULL;
-       const gchar* _tmp13_ = NULL;
-       const gchar* _tmp14_ = NULL;
-       gchar* _tmp15_ = NULL;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_if_fail (field != NULL);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_if_fail (label != NULL);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_if_fail (fieldname != NULL);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_if_fail (*preamble != NULL);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_if_fail (*message != NULL);
-#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp0_ = field;
-#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       if (g_strcmp0 (_tmp0_, "") != 0) {
-#line 597 "moonshot-add-dialog.c"
-               GtkLabel* _tmp1_ = NULL;
-               const gchar* _tmp2_ = NULL;
-               const gchar* _tmp3_ = NULL;
-               gchar* _tmp4_ = NULL;
-               gchar* _tmp5_ = NULL;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp1_ = label;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp2_ = fieldname;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp3_ = string_to_string (_tmp2_);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp4_ = g_strconcat (_tmp3_, ":", NULL);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp5_ = _tmp4_;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               gtk_label_set_markup (_tmp1_, _tmp5_);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _g_free0 (_tmp5_);
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               return;
-#line 619 "moonshot-add-dialog.c"
-       }
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp6_ = label;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp7_ = fieldname;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp8_ = string_to_string (_tmp7_);
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp9_ = g_strconcat ("<span foreground=\"red\">", _tmp8_, ":</span>", NULL);
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp10_ = _tmp9_;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       gtk_label_set_markup (_tmp6_, _tmp10_);
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_free0 (_tmp10_);
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp11_ = *preamble;
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp12_ = add_identity_dialog_update_preamble (_tmp11_);
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_free0 (*preamble);
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       *preamble = _tmp12_;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp13_ = *message;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp14_ = fieldname;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp15_ = add_identity_dialog_update_message (_tmp13_, _tmp14_);
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_free0 (*message);
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       *message = _tmp15_;
-#line 653 "moonshot-add-dialog.c"
-}
-
-
-static gboolean add_identity_dialog_check_fields (AddIdentityDialog* self) {
-       gboolean result = FALSE;
-       gchar* preamble = NULL;
-       gchar* _tmp0_ = NULL;
-       gchar* message = NULL;
-       gchar* _tmp1_ = NULL;
-       const gchar* _tmp2_ = NULL;
-       gboolean _tmp3_ = FALSE;
-       gboolean _tmp4_ = FALSE;
-       gchar* password_test = NULL;
-       gchar* _tmp7_ = NULL;
-       const gchar* _tmp8_ = NULL;
-       const gchar* _tmp9_ = NULL;
-       GtkLabel* _tmp10_ = NULL;
-       const gchar* _tmp11_ = NULL;
-       const gchar* _tmp12_ = NULL;
-       GtkLabel* _tmp13_ = NULL;
-       const gchar* _tmp14_ = NULL;
-       const gchar* _tmp15_ = NULL;
-       GtkLabel* _tmp16_ = NULL;
-       const gchar* _tmp17_ = NULL;
-       GtkLabel* _tmp18_ = NULL;
-       const gchar* _tmp19_ = NULL;
-#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_val_if_fail (self != NULL, FALSE);
-#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp0_ = g_strdup ("");
-#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       preamble = _tmp0_;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp1_ = g_strdup ("");
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       message = _tmp1_;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp3_ = add_identity_dialog_get_store_password (self);
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp4_ = _tmp3_;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       if (_tmp4_) {
-#line 696 "moonshot-add-dialog.c"
-               const gchar* _tmp5_ = NULL;
-               const gchar* _tmp6_ = NULL;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp5_ = add_identity_dialog_get_password (self);
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp6_ = _tmp5_;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp2_ = _tmp6_;
-#line 705 "moonshot-add-dialog.c"
-       } else {
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp2_ = "not required";
-#line 709 "moonshot-add-dialog.c"
-       }
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp7_ = g_strdup (_tmp2_);
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       password_test = _tmp7_;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp8_ = add_identity_dialog_get_display_name (self);
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp9_ = _tmp8_;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp10_ = self->priv->displayname_label;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       add_identity_dialog_check_field (_tmp9_, _tmp10_, ADD_IDENTITY_DIALOG_displayname_labeltext, &preamble, &message);
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp11_ = add_identity_dialog_get_issuer (self);
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp12_ = _tmp11_;
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp13_ = self->priv->issuer_label;
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       add_identity_dialog_check_field (_tmp12_, _tmp13_, ADD_IDENTITY_DIALOG_issuer_labeltext, &preamble, &message);
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp14_ = add_identity_dialog_get_username (self);
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp15_ = _tmp14_;
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp16_ = self->priv->username_label;
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       add_identity_dialog_check_field (_tmp15_, _tmp16_, ADD_IDENTITY_DIALOG_username_labeltext, &preamble, &message);
-#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp17_ = password_test;
-#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp18_ = self->priv->password_label;
-#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       add_identity_dialog_check_field (_tmp17_, _tmp18_, ADD_IDENTITY_DIALOG_password_labeltext, &preamble, &message);
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp19_ = message;
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       if (g_strcmp0 (_tmp19_, "") != 0) {
-#line 749 "moonshot-add-dialog.c"
-               GtkLabel* _tmp20_ = NULL;
-               GtkLabel* _tmp21_ = NULL;
-               const gchar* _tmp22_ = NULL;
-               const gchar* _tmp23_ = NULL;
-               const gchar* _tmp24_ = NULL;
-               const gchar* _tmp25_ = NULL;
-               gchar* _tmp26_ = NULL;
-               gchar* _tmp27_ = NULL;
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp20_ = self->priv->message_label;
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               gtk_widget_set_visible ((GtkWidget*) _tmp20_, TRUE);
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp21_ = self->priv->message_label;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp22_ = preamble;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp23_ = string_to_string (_tmp22_);
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp24_ = message;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp25_ = string_to_string (_tmp24_);
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp26_ = g_strconcat ("<span foreground=\"red\">", _tmp23_, _tmp25_, "</span>", NULL);
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _tmp27_ = _tmp26_;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               gtk_label_set_markup (_tmp21_, _tmp27_);
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _g_free0 (_tmp27_);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               result = FALSE;
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _g_free0 (password_test);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _g_free0 (message);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               _g_free0 (preamble);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               return result;
-#line 790 "moonshot-add-dialog.c"
-       }
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       result = TRUE;
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_free0 (password_test);
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_free0 (message);
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_free0 (preamble);
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       return result;
-#line 802 "moonshot-add-dialog.c"
-}
-
-
-static void add_identity_dialog_on_response (AddIdentityDialog* self, GtkDialog* source, gint response_id) {
-       gint _tmp0_ = 0;
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_if_fail (self != NULL);
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_if_fail (source != NULL);
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp0_ = response_id;
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       switch (_tmp0_) {
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               case GTK_RESPONSE_OK:
-#line 818 "moonshot-add-dialog.c"
-               {
-                       gboolean _tmp1_ = FALSE;
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-                       _tmp1_ = add_identity_dialog_check_fields (self);
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-                       self->complete = _tmp1_;
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-                       break;
-#line 827 "moonshot-add-dialog.c"
-               }
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               case GTK_RESPONSE_CANCEL:
-#line 831 "moonshot-add-dialog.c"
-               {
-#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-                       self->complete = TRUE;
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-                       break;
-#line 837 "moonshot-add-dialog.c"
-               }
-               default:
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               break;
-#line 842 "moonshot-add-dialog.c"
-       }
-}
-
-
-static void add_identity_dialog_set_atk_relation (AddIdentityDialog* self, GtkWidget* widget, GtkWidget* target_widget, AtkRelationType relationship) {
-       AtkObject* atk_widget = NULL;
-       GtkWidget* _tmp0_ = NULL;
-       AtkObject* _tmp1_ = NULL;
-       AtkObject* _tmp2_ = NULL;
-       AtkObject* atk_target_widget = NULL;
-       GtkWidget* _tmp3_ = NULL;
-       AtkObject* _tmp4_ = NULL;
-       AtkObject* _tmp5_ = NULL;
-       AtkRelationType _tmp6_ = 0;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_if_fail (self != NULL);
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_if_fail (widget != NULL);
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_if_fail (target_widget != NULL);
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp0_ = widget;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp1_ = gtk_widget_get_accessible (_tmp0_);
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp2_ = _g_object_ref0 (_tmp1_);
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       atk_widget = _tmp2_;
-#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp3_ = target_widget;
-#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp4_ = gtk_widget_get_accessible (_tmp3_);
-#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp5_ = _g_object_ref0 (_tmp4_);
-#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       atk_target_widget = _tmp5_;
-#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp6_ = relationship;
-#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       atk_object_add_relationship (atk_widget, _tmp6_, atk_target_widget);
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (atk_target_widget);
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (atk_widget);
-#line 887 "moonshot-add-dialog.c"
-}
-
-
-const gchar* add_identity_dialog_get_display_name (AddIdentityDialog* self) {
-       const gchar* result;
-       GtkEntry* _tmp0_ = NULL;
-       const gchar* _tmp1_ = NULL;
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp0_ = self->priv->displayname_entry;
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp1_ = gtk_entry_get_text (_tmp0_);
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       result = _tmp1_;
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       return result;
-#line 905 "moonshot-add-dialog.c"
-}
-
-
-const gchar* add_identity_dialog_get_issuer (AddIdentityDialog* self) {
-       const gchar* result;
-       GtkEntry* _tmp0_ = NULL;
-       const gchar* _tmp1_ = NULL;
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp0_ = self->priv->issuer_entry;
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp1_ = gtk_entry_get_text (_tmp0_);
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       result = _tmp1_;
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       return result;
-#line 923 "moonshot-add-dialog.c"
-}
-
-
-const gchar* add_identity_dialog_get_username (AddIdentityDialog* self) {
-       const gchar* result;
-       GtkEntry* _tmp0_ = NULL;
-       const gchar* _tmp1_ = NULL;
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp0_ = self->priv->username_entry;
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp1_ = gtk_entry_get_text (_tmp0_);
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       result = _tmp1_;
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       return result;
-#line 941 "moonshot-add-dialog.c"
-}
-
-
-const gchar* add_identity_dialog_get_password (AddIdentityDialog* self) {
-       const gchar* result;
-       GtkEntry* _tmp0_ = NULL;
-       const gchar* _tmp1_ = NULL;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp0_ = self->priv->password_entry;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp1_ = gtk_entry_get_text (_tmp0_);
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       result = _tmp1_;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       return result;
-#line 959 "moonshot-add-dialog.c"
-}
-
-
-gboolean add_identity_dialog_get_store_password (AddIdentityDialog* self) {
-       gboolean result;
-       GtkCheckButton* _tmp0_ = NULL;
-       gboolean _tmp1_ = FALSE;
-       gboolean _tmp2_ = FALSE;
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_return_val_if_fail (self != NULL, FALSE);
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp0_ = self->priv->remember_checkbutton;
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp1_ = gtk_toggle_button_get_active ((GtkToggleButton*) _tmp0_);
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _tmp2_ = _tmp1_;
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       result = _tmp2_;
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       return result;
-#line 980 "moonshot-add-dialog.c"
-}
-
-
-static void add_identity_dialog_class_init (AddIdentityDialogClass * klass) {
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       add_identity_dialog_parent_class = g_type_class_peek_parent (klass);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_type_class_add_private (klass, sizeof (AddIdentityDialogPrivate));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       G_OBJECT_CLASS (klass)->get_property = _vala_add_identity_dialog_get_property;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       G_OBJECT_CLASS (klass)->finalize = add_identity_dialog_finalize;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), ADD_IDENTITY_DIALOG_DISPLAY_NAME, g_param_spec_string ("display-name", "display-name", "display-name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), ADD_IDENTITY_DIALOG_ISSUER, g_param_spec_string ("issuer", "issuer", "issuer", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), ADD_IDENTITY_DIALOG_USERNAME, g_param_spec_string ("username", "username", "username", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), ADD_IDENTITY_DIALOG_PASSWORD, g_param_spec_string ("password", "password", "password", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), ADD_IDENTITY_DIALOG_STORE_PASSWORD, g_param_spec_boolean ("store-password", "store-password", "store-password", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
-#line 1003 "moonshot-add-dialog.c"
-}
-
-
-static void add_identity_dialog_instance_init (AddIdentityDialog * self) {
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       self->priv = ADD_IDENTITY_DIALOG_GET_PRIVATE (self);
-#line 1010 "moonshot-add-dialog.c"
-}
-
-
-static void add_identity_dialog_finalize (GObject* obj) {
-       AddIdentityDialog * self;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialog);
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->displayname_entry);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->displayname_label);
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->issuer_entry);
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->issuer_label);
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->username_entry);
-#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->username_label);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->password_entry);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->password_label);
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->remember_checkbutton);
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       _g_object_unref0 (self->priv->message_label);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       G_OBJECT_CLASS (add_identity_dialog_parent_class)->finalize (obj);
-#line 1040 "moonshot-add-dialog.c"
-}
-
-
-GType add_identity_dialog_get_type (void) {
-       static volatile gsize add_identity_dialog_type_id__volatile = 0;
-       if (g_once_init_enter (&add_identity_dialog_type_id__volatile)) {
-               static const GTypeInfo g_define_type_info = { sizeof (AddIdentityDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) add_identity_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AddIdentityDialog), 0, (GInstanceInitFunc) add_identity_dialog_instance_init, NULL };
-               GType add_identity_dialog_type_id;
-               add_identity_dialog_type_id = g_type_register_static (GTK_TYPE_DIALOG, "AddIdentityDialog", &g_define_type_info, 0);
-               g_once_init_leave (&add_identity_dialog_type_id__volatile, add_identity_dialog_type_id);
-       }
-       return add_identity_dialog_type_id__volatile;
-}
-
-
-static void _vala_add_identity_dialog_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
-       AddIdentityDialog * self;
-       self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialog);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-       switch (property_id) {
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               case ADD_IDENTITY_DIALOG_DISPLAY_NAME:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               g_value_set_string (value, add_identity_dialog_get_display_name (self));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               break;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               case ADD_IDENTITY_DIALOG_ISSUER:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               g_value_set_string (value, add_identity_dialog_get_issuer (self));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               break;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               case ADD_IDENTITY_DIALOG_USERNAME:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               g_value_set_string (value, add_identity_dialog_get_username (self));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               break;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               case ADD_IDENTITY_DIALOG_PASSWORD:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               g_value_set_string (value, add_identity_dialog_get_password (self));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               break;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               case ADD_IDENTITY_DIALOG_STORE_PASSWORD:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               g_value_set_boolean (value, add_identity_dialog_get_store_password (self));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               break;
-#line 1091 "moonshot-add-dialog.c"
-               default:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-add-dialog.vala"
-               break;
-#line 1097 "moonshot-add-dialog.c"
-       }
-}
-
-
-
diff --git a/src/moonshot-add-dialog.vala b/src/moonshot-add-dialog.vala
deleted file mode 100644 (file)
index ad4f241..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright (c) 2011-2014, JANET(UK)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of JANET(UK) nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
-*/
-using Gtk;
-
-class AddIdentityDialog : Dialog
-{
-    static const string displayname_labeltext = _("Display Name");
-    static const string issuer_labeltext = _("Issuer");
-    static const string username_labeltext = _("Username");
-    static const string password_labeltext = _("Password");
-    private Entry displayname_entry;
-    private Label displayname_label;
-    private Entry issuer_entry;
-    private Label issuer_label;
-    private Entry username_entry;
-    private Label username_label;
-    private Entry password_entry;
-    private Label password_label;
-    private CheckButton remember_checkbutton;
-    private Label message_label;
-    public bool complete;
-    
-    public string display_name {
-        get { return displayname_entry.get_text(); }
-    }
-
-    public string issuer {
-        get { return issuer_entry.get_text (); }
-    }
-
-     public string username {
-        get { return username_entry.get_text (); }
-    }
-
-    public string password {
-        get { return password_entry.get_text (); }
-    }
-
-    public bool store_password {
-        get { return remember_checkbutton.active; }
-    }
-
-    public AddIdentityDialog ()
-    {
-        this.set_title (_("Add ID Card"));
-        this.set_modal (true);
-
-        this.add_buttons (_("Add ID Card"), ResponseType.OK,
-#if VALA_0_12
-                          Stock.CANCEL, ResponseType.CANCEL);
-#else
-                          STOCK_CANCEL, ResponseType.CANCEL);
-#endif
-
-        var content_area = this.get_content_area ();
-        ((Box) content_area).set_spacing (12);
-        
-        displayname_label = new Label (@"$displayname_labeltext:");
-        displayname_label.set_alignment (1, (float) 0.5);
-        displayname_entry = new Entry ();
-        issuer_label = new Label (@"$issuer_labeltext:");
-        issuer_label.set_alignment (1, (float) 0.5);
-        this.issuer_entry = new Entry ();
-        username_label = new Label (@"$username_labeltext:");
-        username_label.set_alignment (1, (float) 0.5);
-        this.username_entry = new Entry ();
-        password_label = new Label (@"$password_labeltext:");
-        password_label.set_alignment (1, (float) 0.5);
-        this.password_entry = new Entry ();
-        password_entry.set_invisible_char ('*');
-        password_entry.set_visibility (false);
-        this.remember_checkbutton = new CheckButton.with_label (_("Remember password"));
-        this.message_label = new Label("");
-        message_label.set_visible(false);
-
-        set_atk_relation (displayname_label, displayname_entry, Atk.RelationType.LABEL_FOR);
-        set_atk_relation (issuer_label, issuer_entry, Atk.RelationType.LABEL_FOR);
-        set_atk_relation (username_label, username_entry, Atk.RelationType.LABEL_FOR);
-        set_atk_relation (password_entry, password_entry, Atk.RelationType.LABEL_FOR);
-
-        var table = new Table (6, 2, false);
-        table.set_col_spacings (10);
-        table.set_row_spacings (10);
-        
-        table.attach_defaults (message_label, 0, 2, 0, 1);
-        table.attach_defaults (displayname_label, 0, 1, 1, 2);
-        table.attach_defaults (displayname_entry, 1, 2, 1, 2);
-        table.attach_defaults (issuer_label, 0, 1, 2, 3);
-        table.attach_defaults (issuer_entry, 1, 2, 2, 3);
-        table.attach_defaults (username_label, 0, 1, 3, 4);
-        table.attach_defaults (username_entry, 1, 2, 3, 4);
-        table.attach_defaults (password_label, 0, 1, 4, 5);
-        table.attach_defaults (password_entry, 1, 2, 4, 5);
-        table.attach_defaults (remember_checkbutton,  1, 2, 5, 6);
-
-        this.response.connect(on_response);
-        var vbox = new VBox (false, 0);
-        vbox.set_border_width (6);
-        vbox.pack_start (table, false, false, 0);
-
-        ((Container) content_area).add (vbox);
-
-        this.set_border_width (6);
-        this.set_resizable (false);
-        this.show_all ();
-    }
-
-    private static string update_preamble(string preamble)
-    {
-        if (preamble == "")
-            return _("Missing required field: ");
-        return _("Missing required fields: ");
-    }
-
-    private static string update_message(string old_message, string new_item)
-    {
-        string message;
-        if (old_message == "")
-            message = new_item;
-        else
-            message = old_message + ", " + new_item;
-        return message;
-    }
-
-    private static void check_field(string field, Label label, string fieldname, ref string preamble, ref string message)
-    {
-        if (field != "") {
-            label.set_markup(@"$fieldname:");
-            return;
-        }
-        label.set_markup(@"<span foreground=\"red\">$fieldname:</span>");
-        preamble = update_preamble(preamble);
-        message = update_message(message, fieldname);
-    }
-
-    private bool check_fields()
-    {
-        string preamble = "";
-        string message = "";
-        string password_test = store_password ? password : "not required";
-        check_field(display_name, displayname_label, displayname_labeltext, ref preamble, ref message);
-        check_field(issuer, issuer_label, issuer_labeltext, ref preamble, ref message);
-        check_field(username, username_label, username_labeltext, ref preamble, ref message);
-        check_field(password_test, password_label, password_labeltext, ref preamble, ref message);
-        if (message != "") {
-            message_label.set_visible(true);
-            message_label.set_markup(@"<span foreground=\"red\">$preamble$message</span>");
-            return false;
-        }
-        return true;
-    }
-
-    private void on_response (Dialog source, int response_id)
-    {
-        switch (response_id) {
-        case ResponseType.OK:
-            complete = check_fields();
-            break;
-        case ResponseType.CANCEL:
-            complete = true;
-            break;
-        }
-    }
-
-    private void set_atk_relation (Widget widget, Widget target_widget, Atk.RelationType relationship)
-    {
-        var atk_widget = widget.get_accessible ();
-        var atk_target_widget = target_widget.get_accessible ();
-
-        atk_widget.add_relationship (relationship, atk_target_widget);
-    }
-}
diff --git a/src/moonshot-crypto-utils.c b/src/moonshot-crypto-utils.c
new file mode 100644 (file)
index 0000000..a14c610
--- /dev/null
@@ -0,0 +1,29 @@
+#include <string.h>
+#include <openssl/bio.h>
+#include <openssl/pem.h>
+
+#include <stdio.h>
+
+char* get_cert_valid_before(const unsigned char* buf, int len, char* datebuf, int datebuf_len)
+{
+    datebuf[0]='\0';
+
+    unsigned char *p = (unsigned char*) buf;
+    X509* x = d2i_X509(NULL, &p, len);
+    if (x == NULL) {
+        return "Error calling d2i_X509()!";
+    }
+
+    BIO* out_bio = BIO_new(BIO_s_mem());
+    ASN1_TIME* time = X509_get_notAfter(x);
+
+    if (ASN1_TIME_print(out_bio, time)) {
+        int write = BIO_read(out_bio, datebuf, datebuf_len - 1);
+        datebuf[write]='\0';
+    }
+
+    datebuf[datebuf_len - 1] = '\0';
+    BIO_free(out_bio);
+    X509_free(x);
+    return "";
+}
index 7e6c9d8..74cfc79 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-custom-vbox.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-custom-vbox.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-custom-vbox.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,8 @@
 #include <glib.h>
 #include <glib-object.h>
 #include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
 
 
 #define TYPE_CUSTOM_VBOX (custom_vbox_get_type ())
@@ -49,16 +51,6 @@ typedef struct _CustomVBox CustomVBox;
 typedef struct _CustomVBoxClass CustomVBoxClass;
 typedef struct _CustomVBoxPrivate CustomVBoxPrivate;
 
-#define TYPE_ID_CARD_WIDGET (id_card_widget_get_type ())
-#define ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD_WIDGET, IdCardWidget))
-#define ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
-#define IS_ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD_WIDGET))
-#define IS_ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD_WIDGET))
-#define ID_CARD_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
-
-typedef struct _IdCardWidget IdCardWidget;
-typedef struct _IdCardWidgetClass IdCardWidgetClass;
-
 #define TYPE_IDENTITY_MANAGER_VIEW (identity_manager_view_get_type ())
 #define IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerView))
 #define IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
@@ -68,40 +60,39 @@ typedef struct _IdCardWidgetClass IdCardWidgetClass;
 
 typedef struct _IdentityManagerView IdentityManagerView;
 typedef struct _IdentityManagerViewClass IdentityManagerViewClass;
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
-typedef struct _IdentityManagerViewPrivate IdentityManagerViewPrivate;
-
-#define TYPE_IDENTITY_MANAGER_APP (identity_manager_app_get_type ())
-#define IDENTITY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_APP, IdentityManagerApp))
-#define IDENTITY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_APP, IdentityManagerAppClass))
-#define IS_IDENTITY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_APP))
-#define IS_IDENTITY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_APP))
-#define IDENTITY_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_APP, IdentityManagerAppClass))
-
-typedef struct _IdentityManagerApp IdentityManagerApp;
-typedef struct _IdentityManagerAppClass IdentityManagerAppClass;
-
-#define TYPE_IDENTITY_MANAGER_MODEL (identity_manager_model_get_type ())
-#define IDENTITY_MANAGER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModel))
-#define IDENTITY_MANAGER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModelClass))
-#define IS_IDENTITY_MANAGER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_MODEL))
-#define IS_IDENTITY_MANAGER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_MODEL))
-#define IDENTITY_MANAGER_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModelClass))
-
-typedef struct _IdentityManagerModel IdentityManagerModel;
-typedef struct _IdentityManagerModelClass IdentityManagerModelClass;
-
-#define TYPE_IDENTITY_REQUEST (identity_request_get_type ())
-#define IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_REQUEST, IdentityRequest))
-#define IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
-#define IS_IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_REQUEST))
-#define IS_IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_REQUEST))
-#define IDENTITY_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
-
-typedef struct _IdentityRequest IdentityRequest;
-typedef struct _IdentityRequestClass IdentityRequestClass;
+
+#define TYPE_ID_CARD_WIDGET (id_card_widget_get_type ())
+#define ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD_WIDGET, IdCardWidget))
+#define ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
+#define IS_ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD_WIDGET))
+#define IS_ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD_WIDGET))
+#define ID_CARD_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
+
+typedef struct _IdCardWidget IdCardWidget;
+typedef struct _IdCardWidgetClass IdCardWidgetClass;
 #define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
 
+#define TYPE_ID_CARD (id_card_get_type ())
+#define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
+#define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
+#define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
+#define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
+#define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
+
+typedef struct _IdCard IdCard;
+typedef struct _IdCardClass IdCardClass;
+
 struct _CustomVBox {
        GtkVBox parent_instance;
        CustomVBoxPrivate * priv;
@@ -112,60 +103,43 @@ struct _CustomVBoxClass {
 };
 
 struct _CustomVBoxPrivate {
-       IdCardWidget* _current_idcard;
        IdentityManagerView* main_window;
-};
-
-struct _IdentityManagerView {
-       GtkWindow parent_instance;
-       IdentityManagerViewPrivate * priv;
-       IdentityManagerApp* parent_app;
-       IdentityManagerModel* identities_manager;
-       GQueue* request_queue;
-};
-
-struct _IdentityManagerViewClass {
-       GtkWindowClass parent_class;
+       gint next_pos;
 };
 
 
 static gpointer custom_vbox_parent_class = NULL;
+static MoonshotLogger* custom_vbox_logger;
+static MoonshotLogger* custom_vbox_logger = NULL;
 
 GType custom_vbox_get_type (void) G_GNUC_CONST;
-GType id_card_widget_get_type (void) G_GNUC_CONST;
 GType identity_manager_view_get_type (void) G_GNUC_CONST;
 #define CUSTOM_VBOX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CUSTOM_VBOX, CustomVBoxPrivate))
 enum  {
-       CUSTOM_VBOX_DUMMY_PROPERTY,
-       CUSTOM_VBOX_CURRENT_IDCARD
+       CUSTOM_VBOX_DUMMY_PROPERTY
 };
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* get_logger (const gchar* name);
 CustomVBox* custom_vbox_new (IdentityManagerView* window, gboolean homogeneous, gint spacing);
 CustomVBox* custom_vbox_construct (GType object_type, IdentityManagerView* window, gboolean homogeneous, gint spacing);
+GType id_card_widget_get_type (void) G_GNUC_CONST;
 void custom_vbox_receive_expanded_event (CustomVBox* self, IdCardWidget* id_card_widget);
 void id_card_widget_collapse (IdCardWidget* self);
-void custom_vbox_set_current_idcard (CustomVBox* self, IdCardWidget* value);
-IdCardWidget* custom_vbox_get_current_idcard (CustomVBox* self);
-gpointer identity_manager_app_ref (gpointer instance);
-void identity_manager_app_unref (gpointer instance);
-GParamSpec* param_spec_identity_manager_app (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
-void value_set_identity_manager_app (GValue* value, gpointer v_object);
-void value_take_identity_manager_app (GValue* value, gpointer v_object);
-gpointer value_get_identity_manager_app (const GValue* value);
-GType identity_manager_app_get_type (void) G_GNUC_CONST;
-GType identity_manager_model_get_type (void) G_GNUC_CONST;
-GType identity_request_get_type (void) G_GNUC_CONST;
-GtkButton* id_card_widget_get_send_button (IdCardWidget* self);
+void custom_vbox_receive_collapsed_event (CustomVBox* self, IdCardWidget* id_card_widget);
 void custom_vbox_add_id_card_widget (CustomVBox* self, IdCardWidget* id_card_widget);
-void custom_vbox_remove_id_card_widget (CustomVBox* self, IdCardWidget* id_card_widget);
+void id_card_widget_set_position (IdCardWidget* self, gint value);
+GType id_card_get_type (void) G_GNUC_CONST;
+IdCardWidget* custom_vbox_find_idcard_widget (CustomVBox* self, IdCard* card);
+IdCard* id_card_widget_get_id_card (IdCardWidget* self);
+void custom_vbox_clear (CustomVBox* self);
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
 static void custom_vbox_finalize (GObject* obj);
-static void _vala_custom_vbox_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-static void _vala_custom_vbox_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 
 
 static gpointer _g_object_ref0 (gpointer self) {
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        return self ? g_object_ref (self) : NULL;
-#line 169 "moonshot-custom-vbox.c"
+#line 143 "moonshot-custom-vbox.c"
 }
 
 
@@ -175,36 +149,36 @@ CustomVBox* custom_vbox_construct (GType object_type, IdentityManagerView* windo
        IdentityManagerView* _tmp1_ = NULL;
        gboolean _tmp2_ = FALSE;
        gint _tmp3_ = 0;
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        g_return_val_if_fail (window != NULL, NULL);
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        self = (CustomVBox*) g_object_new (object_type, NULL);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        _tmp0_ = window;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        _tmp1_ = _g_object_ref0 (_tmp0_);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        _g_object_unref0 (self->priv->main_window);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       self->priv->main_window = _tmp1_;
 #line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       self->priv->main_window = _tmp1_;
+#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        _tmp2_ = homogeneous;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       gtk_box_set_homogeneous ((GtkBox*) self, _tmp2_);
 #line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       gtk_box_set_homogeneous ((GtkBox*) self, _tmp2_);
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        _tmp3_ = spacing;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        gtk_box_set_spacing ((GtkBox*) self, _tmp3_);
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        return self;
-#line 201 "moonshot-custom-vbox.c"
+#line 175 "moonshot-custom-vbox.c"
 }
 
 
 CustomVBox* custom_vbox_new (IdentityManagerView* window, gboolean homogeneous, gint spacing) {
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        return custom_vbox_construct (TYPE_CUSTOM_VBOX, window, homogeneous, spacing);
-#line 208 "moonshot-custom-vbox.c"
+#line 182 "moonshot-custom-vbox.c"
 }
 
 
@@ -212,193 +186,248 @@ void custom_vbox_receive_expanded_event (CustomVBox* self, IdCardWidget* id_card
        GList* list = NULL;
        GList* _tmp0_ = NULL;
        GList* _tmp1_ = NULL;
-       IdCardWidget* _tmp6_ = NULL;
-       gboolean _tmp7_ = FALSE;
-       IdCardWidget* _tmp8_ = NULL;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        g_return_if_fail (self != NULL);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        g_return_if_fail (id_card_widget != NULL);
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        _tmp0_ = gtk_container_get_children ((GtkContainer*) self);
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       list = _tmp0_;
 #line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       list = _tmp0_;
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        _tmp1_ = list;
-#line 229 "moonshot-custom-vbox.c"
+#line 200 "moonshot-custom-vbox.c"
        {
                GList* id_card_collection = NULL;
                GList* id_card_it = NULL;
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
                id_card_collection = _tmp1_;
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
                for (id_card_it = id_card_collection; id_card_it != NULL; id_card_it = id_card_it->next) {
-#line 237 "moonshot-custom-vbox.c"
+#line 208 "moonshot-custom-vbox.c"
                        GtkWidget* _tmp2_ = NULL;
                        GtkWidget* id_card = NULL;
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
                        _tmp2_ = _g_object_ref0 ((GtkWidget*) id_card_it->data);
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
                        id_card = _tmp2_;
-#line 244 "moonshot-custom-vbox.c"
+#line 215 "moonshot-custom-vbox.c"
                        {
                                GtkWidget* _tmp3_ = NULL;
                                IdCardWidget* _tmp4_ = NULL;
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
                                _tmp3_ = id_card;
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
                                _tmp4_ = id_card_widget;
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
                                if (_tmp3_ != G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GTK_TYPE_WIDGET, GtkWidget)) {
-#line 254 "moonshot-custom-vbox.c"
+#line 225 "moonshot-custom-vbox.c"
                                        GtkWidget* _tmp5_ = NULL;
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
                                        _tmp5_ = id_card;
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
                                        id_card_widget_collapse (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_ID_CARD_WIDGET, IdCardWidget));
-#line 260 "moonshot-custom-vbox.c"
+#line 231 "moonshot-custom-vbox.c"
                                }
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
                                _g_object_unref0 (id_card);
-#line 264 "moonshot-custom-vbox.c"
+#line 235 "moonshot-custom-vbox.c"
                        }
                }
        }
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       _tmp6_ = id_card_widget;
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       custom_vbox_set_current_idcard (self, _tmp6_);
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       _tmp8_ = self->priv->_current_idcard;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       if (_tmp8_ != NULL) {
-#line 276 "moonshot-custom-vbox.c"
-               IdentityManagerView* _tmp9_ = NULL;
-               GQueue* _tmp10_ = NULL;
-               guint _tmp11_ = 0U;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               _tmp9_ = self->priv->main_window;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               _tmp10_ = _tmp9_->request_queue;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               _tmp11_ = _tmp10_->length;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               _tmp7_ = _tmp11_ > ((guint) 0);
-#line 288 "moonshot-custom-vbox.c"
-       } else {
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               _tmp7_ = FALSE;
-#line 292 "moonshot-custom-vbox.c"
-       }
 #line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       if (_tmp7_) {
-#line 296 "moonshot-custom-vbox.c"
-               IdCardWidget* _tmp12_ = NULL;
-               GtkButton* _tmp13_ = NULL;
-               GtkButton* _tmp14_ = NULL;
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               _tmp12_ = self->priv->_current_idcard;
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               _tmp13_ = id_card_widget_get_send_button (_tmp12_);
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               _tmp14_ = _tmp13_;
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               gtk_widget_set_sensitive ((GtkWidget*) _tmp14_, TRUE);
-#line 308 "moonshot-custom-vbox.c"
-       }
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        gtk_container_check_resize ((GtkContainer*) self);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        _g_list_free0 (list);
-#line 314 "moonshot-custom-vbox.c"
+#line 243 "moonshot-custom-vbox.c"
 }
 
 
-void custom_vbox_add_id_card_widget (CustomVBox* self, IdCardWidget* id_card_widget) {
-       IdCardWidget* _tmp0_ = NULL;
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+void custom_vbox_receive_collapsed_event (CustomVBox* self, IdCardWidget* id_card_widget) {
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        g_return_if_fail (self != NULL);
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        g_return_if_fail (id_card_widget != NULL);
-#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       _tmp0_ = id_card_widget;
-#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _tmp0_, FALSE, FALSE, (guint) 0);
-#line 328 "moonshot-custom-vbox.c"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       gtk_container_check_resize ((GtkContainer*) self);
+#line 254 "moonshot-custom-vbox.c"
 }
 
 
-void custom_vbox_remove_id_card_widget (CustomVBox* self, IdCardWidget* id_card_widget) {
+void custom_vbox_add_id_card_widget (CustomVBox* self, IdCardWidget* id_card_widget) {
        IdCardWidget* _tmp0_ = NULL;
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       IdCardWidget* _tmp1_ = NULL;
+       gint _tmp2_ = 0;
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        g_return_if_fail (self != NULL);
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        g_return_if_fail (id_card_widget != NULL);
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        _tmp0_ = id_card_widget;
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       gtk_container_remove ((GtkContainer*) self, (GtkWidget*) _tmp0_);
-#line 342 "moonshot-custom-vbox.c"
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _tmp0_, FALSE, FALSE, (guint) 0);
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       _tmp1_ = id_card_widget;
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       _tmp2_ = self->priv->next_pos;
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       self->priv->next_pos = _tmp2_ + 1;
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       id_card_widget_set_position (_tmp1_, _tmp2_);
+#line 278 "moonshot-custom-vbox.c"
 }
 
 
-IdCardWidget* custom_vbox_get_current_idcard (CustomVBox* self) {
-       IdCardWidget* result;
-       IdCardWidget* _tmp0_ = NULL;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+IdCardWidget* custom_vbox_find_idcard_widget (CustomVBox* self, IdCard* card) {
+       IdCardWidget* result = NULL;
+       IdCard* _tmp0_ = NULL;
+       GList* _tmp1_ = NULL;
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        g_return_val_if_fail (self != NULL, NULL);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       _tmp0_ = self->priv->_current_idcard;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       result = _tmp0_;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       _tmp0_ = card;
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       if (_tmp0_ == NULL) {
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+               result = NULL;
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+               return result;
+#line 296 "moonshot-custom-vbox.c"
+       }
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       _tmp1_ = gtk_container_get_children ((GtkContainer*) self);
+#line 300 "moonshot-custom-vbox.c"
+       {
+               GList* w_collection = NULL;
+               GList* w_it = NULL;
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+               w_collection = _tmp1_;
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+               for (w_it = w_collection; w_it != NULL; w_it = w_it->next) {
+#line 308 "moonshot-custom-vbox.c"
+                       GtkWidget* w = NULL;
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                       w = (GtkWidget*) w_it->data;
+#line 312 "moonshot-custom-vbox.c"
+                       {
+                               IdCardWidget* widget = NULL;
+                               GtkWidget* _tmp2_ = NULL;
+                               IdCardWidget* _tmp3_ = NULL;
+                               IdCardWidget* _tmp4_ = NULL;
+                               IdCard* _tmp5_ = NULL;
+                               IdCard* _tmp6_ = NULL;
+                               IdCard* _tmp7_ = NULL;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                               _tmp2_ = w;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                               _tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_ID_CARD_WIDGET, IdCardWidget));
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                               widget = _tmp3_;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                               _tmp4_ = widget;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                               _tmp5_ = id_card_widget_get_id_card (_tmp4_);
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                               _tmp6_ = _tmp5_;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                               _tmp7_ = card;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                               if (_tmp6_ == _tmp7_) {
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                                       result = widget;
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                                       _g_list_free0 (w_collection);
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                                       return result;
+#line 343 "moonshot-custom-vbox.c"
+                               }
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                               _g_object_unref0 (widget);
+#line 347 "moonshot-custom-vbox.c"
+                       }
+               }
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+               _g_list_free0 (w_collection);
+#line 352 "moonshot-custom-vbox.c"
+       }
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       result = NULL;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        return result;
-#line 357 "moonshot-custom-vbox.c"
+#line 358 "moonshot-custom-vbox.c"
 }
 
 
-void custom_vbox_set_current_idcard (CustomVBox* self, IdCardWidget* value) {
-       IdCardWidget* _tmp0_ = NULL;
-       IdCardWidget* _tmp1_ = NULL;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+void custom_vbox_clear (CustomVBox* self) {
+       MoonshotLogger* _tmp0_ = NULL;
+       GList* children = NULL;
+       GList* _tmp1_ = NULL;
+       GList* _tmp2_ = NULL;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        g_return_if_fail (self != NULL);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       _tmp0_ = value;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       _tmp1_ = _g_object_ref0 (_tmp0_);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       _g_object_unref0 (self->priv->_current_idcard);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       self->priv->_current_idcard = _tmp1_;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       g_object_notify ((GObject *) self, "current-idcard");
-#line 376 "moonshot-custom-vbox.c"
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       _tmp0_ = custom_vbox_logger;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       moonshot_logger_trace (_tmp0_, "clear", NULL);
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       _tmp1_ = gtk_container_get_children ((GtkContainer*) self);
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       children = _tmp1_;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       _tmp2_ = children;
+#line 379 "moonshot-custom-vbox.c"
+       {
+               GList* id_card_widget_collection = NULL;
+               GList* id_card_widget_it = NULL;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+               id_card_widget_collection = _tmp2_;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+               for (id_card_widget_it = id_card_widget_collection; id_card_widget_it != NULL; id_card_widget_it = id_card_widget_it->next) {
+#line 387 "moonshot-custom-vbox.c"
+                       GtkWidget* id_card_widget = NULL;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                       id_card_widget = (GtkWidget*) id_card_widget_it->data;
+#line 391 "moonshot-custom-vbox.c"
+                       {
+                               GtkWidget* _tmp3_ = NULL;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                               _tmp3_ = id_card_widget;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+                               gtk_container_remove ((GtkContainer*) self, _tmp3_);
+#line 398 "moonshot-custom-vbox.c"
+                       }
+               }
+       }
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       self->priv->next_pos = 0;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       _g_list_free0 (children);
+#line 406 "moonshot-custom-vbox.c"
 }
 
 
 static void custom_vbox_class_init (CustomVBoxClass * klass) {
+       MoonshotLogger* _tmp0_ = NULL;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        custom_vbox_parent_class = g_type_class_peek_parent (klass);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        g_type_class_add_private (klass, sizeof (CustomVBoxPrivate));
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       G_OBJECT_CLASS (klass)->get_property = _vala_custom_vbox_get_property;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       G_OBJECT_CLASS (klass)->set_property = _vala_custom_vbox_set_property;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        G_OBJECT_CLASS (klass)->finalize = custom_vbox_finalize;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), CUSTOM_VBOX_CURRENT_IDCARD, g_param_spec_object ("current-idcard", "current-idcard", "current-idcard", TYPE_ID_CARD_WIDGET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-#line 393 "moonshot-custom-vbox.c"
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       _tmp0_ = get_logger ("CustomVBox");
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       custom_vbox_logger = _tmp0_;
+#line 422 "moonshot-custom-vbox.c"
 }
 
 
 static void custom_vbox_instance_init (CustomVBox * self) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        self->priv = CUSTOM_VBOX_GET_PRIVATE (self);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       self->priv->_current_idcard = NULL;
-#line 402 "moonshot-custom-vbox.c"
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
+       self->priv->next_pos = 0;
+#line 431 "moonshot-custom-vbox.c"
 }
 
 
@@ -406,13 +435,11 @@ static void custom_vbox_finalize (GObject* obj) {
        CustomVBox * self;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CUSTOM_VBOX, CustomVBox);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       _g_object_unref0 (self->priv->_current_idcard);
 #line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        _g_object_unref0 (self->priv->main_window);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
        G_OBJECT_CLASS (custom_vbox_parent_class)->finalize (obj);
-#line 416 "moonshot-custom-vbox.c"
+#line 443 "moonshot-custom-vbox.c"
 }
 
 
@@ -428,48 +455,4 @@ GType custom_vbox_get_type (void) {
 }
 
 
-static void _vala_custom_vbox_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
-       CustomVBox * self;
-       self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_CUSTOM_VBOX, CustomVBox);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       switch (property_id) {
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               case CUSTOM_VBOX_CURRENT_IDCARD:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               g_value_set_object (value, custom_vbox_get_current_idcard (self));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               break;
-#line 443 "moonshot-custom-vbox.c"
-               default:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               break;
-#line 449 "moonshot-custom-vbox.c"
-       }
-}
-
-
-static void _vala_custom_vbox_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
-       CustomVBox * self;
-       self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_CUSTOM_VBOX, CustomVBox);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-       switch (property_id) {
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               case CUSTOM_VBOX_CURRENT_IDCARD:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               custom_vbox_set_current_idcard (self, g_value_get_object (value));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               break;
-#line 465 "moonshot-custom-vbox.c"
-               default:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-custom-vbox.vala"
-               break;
-#line 471 "moonshot-custom-vbox.c"
-       }
-}
-
-
 
index 13a6db3..49942ee 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -33,38 +33,63 @@ using Gtk;
 
 class CustomVBox : VBox
 {
-    public IdCardWidget current_idcard { get; set; default = null; }
+    static MoonshotLogger logger = get_logger("CustomVBox");
     private IdentityManagerView main_window; 
-
-    public CustomVBox (IdentityManagerView window, bool homogeneous, int spacing)
+    int next_pos = 0;
+    
+    public CustomVBox(IdentityManagerView window, bool homogeneous, int spacing)
     {
         main_window = window;
-        set_homogeneous (homogeneous);
-        set_spacing (spacing);
+        set_homogeneous(homogeneous);
+        set_spacing(spacing);
     }
 
-    public void receive_expanded_event (IdCardWidget id_card_widget)
+    internal void receive_expanded_event(IdCardWidget id_card_widget)
     {
-        var list = get_children ();
+        var list = get_children();
         foreach (Widget id_card in list)
         {
             if (id_card != id_card_widget)
-                ((IdCardWidget) id_card).collapse ();
+                ((IdCardWidget) id_card).collapse();
         }
-        current_idcard = id_card_widget;
         
-        if (current_idcard != null && main_window.request_queue.length > 0)
-            current_idcard.send_button.set_sensitive (true);
         check_resize();
     }
 
-    public void add_id_card_widget (IdCardWidget id_card_widget)
+    internal void receive_collapsed_event(IdCardWidget id_card_widget)
     {
-        pack_start (id_card_widget, false, false);
+        check_resize();
     }
 
-    public void remove_id_card_widget (IdCardWidget id_card_widget)
+    public void add_id_card_widget(IdCardWidget id_card_widget)
     {
-        remove (id_card_widget);
+        pack_start(id_card_widget, false, false);
+        id_card_widget.position = next_pos++;
+    }
+
+    public IdCardWidget? find_idcard_widget(IdCard? card) {
+        if (card == null) {
+            return null;
+        }
+        foreach (var w in get_children()) {
+            IdCardWidget widget = (IdCardWidget) w;
+            if (widget.id_card == card) {
+                return widget;
+            }
+        }
+        return null;
     }
+
+    internal void clear()
+    {
+        logger.trace("clear");
+
+        var children = get_children();
+        foreach (var id_card_widget in children) {
+            remove(id_card_widget);
+        }
+
+        next_pos = 0;
+   }
+    
 }
index 65e2cce..2323f6d 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-id.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-id.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-id.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -37,7 +37,7 @@
 #include <glib-object.h>
 #include <stdlib.h>
 #include <string.h>
-#include <stdio.h>
+#include <gee.h>
 #include <gnome-keyring-memory.h>
 
 
 typedef struct _TrustAnchor TrustAnchor;
 typedef struct _TrustAnchorClass TrustAnchorClass;
 typedef struct _TrustAnchorPrivate TrustAnchorPrivate;
+
+#define TRUST_ANCHOR_TYPE_TRUST_ANCHOR_TYPE (trust_anchor_trust_anchor_type_get_type ())
 #define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
 
 #define TYPE_RULE (rule_get_type ())
 typedef struct _Rule Rule;
@@ -84,8 +99,15 @@ struct _TrustAnchorPrivate {
        gchar* _subject;
        gchar* _subject_alt;
        gchar* _server_cert;
+       gchar* _datetime_added;
 };
 
+typedef enum  {
+       TRUST_ANCHOR_TRUST_ANCHOR_TYPE_EMPTY,
+       TRUST_ANCHOR_TRUST_ANCHOR_TYPE_CA_CERT,
+       TRUST_ANCHOR_TRUST_ANCHOR_TYPE_SERVER_CERT
+} TrustAnchorTrustAnchorType;
+
 struct _Rule {
        gchar* pattern;
        gchar* always_confirm;
@@ -101,20 +123,19 @@ struct _IdCardClass {
 };
 
 struct _IdCardPrivate {
-       gchar* _nai;
-       gchar* _display_name;
        gchar* _username;
-       const gchar* _password;
        gchar* _issuer;
+       gchar* _display_name;
+       const gchar* _password;
        Rule* _rules;
        gint _rules_length1;
        gint __rules_size_;
-       gchar** _services;
-       gint _services_length1;
-       gint __services_size_;
+       GeeArrayList* _services;
        gboolean _temporary;
        TrustAnchor* _trust_anchor;
+       gchar* _nai;
        gboolean _store_password;
+       gchar* _uuid;
 };
 
 typedef enum  {
@@ -129,8 +150,11 @@ typedef enum  {
 
 
 static gpointer trust_anchor_parent_class = NULL;
+extern MoonshotLogger* id_card_logger;
 static gpointer id_card_parent_class = NULL;
+MoonshotLogger* id_card_logger = NULL;
 
+gchar* get_cert_valid_before (guchar* inbuf, gint inlen, gchar* outbuf, gint outlen);
 GType trust_anchor_get_type (void) G_GNUC_CONST;
 #define TRUST_ANCHOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TRUST_ANCHOR, TrustAnchorPrivate))
 enum  {
@@ -138,22 +162,34 @@ enum  {
        TRUST_ANCHOR_CA_CERT,
        TRUST_ANCHOR_SUBJECT,
        TRUST_ANCHOR_SUBJECT_ALT,
-       TRUST_ANCHOR_SERVER_CERT
+       TRUST_ANCHOR_SERVER_CERT,
+       TRUST_ANCHOR_DATETIME_ADDED
 };
-gint trust_anchor_Compare (TrustAnchor* self, TrustAnchor* other);
+GType trust_anchor_trust_anchor_type_get_type (void) G_GNUC_CONST;
+#define TRUST_ANCHOR_CERT_HEADER "-----BEGIN CERTIFICATE-----"
+#define TRUST_ANCHOR_CERT_FOOTER "-----END CERTIFICATE-----"
+static gchar* trust_anchor_fixup (const gchar* s);
+TrustAnchor* trust_anchor_new (const gchar* ca_cert, const gchar* server_cert, const gchar* subject, const gchar* subject_alt);
+TrustAnchor* trust_anchor_construct (GType object_type, const gchar* ca_cert, const gchar* server_cert, const gchar* subject, const gchar* subject_alt);
+TrustAnchor* trust_anchor_new_empty (void);
+TrustAnchor* trust_anchor_construct_empty (GType object_type);
+gboolean trust_anchor_is_empty (TrustAnchor* self);
 const gchar* trust_anchor_get_ca_cert (TrustAnchor* self);
+const gchar* trust_anchor_get_server_cert (TrustAnchor* self);
+TrustAnchorTrustAnchorType trust_anchor_get_anchor_type (TrustAnchor* self);
+void trust_anchor_set_datetime_added (TrustAnchor* self, const gchar* datetime);
+gchar* trust_anchor_format_datetime_now (void);
+void trust_anchor_update_server_fingerprint (TrustAnchor* self, const gchar* fingerprint);
+gint trust_anchor_Compare (TrustAnchor* self, TrustAnchor* other);
 const gchar* trust_anchor_get_subject (TrustAnchor* self);
 const gchar* trust_anchor_get_subject_alt (TrustAnchor* self);
-const gchar* trust_anchor_get_server_cert (TrustAnchor* self);
-TrustAnchor* trust_anchor_new (void);
-TrustAnchor* trust_anchor_construct (GType object_type);
-void trust_anchor_set_ca_cert (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_subject (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_subject_alt (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_server_cert (TrustAnchor* self, const gchar* value);
+gchar* trust_anchor_get_expiration_date (TrustAnchor* self, gchar** err_out);
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
+void moonshot_logger_error (MoonshotLogger* self, const gchar* message, GError* e);
+const gchar* trust_anchor_get_datetime_added (TrustAnchor* self);
 static void trust_anchor_finalize (GObject* obj);
 static void _vala_trust_anchor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-static void _vala_trust_anchor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 GType rule_get_type (void) G_GNUC_CONST;
 Rule* rule_dup (const Rule* self);
 void rule_free (Rule* self);
@@ -166,45 +202,55 @@ enum  {
        ID_CARD_DUMMY_PROPERTY,
        ID_CARD_DISPLAY_NAME,
        ID_CARD_USERNAME,
-       ID_CARD_PASSWORD,
        ID_CARD_ISSUER,
+       ID_CARD_PASSWORD,
        ID_CARD_SERVICES,
        ID_CARD_TEMPORARY,
        ID_CARD_TRUST_ANCHOR,
        ID_CARD_NAI,
-       ID_CARD_STORE_PASSWORD
+       ID_CARD_STORE_PASSWORD,
+       ID_CARD_UUID
 };
 void id_card_set_password (IdCard* self, const gchar* value);
 GType id_card_diff_flags_get_type (void) G_GNUC_CONST;
+MoonshotLogger* get_logger (const gchar* name);
 static void _vala_Rule_array_free (Rule* array, gint array_length);
+gchar* id_card_generate_uuid (void);
 #define ID_CARD_NO_IDENTITY "No Identity"
-gboolean id_card_IsNoIdentity (IdCard* self);
+static void id_card_update_nai (IdCard* self);
+const gchar* id_card_get_username (IdCard* self);
+const gchar* id_card_get_issuer (IdCard* self);
+gchar* id_card_get_services_string (IdCard* self, const gchar* sep);
+void id_card_update_services (IdCard* self, gchar** services, int services_length1);
+void id_card_update_services_from_list (IdCard* self, GeeArrayList* services);
+void id_card_set_trust_anchor_from_store (IdCard* self, TrustAnchor* ta);
+void id_card_clear_trust_anchor (IdCard* self);
+gboolean id_card_is_no_identity (IdCard* self);
 const gchar* id_card_get_display_name (IdCard* self);
 gint id_card_Compare (IdCard* self, IdCard* other);
-const gchar* id_card_get_username (IdCard* self);
 const gchar* id_card_get_password (IdCard* self);
-const gchar* id_card_get_issuer (IdCard* self);
 gint CompareRules (Rule* a, int a_length1, Rule* b, int b_length1);
 Rule* id_card_get_rules (IdCard* self, int* result_length1);
-gint CompareStringArray (gchar** a, int a_length1, gchar** b, int b_length1);
-gchar** id_card_get_services (IdCard* self, int* result_length1);
+gint CompareStringArrayList (GeeArrayList* a, GeeArrayList* b);
 TrustAnchor* id_card_get_trust_anchor (IdCard* self);
 IdCard* id_card_NewNoIdentity (void);
 IdCard* id_card_new (void);
 IdCard* id_card_construct (GType object_type);
 void id_card_set_display_name (IdCard* self, const gchar* value);
+void id_card_add_rule (IdCard* self, Rule* rule);
+static void _vala_array_add2 (Rule** array, int* length, int* size, const Rule* value);
 void id_card_set_username (IdCard* self, const gchar* value);
 void id_card_set_issuer (IdCard* self, const gchar* value);
 void id_card_set_rules (IdCard* self, Rule* value, int value_length1);
 static Rule* _vala_array_dup5 (Rule* self, int length);
-void id_card_set_services (IdCard* self, gchar** value, int value_length1);
-static gchar** _vala_array_dup6 (gchar** self, int length);
+GeeArrayList* id_card_get_services (IdCard* self);
 gboolean id_card_get_temporary (IdCard* self);
 void id_card_set_temporary (IdCard* self, gboolean value);
-void id_card_set_trust_anchor (IdCard* self, TrustAnchor* value);
 const gchar* id_card_get_nai (IdCard* self);
+static void id_card_set_nai (IdCard* self, const gchar* value);
 gboolean id_card_get_store_password (IdCard* self);
 void id_card_set_store_password (IdCard* self, gboolean value);
+const gchar* id_card_get_uuid (IdCard* self);
 static void id_card_finalize (GObject* obj);
 static void _vala_id_card_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
 static void _vala_id_card_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
@@ -212,317 +258,1011 @@ static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNoti
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 
 
-gint trust_anchor_Compare (TrustAnchor* self, TrustAnchor* other) {
-       gint result = 0;
-       const gchar* _tmp0_ = NULL;
-       TrustAnchor* _tmp1_ = NULL;
-       const gchar* _tmp2_ = NULL;
-       const gchar* _tmp3_ = NULL;
-       TrustAnchor* _tmp4_ = NULL;
-       const gchar* _tmp5_ = NULL;
-       const gchar* _tmp6_ = NULL;
-       TrustAnchor* _tmp7_ = NULL;
-       const gchar* _tmp8_ = NULL;
-       const gchar* _tmp9_ = NULL;
-       TrustAnchor* _tmp10_ = NULL;
-       const gchar* _tmp11_ = NULL;
-#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_val_if_fail (self != NULL, 0);
-#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_val_if_fail (other != NULL, 0);
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = self->priv->_ca_cert;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1_ = other;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp2_ = _tmp1_->priv->_ca_cert;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       if (g_strcmp0 (_tmp0_, _tmp2_) != 0) {
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               result = 1;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               return result;
-#line 246 "moonshot-id.c"
-       }
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp3_ = self->priv->_subject;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp4_ = other;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp5_ = _tmp4_->priv->_subject;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       if (g_strcmp0 (_tmp3_, _tmp5_) != 0) {
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               result = 1;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               return result;
-#line 260 "moonshot-id.c"
+GType trust_anchor_trust_anchor_type_get_type (void) {
+       static volatile gsize trust_anchor_trust_anchor_type_type_id__volatile = 0;
+       if (g_once_init_enter (&trust_anchor_trust_anchor_type_type_id__volatile)) {
+               static const GEnumValue values[] = {{TRUST_ANCHOR_TRUST_ANCHOR_TYPE_EMPTY, "TRUST_ANCHOR_TRUST_ANCHOR_TYPE_EMPTY", "empty"}, {TRUST_ANCHOR_TRUST_ANCHOR_TYPE_CA_CERT, "TRUST_ANCHOR_TRUST_ANCHOR_TYPE_CA_CERT", "ca-cert"}, {TRUST_ANCHOR_TRUST_ANCHOR_TYPE_SERVER_CERT, "TRUST_ANCHOR_TRUST_ANCHOR_TYPE_SERVER_CERT", "server-cert"}, {0, NULL, NULL}};
+               GType trust_anchor_trust_anchor_type_type_id;
+               trust_anchor_trust_anchor_type_type_id = g_enum_register_static ("TrustAnchorTrustAnchorType", values);
+               g_once_init_leave (&trust_anchor_trust_anchor_type_type_id__volatile, trust_anchor_trust_anchor_type_type_id);
        }
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp6_ = self->priv->_subject_alt;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp7_ = other;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp8_ = _tmp7_->priv->_subject_alt;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       if (g_strcmp0 (_tmp6_, _tmp8_) != 0) {
-#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               result = 1;
-#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               return result;
-#line 274 "moonshot-id.c"
-       }
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp9_ = self->priv->_server_cert;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp10_ = other;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp11_ = _tmp10_->priv->_server_cert;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       if (g_strcmp0 (_tmp9_, _tmp11_) != 0) {
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               result = 1;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               return result;
-#line 288 "moonshot-id.c"
-       }
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       result = 0;
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       return result;
-#line 294 "moonshot-id.c"
+       return trust_anchor_trust_anchor_type_type_id__volatile;
 }
 
 
-TrustAnchor* trust_anchor_construct (GType object_type) {
-       TrustAnchor * self = NULL;
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self = (TrustAnchor*) g_object_new (object_type, NULL);
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       return self;
-#line 304 "moonshot-id.c"
+static gchar* string_strip (const gchar* self) {
+       gchar* result = NULL;
+       gchar* _result_ = NULL;
+       gchar* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+#line 1215 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1216 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp0_ = g_strdup (self);
+#line 1216 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _result_ = _tmp0_;
+#line 1217 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp1_ = _result_;
+#line 1217 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_strstrip (_tmp1_);
+#line 1218 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = _result_;
+#line 1218 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 293 "moonshot-id.c"
 }
 
 
-TrustAnchor* trust_anchor_new (void) {
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       return trust_anchor_construct (TYPE_TRUST_ANCHOR);
-#line 311 "moonshot-id.c"
+static gchar* trust_anchor_fixup (const gchar* s) {
+       gchar* result = NULL;
+       gchar* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (s != NULL, NULL);
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = s;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (_tmp1_ == NULL) {
+#line 307 "moonshot-id.c"
+               gchar* _tmp2_ = NULL;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp2_ = g_strdup ("");
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _g_free0 (_tmp0_);
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp0_ = _tmp2_;
+#line 315 "moonshot-id.c"
+       } else {
+               const gchar* _tmp3_ = NULL;
+               gchar* _tmp4_ = NULL;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp3_ = s;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp4_ = string_strip (_tmp3_);
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _g_free0 (_tmp0_);
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp0_ = _tmp4_;
+#line 327 "moonshot-id.c"
+       }
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = _tmp0_;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 333 "moonshot-id.c"
 }
 
 
-const gchar* trust_anchor_get_ca_cert (TrustAnchor* self) {
-       const gchar* result;
-       const gchar* _tmp0_ = NULL;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+       gchar* result = NULL;
+       GError * _inner_error_ = NULL;
+#line 1388 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        g_return_val_if_fail (self != NULL, NULL);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = self->priv->_ca_cert;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       result = _tmp0_;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       return result;
-#line 326 "moonshot-id.c"
+#line 1388 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (old != NULL, NULL);
+#line 1388 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (replacement != NULL, NULL);
+#line 346 "moonshot-id.c"
+       {
+               GRegex* regex = NULL;
+               const gchar* _tmp0_ = NULL;
+               gchar* _tmp1_ = NULL;
+               gchar* _tmp2_ = NULL;
+               GRegex* _tmp3_ = NULL;
+               GRegex* _tmp4_ = NULL;
+               gchar* _tmp5_ = NULL;
+               GRegex* _tmp6_ = NULL;
+               const gchar* _tmp7_ = NULL;
+               gchar* _tmp8_ = NULL;
+               gchar* _tmp9_ = NULL;
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp0_ = old;
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp2_ = _tmp1_;
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp4_ = _tmp3_;
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _g_free0 (_tmp2_);
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               regex = _tmp4_;
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 377 "moonshot-id.c"
+                               goto __catch2_g_regex_error;
+                       }
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       g_clear_error (&_inner_error_);
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       return NULL;
+#line 386 "moonshot-id.c"
+               }
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp6_ = regex;
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp7_ = replacement;
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp5_ = _tmp8_;
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       _g_regex_unref0 (regex);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 402 "moonshot-id.c"
+                               goto __catch2_g_regex_error;
+                       }
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       _g_regex_unref0 (regex);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       g_clear_error (&_inner_error_);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       return NULL;
+#line 413 "moonshot-id.c"
+               }
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp9_ = _tmp5_;
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp5_ = NULL;
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               result = _tmp9_;
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _g_free0 (_tmp5_);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _g_regex_unref0 (regex);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return result;
+#line 427 "moonshot-id.c"
+       }
+       goto __finally2;
+       __catch2_g_regex_error:
+       {
+               GError* e = NULL;
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               e = _inner_error_;
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _inner_error_ = NULL;
+#line 1393 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               g_assert_not_reached ();
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _g_error_free0 (e);
+#line 441 "moonshot-id.c"
+       }
+       __finally2:
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               g_clear_error (&_inner_error_);
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return NULL;
+#line 452 "moonshot-id.c"
+       }
 }
 
 
-void trust_anchor_set_ca_cert (TrustAnchor* self, const gchar* value) {
+TrustAnchor* trust_anchor_construct (GType object_type, const gchar* ca_cert, const gchar* server_cert, const gchar* subject, const gchar* subject_alt) {
+       TrustAnchor * self = NULL;
        const gchar* _tmp0_ = NULL;
        gchar* _tmp1_ = NULL;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_if_fail (self != NULL);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = value;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1_ = g_strdup (_tmp0_);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       const gchar* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       gchar* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       gchar* _tmp7_ = NULL;
+       gchar* _tmp8_ = NULL;
+       gchar* cruft = NULL;
+       gchar* _tmp9_ = NULL;
+       const gchar* _tmp10_ = NULL;
+       gchar* _tmp11_ = NULL;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (ca_cert != NULL, NULL);
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (server_cert != NULL, NULL);
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (subject != NULL, NULL);
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (subject_alt != NULL, NULL);
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self = (TrustAnchor*) g_object_new (object_type, NULL);
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = ca_cert;
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = trust_anchor_fixup (_tmp0_);
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _g_free0 (self->priv->_ca_cert);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv->_ca_cert = _tmp1_;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_notify ((GObject *) self, "ca-cert");
-#line 345 "moonshot-id.c"
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp2_ = server_cert;
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp3_ = trust_anchor_fixup (_tmp2_);
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_server_cert);
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_server_cert = _tmp3_;
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp4_ = subject;
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp5_ = trust_anchor_fixup (_tmp4_);
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_subject);
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_subject = _tmp5_;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp6_ = subject_alt;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp7_ = trust_anchor_fixup (_tmp6_);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_subject_alt);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_subject_alt = _tmp7_;
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp8_ = g_strdup ("");
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_datetime_added);
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_datetime_added = _tmp8_;
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp9_ = g_strdup ("<!-- Remove the begin and end lines from the PEM output of\n" \
+"openssl to produce this format.  Alternatively, base64 encode a DER fo" \
+"rmat certificate -->");
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       cruft = _tmp9_;
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp10_ = self->priv->_ca_cert;
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp11_ = string_replace (_tmp10_, cruft, "");
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_ca_cert);
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_ca_cert = _tmp11_;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (cruft);
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return self;
+#line 536 "moonshot-id.c"
 }
 
 
-const gchar* trust_anchor_get_subject (TrustAnchor* self) {
-       const gchar* result;
-       const gchar* _tmp0_ = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = self->priv->_subject;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       result = _tmp0_;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       return result;
-#line 360 "moonshot-id.c"
+TrustAnchor* trust_anchor_new (const gchar* ca_cert, const gchar* server_cert, const gchar* subject, const gchar* subject_alt) {
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return trust_anchor_construct (TYPE_TRUST_ANCHOR, ca_cert, server_cert, subject, subject_alt);
+#line 543 "moonshot-id.c"
 }
 
 
-void trust_anchor_set_subject (TrustAnchor* self, const gchar* value) {
-       const gchar* _tmp0_ = NULL;
-       gchar* _tmp1_ = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_if_fail (self != NULL);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = value;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1_ = g_strdup (_tmp0_);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _g_free0 (self->priv->_subject);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_subject = _tmp1_;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_notify ((GObject *) self, "subject");
-#line 379 "moonshot-id.c"
+TrustAnchor* trust_anchor_construct_empty (GType object_type) {
+       TrustAnchor * self = NULL;
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self = (TrustAnchor*) g_object_new (object_type, NULL);
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return self;
+#line 553 "moonshot-id.c"
 }
 
 
-const gchar* trust_anchor_get_subject_alt (TrustAnchor* self) {
-       const gchar* result;
-       const gchar* _tmp0_ = NULL;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = self->priv->_subject_alt;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       result = _tmp0_;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       return result;
-#line 394 "moonshot-id.c"
+TrustAnchor* trust_anchor_new_empty (void) {
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return trust_anchor_construct_empty (TYPE_TRUST_ANCHOR);
+#line 560 "moonshot-id.c"
 }
 
 
-void trust_anchor_set_subject_alt (TrustAnchor* self, const gchar* value) {
-       const gchar* _tmp0_ = NULL;
-       gchar* _tmp1_ = NULL;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_if_fail (self != NULL);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = value;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1_ = g_strdup (_tmp0_);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _g_free0 (self->priv->_subject_alt);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_subject_alt = _tmp1_;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_notify ((GObject *) self, "subject-alt");
-#line 413 "moonshot-id.c"
+gboolean trust_anchor_is_empty (TrustAnchor* self) {
+       gboolean result = FALSE;
+       gboolean _tmp0_ = FALSE;
+       const gchar* _tmp1_ = NULL;
+       const gchar* _tmp2_ = NULL;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = trust_anchor_get_ca_cert (self);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp2_ = _tmp1_;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (g_strcmp0 (_tmp2_, "") == 0) {
+#line 577 "moonshot-id.c"
+               const gchar* _tmp3_ = NULL;
+               const gchar* _tmp4_ = NULL;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp3_ = trust_anchor_get_server_cert (self);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp4_ = _tmp3_;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp0_ = g_strcmp0 (_tmp4_, "") == 0;
+#line 586 "moonshot-id.c"
+       } else {
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp0_ = FALSE;
+#line 590 "moonshot-id.c"
+       }
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = _tmp0_;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 596 "moonshot-id.c"
 }
 
 
-const gchar* trust_anchor_get_server_cert (TrustAnchor* self) {
-       const gchar* result;
-       const gchar* _tmp0_ = NULL;
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = self->priv->_server_cert;
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+TrustAnchorTrustAnchorType trust_anchor_get_anchor_type (TrustAnchor* self) {
+       TrustAnchorTrustAnchorType result = 0;
+       TrustAnchorTrustAnchorType _tmp0_ = 0;
+       const gchar* _tmp1_ = NULL;
+       const gchar* _tmp2_ = NULL;
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, 0);
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = trust_anchor_get_server_cert (self);
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp2_ = _tmp1_;
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (g_strcmp0 (_tmp2_, "") != 0) {
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp0_ = TRUST_ANCHOR_TRUST_ANCHOR_TYPE_SERVER_CERT;
+#line 615 "moonshot-id.c"
+       } else {
+               TrustAnchorTrustAnchorType _tmp3_ = 0;
+               const gchar* _tmp4_ = NULL;
+               const gchar* _tmp5_ = NULL;
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp4_ = trust_anchor_get_ca_cert (self);
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp5_ = _tmp4_;
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               if (g_strcmp0 (_tmp5_, "") != 0) {
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       _tmp3_ = TRUST_ANCHOR_TRUST_ANCHOR_TYPE_CA_CERT;
+#line 628 "moonshot-id.c"
+               } else {
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       _tmp3_ = TRUST_ANCHOR_TRUST_ANCHOR_TYPE_EMPTY;
+#line 632 "moonshot-id.c"
+               }
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp0_ = _tmp3_;
+#line 636 "moonshot-id.c"
+       }
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = _tmp0_;
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 428 "moonshot-id.c"
+#line 642 "moonshot-id.c"
 }
 
 
-void trust_anchor_set_server_cert (TrustAnchor* self, const gchar* value) {
+void trust_anchor_set_datetime_added (TrustAnchor* self, const gchar* datetime) {
        const gchar* _tmp0_ = NULL;
        gchar* _tmp1_ = NULL;
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_if_fail (self != NULL);
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = value;
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1_ = g_strdup (_tmp0_);
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _g_free0 (self->priv->_server_cert);
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_server_cert = _tmp1_;
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_notify ((GObject *) self, "server-cert");
-#line 447 "moonshot-id.c"
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (datetime != NULL);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = datetime;
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = trust_anchor_fixup (_tmp0_);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_datetime_added);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_datetime_added = _tmp1_;
+#line 661 "moonshot-id.c"
 }
 
 
-static void trust_anchor_class_init (TrustAnchorClass * klass) {
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       trust_anchor_parent_class = g_type_class_peek_parent (klass);
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_type_class_add_private (klass, sizeof (TrustAnchorPrivate));
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       G_OBJECT_CLASS (klass)->get_property = _vala_trust_anchor_get_property;
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       G_OBJECT_CLASS (klass)->set_property = _vala_trust_anchor_set_property;
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       G_OBJECT_CLASS (klass)->finalize = trust_anchor_finalize;
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), TRUST_ANCHOR_CA_CERT, g_param_spec_string ("ca-cert", "ca-cert", "ca-cert", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), TRUST_ANCHOR_SUBJECT, g_param_spec_string ("subject", "subject", "subject", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), TRUST_ANCHOR_SUBJECT_ALT, g_param_spec_string ("subject-alt", "subject-alt", "subject-alt", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), TRUST_ANCHOR_SERVER_CERT, g_param_spec_string ("server-cert", "server-cert", "server-cert", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-#line 470 "moonshot-id.c"
+gchar* trust_anchor_format_datetime_now (void) {
+       gchar* result = NULL;
+       GDateTime* now = NULL;
+       GDateTime* _tmp0_ = NULL;
+       gchar* dt = NULL;
+       gchar* _tmp1_ = NULL;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = g_date_time_new_now_utc ();
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       now = _tmp0_;
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = g_date_time_format (now, "%b %d %T %Y %Z");
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       dt = _tmp1_;
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = dt;
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_date_time_unref0 (now);
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 685 "moonshot-id.c"
 }
 
 
-static void trust_anchor_instance_init (TrustAnchor * self) {
-       gchar* _tmp0_ = NULL;
+void trust_anchor_update_server_fingerprint (TrustAnchor* self, const gchar* fingerprint) {
+       const gchar* _tmp0_ = NULL;
        gchar* _tmp1_ = NULL;
+       gchar* ta_datetime_added = NULL;
        gchar* _tmp2_ = NULL;
-       gchar* _tmp3_ = NULL;
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv = TRUST_ANCHOR_GET_PRIVATE (self);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = g_strdup ("");
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_ca_cert = _tmp0_;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1_ = g_strdup ("");
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_subject = _tmp1_;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp2_ = g_strdup ("");
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_subject_alt = _tmp2_;
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp3_ = g_strdup ("");
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_server_cert = _tmp3_;
-#line 497 "moonshot-id.c"
-}
-
-
-static void trust_anchor_finalize (GObject* obj) {
-       TrustAnchor * self;
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TRUST_ANCHOR, TrustAnchor);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _g_free0 (self->priv->_ca_cert);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _g_free0 (self->priv->_subject);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _g_free0 (self->priv->_subject_alt);
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (self != NULL);
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (fingerprint != NULL);
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = fingerprint;
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _g_free0 (self->priv->_server_cert);
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       G_OBJECT_CLASS (trust_anchor_parent_class)->finalize (obj);
-#line 515 "moonshot-id.c"
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_server_cert = _tmp1_;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp2_ = trust_anchor_format_datetime_now ();
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       ta_datetime_added = _tmp2_;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       trust_anchor_set_datetime_added (self, ta_datetime_added);
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (ta_datetime_added);
+#line 714 "moonshot-id.c"
 }
 
 
-GType trust_anchor_get_type (void) {
-       static volatile gsize trust_anchor_type_id__volatile = 0;
-       if (g_once_init_enter (&trust_anchor_type_id__volatile)) {
-               static const GTypeInfo g_define_type_info = { sizeof (TrustAnchorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) trust_anchor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TrustAnchor), 0, (GInstanceInitFunc) trust_anchor_instance_init, NULL };
-               GType trust_anchor_type_id;
-               trust_anchor_type_id = g_type_register_static (G_TYPE_OBJECT, "TrustAnchor", &g_define_type_info, 0);
-               g_once_init_leave (&trust_anchor_type_id__volatile, trust_anchor_type_id);
-       }
+gint trust_anchor_Compare (TrustAnchor* self, TrustAnchor* other) {
+       gint result = 0;
+       const gchar* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+       TrustAnchor* _tmp2_ = NULL;
+       const gchar* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       const gchar* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       TrustAnchor* _tmp7_ = NULL;
+       const gchar* _tmp8_ = NULL;
+       const gchar* _tmp9_ = NULL;
+       const gchar* _tmp10_ = NULL;
+       const gchar* _tmp11_ = NULL;
+       TrustAnchor* _tmp12_ = NULL;
+       const gchar* _tmp13_ = NULL;
+       const gchar* _tmp14_ = NULL;
+       const gchar* _tmp15_ = NULL;
+       const gchar* _tmp16_ = NULL;
+       TrustAnchor* _tmp17_ = NULL;
+       const gchar* _tmp18_ = NULL;
+       const gchar* _tmp19_ = NULL;
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, 0);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (other != NULL, 0);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = trust_anchor_get_ca_cert (self);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = _tmp0_;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp2_ = other;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp3_ = trust_anchor_get_ca_cert (_tmp2_);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp4_ = _tmp3_;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (g_strcmp0 (_tmp1_, _tmp4_) != 0) {
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               result = 1;
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               return result;
+#line 760 "moonshot-id.c"
+       }
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp5_ = trust_anchor_get_subject (self);
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp6_ = _tmp5_;
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp7_ = other;
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp8_ = trust_anchor_get_subject (_tmp7_);
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp9_ = _tmp8_;
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (g_strcmp0 (_tmp6_, _tmp9_) != 0) {
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               result = 1;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               return result;
+#line 778 "moonshot-id.c"
+       }
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp10_ = trust_anchor_get_subject_alt (self);
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp11_ = _tmp10_;
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp12_ = other;
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp13_ = trust_anchor_get_subject_alt (_tmp12_);
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp14_ = _tmp13_;
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (g_strcmp0 (_tmp11_, _tmp14_) != 0) {
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               result = 1;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               return result;
+#line 796 "moonshot-id.c"
+       }
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp15_ = trust_anchor_get_server_cert (self);
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp16_ = _tmp15_;
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp17_ = other;
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp18_ = trust_anchor_get_server_cert (_tmp17_);
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp19_ = _tmp18_;
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (g_strcmp0 (_tmp16_, _tmp19_) != 0) {
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               result = 1;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               return result;
+#line 814 "moonshot-id.c"
+       }
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = 0;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 820 "moonshot-id.c"
+}
+
+
+static gchar* string_chomp (const gchar* self) {
+       gchar* result = NULL;
+       gchar* _result_ = NULL;
+       gchar* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+#line 1199 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1200 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp0_ = g_strdup (self);
+#line 1200 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _result_ = _tmp0_;
+#line 1201 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp1_ = _result_;
+#line 1201 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_strchomp (_tmp1_);
+#line 1202 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = _result_;
+#line 1202 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 843 "moonshot-id.c"
+}
+
+
+static const gchar* string_to_string (const gchar* self) {
+       const gchar* result = NULL;
+#line 1420 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = self;
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 855 "moonshot-id.c"
+}
+
+
+gchar* trust_anchor_get_expiration_date (TrustAnchor* self, gchar** err_out) {
+       gchar* _vala_err_out = NULL;
+       gchar* result = NULL;
+       const gchar* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+       gchar* cert = NULL;
+       const gchar* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       gchar* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       gchar* _tmp7_ = NULL;
+       gchar* _tmp8_ = NULL;
+       guchar* binary = NULL;
+       const gchar* _tmp9_ = NULL;
+       size_t _tmp10_;
+       guchar* _tmp11_ = NULL;
+       gint binary_length1 = 0;
+       gint _binary_size_ = 0;
+       MoonshotLogger* _tmp12_ = NULL;
+       const gchar* _tmp13_ = NULL;
+       gint _tmp14_ = 0;
+       gint _tmp15_ = 0;
+       guchar* _tmp16_ = NULL;
+       gint _tmp16__length1 = 0;
+       gchar* _tmp17_ = NULL;
+       gchar* _tmp18_ = NULL;
+       gchar buf[64] = {0};
+       gchar* err = NULL;
+       guchar* _tmp19_ = NULL;
+       gint _tmp19__length1 = 0;
+       guchar* _tmp20_ = NULL;
+       gint _tmp20__length1 = 0;
+       gchar* _tmp21_ = NULL;
+       gchar* _tmp22_ = NULL;
+       const gchar* _tmp23_ = NULL;
+       gchar* date = NULL;
+       gchar* _tmp31_ = NULL;
+       MoonshotLogger* _tmp32_ = NULL;
+       const gchar* _tmp33_ = NULL;
+       const gchar* _tmp34_ = NULL;
+       gchar* _tmp35_ = NULL;
+       gchar* _tmp36_ = NULL;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if ((&_vala_err_out) != NULL) {
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _g_free0 (_vala_err_out);
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _vala_err_out = NULL;
+#line 909 "moonshot-id.c"
+       }
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = trust_anchor_get_ca_cert (self);
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = _tmp0_;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (g_strcmp0 (_tmp1_, "") == 0) {
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               if ((&_vala_err_out) != NULL) {
+#line 919 "moonshot-id.c"
+                       gchar* _tmp2_ = NULL;
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       _tmp2_ = g_strdup ("Trust anchor does not have a ca_certificate");
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       _g_free0 (_vala_err_out);
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       _vala_err_out = _tmp2_;
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       result = NULL;
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       if (err_out) {
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               *err_out = _vala_err_out;
+#line 933 "moonshot-id.c"
+                       } else {
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _g_free0 (_vala_err_out);
+#line 937 "moonshot-id.c"
+                       }
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       return result;
+#line 941 "moonshot-id.c"
+               }
+       }
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp3_ = trust_anchor_get_ca_cert (self);
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp4_ = _tmp3_;
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp5_ = g_strdup (_tmp4_);
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       cert = _tmp5_;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp6_ = cert;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp7_ = string_chomp (_tmp6_);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp8_ = _tmp7_;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (_tmp8_);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp9_ = cert;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp11_ = g_base64_decode (_tmp9_, &_tmp10_);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       binary = _tmp11_;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       binary_length1 = _tmp10_;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _binary_size_ = binary_length1;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp12_ = id_card_logger;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp13_ = cert;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp14_ = strlen (_tmp13_);
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp15_ = _tmp14_;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp16_ = binary;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp16__length1 = binary_length1;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp17_ = g_strdup_printf ("get_expiration_date: encoded length=%d; decoded length=%d", _tmp15_, _tmp16__length1);
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp18_ = _tmp17_;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       moonshot_logger_trace (_tmp12_, _tmp18_, NULL);
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (_tmp18_);
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp19_ = binary;
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp19__length1 = binary_length1;
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp20_ = binary;
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp20__length1 = binary_length1;
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp21_ = get_cert_valid_before (_tmp19_, _tmp20__length1, buf, 64);
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp22_ = g_strdup ((const gchar*) _tmp21_);
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       err = _tmp22_;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp23_ = err;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (g_strcmp0 (_tmp23_, "") != 0) {
+#line 1008 "moonshot-id.c"
+               MoonshotLogger* _tmp24_ = NULL;
+               const gchar* _tmp25_ = NULL;
+               const gchar* _tmp26_ = NULL;
+               gchar* _tmp27_ = NULL;
+               gchar* _tmp28_ = NULL;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp24_ = id_card_logger;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp25_ = err;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp26_ = string_to_string (_tmp25_);
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp27_ = g_strconcat ("get_expiration_date: get_cert_valid_before returned '", _tmp26_, "'", NULL);
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp28_ = _tmp27_;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               moonshot_logger_error (_tmp24_, _tmp28_, NULL);
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _g_free0 (_tmp28_);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               if ((&_vala_err_out) != NULL) {
+#line 1030 "moonshot-id.c"
+                       const gchar* _tmp29_ = NULL;
+                       gchar* _tmp30_ = NULL;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       _tmp29_ = err;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       _tmp30_ = g_strdup (_tmp29_);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       _g_free0 (_vala_err_out);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       _vala_err_out = _tmp30_;
+#line 1041 "moonshot-id.c"
+               }
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               result = NULL;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _g_free0 (err);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               binary = (g_free (binary), NULL);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _g_free0 (cert);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               if (err_out) {
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       *err_out = _vala_err_out;
+#line 1055 "moonshot-id.c"
+               } else {
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       _g_free0 (_vala_err_out);
+#line 1059 "moonshot-id.c"
+               }
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               return result;
+#line 1063 "moonshot-id.c"
+       }
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp31_ = g_strdup ((const gchar*) buf);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       date = _tmp31_;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp32_ = id_card_logger;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp33_ = date;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp34_ = string_to_string (_tmp33_);
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp35_ = g_strconcat ("get_expiration_date: get_cert_valid_before returned '", _tmp34_, "'", NULL);
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp36_ = _tmp35_;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       moonshot_logger_trace (_tmp32_, _tmp36_, NULL);
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (_tmp36_);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = date;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (err);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       binary = (g_free (binary), NULL);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (cert);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (err_out) {
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               *err_out = _vala_err_out;
+#line 1095 "moonshot-id.c"
+       } else {
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _g_free0 (_vala_err_out);
+#line 1099 "moonshot-id.c"
+       }
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 1103 "moonshot-id.c"
+}
+
+
+const gchar* trust_anchor_get_ca_cert (TrustAnchor* self) {
+       const gchar* result;
+       const gchar* _tmp0_ = NULL;
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = self->priv->_ca_cert;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = _tmp0_;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 1118 "moonshot-id.c"
+}
+
+
+const gchar* trust_anchor_get_subject (TrustAnchor* self) {
+       const gchar* result;
+       const gchar* _tmp0_ = NULL;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = self->priv->_subject;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = _tmp0_;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 1133 "moonshot-id.c"
+}
+
+
+const gchar* trust_anchor_get_subject_alt (TrustAnchor* self) {
+       const gchar* result;
+       const gchar* _tmp0_ = NULL;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = self->priv->_subject_alt;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = _tmp0_;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 1148 "moonshot-id.c"
+}
+
+
+const gchar* trust_anchor_get_server_cert (TrustAnchor* self) {
+       const gchar* result;
+       const gchar* _tmp0_ = NULL;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = self->priv->_server_cert;
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = _tmp0_;
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 1163 "moonshot-id.c"
+}
+
+
+const gchar* trust_anchor_get_datetime_added (TrustAnchor* self) {
+       const gchar* result;
+       const gchar* _tmp0_ = NULL;
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = self->priv->_datetime_added;
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = _tmp0_;
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 1178 "moonshot-id.c"
+}
+
+
+static void trust_anchor_class_init (TrustAnchorClass * klass) {
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       trust_anchor_parent_class = g_type_class_peek_parent (klass);
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_type_class_add_private (klass, sizeof (TrustAnchorPrivate));
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       G_OBJECT_CLASS (klass)->get_property = _vala_trust_anchor_get_property;
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       G_OBJECT_CLASS (klass)->finalize = trust_anchor_finalize;
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), TRUST_ANCHOR_CA_CERT, g_param_spec_string ("ca-cert", "ca-cert", "ca-cert", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), TRUST_ANCHOR_SUBJECT, g_param_spec_string ("subject", "subject", "subject", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), TRUST_ANCHOR_SUBJECT_ALT, g_param_spec_string ("subject-alt", "subject-alt", "subject-alt", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), TRUST_ANCHOR_SERVER_CERT, g_param_spec_string ("server-cert", "server-cert", "server-cert", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), TRUST_ANCHOR_DATETIME_ADDED, g_param_spec_string ("datetime-added", "datetime-added", "datetime-added", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 1201 "moonshot-id.c"
+}
+
+
+static void trust_anchor_instance_init (TrustAnchor * self) {
+       gchar* _tmp0_ = NULL;
+       gchar* _tmp1_ = NULL;
+       gchar* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv = TRUST_ANCHOR_GET_PRIVATE (self);
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = g_strdup ("");
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_ca_cert = _tmp0_;
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = g_strdup ("");
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_subject = _tmp1_;
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp2_ = g_strdup ("");
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_subject_alt = _tmp2_;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp3_ = g_strdup ("");
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_server_cert = _tmp3_;
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp4_ = g_strdup ("");
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_datetime_added = _tmp4_;
+#line 1233 "moonshot-id.c"
+}
+
+
+static void trust_anchor_finalize (GObject* obj) {
+       TrustAnchor * self;
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TRUST_ANCHOR, TrustAnchor);
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_ca_cert);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_subject);
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_subject_alt);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_server_cert);
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_datetime_added);
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       G_OBJECT_CLASS (trust_anchor_parent_class)->finalize (obj);
+#line 1253 "moonshot-id.c"
+}
+
+
+GType trust_anchor_get_type (void) {
+       static volatile gsize trust_anchor_type_id__volatile = 0;
+       if (g_once_init_enter (&trust_anchor_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (TrustAnchorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) trust_anchor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TrustAnchor), 0, (GInstanceInitFunc) trust_anchor_instance_init, NULL };
+               GType trust_anchor_type_id;
+               trust_anchor_type_id = g_type_register_static (G_TYPE_OBJECT, "TrustAnchor", &g_define_type_info, 0);
+               g_once_init_leave (&trust_anchor_type_id__volatile, trust_anchor_type_id);
+       }
        return trust_anchor_type_id__volatile;
 }
 
@@ -530,79 +1270,45 @@ GType trust_anchor_get_type (void) {
 static void _vala_trust_anchor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
        TrustAnchor * self;
        self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_TRUST_ANCHOR, TrustAnchor);
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        switch (property_id) {
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case TRUST_ANCHOR_CA_CERT:
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                g_value_set_string (value, trust_anchor_get_ca_cert (self));
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case TRUST_ANCHOR_SUBJECT:
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                g_value_set_string (value, trust_anchor_get_subject (self));
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case TRUST_ANCHOR_SUBJECT_ALT:
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                g_value_set_string (value, trust_anchor_get_subject_alt (self));
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case TRUST_ANCHOR_SERVER_CERT:
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                g_value_set_string (value, trust_anchor_get_server_cert (self));
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               break;
-#line 560 "moonshot-id.c"
-               default:
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               break;
-#line 566 "moonshot-id.c"
-       }
-}
-
-
-static void _vala_trust_anchor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
-       TrustAnchor * self;
-       self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_TRUST_ANCHOR, TrustAnchor);
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       switch (property_id) {
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               case TRUST_ANCHOR_CA_CERT:
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               trust_anchor_set_ca_cert (self, g_value_get_string (value));
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               break;
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               case TRUST_ANCHOR_SUBJECT:
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               trust_anchor_set_subject (self, g_value_get_string (value));
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               break;
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               case TRUST_ANCHOR_SUBJECT_ALT:
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               trust_anchor_set_subject_alt (self, g_value_get_string (value));
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               case TRUST_ANCHOR_SERVER_CERT:
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               trust_anchor_set_server_cert (self, g_value_get_string (value));
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               case TRUST_ANCHOR_DATETIME_ADDED:
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               g_value_set_string (value, trust_anchor_get_datetime_added (self));
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 600 "moonshot-id.c"
+#line 1304 "moonshot-id.c"
                default:
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-#line 32 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 606 "moonshot-id.c"
+#line 1310 "moonshot-id.c"
        }
 }
 
@@ -615,41 +1321,41 @@ gint rule_Compare (Rule *self, Rule* other) {
        const gchar* _tmp3_ = NULL;
        Rule _tmp4_ = {0};
        const gchar* _tmp5_ = NULL;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_val_if_fail (other != NULL, 0);
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = (*self).pattern;
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp1_ = *other;
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp2_ = _tmp1_.pattern;
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        if (g_strcmp0 (_tmp0_, _tmp2_) != 0) {
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                result = 1;
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                return result;
-#line 633 "moonshot-id.c"
+#line 1337 "moonshot-id.c"
        }
-#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp3_ = (*self).always_confirm;
-#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp4_ = *other;
-#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp5_ = _tmp4_.always_confirm;
-#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        if (g_strcmp0 (_tmp3_, _tmp5_) != 0) {
-#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                result = 1;
-#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                return result;
-#line 647 "moonshot-id.c"
+#line 1351 "moonshot-id.c"
        }
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = 0;
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 653 "moonshot-id.c"
+#line 1357 "moonshot-id.c"
 }
 
 
@@ -658,109 +1364,874 @@ void rule_copy (const Rule* self, Rule* dest) {
        gchar* _tmp1_ = NULL;
        const gchar* _tmp2_ = NULL;
        gchar* _tmp3_ = NULL;
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = (*self).pattern;
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp1_ = g_strdup (_tmp0_);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _g_free0 ((*dest).pattern);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        (*dest).pattern = _tmp1_;
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp2_ = (*self).always_confirm;
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp3_ = g_strdup (_tmp2_);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _g_free0 ((*dest).always_confirm);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        (*dest).always_confirm = _tmp3_;
-#line 678 "moonshot-id.c"
+#line 1382 "moonshot-id.c"
 }
 
 
 void rule_destroy (Rule* self) {
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _g_free0 ((*self).pattern);
-#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _g_free0 ((*self).always_confirm);
-#line 687 "moonshot-id.c"
+#line 1391 "moonshot-id.c"
 }
 
 
 Rule* rule_dup (const Rule* self) {
        Rule* dup;
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        dup = g_new0 (Rule, 1);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        rule_copy (self, dup);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return dup;
-#line 699 "moonshot-id.c"
+#line 1403 "moonshot-id.c"
+}
+
+
+void rule_free (Rule* self) {
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       rule_destroy (self);
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_free (self);
+#line 1412 "moonshot-id.c"
+}
+
+
+GType rule_get_type (void) {
+       static volatile gsize rule_type_id__volatile = 0;
+       if (g_once_init_enter (&rule_type_id__volatile)) {
+               GType rule_type_id;
+               rule_type_id = g_boxed_type_register_static ("Rule", (GBoxedCopyFunc) rule_dup, (GBoxedFreeFunc) rule_free);
+               g_once_init_leave (&rule_type_id__volatile, rule_type_id);
+       }
+       return rule_type_id__volatile;
+}
+
+
+GType id_card_diff_flags_get_type (void) {
+       static volatile gsize id_card_diff_flags_type_id__volatile = 0;
+       if (g_once_init_enter (&id_card_diff_flags_type_id__volatile)) {
+               static const GEnumValue values[] = {{ID_CARD_DIFF_FLAGS_DISPLAY_NAME, "ID_CARD_DIFF_FLAGS_DISPLAY_NAME", "display-name"}, {ID_CARD_DIFF_FLAGS_USERNAME, "ID_CARD_DIFF_FLAGS_USERNAME", "username"}, {ID_CARD_DIFF_FLAGS_PASSWORD, "ID_CARD_DIFF_FLAGS_PASSWORD", "password"}, {ID_CARD_DIFF_FLAGS_ISSUER, "ID_CARD_DIFF_FLAGS_ISSUER", "issuer"}, {ID_CARD_DIFF_FLAGS_RULES, "ID_CARD_DIFF_FLAGS_RULES", "rules"}, {ID_CARD_DIFF_FLAGS_SERVICES, "ID_CARD_DIFF_FLAGS_SERVICES", "services"}, {ID_CARD_DIFF_FLAGS_TRUST_ANCHOR, "ID_CARD_DIFF_FLAGS_TRUST_ANCHOR", "trust-anchor"}, {0, NULL, NULL}};
+               GType id_card_diff_flags_type_id;
+               id_card_diff_flags_type_id = g_enum_register_static ("IdCardDiffFlags", values);
+               g_once_init_leave (&id_card_diff_flags_type_id__volatile, id_card_diff_flags_type_id);
+       }
+       return id_card_diff_flags_type_id__volatile;
+}
+
+
+static void _vala_Rule_array_free (Rule* array, gint array_length) {
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (array != NULL) {
+#line 1442 "moonshot-id.c"
+               int i;
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               for (i = 0; i < array_length; i = i + 1) {
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       rule_destroy (&array[i]);
+#line 1448 "moonshot-id.c"
+               }
+       }
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_free (array);
+#line 1453 "moonshot-id.c"
+}
+
+
+static void id_card_update_nai (IdCard* self) {
+       const gchar* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+       gchar* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       const gchar* _tmp5_ = NULL;
+       gchar* _tmp6_ = NULL;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (self != NULL);
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = id_card_get_username (self);
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = _tmp0_;
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp2_ = g_strconcat (_tmp1_, "@", NULL);
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp3_ = _tmp2_;
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp4_ = id_card_get_issuer (self);
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp5_ = _tmp4_;
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp6_ = g_strconcat (_tmp3_, _tmp5_, NULL);
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_nai);
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_nai = _tmp6_;
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (_tmp3_);
+#line 1487 "moonshot-id.c"
+}
+
+
+static gchar* _vala_g_strjoinv (const gchar* separator, gchar** str_array, int str_array_length1) {
+       gchar* result = NULL;
+       const gchar* _tmp0_ = NULL;
+       gboolean _tmp1_ = FALSE;
+       gboolean _tmp2_ = FALSE;
+       gchar** _tmp3_ = NULL;
+       gint _tmp3__length1 = 0;
+#line 1062 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp0_ = separator;
+#line 1062 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (_tmp0_ == NULL) {
+#line 1063 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               separator = "";
+#line 1504 "moonshot-id.c"
+       }
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp3_ = str_array;
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp3__length1 = str_array_length1;
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (_tmp3_ != NULL) {
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp2_ = TRUE;
+#line 1514 "moonshot-id.c"
+       } else {
+               gchar** _tmp4_ = NULL;
+               gint _tmp4__length1 = 0;
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp4_ = str_array;
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp4__length1 = str_array_length1;
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp2_ = _tmp4__length1 > 0;
+#line 1524 "moonshot-id.c"
+       }
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (_tmp2_) {
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp1_ = TRUE;
+#line 1530 "moonshot-id.c"
+       } else {
+               gboolean _tmp5_ = FALSE;
+               gchar** _tmp6_ = NULL;
+               gint _tmp6__length1 = 0;
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp6_ = str_array;
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp6__length1 = str_array_length1;
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               if (_tmp6__length1 == -1) {
+#line 1541 "moonshot-id.c"
+                       gchar** _tmp7_ = NULL;
+                       gint _tmp7__length1 = 0;
+                       const gchar* _tmp8_ = NULL;
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       _tmp7_ = str_array;
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       _tmp7__length1 = str_array_length1;
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       _tmp8_ = _tmp7_[0];
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       _tmp5_ = _tmp8_ != NULL;
+#line 1553 "moonshot-id.c"
+               } else {
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       _tmp5_ = FALSE;
+#line 1557 "moonshot-id.c"
+               }
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp1_ = _tmp5_;
+#line 1561 "moonshot-id.c"
+       }
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (_tmp1_) {
+#line 1565 "moonshot-id.c"
+               gint i = 0;
+               gsize len = 0UL;
+               gint _tmp31_ = 0;
+               gint _tmp33_ = 0;
+               gint _tmp34_ = 0;
+               gsize _tmp35_ = 0UL;
+               const gchar* _tmp36_ = NULL;
+               gint _tmp37_ = 0;
+               gint _tmp38_ = 0;
+               gint _tmp39_ = 0;
+               const gchar* res = NULL;
+               gsize _tmp40_ = 0UL;
+               void* _tmp41_ = NULL;
+               void* ptr = NULL;
+               const gchar* _tmp42_ = NULL;
+               gchar** _tmp43_ = NULL;
+               gint _tmp43__length1 = 0;
+               const gchar* _tmp44_ = NULL;
+               void* _tmp45_ = NULL;
+               const gchar* _tmp62_ = NULL;
+#line 1067 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               len = (gsize) 1;
+#line 1588 "moonshot-id.c"
+               {
+                       gboolean _tmp9_ = FALSE;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       i = 0;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       _tmp9_ = TRUE;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       while (TRUE) {
+#line 1597 "moonshot-id.c"
+                               gboolean _tmp11_ = FALSE;
+                               gboolean _tmp12_ = FALSE;
+                               gchar** _tmp13_ = NULL;
+                               gint _tmp13__length1 = 0;
+                               gint _tmp21_ = 0;
+                               gchar** _tmp22_ = NULL;
+                               gint _tmp22__length1 = 0;
+                               gint _tmp23_ = 0;
+                               const gchar* _tmp24_ = NULL;
+                               gsize _tmp30_ = 0UL;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               if (!_tmp9_) {
+#line 1610 "moonshot-id.c"
+                                       gint _tmp10_ = 0;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp10_ = i;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       i = _tmp10_ + 1;
+#line 1616 "moonshot-id.c"
+                               }
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp9_ = FALSE;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp13_ = str_array;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp13__length1 = str_array_length1;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               if (_tmp13__length1 != -1) {
+#line 1626 "moonshot-id.c"
+                                       gint _tmp14_ = 0;
+                                       gchar** _tmp15_ = NULL;
+                                       gint _tmp15__length1 = 0;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp14_ = i;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp15_ = str_array;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp15__length1 = str_array_length1;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp12_ = _tmp14_ < _tmp15__length1;
+#line 1638 "moonshot-id.c"
+                               } else {
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp12_ = FALSE;
+#line 1642 "moonshot-id.c"
+                               }
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               if (_tmp12_) {
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp11_ = TRUE;
+#line 1648 "moonshot-id.c"
+                               } else {
+                                       gboolean _tmp16_ = FALSE;
+                                       gchar** _tmp17_ = NULL;
+                                       gint _tmp17__length1 = 0;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp17_ = str_array;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp17__length1 = str_array_length1;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       if (_tmp17__length1 == -1) {
+#line 1659 "moonshot-id.c"
+                                               gchar** _tmp18_ = NULL;
+                                               gint _tmp18__length1 = 0;
+                                               gint _tmp19_ = 0;
+                                               const gchar* _tmp20_ = NULL;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                               _tmp18_ = str_array;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                               _tmp18__length1 = str_array_length1;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                               _tmp19_ = i;
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                               _tmp20_ = _tmp18_[_tmp19_];
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                               _tmp16_ = _tmp20_ != NULL;
+#line 1674 "moonshot-id.c"
+                                       } else {
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                               _tmp16_ = FALSE;
+#line 1678 "moonshot-id.c"
+                                       }
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp11_ = _tmp16_;
+#line 1682 "moonshot-id.c"
+                               }
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               if (!_tmp11_) {
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       break;
+#line 1688 "moonshot-id.c"
+                               }
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp22_ = str_array;
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp22__length1 = str_array_length1;
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp23_ = i;
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp24_ = _tmp22_[_tmp23_];
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               if (_tmp24_ != NULL) {
+#line 1700 "moonshot-id.c"
+                                       gchar** _tmp25_ = NULL;
+                                       gint _tmp25__length1 = 0;
+                                       gint _tmp26_ = 0;
+                                       const gchar* _tmp27_ = NULL;
+                                       gint _tmp28_ = 0;
+                                       gint _tmp29_ = 0;
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp25_ = str_array;
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp25__length1 = str_array_length1;
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp26_ = i;
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp27_ = _tmp25_[_tmp26_];
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp28_ = strlen ((const gchar*) _tmp27_);
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp29_ = _tmp28_;
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp21_ = _tmp29_;
+#line 1721 "moonshot-id.c"
+                               } else {
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp21_ = 0;
+#line 1725 "moonshot-id.c"
+                               }
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp30_ = len;
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               len = _tmp30_ + _tmp21_;
+#line 1731 "moonshot-id.c"
+                       }
+               }
+#line 1071 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp31_ = i;
+#line 1071 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               if (_tmp31_ == 0) {
+#line 1738 "moonshot-id.c"
+                       gchar* _tmp32_ = NULL;
+#line 1072 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       _tmp32_ = g_strdup ("");
+#line 1072 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       result = _tmp32_;
+#line 1072 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       return result;
+#line 1746 "moonshot-id.c"
+               }
+#line 1074 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp33_ = i;
+#line 1074 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               str_array_length1 = _tmp33_;
+#line 1074 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp34_ = str_array_length1;
+#line 1075 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp35_ = len;
+#line 1075 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp36_ = separator;
+#line 1075 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp37_ = strlen ((const gchar*) _tmp36_);
+#line 1075 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp38_ = _tmp37_;
+#line 1075 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp39_ = i;
+#line 1075 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               len = _tmp35_ + (_tmp38_ * (_tmp39_ - 1));
+#line 1077 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp40_ = len;
+#line 1077 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp41_ = g_malloc (_tmp40_);
+#line 1077 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               res = _tmp41_;
+#line 1078 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp42_ = res;
+#line 1078 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp43_ = str_array;
+#line 1078 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp43__length1 = str_array_length1;
+#line 1078 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp44_ = _tmp43_[0];
+#line 1078 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp45_ = g_stpcpy ((void*) _tmp42_, (const gchar*) _tmp44_);
+#line 1078 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               ptr = _tmp45_;
+#line 1784 "moonshot-id.c"
+               {
+                       gboolean _tmp46_ = FALSE;
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       i = 1;
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       _tmp46_ = TRUE;
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       while (TRUE) {
+#line 1793 "moonshot-id.c"
+                               gint _tmp48_ = 0;
+                               gchar** _tmp49_ = NULL;
+                               gint _tmp49__length1 = 0;
+                               void* _tmp50_ = NULL;
+                               const gchar* _tmp51_ = NULL;
+                               void* _tmp52_ = NULL;
+                               const gchar* _tmp53_ = NULL;
+                               gchar** _tmp54_ = NULL;
+                               gint _tmp54__length1 = 0;
+                               gint _tmp55_ = 0;
+                               const gchar* _tmp56_ = NULL;
+                               void* _tmp60_ = NULL;
+                               void* _tmp61_ = NULL;
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               if (!_tmp46_) {
+#line 1809 "moonshot-id.c"
+                                       gint _tmp47_ = 0;
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp47_ = i;
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       i = _tmp47_ + 1;
+#line 1815 "moonshot-id.c"
+                               }
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp46_ = FALSE;
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp48_ = i;
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp49_ = str_array;
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp49__length1 = str_array_length1;
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               if (!(_tmp48_ < _tmp49__length1)) {
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       break;
+#line 1829 "moonshot-id.c"
+                               }
+#line 1080 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp50_ = ptr;
+#line 1080 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp51_ = separator;
+#line 1080 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp52_ = g_stpcpy (_tmp50_, (const gchar*) _tmp51_);
+#line 1080 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               ptr = _tmp52_;
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp54_ = str_array;
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp54__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp55_ = i;
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp56_ = _tmp54_[_tmp55_];
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               if (_tmp56_ != NULL) {
+#line 1849 "moonshot-id.c"
+                                       gchar** _tmp57_ = NULL;
+                                       gint _tmp57__length1 = 0;
+                                       gint _tmp58_ = 0;
+                                       const gchar* _tmp59_ = NULL;
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp57_ = str_array;
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp57__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp58_ = i;
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp59_ = _tmp57_[_tmp58_];
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp53_ = (const gchar*) _tmp59_;
+#line 1864 "moonshot-id.c"
+                               } else {
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       _tmp53_ = "";
+#line 1868 "moonshot-id.c"
+                               }
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp60_ = ptr;
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               _tmp61_ = g_stpcpy (_tmp60_, _tmp53_);
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               ptr = _tmp61_;
+#line 1876 "moonshot-id.c"
+                       }
+               }
+#line 1084 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp62_ = res;
+#line 1084 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               res = NULL;
+#line 1084 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               result = (gchar*) _tmp62_;
+#line 1084 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return result;
+#line 1887 "moonshot-id.c"
+       } else {
+               gchar* _tmp63_ = NULL;
+#line 1086 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp63_ = g_strdup ("");
+#line 1086 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               result = _tmp63_;
+#line 1086 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return result;
+#line 1896 "moonshot-id.c"
+       }
+}
+
+
+gchar* id_card_get_services_string (IdCard* self, const gchar* sep) {
+       gchar* result = NULL;
+       GeeArrayList* _tmp0_ = NULL;
+       gboolean _tmp1_ = FALSE;
+       gboolean _tmp2_ = FALSE;
+       gchar** svcs = NULL;
+       GeeArrayList* _tmp4_ = NULL;
+       gint _tmp5_ = 0;
+       gint _tmp6_ = 0;
+       gchar** _tmp7_ = NULL;
+       gint svcs_length1 = 0;
+       gint _svcs_size_ = 0;
+       const gchar* _tmp20_ = NULL;
+       gchar** _tmp21_ = NULL;
+       gint _tmp21__length1 = 0;
+       gchar* _tmp22_ = NULL;
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (sep != NULL, NULL);
+#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = self->priv->_services;
+#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = gee_collection_get_is_empty ((GeeCollection*) _tmp0_);
+#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp2_ = _tmp1_;
+#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (_tmp2_) {
+#line 1929 "moonshot-id.c"
+               gchar* _tmp3_ = NULL;
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp3_ = g_strdup ("");
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               result = _tmp3_;
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               return result;
+#line 1937 "moonshot-id.c"
+       }
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp4_ = self->priv->_services;
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp6_ = _tmp5_;
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp7_ = g_new0 (gchar*, _tmp6_ + 1);
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       svcs = _tmp7_;
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       svcs_length1 = _tmp6_;
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _svcs_size_ = svcs_length1;
+#line 1953 "moonshot-id.c"
+       {
+               gint i = 0;
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               i = 0;
+#line 1958 "moonshot-id.c"
+               {
+                       gboolean _tmp8_ = FALSE;
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       _tmp8_ = TRUE;
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       while (TRUE) {
+#line 1965 "moonshot-id.c"
+                               gint _tmp10_ = 0;
+                               GeeArrayList* _tmp11_ = NULL;
+                               gint _tmp12_ = 0;
+                               gint _tmp13_ = 0;
+                               gchar** _tmp14_ = NULL;
+                               gint _tmp14__length1 = 0;
+                               gint _tmp15_ = 0;
+                               GeeArrayList* _tmp16_ = NULL;
+                               gint _tmp17_ = 0;
+                               gpointer _tmp18_ = NULL;
+                               gchar* _tmp19_ = NULL;
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               if (!_tmp8_) {
+#line 1979 "moonshot-id.c"
+                                       gint _tmp9_ = 0;
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                                       _tmp9_ = i;
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                                       i = _tmp9_ + 1;
+#line 1985 "moonshot-id.c"
+                               }
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp8_ = FALSE;
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp10_ = i;
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp11_ = self->priv->_services;
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp12_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp11_);
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp13_ = _tmp12_;
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               if (!(_tmp10_ < _tmp13_)) {
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                                       break;
+#line 2001 "moonshot-id.c"
+                               }
+#line 292 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp14_ = svcs;
+#line 292 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp14__length1 = svcs_length1;
+#line 292 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp15_ = i;
+#line 292 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp16_ = self->priv->_services;
+#line 292 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp17_ = i;
+#line 292 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp18_ = gee_abstract_list_get ((GeeAbstractList*) _tmp16_, _tmp17_);
+#line 292 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _g_free0 (_tmp14_[_tmp15_]);
+#line 292 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp14_[_tmp15_] = (gchar*) _tmp18_;
+#line 292 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp19_ = _tmp14_[_tmp15_];
+#line 2021 "moonshot-id.c"
+                       }
+               }
+       }
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp20_ = sep;
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp21_ = svcs;
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp21__length1 = svcs_length1;
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp22_ = _vala_g_strjoinv (_tmp20_, _tmp21_, _tmp21__length1);
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = _tmp22_;
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       svcs = (_vala_array_free (svcs, svcs_length1, (GDestroyNotify) g_free), NULL);
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 2039 "moonshot-id.c"
+}
+
+
+void id_card_update_services (IdCard* self, gchar** services, int services_length1) {
+       GeeArrayList* _tmp0_ = NULL;
+       gchar** _tmp1_ = NULL;
+       gint _tmp1__length1 = 0;
+#line 298 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (self != NULL);
+#line 299 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = self->priv->_services;
+#line 299 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp0_);
+#line 304 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = services;
+#line 304 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1__length1 = services_length1;
+#line 304 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (_tmp1_ != NULL) {
+#line 2059 "moonshot-id.c"
+               gchar** _tmp2_ = NULL;
+               gint _tmp2__length1 = 0;
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp2_ = services;
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp2__length1 = services_length1;
+#line 2066 "moonshot-id.c"
+               {
+                       gchar** s_collection = NULL;
+                       gint s_collection_length1 = 0;
+                       gint _s_collection_size_ = 0;
+                       gint s_it = 0;
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       s_collection = _tmp2_;
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       s_collection_length1 = _tmp2__length1;
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       for (s_it = 0; s_it < _tmp2__length1; s_it = s_it + 1) {
+#line 2078 "moonshot-id.c"
+                               gchar* _tmp3_ = NULL;
+                               gchar* s = NULL;
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp3_ = g_strdup (s_collection[s_it]);
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               s = _tmp3_;
+#line 2085 "moonshot-id.c"
+                               {
+                                       GeeArrayList* _tmp4_ = NULL;
+                                       const gchar* _tmp5_ = NULL;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                                       _tmp4_ = self->priv->_services;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                                       _tmp5_ = s;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp4_, _tmp5_);
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                                       _g_free0 (s);
+#line 2097 "moonshot-id.c"
+                               }
+                       }
+               }
+       }
 }
 
 
-void rule_free (Rule* self) {
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       rule_destroy (self);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_free (self);
-#line 708 "moonshot-id.c"
+void id_card_update_services_from_list (IdCard* self, GeeArrayList* services) {
+       GeeArrayList* _tmp0_ = NULL;
+       GeeArrayList* _tmp1_ = NULL;
+       GeeArrayList* _tmp2_ = NULL;
+       GeeArrayList* _tmp3_ = NULL;
+#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (self != NULL);
+#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (services != NULL);
+#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = services;
+#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = self->priv->_services;
+#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (_tmp0_ == _tmp1_) {
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               return;
+#line 2122 "moonshot-id.c"
+       }
+#line 317 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp2_ = self->priv->_services;
+#line 317 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp2_);
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp3_ = services;
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (_tmp3_ != NULL) {
+#line 2132 "moonshot-id.c"
+               GeeArrayList* _tmp4_ = NULL;
+               GeeArrayList* _tmp5_ = NULL;
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp4_ = self->priv->_services;
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp5_ = services;
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               gee_array_list_add_all (_tmp4_, (GeeCollection*) _tmp5_);
+#line 2141 "moonshot-id.c"
+       }
 }
 
 
-GType rule_get_type (void) {
-       static volatile gsize rule_type_id__volatile = 0;
-       if (g_once_init_enter (&rule_type_id__volatile)) {
-               GType rule_type_id;
-               rule_type_id = g_boxed_type_register_static ("Rule", (GBoxedCopyFunc) rule_dup, (GBoxedFreeFunc) rule_free);
-               g_once_init_leave (&rule_type_id__volatile, rule_type_id);
-       }
-       return rule_type_id__volatile;
+static gpointer _g_object_ref0 (gpointer self) {
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 2149 "moonshot-id.c"
 }
 
 
-GType id_card_diff_flags_get_type (void) {
-       static volatile gsize id_card_diff_flags_type_id__volatile = 0;
-       if (g_once_init_enter (&id_card_diff_flags_type_id__volatile)) {
-               static const GEnumValue values[] = {{ID_CARD_DIFF_FLAGS_DISPLAY_NAME, "ID_CARD_DIFF_FLAGS_DISPLAY_NAME", "display-name"}, {ID_CARD_DIFF_FLAGS_USERNAME, "ID_CARD_DIFF_FLAGS_USERNAME", "username"}, {ID_CARD_DIFF_FLAGS_PASSWORD, "ID_CARD_DIFF_FLAGS_PASSWORD", "password"}, {ID_CARD_DIFF_FLAGS_ISSUER, "ID_CARD_DIFF_FLAGS_ISSUER", "issuer"}, {ID_CARD_DIFF_FLAGS_RULES, "ID_CARD_DIFF_FLAGS_RULES", "rules"}, {ID_CARD_DIFF_FLAGS_SERVICES, "ID_CARD_DIFF_FLAGS_SERVICES", "services"}, {ID_CARD_DIFF_FLAGS_TRUST_ANCHOR, "ID_CARD_DIFF_FLAGS_TRUST_ANCHOR", "trust-anchor"}, {0, NULL, NULL}};
-               GType id_card_diff_flags_type_id;
-               id_card_diff_flags_type_id = g_enum_register_static ("IdCardDiffFlags", values);
-               g_once_init_leave (&id_card_diff_flags_type_id__volatile, id_card_diff_flags_type_id);
-       }
-       return id_card_diff_flags_type_id__volatile;
+void id_card_set_trust_anchor_from_store (IdCard* self, TrustAnchor* ta) {
+       TrustAnchor* _tmp0_ = NULL;
+       TrustAnchor* _tmp1_ = NULL;
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (self != NULL);
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (ta != NULL);
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = ta;
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_object_unref0 (self->priv->_trust_anchor);
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_trust_anchor = _tmp1_;
+#line 2168 "moonshot-id.c"
 }
 
 
-static void _vala_Rule_array_free (Rule* array, gint array_length) {
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       if (array != NULL) {
-#line 738 "moonshot-id.c"
-               int i;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               for (i = 0; i < array_length; i = i + 1) {
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                       rule_destroy (&array[i]);
-#line 744 "moonshot-id.c"
-               }
-       }
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_free (array);
-#line 749 "moonshot-id.c"
+void id_card_clear_trust_anchor (IdCard* self) {
+       TrustAnchor* _tmp0_ = NULL;
+#line 339 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (self != NULL);
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = trust_anchor_new_empty ();
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_object_unref0 (self->priv->_trust_anchor);
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_trust_anchor = _tmp0_;
+#line 2182 "moonshot-id.c"
+}
+
+
+gchar* id_card_generate_uuid (void) {
+       gchar* result = NULL;
+       guint32 rand1 = 0U;
+       guint32 _tmp0_ = 0U;
+       guint32 rand2 = 0U;
+       guint32 _tmp1_ = 0U;
+       gchar* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
+       gchar* _tmp5_ = NULL;
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = g_random_int ();
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       rand1 = _tmp0_;
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = g_random_int ();
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       rand2 = _tmp1_;
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp2_ = trust_anchor_format_datetime_now ();
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp3_ = _tmp2_;
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp4_ = g_strdup_printf ("%08X.%08X::%s", (guint) rand1, (guint) rand2, _tmp3_);
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp5_ = _tmp4_;
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (_tmp3_);
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = _tmp5_;
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 2218 "moonshot-id.c"
 }
 
 
-gboolean id_card_IsNoIdentity (IdCard* self) {
+gboolean id_card_is_no_identity (IdCard* self) {
        gboolean result = FALSE;
        const gchar* _tmp0_ = NULL;
-#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 359 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = self->priv->_display_name;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = g_strcmp0 (_tmp0_, ID_CARD_NO_IDENTITY) == 0;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 764 "moonshot-id.c"
+#line 2233 "moonshot-id.c"
 }
 
 
@@ -771,197 +2242,241 @@ gint id_card_Compare (IdCard* self, IdCard* other) {
        IdCard* _tmp1_ = NULL;
        const gchar* _tmp2_ = NULL;
        const gchar* _tmp4_ = NULL;
-       IdCard* _tmp5_ = NULL;
-       const gchar* _tmp6_ = NULL;
+       const gchar* _tmp5_ = NULL;
+       IdCard* _tmp6_ = NULL;
+       const gchar* _tmp7_ = NULL;
        const gchar* _tmp8_ = NULL;
-       const gchar* _tmp9_ = NULL;
-       IdCard* _tmp10_ = NULL;
+       const gchar* _tmp10_ = NULL;
        const gchar* _tmp11_ = NULL;
-       const gchar* _tmp12_ = NULL;
+       IdCard* _tmp12_ = NULL;
+       const gchar* _tmp13_ = NULL;
        const gchar* _tmp14_ = NULL;
-       IdCard* _tmp15_ = NULL;
        const gchar* _tmp16_ = NULL;
-       Rule* _tmp18_ = NULL;
-       gint _tmp18__length1 = 0;
-       Rule* _tmp19_ = NULL;
-       gint _tmp19__length1 = 0;
-       IdCard* _tmp20_ = NULL;
-       Rule* _tmp21_ = NULL;
-       gint _tmp21__length1 = 0;
+       const gchar* _tmp17_ = NULL;
+       IdCard* _tmp18_ = NULL;
+       const gchar* _tmp19_ = NULL;
+       const gchar* _tmp20_ = NULL;
        Rule* _tmp22_ = NULL;
        gint _tmp22__length1 = 0;
-       gint _tmp23_ = 0;
-       gchar** _tmp25_ = NULL;
+       Rule* _tmp23_ = NULL;
+       gint _tmp23__length1 = 0;
+       IdCard* _tmp24_ = NULL;
+       Rule* _tmp25_ = NULL;
        gint _tmp25__length1 = 0;
-       gchar** _tmp26_ = NULL;
+       Rule* _tmp26_ = NULL;
        gint _tmp26__length1 = 0;
-       IdCard* _tmp27_ = NULL;
-       gchar** _tmp28_ = NULL;
-       gint _tmp28__length1 = 0;
-       gchar** _tmp29_ = NULL;
-       gint _tmp29__length1 = 0;
-       gint _tmp30_ = 0;
-       TrustAnchor* _tmp32_ = NULL;
-       IdCard* _tmp33_ = NULL;
+       gint _tmp27_ = 0;
+       GeeArrayList* _tmp29_ = NULL;
+       IdCard* _tmp30_ = NULL;
+       GeeArrayList* _tmp31_ = NULL;
+       gint _tmp32_ = 0;
        TrustAnchor* _tmp34_ = NULL;
-       gint _tmp35_ = 0;
-       FILE* _tmp37_ = NULL;
-       gint _tmp38_ = 0;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       TrustAnchor* _tmp35_ = NULL;
+       IdCard* _tmp36_ = NULL;
+       TrustAnchor* _tmp37_ = NULL;
+       TrustAnchor* _tmp38_ = NULL;
+       gint _tmp39_ = 0;
+       gboolean _tmp41_ = FALSE;
+       const gchar* _tmp42_ = NULL;
+       IdCard* _tmp43_ = NULL;
+       const gchar* _tmp44_ = NULL;
+#line 374 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_val_if_fail (self != NULL, 0);
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 374 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_val_if_fail (other != NULL, 0);
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 376 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        diff = 0;
-#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = self->priv->_display_name;
-#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp1_ = other;
-#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp2_ = _tmp1_->priv->_display_name;
-#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        if (g_strcmp0 (_tmp0_, _tmp2_) != 0) {
-#line 825 "moonshot-id.c"
+#line 2296 "moonshot-id.c"
                gint _tmp3_ = 0;
-#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 378 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                _tmp3_ = diff;
-#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 378 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                diff = _tmp3_ | (1 << ID_CARD_DIFF_FLAGS_DISPLAY_NAME);
-#line 831 "moonshot-id.c"
-       }
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp4_ = self->priv->_username;
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp5_ = other;
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp6_ = _tmp5_->priv->_username;
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       if (g_strcmp0 (_tmp4_, _tmp6_) != 0) {
-#line 841 "moonshot-id.c"
-               gint _tmp7_ = 0;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               _tmp7_ = diff;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               diff = _tmp7_ | (1 << ID_CARD_DIFF_FLAGS_USERNAME);
-#line 847 "moonshot-id.c"
+#line 2302 "moonshot-id.c"
        }
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp8_ = id_card_get_password (self);
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp9_ = _tmp8_;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp10_ = other;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp11_ = id_card_get_password (_tmp10_);
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp12_ = _tmp11_;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       if (g_strcmp0 (_tmp9_, _tmp12_) != 0) {
-#line 861 "moonshot-id.c"
-               gint _tmp13_ = 0;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               _tmp13_ = diff;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               diff = _tmp13_ | (1 << ID_CARD_DIFF_FLAGS_PASSWORD);
-#line 867 "moonshot-id.c"
+#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp4_ = id_card_get_username (self);
+#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp5_ = _tmp4_;
+#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp6_ = other;
+#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp7_ = id_card_get_username (_tmp6_);
+#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp8_ = _tmp7_;
+#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (g_strcmp0 (_tmp5_, _tmp8_) != 0) {
+#line 2316 "moonshot-id.c"
+               gint _tmp9_ = 0;
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp9_ = diff;
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               diff = _tmp9_ | (1 << ID_CARD_DIFF_FLAGS_USERNAME);
+#line 2322 "moonshot-id.c"
        }
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp14_ = self->priv->_issuer;
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp15_ = other;
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp16_ = _tmp15_->priv->_issuer;
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       if (g_strcmp0 (_tmp14_, _tmp16_) != 0) {
-#line 877 "moonshot-id.c"
-               gint _tmp17_ = 0;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               _tmp17_ = diff;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               diff = _tmp17_ | (1 << ID_CARD_DIFF_FLAGS_ISSUER);
-#line 883 "moonshot-id.c"
+#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp10_ = id_card_get_password (self);
+#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp11_ = _tmp10_;
+#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp12_ = other;
+#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp13_ = id_card_get_password (_tmp12_);
+#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp14_ = _tmp13_;
+#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (g_strcmp0 (_tmp11_, _tmp14_) != 0) {
+#line 2336 "moonshot-id.c"
+               gint _tmp15_ = 0;
+#line 384 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp15_ = diff;
+#line 384 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               diff = _tmp15_ | (1 << ID_CARD_DIFF_FLAGS_PASSWORD);
+#line 2342 "moonshot-id.c"
        }
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp18_ = id_card_get_rules (self, &_tmp18__length1);
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp19_ = _tmp18_;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp19__length1 = _tmp18__length1;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp20_ = other;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp21_ = id_card_get_rules (_tmp20_, &_tmp21__length1);
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp22_ = _tmp21_;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp22__length1 = _tmp21__length1;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp23_ = CompareRules (_tmp19_, _tmp19__length1, _tmp22_, _tmp22__length1);
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       if (_tmp23_ != 0) {
-#line 903 "moonshot-id.c"
-               gint _tmp24_ = 0;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               _tmp24_ = diff;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               diff = _tmp24_ | (1 << ID_CARD_DIFF_FLAGS_RULES);
-#line 909 "moonshot-id.c"
+#line 386 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp16_ = id_card_get_issuer (self);
+#line 386 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp17_ = _tmp16_;
+#line 386 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp18_ = other;
+#line 386 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp19_ = id_card_get_issuer (_tmp18_);
+#line 386 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp20_ = _tmp19_;
+#line 386 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (g_strcmp0 (_tmp17_, _tmp20_) != 0) {
+#line 2356 "moonshot-id.c"
+               gint _tmp21_ = 0;
+#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp21_ = diff;
+#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               diff = _tmp21_ | (1 << ID_CARD_DIFF_FLAGS_ISSUER);
+#line 2362 "moonshot-id.c"
        }
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp25_ = id_card_get_services (self, &_tmp25__length1);
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp22_ = id_card_get_rules (self, &_tmp22__length1);
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp23_ = _tmp22_;
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp23__length1 = _tmp22__length1;
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp24_ = other;
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp25_ = id_card_get_rules (_tmp24_, &_tmp25__length1);
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp26_ = _tmp25_;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp26__length1 = _tmp25__length1;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp27_ = other;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp28_ = id_card_get_services (_tmp27_, &_tmp28__length1);
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp29_ = _tmp28_;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp29__length1 = _tmp28__length1;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp30_ = CompareStringArray (_tmp26_, _tmp26__length1, _tmp29_, _tmp29__length1);
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       if (_tmp30_ != 0) {
-#line 929 "moonshot-id.c"
-               gint _tmp31_ = 0;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               _tmp31_ = diff;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               diff = _tmp31_ | (1 << ID_CARD_DIFF_FLAGS_SERVICES);
-#line 935 "moonshot-id.c"
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp27_ = CompareRules (_tmp23_, _tmp23__length1, _tmp26_, _tmp26__length1);
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (_tmp27_ != 0) {
+#line 2382 "moonshot-id.c"
+               gint _tmp28_ = 0;
+#line 390 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp28_ = diff;
+#line 390 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               diff = _tmp28_ | (1 << ID_CARD_DIFF_FLAGS_RULES);
+#line 2388 "moonshot-id.c"
        }
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp32_ = self->priv->_trust_anchor;
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp33_ = other;
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp34_ = _tmp33_->priv->_trust_anchor;
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp35_ = trust_anchor_Compare (_tmp32_, _tmp34_);
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       if (_tmp35_ != 0) {
-#line 947 "moonshot-id.c"
-               gint _tmp36_ = 0;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               _tmp36_ = diff;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               diff = _tmp36_ | (1 << ID_CARD_DIFF_FLAGS_TRUST_ANCHOR);
-#line 953 "moonshot-id.c"
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp29_ = self->priv->_services;
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp30_ = other;
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp31_ = _tmp30_->priv->_services;
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp32_ = CompareStringArrayList (_tmp29_, _tmp31_);
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (_tmp32_ != 0) {
+#line 2400 "moonshot-id.c"
+               gint _tmp33_ = 0;
+#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp33_ = diff;
+#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               diff = _tmp33_ | (1 << ID_CARD_DIFF_FLAGS_SERVICES);
+#line 2406 "moonshot-id.c"
        }
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp37_ = stdout;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp38_ = diff;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       fprintf (_tmp37_, "Diff Flags: %x\n", (guint) _tmp38_);
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp34_ = id_card_get_trust_anchor (self);
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp35_ = _tmp34_;
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp36_ = other;
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp37_ = id_card_get_trust_anchor (_tmp36_);
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp38_ = _tmp37_;
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp39_ = trust_anchor_Compare (_tmp35_, _tmp38_);
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (_tmp39_ != 0) {
+#line 2422 "moonshot-id.c"
+               gint _tmp40_ = 0;
+#line 396 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp40_ = diff;
+#line 396 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               diff = _tmp40_ | (1 << ID_CARD_DIFF_FLAGS_TRUST_ANCHOR);
+#line 2428 "moonshot-id.c"
+       }
+#line 399 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp42_ = self->priv->_display_name;
+#line 399 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp43_ = other;
+#line 399 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp44_ = _tmp43_->priv->_display_name;
+#line 399 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (g_strcmp0 (_tmp42_, _tmp44_) == 0) {
+#line 2438 "moonshot-id.c"
+               gint _tmp45_ = 0;
+#line 399 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp45_ = diff;
+#line 399 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp41_ = _tmp45_ != 0;
+#line 2444 "moonshot-id.c"
+       } else {
+#line 399 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp41_ = FALSE;
+#line 2448 "moonshot-id.c"
+       }
+#line 399 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (_tmp41_) {
+#line 2452 "moonshot-id.c"
+               MoonshotLogger* _tmp46_ = NULL;
+               const gchar* _tmp47_ = NULL;
+               gint _tmp48_ = 0;
+               gchar* _tmp49_ = NULL;
+               gchar* _tmp50_ = NULL;
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp46_ = id_card_logger;
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp47_ = self->priv->_display_name;
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp48_ = diff;
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp49_ = g_strdup_printf ("Compare: Two IDs with display_name '%s', but diff_flags=%0x", _tmp47_, (guint) _tmp48_);
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp50_ = _tmp49_;
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               moonshot_logger_trace (_tmp46_, _tmp50_, NULL);
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _g_free0 (_tmp50_);
+#line 2472 "moonshot-id.c"
+       }
+#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = diff;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 965 "moonshot-id.c"
+#line 2478 "moonshot-id.c"
 }
 
 
@@ -969,102 +2484,185 @@ IdCard* id_card_NewNoIdentity (void) {
        IdCard* result = NULL;
        IdCard* card = NULL;
        IdCard* _tmp0_ = NULL;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       gchar* _tmp1_ = NULL;
+#line 407 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = id_card_new ();
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 407 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        card = _tmp0_;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 408 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        id_card_set_display_name (card, ID_CARD_NO_IDENTITY);
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 409 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = g_strdup ("");
+#line 409 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (card->priv->_nai);
+#line 409 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       card->priv->_nai = _tmp1_;
+#line 410 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = card;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 410 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 983 "moonshot-id.c"
+#line 2503 "moonshot-id.c"
+}
+
+
+static void _vala_array_add2 (Rule** array, int* length, int* size, const Rule* value) {
+#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if ((*length) == (*size)) {
+#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               *size = (*size) ? (2 * (*size)) : 4;
+#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               *array = g_renew (Rule, *array, *size);
+#line 2514 "moonshot-id.c"
+       }
+#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       (*array)[(*length)++] = *value;
+#line 2518 "moonshot-id.c"
+}
+
+
+void id_card_add_rule (IdCard* self, Rule* rule) {
+       Rule* _tmp0_ = NULL;
+       gint _tmp0__length1 = 0;
+       Rule _tmp1_ = {0};
+       Rule _tmp2_ = {0};
+#line 417 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (self != NULL);
+#line 417 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (rule != NULL);
+#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = self->priv->_rules;
+#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0__length1 = self->priv->_rules_length1;
+#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = *rule;
+#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       rule_copy (&_tmp1_, &_tmp2_);
+#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _vala_array_add2 (&self->priv->_rules, &self->priv->_rules_length1, &self->priv->__rules_size_, &_tmp2_);
+#line 2541 "moonshot-id.c"
 }
 
 
 IdCard* id_card_construct (GType object_type) {
        IdCard * self = NULL;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self = (IdCard*) g_object_new (object_type, NULL);
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return self;
-#line 993 "moonshot-id.c"
+#line 2551 "moonshot-id.c"
 }
 
 
 IdCard* id_card_new (void) {
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return id_card_construct (TYPE_ID_CARD);
-#line 1000 "moonshot-id.c"
+#line 2558 "moonshot-id.c"
 }
 
 
 const gchar* id_card_get_display_name (IdCard* self) {
        const gchar* result;
        const gchar* _tmp0_ = NULL;
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_val_if_fail (self != NULL, NULL);
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = self->priv->_display_name;
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = _tmp0_;
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 1015 "moonshot-id.c"
+#line 2573 "moonshot-id.c"
 }
 
 
 void id_card_set_display_name (IdCard* self, const gchar* value) {
        const gchar* _tmp0_ = NULL;
        gchar* _tmp1_ = NULL;
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_if_fail (self != NULL);
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = value;
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp1_ = g_strdup (_tmp0_);
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _g_free0 (self->priv->_display_name);
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv->_display_name = _tmp1_;
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_object_notify ((GObject *) self, "display-name");
-#line 1034 "moonshot-id.c"
+#line 2592 "moonshot-id.c"
 }
 
 
 const gchar* id_card_get_username (IdCard* self) {
        const gchar* result;
        const gchar* _tmp0_ = NULL;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_val_if_fail (self != NULL, NULL);
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = self->priv->_username;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = _tmp0_;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 1049 "moonshot-id.c"
+#line 2607 "moonshot-id.c"
 }
 
 
 void id_card_set_username (IdCard* self, const gchar* value) {
        const gchar* _tmp0_ = NULL;
        gchar* _tmp1_ = NULL;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_if_fail (self != NULL);
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = value;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp1_ = g_strdup (_tmp0_);
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _g_free0 (self->priv->_username);
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv->_username = _tmp1_;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       id_card_update_nai (self);
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_object_notify ((GObject *) self, "username");
-#line 1068 "moonshot-id.c"
+#line 2628 "moonshot-id.c"
+}
+
+
+const gchar* id_card_get_issuer (IdCard* self) {
+       const gchar* result;
+       const gchar* _tmp0_ = NULL;
+#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = self->priv->_issuer;
+#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = _tmp0_;
+#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 2643 "moonshot-id.c"
+}
+
+
+void id_card_set_issuer (IdCard* self, const gchar* value) {
+       const gchar* _tmp0_ = NULL;
+       gchar* _tmp1_ = NULL;
+#line 236 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (self != NULL);
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = value;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_issuer);
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_issuer = _tmp1_;
+#line 238 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       id_card_update_nai (self);
+#line 236 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_object_notify ((GObject *) self, "issuer");
+#line 2664 "moonshot-id.c"
 }
 
 
@@ -1072,103 +2670,69 @@ const gchar* id_card_get_password (IdCard* self) {
        const gchar* result;
        const gchar* _tmp0_ = NULL;
        const gchar* _tmp1_ = NULL;
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_val_if_fail (self != NULL, NULL);
-#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp1_ = self->priv->_password;
-#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        if (_tmp1_ != NULL) {
-#line 1082 "moonshot-id.c"
+#line 2678 "moonshot-id.c"
                const gchar* _tmp2_ = NULL;
-#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                _tmp2_ = self->priv->_password;
-#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                _tmp0_ = _tmp2_;
-#line 1088 "moonshot-id.c"
+#line 2684 "moonshot-id.c"
        } else {
-#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                _tmp0_ = "";
-#line 1092 "moonshot-id.c"
+#line 2688 "moonshot-id.c"
        }
-#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = _tmp0_;
-#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 1098 "moonshot-id.c"
+#line 2694 "moonshot-id.c"
 }
 
 
 void id_card_set_password (IdCard* self, const gchar* value) {
        const gchar* _tmp0_ = NULL;
        const gchar* _tmp2_ = NULL;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_if_fail (self != NULL);
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = self->priv->_password;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        if (_tmp0_ != NULL) {
-#line 1111 "moonshot-id.c"
+#line 2707 "moonshot-id.c"
                const gchar* _tmp1_ = NULL;
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                _tmp1_ = self->priv->_password;
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                gnome_keyring_memory_free ((void*) _tmp1_);
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                self->priv->_password = NULL;
-#line 1119 "moonshot-id.c"
+#line 2715 "moonshot-id.c"
        }
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp2_ = value;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        if (_tmp2_ != NULL) {
-#line 1125 "moonshot-id.c"
+#line 2721 "moonshot-id.c"
                const gchar* _tmp3_ = NULL;
                const gchar* _tmp4_ = NULL;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                _tmp3_ = value;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                _tmp4_ = gnome_keyring_memory_strdup (_tmp3_);
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                self->priv->_password = _tmp4_;
-#line 1134 "moonshot-id.c"
+#line 2730 "moonshot-id.c"
        }
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_object_notify ((GObject *) self, "password");
-#line 1138 "moonshot-id.c"
-}
-
-
-const gchar* id_card_get_issuer (IdCard* self) {
-       const gchar* result;
-       const gchar* _tmp0_ = NULL;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = self->priv->_issuer;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       result = _tmp0_;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       return result;
-#line 1153 "moonshot-id.c"
-}
-
-
-void id_card_set_issuer (IdCard* self, const gchar* value) {
-       const gchar* _tmp0_ = NULL;
-       gchar* _tmp1_ = NULL;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_if_fail (self != NULL);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = value;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1_ = g_strdup (_tmp0_);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _g_free0 (self->priv->_issuer);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_issuer = _tmp1_;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_notify ((GObject *) self, "issuer");
-#line 1172 "moonshot-id.c"
+#line 2734 "moonshot-id.c"
 }
 
 
@@ -1176,325 +2740,291 @@ Rule* id_card_get_rules (IdCard* self, int* result_length1) {
        Rule* result;
        Rule* _tmp0_ = NULL;
        gint _tmp0__length1 = 0;
-       Rule* _tmp1_ = NULL;
-       gint _tmp1__length1 = 0;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = self->priv->_rules;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0__length1 = self->priv->_rules_length1;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1_ = _tmp0_;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1__length1 = _tmp0__length1;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       if (result_length1) {
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               *result_length1 = _tmp1__length1;
-#line 1196 "moonshot-id.c"
-       }
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       result = _tmp1_;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       return result;
-#line 1202 "moonshot-id.c"
-}
-
-
-static Rule* _vala_array_dup5 (Rule* self, int length) {
-       Rule* result;
-       int i;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       result = g_new0 (Rule, length);
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       for (i = 0; i < length; i++) {
-#line 1213 "moonshot-id.c"
-               Rule _tmp0_ = {0};
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               rule_copy (&self[i], &_tmp0_);
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               result[i] = _tmp0_;
-#line 1219 "moonshot-id.c"
-       }
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       return result;
-#line 1223 "moonshot-id.c"
-}
-
-
-void id_card_set_rules (IdCard* self, Rule* value, int value_length1) {
-       Rule* _tmp0_ = NULL;
-       gint _tmp0__length1 = 0;
-       Rule* _tmp1_ = NULL;
-       gint _tmp1__length1 = 0;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_if_fail (self != NULL);
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = value;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0__length1 = value_length1;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup5 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1__length1 = _tmp0__length1;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_rules = (_vala_Rule_array_free (self->priv->_rules, self->priv->_rules_length1), NULL);
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_rules = _tmp1_;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_rules_length1 = _tmp1__length1;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->__rules_size_ = self->priv->_rules_length1;
-#line 1250 "moonshot-id.c"
-}
-
-
-gchar** id_card_get_services (IdCard* self, int* result_length1) {
-       gchar** result;
-       gchar** _tmp0_ = NULL;
-       gint _tmp0__length1 = 0;
-       gchar** _tmp1_ = NULL;
+       Rule* _tmp1_ = NULL;
        gint _tmp1__length1 = 0;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_val_if_fail (self != NULL, NULL);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = self->priv->_services;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0__length1 = self->priv->_services_length1;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = self->priv->_rules;
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0__length1 = self->priv->_rules_length1;
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp1_ = _tmp0_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp1__length1 = _tmp0__length1;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        if (result_length1) {
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                *result_length1 = _tmp1__length1;
-#line 1274 "moonshot-id.c"
+#line 2758 "moonshot-id.c"
        }
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = _tmp1_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 1280 "moonshot-id.c"
+#line 2764 "moonshot-id.c"
 }
 
 
-static gchar** _vala_array_dup6 (gchar** self, int length) {
-       gchar** result;
+static Rule* _vala_array_dup5 (Rule* self, int length) {
+       Rule* result;
        int i;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       result = g_new0 (gchar*, length + 1);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = g_new0 (Rule, length);
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        for (i = 0; i < length; i++) {
-#line 1291 "moonshot-id.c"
-               gchar* _tmp0_ = NULL;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               _tmp0_ = g_strdup (self[i]);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 2775 "moonshot-id.c"
+               Rule _tmp0_ = {0};
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               rule_copy (&self[i], &_tmp0_);
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                result[i] = _tmp0_;
-#line 1297 "moonshot-id.c"
+#line 2781 "moonshot-id.c"
        }
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 1301 "moonshot-id.c"
+#line 2785 "moonshot-id.c"
 }
 
 
-void id_card_set_services (IdCard* self, gchar** value, int value_length1) {
-       gchar** _tmp0_ = NULL;
-       gint _tmp0__length1 = 0;
-       gchar** _tmp1_ = NULL;
+void id_card_set_rules (IdCard* self, Rule* value, int value_length1) {
+       Rule* _tmp0_ = NULL;
+       Rule* _tmp1_ = NULL;
        gint _tmp1__length1 = 0;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       Rule* _tmp2_ = NULL;
+       gint _tmp2__length1 = 0;
+       gint _tmp0__length1 = 0;
+       gint __tmp0__size_ = 0;
+       Rule* _tmp4_ = NULL;
+       gint _tmp4__length1 = 0;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_if_fail (self != NULL);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = value;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0__length1 = value_length1;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup6 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1__length1 = _tmp0__length1;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_services = (_vala_array_free (self->priv->_services, self->priv->_services_length1, (GDestroyNotify) g_free), NULL);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_services = _tmp1_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_services_length1 = _tmp1__length1;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->__services_size_ = self->priv->_services_length1;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_notify ((GObject *) self, "services");
-#line 1330 "moonshot-id.c"
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = value;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1__length1 = value_length1;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp2_ = (_tmp1_ != NULL) ? _vala_array_dup5 (_tmp1_, _tmp1__length1) : ((gpointer) _tmp1_);
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp2__length1 = _tmp1__length1;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = _tmp2_;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0__length1 = _tmp2__length1;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       __tmp0__size_ = _tmp0__length1;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (_tmp0_ == NULL) {
+#line 2817 "moonshot-id.c"
+               Rule* _tmp3_ = NULL;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp3_ = g_new0 (Rule, 0);
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp0_ = (_vala_Rule_array_free (_tmp0_, _tmp0__length1), NULL);
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp0_ = _tmp3_;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               _tmp0__length1 = 0;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               __tmp0__size_ = _tmp0__length1;
+#line 2829 "moonshot-id.c"
+       }
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp4_ = _tmp0_;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp4__length1 = _tmp0__length1;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = NULL;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0__length1 = 0;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_rules = (_vala_Rule_array_free (self->priv->_rules, self->priv->_rules_length1), NULL);
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_rules = _tmp4_;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_rules_length1 = _tmp4__length1;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->__rules_size_ = self->priv->_rules_length1;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = (_vala_Rule_array_free (_tmp0_, _tmp0__length1), NULL);
+#line 2849 "moonshot-id.c"
+}
+
+
+GeeArrayList* id_card_get_services (IdCard* self) {
+       GeeArrayList* result;
+       GeeArrayList* _tmp0_ = NULL;
+#line 274 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 274 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = self->priv->_services;
+#line 274 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = _tmp0_;
+#line 274 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 2864 "moonshot-id.c"
 }
 
 
 gboolean id_card_get_temporary (IdCard* self) {
        gboolean result;
        gboolean _tmp0_ = FALSE;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = self->priv->_temporary;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = _tmp0_;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 1345 "moonshot-id.c"
+#line 2879 "moonshot-id.c"
 }
 
 
 void id_card_set_temporary (IdCard* self, gboolean value) {
        gboolean _tmp0_ = FALSE;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_if_fail (self != NULL);
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = value;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv->_temporary = _tmp0_;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_object_notify ((GObject *) self, "temporary");
-#line 1359 "moonshot-id.c"
+#line 2893 "moonshot-id.c"
 }
 
 
 TrustAnchor* id_card_get_trust_anchor (IdCard* self) {
        TrustAnchor* result;
        TrustAnchor* _tmp0_ = NULL;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 329 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_val_if_fail (self != NULL, NULL);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = self->priv->_trust_anchor;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = _tmp0_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 1374 "moonshot-id.c"
-}
-
-
-static gpointer _g_object_ref0 (gpointer self) {
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       return self ? g_object_ref (self) : NULL;
-#line 1381 "moonshot-id.c"
+#line 2908 "moonshot-id.c"
 }
 
 
-void id_card_set_trust_anchor (IdCard* self, TrustAnchor* value) {
-       TrustAnchor* _tmp0_ = NULL;
-       TrustAnchor* _tmp1_ = NULL;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_if_fail (self != NULL);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = value;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1_ = _g_object_ref0 (_tmp0_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _g_object_unref0 (self->priv->_trust_anchor);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_trust_anchor = _tmp1_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_notify ((GObject *) self, "trust-anchor");
-#line 1400 "moonshot-id.c"
+const gchar* id_card_get_nai (IdCard* self) {
+       const gchar* result;
+       const gchar* _tmp0_ = NULL;
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = self->priv->_nai;
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = _tmp0_;
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 2923 "moonshot-id.c"
 }
 
 
-const gchar* id_card_get_nai (IdCard* self) {
-       const gchar* result;
+static void id_card_set_nai (IdCard* self, const gchar* value) {
        const gchar* _tmp0_ = NULL;
        gchar* _tmp1_ = NULL;
-       gchar* _tmp2_ = NULL;
-       const gchar* _tmp3_ = NULL;
-       gchar* _tmp4_ = NULL;
-       const gchar* _tmp5_ = NULL;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0_ = self->priv->_username;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1_ = g_strconcat (_tmp0_, "@", NULL);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp2_ = _tmp1_;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp3_ = self->priv->_issuer;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp4_ = g_strconcat (_tmp2_, _tmp3_, NULL);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_if_fail (self != NULL);
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = value;
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _g_free0 (self->priv->_nai);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_nai = _tmp4_;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _g_free0 (_tmp2_);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp5_ = self->priv->_nai;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       result = _tmp5_;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       return result;
-#line 1436 "moonshot-id.c"
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_nai = _tmp1_;
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_object_notify ((GObject *) self, "nai");
+#line 2942 "moonshot-id.c"
 }
 
 
 gboolean id_card_get_store_password (IdCard* self) {
        gboolean result;
        gboolean _tmp0_ = FALSE;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 345 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 345 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = self->priv->_store_password;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 345 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = _tmp0_;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 345 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 1451 "moonshot-id.c"
+#line 2957 "moonshot-id.c"
 }
 
 
 void id_card_set_store_password (IdCard* self, gboolean value) {
        gboolean _tmp0_ = FALSE;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 345 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_return_if_fail (self != NULL);
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 345 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = value;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 345 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv->_store_password = _tmp0_;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 345 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_object_notify ((GObject *) self, "store-password");
-#line 1465 "moonshot-id.c"
+#line 2971 "moonshot-id.c"
+}
+
+
+const gchar* id_card_get_uuid (IdCard* self) {
+       const gchar* result;
+       const gchar* _tmp0_ = NULL;
+#line 349 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 349 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = self->priv->_uuid;
+#line 349 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       result = _tmp0_;
+#line 349 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       return result;
+#line 2986 "moonshot-id.c"
 }
 
 
 static void id_card_class_init (IdCardClass * klass) {
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       MoonshotLogger* _tmp0_ = NULL;
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        id_card_parent_class = g_type_class_peek_parent (klass);
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_type_class_add_private (klass, sizeof (IdCardPrivate));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        G_OBJECT_CLASS (klass)->get_property = _vala_id_card_get_property;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        G_OBJECT_CLASS (klass)->set_property = _vala_id_card_set_property;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        G_OBJECT_CLASS (klass)->finalize = id_card_finalize;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_DISPLAY_NAME, g_param_spec_string ("display-name", "display-name", "display-name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_USERNAME, g_param_spec_string ("username", "username", "username", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_PASSWORD, g_param_spec_string ("password", "password", "password", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_ISSUER, g_param_spec_string ("issuer", "issuer", "issuer", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_SERVICES, g_param_spec_boxed ("services", "services", "services", G_TYPE_STRV, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_PASSWORD, g_param_spec_string ("password", "password", "password", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_SERVICES, g_param_spec_object ("services", "services", "services", GEE_TYPE_ARRAY_LIST, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_TEMPORARY, g_param_spec_boolean ("temporary", "temporary", "temporary", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_TRUST_ANCHOR, g_param_spec_object ("trust-anchor", "trust-anchor", "trust-anchor", TYPE_TRUST_ANCHOR, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_TRUST_ANCHOR, g_param_spec_object ("trust-anchor", "trust-anchor", "trust-anchor", TYPE_TRUST_ANCHOR, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_NAI, g_param_spec_string ("nai", "nai", "nai", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_STORE_PASSWORD, g_param_spec_boolean ("store-password", "store-password", "store-password", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-#line 1498 "moonshot-id.c"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_UUID, g_param_spec_string ("uuid", "uuid", "uuid", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp0_ = get_logger ("IdCard");
+#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       id_card_logger = _tmp0_;
+#line 3026 "moonshot-id.c"
 }
 
 
@@ -1503,73 +3033,76 @@ static void id_card_instance_init (IdCard * self) {
        gchar* _tmp1_ = NULL;
        gchar* _tmp2_ = NULL;
        Rule* _tmp3_ = NULL;
-       gchar** _tmp4_ = NULL;
+       GeeArrayList* _tmp4_ = NULL;
        TrustAnchor* _tmp5_ = NULL;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       gchar* _tmp6_ = NULL;
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv = ID_CARD_GET_PRIVATE (self);
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 217 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = g_strdup ("");
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_display_name = _tmp0_;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 217 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_username = _tmp0_;
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp1_ = g_strdup ("");
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_username = _tmp1_;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_issuer = _tmp1_;
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp2_ = g_strdup ("");
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_issuer = _tmp2_;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_display_name = _tmp2_;
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp3_ = g_new0 (Rule, 0);
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv->_rules = _tmp3_;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv->_rules_length1 = 0;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv->__rules_size_ = self->priv->_rules_length1;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp4_ = g_new0 (gchar*, 0 + 1);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp4_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv->_services = _tmp4_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_services_length1 = 0;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->__services_size_ = self->priv->_services_length1;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv->_temporary = FALSE;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp5_ = trust_anchor_new ();
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 327 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp5_ = trust_anchor_new_empty ();
+#line 327 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv->_trust_anchor = _tmp5_;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 345 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv->_store_password = FALSE;
-#line 1547 "moonshot-id.c"
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp6_ = id_card_generate_uuid ();
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       self->priv->_uuid = _tmp6_;
+#line 3076 "moonshot-id.c"
 }
 
 
 static void id_card_finalize (GObject* obj) {
        IdCard * self;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ID_CARD, IdCard);
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 414 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        id_card_set_password (self, NULL);
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _g_free0 (self->priv->_nai);
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _g_free0 (self->priv->_display_name);
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 217 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _g_free0 (self->priv->_username);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _g_free0 (self->priv->_issuer);
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_display_name);
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        self->priv->_rules = (_vala_Rule_array_free (self->priv->_rules, self->priv->_rules_length1), NULL);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       self->priv->_services = (_vala_array_free (self->priv->_services, self->priv->_services_length1, (GDestroyNotify) g_free), NULL);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_object_unref0 (self->priv->_services);
+#line 327 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _g_object_unref0 (self->priv->_trust_anchor);
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_nai);
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _g_free0 (self->priv->_uuid);
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        G_OBJECT_CLASS (id_card_parent_class)->finalize (obj);
-#line 1573 "moonshot-id.c"
+#line 3104 "moonshot-id.c"
 }
 
 
@@ -1588,74 +3121,75 @@ GType id_card_get_type (void) {
 static void _vala_id_card_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
        IdCard * self;
        self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_ID_CARD, IdCard);
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        switch (property_id) {
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case ID_CARD_DISPLAY_NAME:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                g_value_set_string (value, id_card_get_display_name (self));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case ID_CARD_USERNAME:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                g_value_set_string (value, id_card_get_username (self));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               case ID_CARD_PASSWORD:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               g_value_set_string (value, id_card_get_password (self));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case ID_CARD_ISSUER:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                g_value_set_string (value, id_card_get_issuer (self));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               case ID_CARD_PASSWORD:
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               g_value_set_string (value, id_card_get_password (self));
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               break;
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case ID_CARD_SERVICES:
-#line 1620 "moonshot-id.c"
-               {
-                       int length;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                       g_value_set_boxed (value, id_card_get_services (self, &length));
-#line 1625 "moonshot-id.c"
-               }
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               g_value_set_object (value, id_card_get_services (self));
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case ID_CARD_TEMPORARY:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                g_value_set_boolean (value, id_card_get_temporary (self));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case ID_CARD_TRUST_ANCHOR:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                g_value_set_object (value, id_card_get_trust_anchor (self));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case ID_CARD_NAI:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                g_value_set_string (value, id_card_get_nai (self));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case ID_CARD_STORE_PASSWORD:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                g_value_set_boolean (value, id_card_get_store_password (self));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 1653 "moonshot-id.c"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               case ID_CARD_UUID:
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               g_value_set_string (value, id_card_get_uuid (self));
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               break;
+#line 3185 "moonshot-id.c"
                default:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 1659 "moonshot-id.c"
+#line 3191 "moonshot-id.c"
        }
 }
 
@@ -1663,70 +3197,57 @@ static void _vala_id_card_get_property (GObject * object, guint property_id, GVa
 static void _vala_id_card_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
        IdCard * self;
        self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_ID_CARD, IdCard);
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        switch (property_id) {
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case ID_CARD_DISPLAY_NAME:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                id_card_set_display_name (self, g_value_get_string (value));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case ID_CARD_USERNAME:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                id_card_set_username (self, g_value_get_string (value));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               case ID_CARD_PASSWORD:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               id_card_set_password (self, g_value_get_string (value));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case ID_CARD_ISSUER:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                id_card_set_issuer (self, g_value_get_string (value));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               case ID_CARD_SERVICES:
-#line 1695 "moonshot-id.c"
-               {
-                       gpointer boxed;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                       boxed = g_value_get_boxed (value);
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                       id_card_set_services (self, boxed, g_strv_length (boxed));
-#line 1702 "moonshot-id.c"
-               }
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               case ID_CARD_PASSWORD:
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               id_card_set_password (self, g_value_get_string (value));
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case ID_CARD_TEMPORARY:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                id_card_set_temporary (self, g_value_get_boolean (value));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               case ID_CARD_TRUST_ANCHOR:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-               id_card_set_trust_anchor (self, g_value_get_object (value));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               case ID_CARD_NAI:
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+               id_card_set_nai (self, g_value_get_string (value));
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                case ID_CARD_STORE_PASSWORD:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                id_card_set_store_password (self, g_value_get_boolean (value));
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 1724 "moonshot-id.c"
+#line 3243 "moonshot-id.c"
                default:
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                break;
-#line 1730 "moonshot-id.c"
+#line 3249 "moonshot-id.c"
        }
 }
 
@@ -1737,34 +3258,34 @@ gint CompareRules (Rule* a, int a_length1, Rule* b, int b_length1) {
        gint _tmp0__length1 = 0;
        Rule* _tmp1_ = NULL;
        gint _tmp1__length1 = 0;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = a;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0__length1 = a_length1;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp1_ = b;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp1__length1 = b_length1;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        if (_tmp0__length1 != _tmp1__length1) {
-#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 425 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                result = 1;
-#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 425 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                return result;
-#line 1755 "moonshot-id.c"
+#line 3274 "moonshot-id.c"
        }
        {
                gint i = 0;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                i = 0;
-#line 1761 "moonshot-id.c"
+#line 3280 "moonshot-id.c"
                {
                        gboolean _tmp2_ = FALSE;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                        _tmp2_ = TRUE;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                        while (TRUE) {
-#line 1768 "moonshot-id.c"
+#line 3287 "moonshot-id.c"
                                gint _tmp4_ = 0;
                                Rule* _tmp5_ = NULL;
                                gint _tmp5__length1 = 0;
@@ -1776,166 +3297,186 @@ gint CompareRules (Rule* a, int a_length1, Rule* b, int b_length1) {
                                gint _tmp9_ = 0;
                                Rule _tmp10_ = {0};
                                gint _tmp11_ = 0;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                if (!_tmp2_) {
-#line 1782 "moonshot-id.c"
+#line 3301 "moonshot-id.c"
                                        gint _tmp3_ = 0;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                        _tmp3_ = i;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                        i = _tmp3_ + 1;
-#line 1788 "moonshot-id.c"
+#line 3307 "moonshot-id.c"
                                }
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                _tmp2_ = FALSE;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                _tmp4_ = i;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                _tmp5_ = a;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                _tmp5__length1 = a_length1;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                if (!(_tmp4_ < _tmp5__length1)) {
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                        break;
-#line 1802 "moonshot-id.c"
+#line 3321 "moonshot-id.c"
                                }
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 429 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                _tmp6_ = a;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 429 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                _tmp6__length1 = a_length1;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 429 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                _tmp7_ = i;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 429 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                _tmp8_ = b;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 429 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                _tmp8__length1 = b_length1;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 429 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                _tmp9_ = i;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 429 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                _tmp10_ = _tmp8_[_tmp9_];
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 429 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                _tmp11_ = rule_Compare (&_tmp6_[_tmp7_], &_tmp10_);
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 429 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                if (_tmp11_ != 0) {
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                        result = 1;
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                        return result;
-#line 1826 "moonshot-id.c"
+#line 3345 "moonshot-id.c"
                                }
                        }
                }
        }
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 433 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = 0;
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 433 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 1835 "moonshot-id.c"
+#line 3354 "moonshot-id.c"
 }
 
 
-gint CompareStringArray (gchar** a, int a_length1, gchar** b, int b_length1) {
+gint CompareStringArrayList (GeeArrayList* a, GeeArrayList* b) {
        gint result = 0;
-       gchar** _tmp0_ = NULL;
-       gint _tmp0__length1 = 0;
-       gchar** _tmp1_ = NULL;
-       gint _tmp1__length1 = 0;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       GeeArrayList* _tmp0_ = NULL;
+       gint _tmp1_ = 0;
+       gint _tmp2_ = 0;
+       GeeArrayList* _tmp3_ = NULL;
+       gint _tmp4_ = 0;
+       gint _tmp5_ = 0;
+#line 436 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (a != NULL, 0);
+#line 436 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       g_return_val_if_fail (b != NULL, 0);
+#line 438 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        _tmp0_ = a;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp0__length1 = a_length1;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1_ = b;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       _tmp1__length1 = b_length1;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-       if (_tmp0__length1 != _tmp1__length1) {
-#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 438 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_);
+#line 438 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp2_ = _tmp1_;
+#line 438 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp3_ = b;
+#line 438 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
+#line 438 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       _tmp5_ = _tmp4_;
+#line 438 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+       if (_tmp2_ != _tmp5_) {
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                result = 1;
-#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                return result;
-#line 1859 "moonshot-id.c"
+#line 3388 "moonshot-id.c"
        }
        {
                gint i = 0;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                i = 0;
-#line 1865 "moonshot-id.c"
+#line 3394 "moonshot-id.c"
                {
-                       gboolean _tmp2_ = FALSE;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                       _tmp2_ = TRUE;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       gboolean _tmp6_ = FALSE;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                       _tmp6_ = TRUE;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                        while (TRUE) {
-#line 1872 "moonshot-id.c"
-                               gint _tmp4_ = 0;
-                               gchar** _tmp5_ = NULL;
-                               gint _tmp5__length1 = 0;
-                               gchar** _tmp6_ = NULL;
-                               gint _tmp6__length1 = 0;
-                               gint _tmp7_ = 0;
-                               const gchar* _tmp8_ = NULL;
-                               gchar** _tmp9_ = NULL;
-                               gint _tmp9__length1 = 0;
+#line 3401 "moonshot-id.c"
+                               gint _tmp8_ = 0;
+                               GeeArrayList* _tmp9_ = NULL;
                                gint _tmp10_ = 0;
-                               const gchar* _tmp11_ = NULL;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               if (!_tmp2_) {
-#line 1886 "moonshot-id.c"
-                                       gint _tmp3_ = 0;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                                       _tmp3_ = i;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                                       i = _tmp3_ + 1;
-#line 1892 "moonshot-id.c"
+                               gint _tmp11_ = 0;
+                               GeeArrayList* _tmp12_ = NULL;
+                               gint _tmp13_ = 0;
+                               gpointer _tmp14_ = NULL;
+                               gchar* _tmp15_ = NULL;
+                               GeeArrayList* _tmp16_ = NULL;
+                               gint _tmp17_ = 0;
+                               gpointer _tmp18_ = NULL;
+                               gchar* _tmp19_ = NULL;
+                               gboolean _tmp20_ = FALSE;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               if (!_tmp6_) {
+#line 3417 "moonshot-id.c"
+                                       gint _tmp7_ = 0;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                                       _tmp7_ = i;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                                       i = _tmp7_ + 1;
+#line 3423 "moonshot-id.c"
                                }
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               _tmp2_ = FALSE;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               _tmp4_ = i;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               _tmp5_ = a;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               _tmp5__length1 = a_length1;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               if (!(_tmp4_ < _tmp5__length1)) {
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp6_ = FALSE;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp8_ = i;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp9_ = a;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp10_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp9_);
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp11_ = _tmp10_;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               if (!(_tmp8_ < _tmp11_)) {
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                        break;
-#line 1906 "moonshot-id.c"
+#line 3439 "moonshot-id.c"
                                }
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               _tmp6_ = a;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               _tmp6__length1 = a_length1;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               _tmp7_ = i;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               _tmp8_ = _tmp6_[_tmp7_];
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               _tmp9_ = b;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               _tmp9__length1 = b_length1;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               _tmp10_ = i;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               _tmp11_ = _tmp9_[_tmp10_];
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
-                               if (g_strcmp0 (_tmp8_, _tmp11_) != 0) {
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp12_ = a;
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp13_ = i;
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp12_, _tmp13_);
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp15_ = (gchar*) _tmp14_;
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp16_ = b;
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp17_ = i;
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp18_ = gee_abstract_list_get ((GeeAbstractList*) _tmp16_, _tmp17_);
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp19_ = (gchar*) _tmp18_;
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _tmp20_ = g_strcmp0 (_tmp15_, _tmp19_) != 0;
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _g_free0 (_tmp19_);
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               _g_free0 (_tmp15_);
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+                               if (_tmp20_) {
+#line 444 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                        result = 1;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 444 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
                                        return result;
-#line 1930 "moonshot-id.c"
+#line 3469 "moonshot-id.c"
                                }
                        }
                }
        }
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 447 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        result = 0;
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
+#line 447 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-id.vala"
        return result;
-#line 1939 "moonshot-id.c"
+#line 3478 "moonshot-id.c"
 }
 
 
index 2e0af57..513b993 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
 */
+
+using Gee;
+
+extern char* get_cert_valid_before(uchar* inbuf, int inlen, char* outbuf, int outlen);
+
+
+// A TrustAnchor object can be imported or installed via the API, but cannot
+// be modified by the user, other than being cleared. Hence the fields are read-only.
 public class TrustAnchor : Object
 {
-  public string ca_cert {get; set; default = "";}
-  public string subject {get; set; default = "";}
-  public string subject_alt  {get; set; default = "";}
-  public string server_cert  {get; set; default = "";}
-  public int Compare(TrustAnchor other)
-  {
-    if (this.ca_cert != other.ca_cert)
-      return 1;
-    if (this.subject != other.subject)
-      return 1;
-    if (this.subject_alt != other.subject_alt)
-      return 1;
-    if (this.server_cert != other.server_cert)
-      return 1;
-    return 0;
-  }
+    private static const string CERT_HEADER = "-----BEGIN CERTIFICATE-----";
+    private static const string CERT_FOOTER = "-----END CERTIFICATE-----";
+
+    public enum TrustAnchorType {
+        EMPTY,
+        CA_CERT,
+        SERVER_CERT
+    }
+    private string _ca_cert = "";
+    private string _subject = "";
+    private string _subject_alt = "";
+    private string _server_cert = "";
+    private string _datetime_added = "";
+
+    private static string fixup (string s) {
+        return (s == null ? "" : s.strip());
+    }
+
+    public TrustAnchor(string ca_cert, string server_cert, string subject, string subject_alt) {
+        _ca_cert = fixup(ca_cert);
+        _server_cert = fixup(server_cert);
+        _subject = fixup(subject);
+        _subject_alt = fixup(subject_alt);
+
+        // If we're reading from store, this will be overridden (see set_datetime_added)
+        _datetime_added = "";
+
+        // Work around a Portal bug that littered some credential files with this cruft.
+        string cruft = 
+"""<!-- Remove the begin and end lines from the PEM output of
+openssl to produce this format.  Alternatively, base64 encode a DER format certificate -->""";
+        _ca_cert = _ca_cert.replace(cruft, "");
+    }
+
+    public TrustAnchor.empty() {
+    }
+
+
+    public string ca_cert {
+        get {
+            return _ca_cert;
+        }
+    }
+
+    public string subject {
+        get {
+            return _subject;
+        }
+    }
+
+    public string subject_alt  {
+        get {
+            return _subject_alt;
+        }
+    }
+
+
+    public string server_cert {
+        get {
+            return _server_cert;
+        }
+    }
+
+    public string datetime_added {
+        get {
+            return _datetime_added;
+        }
+    }
+
+    public bool is_empty() {
+        return ca_cert == "" && server_cert == "";
+    }
+
+    public TrustAnchorType get_anchor_type() {
+        return (server_cert != "" ? TrustAnchorType.SERVER_CERT 
+                : (ca_cert != "" ? TrustAnchorType.CA_CERT : TrustAnchorType.EMPTY));
+    }
+
+    internal void set_datetime_added(string datetime) {
+        _datetime_added = fixup(datetime);
+    }
+
+    internal static string format_datetime_now() {
+        DateTime now = new DateTime.now_utc();
+        string dt = now.format("%b %d %T %Y %Z");
+        return dt;
+    }
+
+    internal void update_server_fingerprint(string fingerprint) {
+        this._server_cert = fingerprint;
+        string ta_datetime_added = TrustAnchor.format_datetime_now();
+        this.set_datetime_added(ta_datetime_added);
+    }
+
+    public int Compare(TrustAnchor other)
+    {
+        if (this.ca_cert != other.ca_cert) {
+            // IdCard.logger.trace("TrustAnchor.Compare: this.ca_cert='%s'; other.ca_cert='%s'".printf(this.ca_cert, other.ca_cert));
+            return 1;
+        }
+        if (this.subject != other.subject) {
+            // IdCard.logger.trace("TrustAnchor.Compare: this.subject='%s'; other.subject='%s'".printf(this.subject, other.subject));
+            return 1;
+        }
+        if (this.subject_alt != other.subject_alt) {
+            // IdCard.logger.trace("TrustAnchor.Compare: this.subject_alt='%s'; other.subject_alt='%s'".printf(this.subject_alt, other.subject_alt));
+            return 1;
+        }
+        if (this.server_cert != other.server_cert) {
+            // IdCard.logger.trace("TrustAnchor.Compare: this.server_cert=%s'; other.server_cert='%s'".printf(this.server_cert, other.server_cert));
+            return 1;
+        }
+
+        // Do not compare the datetime_added fields; it's not essential.
+
+        return 0;
+    }
+
+    public string? get_expiration_date(out string? err_out=null)
+    {
+        if (&err_out != null) {
+            err_out = null;
+        }
+
+        if (this.ca_cert == "") {
+            if (&err_out != null) {
+                err_out = "Trust anchor does not have a ca_certificate";
+                return null;
+            }
+        }
+
+        string cert = this.ca_cert;
+        cert.chomp();
+
+        uchar[] binary = Base64.decode(cert);
+        IdCard.logger.trace("get_expiration_date: encoded length=%d; decoded length=%d".printf(cert.length, binary.length));
+
+        char buf[64];
+        string err = (string) get_cert_valid_before(binary, binary.length, buf, 64);
+        if (err != "") {
+            IdCard.logger.error(@"get_expiration_date: get_cert_valid_before returned '$err'");
+            if (&err_out != null) {
+                err_out = err;
+            }
+            return null;
+        }
+            
+        string date = (string) buf;
+        IdCard.logger.trace(@"get_expiration_date: get_cert_valid_before returned '$date'");
+
+        return date;
+    }
 }
 
+
 public struct Rule
 {
-  public string pattern;
-  public string always_confirm;
-  public int Compare(Rule other) {
-    if (this.pattern != other.pattern)
-      return 1;
-    if (this.always_confirm != other.always_confirm)
-      return 1;
-    return 0;
-  }
+    public string pattern;
+    public string always_confirm;
+    public int Compare(Rule other) {
+        if (this.pattern != other.pattern)
+            return 1;
+        if (this.always_confirm != other.always_confirm)
+            return 1;
+        return 0;
+    }
 }
 
 public class IdCard : Object
 {
-  public const string NO_IDENTITY = "No Identity";
+    internal static MoonshotLogger logger = get_logger("IdCard");
 
-  private string _nai;
-  
-  public string display_name { get; set; default = ""; }
+    public const string NO_IDENTITY = "No Identity";
+
+    private string _username = "";
+    private string _issuer = "";
+
+    public string display_name { get; set; default = ""; }
   
-  public string username { get; set; default = ""; }
+    public string username { 
+        public get {
+            return _username;
+        }
+        public set {
+            _username = value;
+            update_nai();
+        }
+    }
+
+    public string issuer { 
+        public get {
+            return _issuer;
+        }
+        public set {
+            _issuer = value;
+            update_nai();
+        }
+    }
+
+    private void update_nai() {
+        _nai = username + "@" + issuer;
+    }
+
 #if GNOME_KEYRING
-  private unowned string _password;
-  public string password {
-    get {
-      return (_password!=null) ? _password : "";
-    }
-    set {
-      if (_password != null) {
-        GnomeKeyring.memory_free((void *)_password);
-        _password = null;
-      }
-      if (value != null)
-        _password = GnomeKeyring.memory_strdup(value); 
-    }
-  }
+    private unowned string _password;
+    public string password {
+        get {
+            return (_password!=null) ? _password : "";
+        }
+        set {
+            if (_password != null) {
+                GnomeKeyring.memory_free((void *)_password);
+                _password = null;
+            }
+            if (value != null)
+                _password = GnomeKeyring.memory_strdup(value); 
+        }
+    }
 #else
-  public string password { get; set; default = null; }
+    public string password { get; set; default = null; }
 #endif
 
-  public string issuer { get; set; default = ""; }
-  
-  public Rule[] rules {get; set; default = {};}
-  public string[] services { get; set; default = {}; }
-  public bool temporary {get; set; default = false; }
+    private Rule[] _rules = new Rule[0];
+    public Rule[] rules {
+        get {return _rules;}
+        internal set {_rules = value ?? new Rule[0] ;}
+    }
+
+    private ArrayList<string> _services = new ArrayList<string>();
+
+    internal ArrayList<string> services {
+         get {return  _services;}
+    }
+
+    // Returns the list of services as a string, using the given separator.
+    internal string get_services_string(string sep) {
+        if (_services.is_empty) {
+            return "";
+        }
+
+        // ArrayList.to_array() seems to be unreliable -- it causes segfaults 
+        // semi-randomly. (Possibly because it returns an unowned ref?)
+        // return string.joinv(sep, _services.to_array());
+        // 
+        // This problem may be related to the one noted elsewhere as the
+        // "Centos vala array property bug".
+
+        string[] svcs = new string[_services.size];
+        for (int i = 0; i < _services.size; i++) {
+            svcs[i] = _services[i];
+        }
+
+        return string.joinv(sep, svcs);
+    }
+
+    internal void update_services(string[] services) {
+        _services.clear();
+
+        // Doesn't exist in older versions of libgee:
+        // _services.add_all_array(services);
 
-  public TrustAnchor trust_anchor  { get; set; default = new TrustAnchor (); }
+        if (services != null) {
+            foreach (string s in services) {
+                _services.add(s);
+            }
+        }
+    } 
+
+    internal void update_services_from_list(ArrayList<string> services) {
+        if (services == this._services) {
+            // Don't try to update from self.
+            return;
+        }
+
+        _services.clear();
+
+        if (services != null) {
+            _services.add_all(services);
+        }
+    } 
+
+
+    public bool temporary {get; set; default = false; }
+
+    private TrustAnchor _trust_anchor = new TrustAnchor.empty();
+    public TrustAnchor trust_anchor  { 
+        get {
+            return _trust_anchor;
+        }
+    }
+
+    // For use by storage implementations.
+    internal void set_trust_anchor_from_store(TrustAnchor ta) {
+        _trust_anchor = ta;
+    }
+
+    internal void clear_trust_anchor() {
+        _trust_anchor = new TrustAnchor.empty();
+    }
   
-  public unowned string nai { get {  _nai = username + "@" + issuer; return _nai;}}
-
-  public bool store_password { get; set; default = false; }
-
-  public bool IsNoIdentity() 
-  {
-    return (display_name == NO_IDENTITY);
-  }
-
-  public enum DiffFlags {
-    DISPLAY_NAME,
-    USERNAME,
-    PASSWORD,
-    ISSUER,
-    RULES,
-    SERVICES,
-    TRUST_ANCHOR;
-  }
-
-  public int Compare(IdCard other)
-  {
-    int diff = 0;
-    if (this.display_name != other.display_name)
-      diff |= 1 << DiffFlags.DISPLAY_NAME;
-    if (this.username != other.username)
-      diff |= 1 << DiffFlags.USERNAME;
-    if (this.password != other.password)
-      diff |= 1 << DiffFlags.PASSWORD;
-    if (this.issuer != other.issuer)
-      diff |= 1 << DiffFlags.ISSUER;
-    if (CompareRules(this.rules, other.rules)!=0)
-      diff |= 1 << DiffFlags.RULES;
-    if (CompareStringArray(this.services, other.services)!=0)
-      diff |= 1 << DiffFlags.SERVICES;
-    if (this.trust_anchor.Compare(other.trust_anchor)!=0)
-      diff |= 1 << DiffFlags.TRUST_ANCHOR;
-    stdout.printf("Diff Flags: %x\n", diff);
-    return diff;
-  }
-
-  public static IdCard NewNoIdentity() 
-  { 
-    IdCard card = new IdCard();
-    card.display_name = NO_IDENTITY;
-    return card;
-  }
-
-  ~IdCard() {
-    password = null;
-  }
+    public string nai { public get; private set;}
+
+    public bool store_password { get; set; default = false; }
+
+    // uuid is currently used only for debugging. Must be unique, even between cards with same nai and display name.
+    public string uuid {
+        public get {return _uuid;}
+    }
+    private string _uuid = generate_uuid();
+
+    internal static string generate_uuid() {
+        uint32 rand1 = Random.next_int();
+        uint32 rand2 = Random.next_int();
+        return "%08X.%08X::%s".printf(rand1, rand2, TrustAnchor.format_datetime_now());
+    }
+
+    public bool is_no_identity() 
+    {
+        return (display_name == NO_IDENTITY);
+    }
+
+    public enum DiffFlags {
+        DISPLAY_NAME,
+        USERNAME,
+        PASSWORD,
+        ISSUER,
+        RULES,
+        SERVICES,
+        TRUST_ANCHOR;
+    }
+
+    public int Compare(IdCard other)
+    {
+        int diff = 0;
+        if (this.display_name != other.display_name)
+            diff |= 1 << DiffFlags.DISPLAY_NAME;
+
+        if (this.username != other.username)
+            diff |= 1 << DiffFlags.USERNAME;
+
+        if (this.password != other.password)
+            diff |= 1 << DiffFlags.PASSWORD;
+
+        if (this.issuer != other.issuer)
+            diff |= 1 << DiffFlags.ISSUER;
+
+        if (CompareRules(this.rules, other.rules)!=0)
+            diff |= 1 << DiffFlags.RULES;
+
+        if (CompareStringArrayList(this._services, other._services)!=0)
+            diff |= 1 << DiffFlags.SERVICES;
+
+        if (this.trust_anchor.Compare(other.trust_anchor)!=0)
+            diff |= 1 << DiffFlags.TRUST_ANCHOR;
+
+        // stdout.printf("Diff Flags: %x\n", diff);
+        if (this.display_name == other.display_name && diff != 0) {
+            logger.trace("Compare: Two IDs with display_name '%s', but diff_flags=%0x".printf(this.display_name, diff));
+        }
+        return diff;
+    }
+
+    public static IdCard NewNoIdentity() 
+    { 
+        IdCard card = new IdCard();
+        card.display_name = NO_IDENTITY;
+       card._nai = "";
+        return card;
+    }
+
+    ~IdCard() {
+        password = null;
+    }
+
+    internal void add_rule(Rule rule) {
+        _rules += rule;
+    }
 }
 
 public int CompareRules(Rule[] a, Rule[] b)
 {
-  if (a.length != b.length)
-    return 1;
-  for (int i=0; i<a.length; i++) {
-    if (a[i].Compare(b[i]) != 0)
-      return 1;
-  }
-  return 0;
+    if (a.length != b.length) {
+        return 1;
+    }
+
+    for (int i = 0; i < a.length; i++) {
+        if (a[i].Compare(b[i]) != 0) {
+            return 1;
+        }
+    }
+    return 0;
 }
 
-public int CompareStringArray(string[] a, string [] b)
+public int CompareStringArrayList(ArrayList<string> a, ArrayList<string> b)
 {
-  if (a.length != b.length)
-    return 1;
-  for (int i=0; i<a.length; i++) {
-    if (a[i] != b[i])
-      return 1;
-  }
-  return 0;
+    if (a.size != b.size) {
+        return 1;
+    }
+
+    for (int i = 0; i < a.size; i++) {
+        if (a[i] != b[i]) {
+            return 1;
+        }
+    }
+    return 0;
 }
index 4293afb..a27a8db 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-idcard-store.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-idcard-store.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-idcard-store.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -70,6 +70,7 @@ struct _IIdentityCardStoreIface {
        IdCard* (*update_card) (IIdentityCardStore* self, IdCard* card);
        IIdentityCardStoreStoreType (*get_store_type) (IIdentityCardStore* self);
        GeeLinkedList* (*get_card_list) (IIdentityCardStore* self);
+       void (*store_id_cards) (IIdentityCardStore* self);
 };
 
 
@@ -82,6 +83,7 @@ gboolean iidentity_card_store_remove_card (IIdentityCardStore* self, IdCard* car
 IdCard* iidentity_card_store_update_card (IIdentityCardStore* self, IdCard* card);
 IIdentityCardStoreStoreType iidentity_card_store_get_store_type (IIdentityCardStore* self);
 GeeLinkedList* iidentity_card_store_get_card_list (IIdentityCardStore* self);
+void iidentity_card_store_store_id_cards (IIdentityCardStore* self);
 
 
 GType iidentity_card_store_store_type_get_type (void) {
@@ -101,7 +103,7 @@ void iidentity_card_store_add_card (IIdentityCardStore* self, IdCard* card) {
        g_return_if_fail (self != NULL);
 #line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-store.vala"
        IIDENTITY_CARD_STORE_GET_INTERFACE (self)->add_card (self, card);
-#line 105 "moonshot-idcard-store.c"
+#line 107 "moonshot-idcard-store.c"
 }
 
 
@@ -110,7 +112,7 @@ gboolean iidentity_card_store_remove_card (IIdentityCardStore* self, IdCard* car
        g_return_val_if_fail (self != NULL, FALSE);
 #line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-store.vala"
        return IIDENTITY_CARD_STORE_GET_INTERFACE (self)->remove_card (self, card);
-#line 114 "moonshot-idcard-store.c"
+#line 116 "moonshot-idcard-store.c"
 }
 
 
@@ -119,7 +121,7 @@ IdCard* iidentity_card_store_update_card (IIdentityCardStore* self, IdCard* card
        g_return_val_if_fail (self != NULL, NULL);
 #line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-store.vala"
        return IIDENTITY_CARD_STORE_GET_INTERFACE (self)->update_card (self, card);
-#line 123 "moonshot-idcard-store.c"
+#line 125 "moonshot-idcard-store.c"
 }
 
 
@@ -128,7 +130,7 @@ IIdentityCardStoreStoreType iidentity_card_store_get_store_type (IIdentityCardSt
        g_return_val_if_fail (self != NULL, 0);
 #line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-store.vala"
        return IIDENTITY_CARD_STORE_GET_INTERFACE (self)->get_store_type (self);
-#line 132 "moonshot-idcard-store.c"
+#line 134 "moonshot-idcard-store.c"
 }
 
 
@@ -137,7 +139,16 @@ GeeLinkedList* iidentity_card_store_get_card_list (IIdentityCardStore* self) {
        g_return_val_if_fail (self != NULL, NULL);
 #line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-store.vala"
        return IIDENTITY_CARD_STORE_GET_INTERFACE (self)->get_card_list (self);
-#line 141 "moonshot-idcard-store.c"
+#line 143 "moonshot-idcard-store.c"
+}
+
+
+void iidentity_card_store_store_id_cards (IIdentityCardStore* self) {
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-store.vala"
+       g_return_if_fail (self != NULL);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-store.vala"
+       IIDENTITY_CARD_STORE_GET_INTERFACE (self)->store_id_cards (self);
+#line 152 "moonshot-idcard-store.c"
 }
 
 
@@ -148,7 +159,7 @@ static void iidentity_card_store_base_init (IIdentityCardStoreIface * iface) {
        if (!initialized) {
 #line 33 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-store.vala"
                initialized = TRUE;
-#line 152 "moonshot-idcard-store.c"
+#line 163 "moonshot-idcard-store.c"
        }
 }
 
index 3d6c863..b9c9368 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -42,5 +42,8 @@ public interface IIdentityCardStore : Object {
     public abstract IdCard? update_card(IdCard card);
     public abstract StoreType get_store_type();
     public abstract LinkedList<IdCard> get_card_list(); 
+
+    // Note that (at least right now) store_id_cards() will re-load the cards after saving them.
+    internal abstract void store_id_cards(); 
 }
 
index c647c8f..9cd3b60 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-idcard-widget.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-idcard-widget.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-idcard-widget.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 #include <gdk/gdk.h>
 #include <string.h>
 #include <stdlib.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <glib/gi18n-lib.h>
 #include <float.h>
 #include <math.h>
 #include <pango/pango.h>
-#include <glib/gi18n-lib.h>
-#include <atk/atk.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
 
 
 #define TYPE_ID_CARD_WIDGET (id_card_widget_get_type ())
@@ -58,6 +57,16 @@ typedef struct _IdCardWidget IdCardWidget;
 typedef struct _IdCardWidgetClass IdCardWidgetClass;
 typedef struct _IdCardWidgetPrivate IdCardWidgetPrivate;
 
+#define TYPE_IDENTITY_MANAGER_VIEW (identity_manager_view_get_type ())
+#define IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerView))
+#define IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
+#define IS_IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_VIEW))
+#define IS_IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_VIEW))
+#define IDENTITY_MANAGER_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
+
+typedef struct _IdentityManagerView IdentityManagerView;
+typedef struct _IdentityManagerViewClass IdentityManagerViewClass;
+
 #define TYPE_ID_CARD (id_card_get_type ())
 #define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
 #define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
@@ -70,9 +79,20 @@ typedef struct _IdCardClass IdCardClass;
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 #define _g_free0(var) (var = (g_free (var), NULL))
 
+#define TYPE_TRUST_ANCHOR (trust_anchor_get_type ())
+#define TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR, TrustAnchor))
+#define TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+#define IS_TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRUST_ANCHOR))
+#define IS_TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRUST_ANCHOR))
+#define TRUST_ANCHOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+
+typedef struct _TrustAnchor TrustAnchor;
+typedef struct _TrustAnchorClass TrustAnchorClass;
+
 struct _IdCardWidget {
        GtkBox parent_instance;
        IdCardWidgetPrivate * priv;
+       gint _position;
 };
 
 struct _IdCardWidgetClass {
@@ -80,891 +100,868 @@ struct _IdCardWidgetClass {
 };
 
 struct _IdCardWidgetPrivate {
+       IdentityManagerView* manager_view;
        IdCard* _id_card;
        GtkVBox* main_vbox;
-       GtkHBox* table;
-       GtkButton* _delete_button;
-       GtkButton* _details_button;
-       GtkButton* _send_button;
-       GtkHButtonBox* hbutton_box;
+       GtkHBox* hbox;
        GtkEventBox* event_box;
-       GtkLabel* label;
+       gboolean is_selected;
+       GtkArrow* arrow;
+       GtkVBox* details;
 };
 
 
 static gpointer id_card_widget_parent_class = NULL;
 
 GType id_card_widget_get_type (void) G_GNUC_CONST;
+GType identity_manager_view_get_type (void) G_GNUC_CONST;
 GType id_card_get_type (void) G_GNUC_CONST;
 #define ID_CARD_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ID_CARD_WIDGET, IdCardWidgetPrivate))
 enum  {
        ID_CARD_WIDGET_DUMMY_PROPERTY,
        ID_CARD_WIDGET_ID_CARD,
-       ID_CARD_WIDGET_DELETE_BUTTON,
-       ID_CARD_WIDGET_DETAILS_BUTTON,
-       ID_CARD_WIDGET_SEND_BUTTON
+       ID_CARD_WIDGET_POSITION
 };
+#define ID_CARD_WIDGET_ARROW_SHADOW GTK_SHADOW_NONE
+void id_card_widget_select (IdCardWidget* self);
+void id_card_widget_expand (IdCardWidget* self);
+void id_card_widget_unselect (IdCardWidget* self);
 void id_card_widget_collapse (IdCardWidget* self);
 static void id_card_widget_set_idcard_color (IdCardWidget* self);
-void id_card_widget_expand (IdCardWidget* self);
 static gboolean id_card_widget_button_press_cb (IdCardWidget* self);
-static void id_card_widget_delete_button_cb (IdCardWidget* self);
-static void id_card_widget_details_button_cb (IdCardWidget* self);
-static void id_card_widget_send_button_cb (IdCardWidget* self);
-void id_card_widget_update_id_card_label (IdCardWidget* self);
+gint id_card_widget_get_position (IdCardWidget* self);
+static void id_card_widget_make_id_card_label (IdCardWidget* self, GtkLabel* label);
+gboolean identity_manager_view_selection_in_progress (IdentityManagerView* self);
 IdCard* id_card_widget_get_id_card (IdCardWidget* self);
+gboolean id_card_is_no_identity (IdCard* self);
 const gchar* id_card_get_display_name (IdCard* self);
-gchar** id_card_get_services (IdCard* self, int* result_length1);
-IdCardWidget* id_card_widget_new (IdCard* id_card);
-IdCardWidget* id_card_widget_construct (GType object_type, IdCard* id_card);
+IdCardWidget* id_card_widget_new (IdCard* id_card, IdentityManagerView* manager_view);
+IdCardWidget* id_card_widget_construct (GType object_type, IdCard* id_card, IdentityManagerView* manager_view);
 void id_card_widget_set_id_card (IdCardWidget* self, IdCard* value);
+const gchar* id_card_get_username (IdCard* self);
+const gchar* id_card_get_issuer (IdCard* self);
+GType trust_anchor_get_type (void) G_GNUC_CONST;
+TrustAnchor* id_card_get_trust_anchor (IdCard* self);
+gboolean trust_anchor_is_empty (TrustAnchor* self);
+gchar* id_card_get_services_string (IdCard* self, const gchar* sep);
 GdkPixbuf* get_pixbuf (IdCard* id);
-static void id_card_widget_set_delete_button (IdCardWidget* self, GtkButton* value);
-static void id_card_widget_set_details_button (IdCardWidget* self, GtkButton* value);
-static void id_card_widget_set_send_button (IdCardWidget* self, GtkButton* value);
-static void id_card_widget_set_atk_name_description (IdCardWidget* self, GtkWidget* widget, const gchar* name, const gchar* description);
-GtkButton* id_card_widget_get_delete_button (IdCardWidget* self);
-GtkButton* id_card_widget_get_details_button (IdCardWidget* self);
-GtkButton* id_card_widget_get_send_button (IdCardWidget* self);
-static void _id_card_widget_delete_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _id_card_widget_details_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _id_card_widget_send_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
 static gboolean _id_card_widget_button_press_cb_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+void id_card_widget_set_position (IdCardWidget* self, gint value);
 static void id_card_widget_finalize (GObject* obj);
 static void _vala_id_card_widget_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
 static void _vala_id_card_widget_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 
 
-void id_card_widget_collapse (IdCardWidget* self) {
-       GtkHButtonBox* _tmp0_ = NULL;
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_if_fail (self != NULL);
-#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp0_ = self->priv->hbutton_box;
-#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_widget_set_visible ((GtkWidget*) _tmp0_, FALSE);
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_set_idcard_color (self);
-#line 149 "moonshot-idcard-widget.c"
-}
-
-
-void id_card_widget_expand (IdCardWidget* self) {
-       GtkHButtonBox* _tmp0_ = NULL;
+void id_card_widget_select (IdCardWidget* self) {
 #line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        g_return_if_fail (self != NULL);
 #line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp0_ = self->priv->hbutton_box;
-#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_widget_set_visible ((GtkWidget*) _tmp0_, TRUE);
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_set_idcard_color (self);
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       id_card_widget_expand (self);
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        g_signal_emit_by_name (self, "expanded");
-#line 165 "moonshot-idcard-widget.c"
+#line 163 "moonshot-idcard-widget.c"
 }
 
 
-static gboolean id_card_widget_button_press_cb (IdCardWidget* self) {
-       gboolean result = FALSE;
-       GtkHButtonBox* _tmp0_ = NULL;
-       gboolean _tmp1_ = FALSE;
+void id_card_widget_unselect (IdCardWidget* self) {
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       g_return_if_fail (self != NULL);
 #line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_val_if_fail (self != NULL, FALSE);
-#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp0_ = self->priv->hbutton_box;
-#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp1_ = gtk_widget_get_visible ((GtkWidget*) _tmp0_);
-#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       if (_tmp1_) {
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               id_card_widget_collapse (self);
-#line 183 "moonshot-idcard-widget.c"
-       } else {
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               id_card_widget_expand (self);
-#line 187 "moonshot-idcard-widget.c"
-       }
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       result = FALSE;
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       return result;
-#line 193 "moonshot-idcard-widget.c"
+       id_card_widget_collapse (self);
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       g_signal_emit_by_name (self, "collapsed");
+#line 174 "moonshot-idcard-widget.c"
 }
 
 
-static void id_card_widget_delete_button_cb (IdCardWidget* self) {
-#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+void id_card_widget_expand (IdCardWidget* self) {
+       GtkVBox* _tmp0_ = NULL;
+       GtkArrow* _tmp1_ = NULL;
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        g_return_if_fail (self != NULL);
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_signal_emit_by_name (self, "remove-id");
-#line 202 "moonshot-idcard-widget.c"
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       self->priv->is_selected = TRUE;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp0_ = self->priv->details;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_widget_show_all ((GtkWidget*) _tmp0_);
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       id_card_widget_set_idcard_color (self);
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp1_ = self->priv->arrow;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_arrow_set (_tmp1_, GTK_ARROW_DOWN, ID_CARD_WIDGET_ARROW_SHADOW);
+#line 195 "moonshot-idcard-widget.c"
 }
 
 
-static void id_card_widget_details_button_cb (IdCardWidget* self) {
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+void id_card_widget_collapse (IdCardWidget* self) {
+       GtkVBox* _tmp0_ = NULL;
+       GtkArrow* _tmp1_ = NULL;
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        g_return_if_fail (self != NULL);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_signal_emit_by_name (self, "details-id");
-#line 211 "moonshot-idcard-widget.c"
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       self->priv->is_selected = FALSE;
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp0_ = self->priv->details;
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_widget_hide ((GtkWidget*) _tmp0_);
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       id_card_widget_set_idcard_color (self);
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp1_ = self->priv->arrow;
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_arrow_set (_tmp1_, GTK_ARROW_RIGHT, ID_CARD_WIDGET_ARROW_SHADOW);
+#line 216 "moonshot-idcard-widget.c"
 }
 
 
-static void id_card_widget_send_button_cb (IdCardWidget* self) {
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_if_fail (self != NULL);
+static gboolean id_card_widget_button_press_cb (IdCardWidget* self) {
+       gboolean result = FALSE;
+       gboolean _tmp0_ = FALSE;
 #line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_signal_emit_by_name (self, "send-id");
-#line 220 "moonshot-idcard-widget.c"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp0_ = self->priv->is_selected;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       if (_tmp0_) {
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               id_card_widget_unselect (self);
+#line 231 "moonshot-idcard-widget.c"
+       } else {
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               id_card_widget_select (self);
+#line 235 "moonshot-idcard-widget.c"
+       }
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       result = FALSE;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       return result;
+#line 241 "moonshot-idcard-widget.c"
 }
 
 
 static void id_card_widget_set_idcard_color (IdCardWidget* self) {
        GdkColor color = {0};
-       GtkHButtonBox* _tmp0_ = NULL;
-       gboolean _tmp1_ = FALSE;
-       GtkStateType state = 0;
-       GtkStateType _tmp2_ = 0;
-       GtkEventBox* _tmp3_ = NULL;
-       GdkColor _tmp4_ = {0};
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gboolean _tmp0_ = FALSE;
+       GtkEventBox* _tmp5_ = NULL;
+       GdkColor _tmp6_ = {0};
+       GtkArrow* _tmp7_ = NULL;
+       GdkColor _tmp8_ = {0};
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        g_return_if_fail (self != NULL);
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        memset (&color, 0, sizeof (GdkColor));
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp0_ = self->priv->hbutton_box;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp1_ = gtk_widget_get_visible ((GtkWidget*) _tmp0_);
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       if (_tmp1_ == FALSE) {
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               color.red = (guint16) 65535;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               color.green = (guint16) 65535;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               color.blue = (guint16) 65535;
-#line 248 "moonshot-idcard-widget.c"
-       } else {
-#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               color.red = (guint16) 33333;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp0_ = self->priv->is_selected;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       if (_tmp0_) {
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               color.green = (guint16) 33333;
+               color.red = (guint16) (0xd9 << 8);
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               color.blue = (guint16) 60000;
-#line 256 "moonshot-idcard-widget.c"
-       }
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp2_ = gtk_widget_get_state ((GtkWidget*) self);
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       state = _tmp2_;
-#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp3_ = self->priv->event_box;
-#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp4_ = color;
-#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_widget_modify_bg ((GtkWidget*) _tmp3_, state, &_tmp4_);
-#line 268 "moonshot-idcard-widget.c"
-}
-
-
-void id_card_widget_update_id_card_label (IdCardWidget* self) {
-       gchar* services_text = NULL;
-       gchar* _tmp0_ = NULL;
-       gchar* display_name = NULL;
-       IdCard* _tmp1_ = NULL;
-       const gchar* _tmp2_ = NULL;
-       const gchar* _tmp3_ = NULL;
-       gchar* _tmp4_ = NULL;
-       GtkLabel* _tmp31_ = NULL;
-       const gchar* _tmp32_ = NULL;
-       gchar* _tmp33_ = NULL;
-       gchar* _tmp34_ = NULL;
-       const gchar* _tmp35_ = NULL;
-       gchar* _tmp36_ = NULL;
-       gchar* _tmp37_ = NULL;
+               color.green = (guint16) (0xf7 << 8);
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               color.blue = (guint16) 65535;
+#line 266 "moonshot-idcard-widget.c"
+       } else {
+               gint _tmp1_ = 0;
+               gint _tmp2_ = 0;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp1_ = id_card_widget_get_position (self);
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp2_ = _tmp1_;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               if ((_tmp2_ % 2) == 0) {
+#line 276 "moonshot-idcard-widget.c"
+                       guint16 _tmp3_ = 0U;
+                       guint16 _tmp4_ = 0U;
 #line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_if_fail (self != NULL);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp0_ = g_strdup ("");
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       services_text = _tmp0_;
-#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp1_ = self->priv->_id_card;
-#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp2_ = id_card_get_display_name (_tmp1_);
-#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp3_ = _tmp2_;
-#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp4_ = g_markup_printf_escaped ("<big>%s</big>", _tmp3_);
+                       color.blue = (guint16) (0xf2 << 8);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+                       _tmp3_ = color.blue;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+                       color.green = _tmp3_;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+                       _tmp4_ = color.green;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+                       color.red = _tmp4_;
+#line 289 "moonshot-idcard-widget.c"
+               } else {
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+                       color.red = (guint16) 65535;
 #line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       display_name = _tmp4_;
-#line 303 "moonshot-idcard-widget.c"
-       {
-               gint i = 0;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               i = 0;
-#line 308 "moonshot-idcard-widget.c"
-               {
-                       gboolean _tmp5_ = FALSE;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                       _tmp5_ = TRUE;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                       while (TRUE) {
-#line 315 "moonshot-idcard-widget.c"
-                               gint _tmp7_ = 0;
-                               IdCard* _tmp8_ = NULL;
-                               gchar** _tmp9_ = NULL;
-                               gint _tmp9__length1 = 0;
-                               gchar** _tmp10_ = NULL;
-                               gint _tmp10__length1 = 0;
-                               gchar* service = NULL;
-                               IdCard* _tmp11_ = NULL;
-                               gchar** _tmp12_ = NULL;
-                               gint _tmp12__length1 = 0;
-                               gchar** _tmp13_ = NULL;
-                               gint _tmp13__length1 = 0;
-                               gint _tmp14_ = 0;
-                               const gchar* _tmp15_ = NULL;
-                               gchar* _tmp16_ = NULL;
-                               gint _tmp17_ = 0;
-                               IdCard* _tmp18_ = NULL;
-                               gchar** _tmp19_ = NULL;
-                               gint _tmp19__length1 = 0;
-                               gchar** _tmp20_ = NULL;
-                               gint _tmp20__length1 = 0;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               if (!_tmp5_) {
-#line 339 "moonshot-idcard-widget.c"
-                                       gint _tmp6_ = 0;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _tmp6_ = i;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       i = _tmp6_ + 1;
-#line 345 "moonshot-idcard-widget.c"
-                               }
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp5_ = FALSE;
+                       color.green = (guint16) 65535;
 #line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp7_ = i;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp8_ = self->priv->_id_card;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp9_ = id_card_get_services (_tmp8_, &_tmp9__length1);
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp10_ = _tmp9_;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp10__length1 = _tmp9__length1;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               if (!(_tmp7_ < _tmp10__length1)) {
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       break;
-#line 363 "moonshot-idcard-widget.c"
-                               }
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp11_ = self->priv->_id_card;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp12_ = id_card_get_services (_tmp11_, &_tmp12__length1);
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp13_ = _tmp12_;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp13__length1 = _tmp12__length1;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp14_ = i;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp15_ = _tmp13_[_tmp14_];
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp16_ = g_strdup (_tmp15_);
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               service = _tmp16_;
-#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp17_ = i;
-#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp18_ = self->priv->_id_card;
-#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp19_ = id_card_get_services (_tmp18_, &_tmp19__length1);
+                       color.blue = (guint16) 65535;
+#line 297 "moonshot-idcard-widget.c"
+               }
+       }
 #line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp20_ = _tmp19_;
+       _tmp5_ = self->priv->event_box;
 #line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _tmp20__length1 = _tmp19__length1;
+       _tmp6_ = color;
 #line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               if (_tmp17_ == (_tmp20__length1 - 1)) {
-#line 393 "moonshot-idcard-widget.c"
-                                       const gchar* _tmp21_ = NULL;
-                                       const gchar* _tmp22_ = NULL;
-                                       gchar* _tmp23_ = NULL;
-                                       gchar* _tmp24_ = NULL;
-                                       gchar* _tmp25_ = NULL;
-#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _tmp21_ = services_text;
+       gtk_widget_modify_bg ((GtkWidget*) _tmp5_, GTK_STATE_NORMAL, &_tmp6_);
 #line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _tmp22_ = service;
+       _tmp7_ = self->priv->arrow;
 #line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _tmp23_ = g_markup_printf_escaped ("<i>%s</i>", _tmp22_);
+       _tmp8_ = color;
 #line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _tmp24_ = _tmp23_;
-#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _tmp25_ = g_strconcat (_tmp21_, _tmp24_, NULL);
-#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _g_free0 (services_text);
-#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       services_text = _tmp25_;
-#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _g_free0 (_tmp24_);
-#line 415 "moonshot-idcard-widget.c"
-                               } else {
-                                       const gchar* _tmp26_ = NULL;
-                                       const gchar* _tmp27_ = NULL;
-                                       gchar* _tmp28_ = NULL;
-                                       gchar* _tmp29_ = NULL;
-                                       gchar* _tmp30_ = NULL;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _tmp26_ = services_text;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _tmp27_ = service;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _tmp28_ = g_markup_printf_escaped ("<i>%s, </i>", _tmp27_);
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _tmp29_ = _tmp28_;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _tmp30_ = g_strconcat (_tmp26_, _tmp29_, NULL);
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _g_free0 (services_text);
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       services_text = _tmp30_;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                                       _g_free0 (_tmp29_);
-#line 438 "moonshot-idcard-widget.c"
-                               }
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-                               _g_free0 (service);
-#line 442 "moonshot-idcard-widget.c"
-                       }
-               }
-       }
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp31_ = self->priv->label;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp32_ = display_name;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp33_ = g_strconcat (_tmp32_, "\n", NULL);
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp34_ = _tmp33_;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp35_ = services_text;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp36_ = g_strconcat (_tmp34_, _tmp35_, NULL);
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp37_ = _tmp36_;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_label_set_markup (_tmp31_, _tmp37_);
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_free0 (_tmp37_);
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_free0 (_tmp34_);
-#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_free0 (display_name);
-#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_free0 (services_text);
-#line 470 "moonshot-idcard-widget.c"
+       gtk_widget_modify_bg ((GtkWidget*) _tmp7_, GTK_STATE_NORMAL, &_tmp8_);
+#line 312 "moonshot-idcard-widget.c"
 }
 
 
-static void _id_card_widget_delete_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_delete_button_cb ((IdCardWidget*) self);
-#line 477 "moonshot-idcard-widget.c"
-}
-
-
-static void _id_card_widget_details_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_details_button_cb ((IdCardWidget*) self);
-#line 484 "moonshot-idcard-widget.c"
+static void id_card_widget_make_id_card_label (IdCardWidget* self, GtkLabel* label) {
+       const gchar* _tmp0_ = NULL;
+       gboolean _tmp1_ = FALSE;
+       IdentityManagerView* _tmp2_ = NULL;
+       gboolean _tmp3_ = FALSE;
+       gchar* display_name = NULL;
+       gchar* _tmp10_ = NULL;
+       gchar* label_text = NULL;
+       gchar* _tmp11_ = NULL;
+       GtkLabel* _tmp12_ = NULL;
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       g_return_if_fail (self != NULL);
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       g_return_if_fail (label != NULL);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp2_ = self->priv->manager_view;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp3_ = identity_manager_view_selection_in_progress (_tmp2_);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       if (_tmp3_) {
+#line 336 "moonshot-idcard-widget.c"
+               IdCard* _tmp4_ = NULL;
+               gboolean _tmp5_ = FALSE;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp4_ = self->priv->_id_card;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp5_ = id_card_is_no_identity (_tmp4_);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp1_ = _tmp5_;
+#line 345 "moonshot-idcard-widget.c"
+       } else {
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp1_ = FALSE;
+#line 349 "moonshot-idcard-widget.c"
+       }
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       if (_tmp1_) {
+#line 353 "moonshot-idcard-widget.c"
+               const gchar* _tmp6_ = NULL;
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp6_ = _ ("Do not use a Moonshot identity for this service");
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp0_ = _tmp6_;
+#line 359 "moonshot-idcard-widget.c"
+       } else {
+               IdCard* _tmp7_ = NULL;
+               const gchar* _tmp8_ = NULL;
+               const gchar* _tmp9_ = NULL;
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp7_ = self->priv->_id_card;
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp8_ = id_card_get_display_name (_tmp7_);
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp9_ = _tmp8_;
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp0_ = _tmp9_;
+#line 372 "moonshot-idcard-widget.c"
+       }
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp10_ = g_strdup (_tmp0_);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       display_name = _tmp10_;
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp11_ = g_markup_printf_escaped ("<span rise='8000'><big>%s</big></span>", display_name);
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       label_text = _tmp11_;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp12_ = label;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_label_set_markup (_tmp12_, label_text);
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_free0 (label_text);
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_free0 (display_name);
+#line 390 "moonshot-idcard-widget.c"
 }
 
 
-static void _id_card_widget_send_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_send_button_cb ((IdCardWidget*) self);
-#line 491 "moonshot-idcard-widget.c"
+static gpointer _g_object_ref0 (gpointer self) {
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 397 "moonshot-idcard-widget.c"
 }
 
 
 static gboolean _id_card_widget_button_press_cb_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
        gboolean result;
        result = id_card_widget_button_press_cb ((IdCardWidget*) self);
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        return result;
-#line 500 "moonshot-idcard-widget.c"
+#line 406 "moonshot-idcard-widget.c"
 }
 
 
-IdCardWidget* id_card_widget_construct (GType object_type, IdCard* id_card) {
+IdCardWidget* id_card_widget_construct (GType object_type, IdCard* id_card, IdentityManagerView* manager_view) {
        IdCardWidget * self = NULL;
        IdCard* _tmp0_ = NULL;
-       GtkImage* image = NULL;
-       IdCard* _tmp1_ = NULL;
-       GdkPixbuf* _tmp2_ = NULL;
-       GdkPixbuf* _tmp3_ = NULL;
-       GtkImage* _tmp4_ = NULL;
-       GtkImage* _tmp5_ = NULL;
+       IdentityManagerView* _tmp1_ = NULL;
+       IdentityManagerView* _tmp2_ = NULL;
+       GtkLabel* display_name_label = NULL;
+       GtkLabel* _tmp3_ = NULL;
+       GtkLabel* _tmp4_ = NULL;
+       GtkLabel* _tmp5_ = NULL;
        GtkLabel* _tmp6_ = NULL;
-       GtkLabel* _tmp7_ = NULL;
-       GtkLabel* _tmp8_ = NULL;
-       GtkHBox* _tmp9_ = NULL;
-       GtkHBox* _tmp10_ = NULL;
-       GtkHBox* _tmp11_ = NULL;
-       GtkLabel* _tmp12_ = NULL;
-       const gchar* _tmp13_ = NULL;
-       GtkButton* _tmp14_ = NULL;
-       GtkButton* _tmp15_ = NULL;
-       const gchar* _tmp16_ = NULL;
-       GtkButton* _tmp17_ = NULL;
-       GtkButton* _tmp18_ = NULL;
-       const gchar* _tmp19_ = NULL;
-       GtkButton* _tmp20_ = NULL;
-       GtkButton* _tmp21_ = NULL;
-       GtkButton* _tmp22_ = NULL;
-       const gchar* _tmp23_ = NULL;
-       const gchar* _tmp24_ = NULL;
-       GtkButton* _tmp25_ = NULL;
-       const gchar* _tmp26_ = NULL;
-       const gchar* _tmp27_ = NULL;
-       GtkButton* _tmp28_ = NULL;
-       const gchar* _tmp29_ = NULL;
-       const gchar* _tmp30_ = NULL;
-       GtkHButtonBox* _tmp31_ = NULL;
-       GtkHButtonBox* _tmp32_ = NULL;
-       GtkButton* _tmp33_ = NULL;
-       GtkHButtonBox* _tmp34_ = NULL;
-       GtkButton* _tmp35_ = NULL;
-       GtkHButtonBox* _tmp36_ = NULL;
-       GtkButton* _tmp37_ = NULL;
-       GtkButton* _tmp38_ = NULL;
-       GtkButton* _tmp39_ = NULL;
-       GtkButton* _tmp40_ = NULL;
-       GtkButton* _tmp41_ = NULL;
-       GtkVBox* _tmp42_ = NULL;
-       GtkVBox* _tmp43_ = NULL;
-       GtkHBox* _tmp44_ = NULL;
-       GtkVBox* _tmp45_ = NULL;
-       GtkHButtonBox* _tmp46_ = NULL;
-       GtkVBox* _tmp47_ = NULL;
-       GtkEventBox* _tmp48_ = NULL;
-       GtkEventBox* _tmp49_ = NULL;
-       GtkVBox* _tmp50_ = NULL;
-       GtkEventBox* _tmp51_ = NULL;
-       GtkEventBox* _tmp52_ = NULL;
-       GtkHButtonBox* _tmp53_ = NULL;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_val_if_fail (id_card != NULL, NULL);
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       self = (IdCardWidget*) g_object_new (object_type, NULL);
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp0_ = id_card;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_set_id_card (self, _tmp0_);
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp1_ = id_card;
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp2_ = get_pixbuf (_tmp1_);
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp3_ = _tmp2_;
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp4_ = (GtkImage*) gtk_image_new_from_pixbuf (_tmp3_);
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_ref_sink (_tmp4_);
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp5_ = _tmp4_;
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (_tmp3_);
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       image = _tmp5_;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp6_ = (GtkLabel*) gtk_label_new (NULL);
+       GtkVBox* details_wrapper = NULL;
+       GtkVBox* _tmp7_ = NULL;
+       GtkVBox* _tmp8_ = NULL;
+       GtkLabel* _tmp9_ = NULL;
+       GtkVBox* _tmp10_ = NULL;
+       GtkVBox* _tmp11_ = NULL;
+       GtkVBox* _tmp12_ = NULL;
+       IdCard* _tmp13_ = NULL;
+       gboolean _tmp14_ = FALSE;
+       GtkHBox* services_hbox = NULL;
+       GtkHBox* _tmp49_ = NULL;
+       GtkLabel* services_label = NULL;
+       const gchar* _tmp50_ = NULL;
+       GtkLabel* _tmp51_ = NULL;
+       GtkLabel* _tmp52_ = NULL;
+       gchar* services_text = NULL;
+       IdCard* _tmp53_ = NULL;
+       gchar* _tmp54_ = NULL;
+       GtkLabel* service_list = NULL;
+       const gchar* _tmp55_ = NULL;
+       GtkLabel* _tmp56_ = NULL;
+       GtkLabel* _tmp57_ = NULL;
+       GtkLabel* _tmp58_ = NULL;
+       GtkLabel* _tmp59_ = NULL;
+       GtkHBox* _tmp60_ = NULL;
+       GtkLabel* _tmp61_ = NULL;
+       GtkHBox* _tmp62_ = NULL;
+       GtkLabel* _tmp63_ = NULL;
+       GtkVBox* _tmp64_ = NULL;
+       GtkHBox* _tmp65_ = NULL;
+       GtkHBox* _tmp66_ = NULL;
+       GtkImage* image = NULL;
+       IdCard* _tmp67_ = NULL;
+       GdkPixbuf* _tmp68_ = NULL;
+       GdkPixbuf* _tmp69_ = NULL;
+       GtkImage* _tmp70_ = NULL;
+       GtkImage* _tmp71_ = NULL;
+       IdCard* _tmp72_ = NULL;
+       gboolean _tmp73_ = FALSE;
+       GtkHBox* _tmp76_ = NULL;
+       GtkImage* _tmp77_ = NULL;
+       GtkHBox* _tmp78_ = NULL;
+       GtkVBox* _tmp79_ = NULL;
+       GtkArrow* _tmp80_ = NULL;
+       GtkArrow* _tmp81_ = NULL;
+       GtkHBox* _tmp82_ = NULL;
+       GtkArrow* _tmp83_ = NULL;
+       GtkVBox* _tmp84_ = NULL;
+       GtkVBox* _tmp85_ = NULL;
+       GtkHBox* _tmp86_ = NULL;
+       GtkVBox* _tmp87_ = NULL;
+       GtkEventBox* _tmp88_ = NULL;
+       GtkEventBox* _tmp89_ = NULL;
+       GtkVBox* _tmp90_ = NULL;
+       GtkEventBox* _tmp91_ = NULL;
+       GtkEventBox* _tmp92_ = NULL;
+       GtkEventBox* _tmp93_ = NULL;
+       GtkVBox* _tmp94_ = NULL;
 #line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_ref_sink (_tmp6_);
+       g_return_val_if_fail (id_card != NULL, NULL);
 #line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->label);
+       g_return_val_if_fail (manager_view != NULL, NULL);
 #line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       self->priv->label = _tmp6_;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp7_ = self->priv->label;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_misc_set_alignment ((GtkMisc*) _tmp7_, (gfloat) 0, (gfloat) 0.5);
+       self = (IdCardWidget*) g_object_new (object_type, NULL);
 #line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp8_ = self->priv->label;
+       _tmp0_ = id_card;
 #line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_label_set_ellipsize (_tmp8_, PANGO_ELLIPSIZE_END);
+       id_card_widget_set_id_card (self, _tmp0_);
 #line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_update_id_card_label (self);
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp9_ = (GtkHBox*) gtk_hbox_new (FALSE, 6);
+       _tmp1_ = manager_view;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (self->priv->manager_view);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       self->priv->manager_view = _tmp2_;
 #line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_ref_sink (_tmp9_);
+       _tmp3_ = (GtkLabel*) gtk_label_new (NULL);
 #line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->table);
+       g_object_ref_sink (_tmp3_);
 #line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       self->priv->table = _tmp9_;
+       display_name_label = _tmp3_;
 #line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp10_ = self->priv->table;
+       _tmp4_ = display_name_label;
 #line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_box_pack_start ((GtkBox*) _tmp10_, (GtkWidget*) image, FALSE, FALSE, (guint) 0);
+       gtk_misc_set_alignment ((GtkMisc*) _tmp4_, (gfloat) 0, (gfloat) 0.5);
 #line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp11_ = self->priv->table;
+       _tmp5_ = display_name_label;
 #line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp12_ = self->priv->label;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_box_pack_start ((GtkBox*) _tmp11_, (GtkWidget*) _tmp12_, TRUE, TRUE, (guint) 0);
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp13_ = _ ("Delete");
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp14_ = (GtkButton*) gtk_button_new_with_label (_tmp13_);
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_ref_sink (_tmp14_);
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp15_ = _tmp14_;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_set_delete_button (self, _tmp15_);
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (_tmp15_);
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp16_ = _ ("View details");
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp17_ = (GtkButton*) gtk_button_new_with_label (_tmp16_);
+       gtk_label_set_ellipsize (_tmp5_, PANGO_ELLIPSIZE_END);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp6_ = display_name_label;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       id_card_widget_make_id_card_label (self, _tmp6_);
 #line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_ref_sink (_tmp17_);
+       _tmp7_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
 #line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp18_ = _tmp17_;
+       g_object_ref_sink (_tmp7_);
 #line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_set_details_button (self, _tmp18_);
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (_tmp18_);
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp19_ = _ ("Send");
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp20_ = (GtkButton*) gtk_button_new_with_label (_tmp19_);
+       details_wrapper = _tmp7_;
 #line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_ref_sink (_tmp20_);
+       _tmp8_ = details_wrapper;
 #line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp21_ = _tmp20_;
+       _tmp9_ = display_name_label;
 #line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_set_send_button (self, _tmp21_);
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (_tmp21_);
+       gtk_box_pack_start ((GtkBox*) _tmp8_, (GtkWidget*) _tmp9_, FALSE, FALSE, (guint) 0);
 #line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp22_ = self->priv->_delete_button;
+       _tmp10_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
 #line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp23_ = _ ("Delete");
+       g_object_ref_sink (_tmp10_);
 #line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp24_ = _ ("Delete this ID Card");
+       _g_object_unref0 (self->priv->details);
 #line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_set_atk_name_description (self, (GtkWidget*) _tmp22_, _tmp23_, _tmp24_);
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp25_ = self->priv->_details_button;
+       self->priv->details = _tmp10_;
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp26_ = _ ("Details");
+       _tmp11_ = details_wrapper;
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp27_ = _ ("View the details of this ID Card");
+       _tmp12_ = self->priv->details;
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_set_atk_name_description (self, (GtkWidget*) _tmp25_, _tmp26_, _tmp27_);
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp28_ = self->priv->_send_button;
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp29_ = _ ("Send");
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp30_ = _ ("Send this ID Card");
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_set_atk_name_description (self, (GtkWidget*) _tmp28_, _tmp29_, _tmp30_);
+       gtk_box_pack_start ((GtkBox*) _tmp11_, (GtkWidget*) _tmp12_, FALSE, FALSE, (guint) 0);
 #line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp31_ = (GtkHButtonBox*) gtk_hbutton_box_new ();
+       _tmp13_ = self->priv->_id_card;
 #line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_ref_sink (_tmp31_);
+       _tmp14_ = id_card_is_no_identity (_tmp13_);
 #line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->hbutton_box);
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       self->priv->hbutton_box = _tmp31_;
+       if (!_tmp14_) {
+#line 546 "moonshot-idcard-widget.c"
+               gchar* upper_details_text = NULL;
+               const gchar* _tmp15_ = NULL;
+               gchar* _tmp16_ = NULL;
+               gchar* _tmp17_ = NULL;
+               IdCard* _tmp18_ = NULL;
+               const gchar* _tmp19_ = NULL;
+               const gchar* _tmp20_ = NULL;
+               gchar* _tmp21_ = NULL;
+               gchar* _tmp22_ = NULL;
+               const gchar* _tmp23_ = NULL;
+               const gchar* _tmp24_ = NULL;
+               gchar* _tmp25_ = NULL;
+               gchar* _tmp26_ = NULL;
+               gchar* _tmp27_ = NULL;
+               gchar* _tmp28_ = NULL;
+               IdCard* _tmp29_ = NULL;
+               const gchar* _tmp30_ = NULL;
+               const gchar* _tmp31_ = NULL;
+               gchar* _tmp32_ = NULL;
+               gchar* _tmp33_ = NULL;
+               gchar* _tmp34_ = NULL;
+               IdCard* _tmp35_ = NULL;
+               TrustAnchor* _tmp36_ = NULL;
+               TrustAnchor* _tmp37_ = NULL;
+               gboolean _tmp38_ = FALSE;
+               GtkLabel* upper_details = NULL;
+               const gchar* _tmp44_ = NULL;
+               GtkLabel* _tmp45_ = NULL;
+               GtkLabel* _tmp46_ = NULL;
+               GtkVBox* _tmp47_ = NULL;
+               GtkLabel* _tmp48_ = NULL;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp15_ = _ ("Username");
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp16_ = g_strconcat (_tmp15_, ":  ", NULL);
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp17_ = _tmp16_;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp18_ = id_card;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp19_ = id_card_get_username (_tmp18_);
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp32_ = self->priv->hbutton_box;
+               _tmp20_ = _tmp19_;
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp33_ = self->priv->_delete_button;
+               _tmp21_ = g_strconcat (_tmp17_, _tmp20_, NULL);
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_box_pack_end ((GtkBox*) _tmp32_, (GtkWidget*) _tmp33_, TRUE, TRUE, (guint) 0);
+               _tmp22_ = _tmp21_;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _g_free0 (_tmp17_);
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               upper_details_text = _tmp22_;
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp23_ = upper_details_text;
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp24_ = _ ("Realm:");
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp25_ = g_strconcat ("\n", _tmp24_, NULL);
 #line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp34_ = self->priv->hbutton_box;
+               _tmp26_ = _tmp25_;
 #line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp35_ = self->priv->_details_button;
+               _tmp27_ = g_strconcat (_tmp26_, "  ", NULL);
 #line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_box_pack_end ((GtkBox*) _tmp34_, (GtkWidget*) _tmp35_, TRUE, TRUE, (guint) 0);
+               _tmp28_ = _tmp27_;
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp29_ = id_card;
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp30_ = id_card_get_issuer (_tmp29_);
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp31_ = _tmp30_;
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp32_ = g_strconcat (_tmp28_, _tmp31_, NULL);
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp33_ = _tmp32_;
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp34_ = g_strconcat (_tmp23_, _tmp33_, NULL);
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _g_free0 (upper_details_text);
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               upper_details_text = _tmp34_;
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _g_free0 (_tmp33_);
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _g_free0 (_tmp28_);
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _g_free0 (_tmp26_);
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp35_ = id_card;
 #line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp36_ = self->priv->hbutton_box;
+               _tmp36_ = id_card_get_trust_anchor (_tmp35_);
 #line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp37_ = self->priv->_send_button;
+               _tmp37_ = _tmp36_;
 #line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_box_pack_end ((GtkBox*) _tmp36_, (GtkWidget*) _tmp37_, TRUE, TRUE, (guint) 0);
+               _tmp38_ = trust_anchor_is_empty (_tmp37_);
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               if (!_tmp38_) {
+#line 642 "moonshot-idcard-widget.c"
+                       const gchar* _tmp39_ = NULL;
+                       const gchar* _tmp40_ = NULL;
+                       gchar* _tmp41_ = NULL;
+                       gchar* _tmp42_ = NULL;
+                       gchar* _tmp43_ = NULL;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+                       _tmp39_ = upper_details_text;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+                       _tmp40_ = _ ("Trust anchor: Enterprise provisioned");
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+                       _tmp41_ = g_strconcat ("\n", _tmp40_, NULL);
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+                       _tmp42_ = _tmp41_;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+                       _tmp43_ = g_strconcat (_tmp39_, _tmp42_, NULL);
 #line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp38_ = self->priv->_send_button;
+                       _g_free0 (upper_details_text);
 #line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_widget_set_sensitive ((GtkWidget*) _tmp38_, FALSE);
+                       upper_details_text = _tmp43_;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+                       _g_free0 (_tmp42_);
+#line 664 "moonshot-idcard-widget.c"
+               }
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _tmp44_ = upper_details_text;
 #line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp39_ = self->priv->_delete_button;
+               _tmp45_ = (GtkLabel*) gtk_label_new (_tmp44_);
 #line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_signal_connect_object (_tmp39_, "clicked", (GCallback) _id_card_widget_delete_button_cb_gtk_button_clicked, self, 0);
+               g_object_ref_sink (_tmp45_);
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               upper_details = _tmp45_;
 #line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp40_ = self->priv->_details_button;
+               _tmp46_ = upper_details;
 #line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_signal_connect_object (_tmp40_, "clicked", (GCallback) _id_card_widget_details_button_cb_gtk_button_clicked, self, 0);
+               gtk_misc_set_alignment ((GtkMisc*) _tmp46_, (gfloat) 0, (gfloat) 0);
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp41_ = self->priv->_send_button;
+               _tmp47_ = self->priv->details;
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_signal_connect_object (_tmp41_, "clicked", (GCallback) _id_card_widget_send_button_cb_gtk_button_clicked, self, 0);
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp42_ = (GtkVBox*) gtk_vbox_new (FALSE, 12);
+               _tmp48_ = upper_details;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               gtk_box_pack_start ((GtkBox*) _tmp47_, (GtkWidget*) _tmp48_, TRUE, TRUE, (guint) 0);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _g_object_unref0 (upper_details);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+               _g_free0 (upper_details_text);
+#line 688 "moonshot-idcard-widget.c"
+       }
 #line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_ref_sink (_tmp42_);
+       _tmp49_ = (GtkHBox*) gtk_hbox_new (FALSE, 6);
 #line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->main_vbox);
+       g_object_ref_sink (_tmp49_);
 #line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       self->priv->main_vbox = _tmp42_;
+       services_hbox = _tmp49_;
 #line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp43_ = self->priv->main_vbox;
+       _tmp50_ = _ ("Services: ");
 #line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp44_ = self->priv->table;
+       _tmp51_ = (GtkLabel*) gtk_label_new (_tmp50_);
 #line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_box_pack_start ((GtkBox*) _tmp43_, (GtkWidget*) _tmp44_, TRUE, TRUE, (guint) 0);
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp45_ = self->priv->main_vbox;
+       g_object_ref_sink (_tmp51_);
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       services_label = _tmp51_;
 #line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp46_ = self->priv->hbutton_box;
+       _tmp52_ = services_label;
 #line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_box_pack_start ((GtkBox*) _tmp45_, (GtkWidget*) _tmp46_, FALSE, FALSE, (guint) 0);
-#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp47_ = self->priv->main_vbox;
-#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_container_set_border_width ((GtkContainer*) _tmp47_, (guint) 12);
+       gtk_misc_set_alignment ((GtkMisc*) _tmp52_, (gfloat) 0, (gfloat) 0);
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp53_ = self->priv->_id_card;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp54_ = id_card_get_services_string (_tmp53_, "\n");
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       services_text = _tmp54_;
 #line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp48_ = (GtkEventBox*) gtk_event_box_new ();
+       _tmp55_ = services_text;
 #line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_ref_sink (_tmp48_);
+       _tmp56_ = (GtkLabel*) gtk_label_new (_tmp55_);
 #line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->event_box);
+       g_object_ref_sink (_tmp56_);
 #line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       self->priv->event_box = _tmp48_;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp49_ = self->priv->event_box;
+       service_list = _tmp56_;
 #line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp50_ = self->priv->main_vbox;
+       _tmp57_ = service_list;
 #line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_container_add ((GtkContainer*) _tmp49_, (GtkWidget*) _tmp50_);
+       gtk_misc_set_alignment ((GtkMisc*) _tmp57_, (gfloat) 0, (gfloat) 0);
 #line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp51_ = self->priv->event_box;
+       _tmp58_ = service_list;
 #line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_signal_connect_object ((GtkWidget*) _tmp51_, "button-press-event", (GCallback) _id_card_widget_button_press_cb_gtk_widget_button_press_event, self, 0);
+       gtk_label_set_ellipsize (_tmp58_, PANGO_ELLIPSIZE_END);
 #line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp52_ = self->priv->event_box;
+       _tmp59_ = service_list;
 #line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _tmp52_, TRUE, TRUE, (guint) 0);
+       gtk_label_set_max_width_chars (_tmp59_, 50);
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp60_ = services_hbox;
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp61_ = services_label;
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp60_, (GtkWidget*) _tmp61_, FALSE, FALSE, (guint) 0);
 #line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_widget_show_all ((GtkWidget*) self);
+       _tmp62_ = services_hbox;
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp63_ = service_list;
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp62_, (GtkWidget*) _tmp63_, FALSE, FALSE, (guint) 0);
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp64_ = self->priv->details;
 #line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp53_ = self->priv->hbutton_box;
+       _tmp65_ = services_hbox;
 #line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       gtk_widget_hide ((GtkWidget*) _tmp53_);
+       gtk_box_pack_start ((GtkBox*) _tmp64_, (GtkWidget*) _tmp65_, TRUE, TRUE, (guint) 0);
 #line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       id_card_widget_set_idcard_color (self);
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (image);
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       return self;
-#line 781 "moonshot-idcard-widget.c"
-}
-
-
-IdCardWidget* id_card_widget_new (IdCard* id_card) {
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       return id_card_widget_construct (TYPE_ID_CARD_WIDGET, id_card);
-#line 788 "moonshot-idcard-widget.c"
-}
-
-
-static gpointer _g_object_ref0 (gpointer self) {
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       return self ? g_object_ref (self) : NULL;
-#line 795 "moonshot-idcard-widget.c"
-}
-
-
-static void id_card_widget_set_atk_name_description (IdCardWidget* self, GtkWidget* widget, const gchar* name, const gchar* description) {
-       AtkObject* atk_widget = NULL;
-       GtkWidget* _tmp0_ = NULL;
-       AtkObject* _tmp1_ = NULL;
-       AtkObject* _tmp2_ = NULL;
-       const gchar* _tmp3_ = NULL;
-       const gchar* _tmp4_ = NULL;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_if_fail (self != NULL);
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_if_fail (widget != NULL);
+       _tmp66_ = (GtkHBox*) gtk_hbox_new (FALSE, 6);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       g_object_ref_sink (_tmp66_);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (self->priv->hbox);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       self->priv->hbox = _tmp66_;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp67_ = id_card;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp68_ = get_pixbuf (_tmp67_);
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp69_ = _tmp68_;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp70_ = (GtkImage*) gtk_image_new_from_pixbuf (_tmp69_);
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       g_object_ref_sink (_tmp70_);
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp71_ = _tmp70_;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (_tmp69_);
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       image = _tmp71_;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp72_ = self->priv->_id_card;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp73_ = id_card_is_no_identity (_tmp72_);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       if (_tmp73_) {
+#line 782 "moonshot-idcard-widget.c"
+               GtkImage* _tmp74_ = NULL;
+               GtkImage* _tmp75_ = NULL;
 #line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_if_fail (name != NULL);
+               _tmp74_ = image;
 #line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_if_fail (description != NULL);
+               gtk_image_clear (_tmp74_);
 #line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp0_ = widget;
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp1_ = gtk_widget_get_accessible (_tmp0_);
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp2_ = _g_object_ref0 (_tmp1_);
+               _tmp75_ = image;
 #line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       atk_widget = _tmp2_;
+               gtk_misc_set_padding ((GtkMisc*) _tmp75_, 24, 24);
+#line 793 "moonshot-idcard-widget.c"
+       }
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp76_ = self->priv->hbox;
 #line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp3_ = name;
+       _tmp77_ = image;
 #line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       atk_object_set_name (atk_widget, _tmp3_);
+       gtk_box_pack_start ((GtkBox*) _tmp76_, (GtkWidget*) _tmp77_, FALSE, FALSE, (guint) 0);
 #line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp4_ = description;
+       _tmp78_ = self->priv->hbox;
 #line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       atk_object_set_description (atk_widget, _tmp4_);
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (atk_widget);
-#line 832 "moonshot-idcard-widget.c"
+       _tmp79_ = details_wrapper;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp78_, (GtkWidget*) _tmp79_, TRUE, TRUE, (guint) 0);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp80_ = (GtkArrow*) gtk_arrow_new (GTK_ARROW_RIGHT, ID_CARD_WIDGET_ARROW_SHADOW);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       g_object_ref_sink (_tmp80_);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (self->priv->arrow);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       self->priv->arrow = _tmp80_;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp81_ = self->priv->arrow;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_misc_set_alignment ((GtkMisc*) _tmp81_, (gfloat) 0.5, (gfloat) 0);
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp82_ = self->priv->hbox;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp83_ = self->priv->arrow;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp82_, (GtkWidget*) _tmp83_, FALSE, FALSE, (guint) 0);
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp84_ = (GtkVBox*) gtk_vbox_new (FALSE, 12);
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       g_object_ref_sink (_tmp84_);
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (self->priv->main_vbox);
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       self->priv->main_vbox = _tmp84_;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp85_ = self->priv->main_vbox;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp86_ = self->priv->hbox;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp85_, (GtkWidget*) _tmp86_, TRUE, TRUE, (guint) 0);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp87_ = self->priv->main_vbox;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_container_set_border_width ((GtkContainer*) _tmp87_, (guint) 12);
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp88_ = (GtkEventBox*) gtk_event_box_new ();
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       g_object_ref_sink (_tmp88_);
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (self->priv->event_box);
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       self->priv->event_box = _tmp88_;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp89_ = self->priv->event_box;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp90_ = self->priv->main_vbox;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_container_add ((GtkContainer*) _tmp89_, (GtkWidget*) _tmp90_);
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp91_ = self->priv->event_box;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       g_signal_connect_object ((GtkWidget*) _tmp91_, "button-press-event", (GCallback) _id_card_widget_button_press_cb_gtk_widget_button_press_event, self, 0);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp92_ = self->priv->event_box;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_widget_set_visible ((GtkWidget*) _tmp92_, FALSE);
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp93_ = self->priv->event_box;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _tmp93_, TRUE, TRUE, (guint) 0);
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_widget_show_all ((GtkWidget*) self);
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp94_ = self->priv->details;
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       gtk_widget_hide ((GtkWidget*) _tmp94_);
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       id_card_widget_set_idcard_color (self);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (image);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (service_list);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_free0 (services_text);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (services_label);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (services_hbox);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (details_wrapper);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (display_name_label);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       return self;
+#line 893 "moonshot-idcard-widget.c"
+}
+
+
+IdCardWidget* id_card_widget_new (IdCard* id_card, IdentityManagerView* manager_view) {
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       return id_card_widget_construct (TYPE_ID_CARD_WIDGET, id_card, manager_view);
+#line 900 "moonshot-idcard-widget.c"
 }
 
 
 IdCard* id_card_widget_get_id_card (IdCardWidget* self) {
        IdCard* result;
        IdCard* _tmp0_ = NULL;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        g_return_val_if_fail (self != NULL, NULL);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        _tmp0_ = self->priv->_id_card;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        result = _tmp0_;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        return result;
-#line 847 "moonshot-idcard-widget.c"
+#line 915 "moonshot-idcard-widget.c"
 }
 
 
 void id_card_widget_set_id_card (IdCardWidget* self, IdCard* value) {
        IdCard* _tmp0_ = NULL;
        IdCard* _tmp1_ = NULL;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        g_return_if_fail (self != NULL);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        _tmp0_ = value;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        _tmp1_ = _g_object_ref0 (_tmp0_);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        _g_object_unref0 (self->priv->_id_card);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        self->priv->_id_card = _tmp1_;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        g_object_notify ((GObject *) self, "id-card");
-#line 866 "moonshot-idcard-widget.c"
-}
-
-
-GtkButton* id_card_widget_get_delete_button (IdCardWidget* self) {
-       GtkButton* result;
-       GtkButton* _tmp0_ = NULL;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp0_ = self->priv->_delete_button;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       result = _tmp0_;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       return result;
-#line 881 "moonshot-idcard-widget.c"
-}
-
-
-static void id_card_widget_set_delete_button (IdCardWidget* self, GtkButton* value) {
-       GtkButton* _tmp0_ = NULL;
-       GtkButton* _tmp1_ = NULL;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_if_fail (self != NULL);
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp0_ = value;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp1_ = _g_object_ref0 (_tmp0_);
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->_delete_button);
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       self->priv->_delete_button = _tmp1_;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_notify ((GObject *) self, "delete-button");
-#line 900 "moonshot-idcard-widget.c"
-}
-
-
-GtkButton* id_card_widget_get_details_button (IdCardWidget* self) {
-       GtkButton* result;
-       GtkButton* _tmp0_ = NULL;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp0_ = self->priv->_details_button;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       result = _tmp0_;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       return result;
-#line 915 "moonshot-idcard-widget.c"
-}
-
-
-static void id_card_widget_set_details_button (IdCardWidget* self, GtkButton* value) {
-       GtkButton* _tmp0_ = NULL;
-       GtkButton* _tmp1_ = NULL;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_if_fail (self != NULL);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp0_ = value;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp1_ = _g_object_ref0 (_tmp0_);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->_details_button);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       self->priv->_details_button = _tmp1_;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_notify ((GObject *) self, "details-button");
 #line 934 "moonshot-idcard-widget.c"
 }
 
 
-GtkButton* id_card_widget_get_send_button (IdCardWidget* self) {
-       GtkButton* result;
-       GtkButton* _tmp0_ = NULL;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp0_ = self->priv->_send_button;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+gint id_card_widget_get_position (IdCardWidget* self) {
+       gint result;
+       gint _tmp0_ = 0;
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       g_return_val_if_fail (self != NULL, 0);
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _tmp0_ = self->_position;
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        result = _tmp0_;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        return result;
 #line 949 "moonshot-idcard-widget.c"
 }
 
 
-static void id_card_widget_set_send_button (IdCardWidget* self, GtkButton* value) {
-       GtkButton* _tmp0_ = NULL;
-       GtkButton* _tmp1_ = NULL;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+void id_card_widget_set_position (IdCardWidget* self, gint value) {
+       gint _tmp0_ = 0;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        g_return_if_fail (self != NULL);
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        _tmp0_ = value;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _tmp1_ = _g_object_ref0 (_tmp0_);
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->_send_button);
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       self->priv->_send_button = _tmp1_;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_notify ((GObject *) self, "send-button");
-#line 968 "moonshot-idcard-widget.c"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       self->_position = _tmp0_;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       id_card_widget_set_idcard_color (self);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       g_object_notify ((GObject *) self, "position");
+#line 965 "moonshot-idcard-widget.c"
 }
 
 
@@ -982,35 +979,25 @@ static void id_card_widget_class_init (IdCardWidgetClass * klass) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_WIDGET_ID_CARD, g_param_spec_object ("id-card", "id-card", "id-card", TYPE_ID_CARD, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_WIDGET_DELETE_BUTTON, g_param_spec_object ("delete-button", "delete-button", "delete-button", GTK_TYPE_BUTTON, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_WIDGET_DETAILS_BUTTON, g_param_spec_object ("details-button", "details-button", "details-button", GTK_TYPE_BUTTON, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_WIDGET_SEND_BUTTON, g_param_spec_object ("send-button", "send-button", "send-button", GTK_TYPE_BUTTON, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+       g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_WIDGET_POSITION, g_param_spec_int ("position", "position", "position", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        g_signal_new ("expanded", TYPE_ID_CARD_WIDGET, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_signal_new ("remove_id", TYPE_ID_CARD_WIDGET, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_signal_new ("details_id", TYPE_ID_CARD_WIDGET, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       g_signal_new ("send_id", TYPE_ID_CARD_WIDGET, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
-#line 999 "moonshot-idcard-widget.c"
+       g_signal_new ("collapsed", TYPE_ID_CARD_WIDGET, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 988 "moonshot-idcard-widget.c"
 }
 
 
 static void id_card_widget_instance_init (IdCardWidget * self) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        self->priv = ID_CARD_WIDGET_GET_PRIVATE (self);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       self->priv->_id_card = NULL;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       self->priv->_delete_button = NULL;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       self->priv->_details_button = NULL;
 #line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       self->priv->_send_button = NULL;
-#line 1014 "moonshot-idcard-widget.c"
+       self->priv->_id_card = NULL;
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       self->priv->is_selected = FALSE;
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       self->_position = 0;
+#line 1001 "moonshot-idcard-widget.c"
 }
 
 
@@ -1018,27 +1005,23 @@ static void id_card_widget_finalize (GObject* obj) {
        IdCardWidget * self;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ID_CARD_WIDGET, IdCardWidget);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->_id_card);
-#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->main_vbox);
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->table);
 #line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->_delete_button);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->_details_button);
+       _g_object_unref0 (self->priv->manager_view);
 #line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->_send_button);
+       _g_object_unref0 (self->priv->_id_card);
 #line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->hbutton_box);
+       _g_object_unref0 (self->priv->main_vbox);
 #line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (self->priv->hbox);
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        _g_object_unref0 (self->priv->event_box);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-       _g_object_unref0 (self->priv->label);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (self->priv->arrow);
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
+       _g_object_unref0 (self->priv->details);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
        G_OBJECT_CLASS (id_card_widget_parent_class)->finalize (obj);
-#line 1042 "moonshot-idcard-widget.c"
+#line 1025 "moonshot-idcard-widget.c"
 }
 
 
@@ -1066,30 +1049,18 @@ static void _vala_id_card_widget_get_property (GObject * object, guint property_
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
                break;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               case ID_CARD_WIDGET_DELETE_BUTTON:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               g_value_set_object (value, id_card_widget_get_delete_button (self));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               break;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               case ID_CARD_WIDGET_DETAILS_BUTTON:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               g_value_set_object (value, id_card_widget_get_details_button (self));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               break;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               case ID_CARD_WIDGET_SEND_BUTTON:
+               case ID_CARD_WIDGET_POSITION:
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               g_value_set_object (value, id_card_widget_get_send_button (self));
+               g_value_set_int (value, id_card_widget_get_position (self));
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
                break;
-#line 1087 "moonshot-idcard-widget.c"
+#line 1058 "moonshot-idcard-widget.c"
                default:
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
                break;
-#line 1093 "moonshot-idcard-widget.c"
+#line 1064 "moonshot-idcard-widget.c"
        }
 }
 
@@ -1106,30 +1077,18 @@ static void _vala_id_card_widget_set_property (GObject * object, guint property_
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
                break;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               case ID_CARD_WIDGET_DELETE_BUTTON:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               id_card_widget_set_delete_button (self, g_value_get_object (value));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               break;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               case ID_CARD_WIDGET_DETAILS_BUTTON:
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               id_card_widget_set_details_button (self, g_value_get_object (value));
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               break;
-#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               case ID_CARD_WIDGET_SEND_BUTTON:
+               case ID_CARD_WIDGET_POSITION:
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
-               id_card_widget_set_send_button (self, g_value_get_object (value));
+               id_card_widget_set_position (self, g_value_get_int (value));
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
                break;
-#line 1127 "moonshot-idcard-widget.c"
+#line 1086 "moonshot-idcard-widget.c"
                default:
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-idcard-widget.vala"
                break;
-#line 1133 "moonshot-idcard-widget.c"
+#line 1092 "moonshot-idcard-widget.c"
        }
 }
 
index 4f9e43e..25976b3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -33,153 +33,171 @@ using Gtk;
 
 class IdCardWidget : Box
 {
-    public IdCard id_card { get; set; default = null; }
+    // static MoonshotLogger logger = get_logger("IdCardWidget");
+
+    private static const ShadowType ARROW_SHADOW = ShadowType.NONE;
 
+    private IdentityManagerView manager_view;
+
+    public IdCard id_card { get; set; default = null; }
     private VBox main_vbox;
-    private HBox table;
-    public Button delete_button { get; private set; default = null; }
-    public Button details_button { get; private set; default = null; }
-    public Button send_button { get; private set; default = null; }
-    private HButtonBox hbutton_box;
+    private HBox hbox;
     private EventBox event_box;
+    private bool   is_selected = false;
+    private Arrow arrow;
     
-    private Label label;
+    private VBox details;
 
-    public signal void expanded ();
-    public signal void remove_id ();
-    public signal void details_id ();
-    public signal void send_id ();
+    internal int _position = 0;
+    internal int position {
+        get {return _position;}
+        set {_position = value; set_idcard_color();}
+    }
 
-    public void collapse ()
-    {
-        this.hbutton_box.set_visible (false);
+    public signal void expanded();
+    public signal void collapsed();
 
-        set_idcard_color ();
+    internal void select()
+    {
+        expand();
+        this.expanded();
     }
 
-    public void expand ()
+    internal void unselect()
     {
-        this.hbutton_box.set_visible (true);
-
-        set_idcard_color ();
-        this.expanded ();
+        collapse();
+        this.collapsed();
     }
 
-    private bool button_press_cb ()
+    public void expand()
     {
-        if (hbutton_box.get_visible ())
-            collapse ();
-        else
-            expand ();
+        is_selected = true;
+        details.show_all();
 
-        return false;
+        set_idcard_color();
+        arrow.set(ArrowType.DOWN, ARROW_SHADOW);
     }
 
-    private void delete_button_cb ()
+    public void collapse()
     {
-       this.remove_id ();
-    }
+        is_selected = false;
+        details.hide();
 
-    private void details_button_cb ()
-    {
-       this.details_id ();
+        set_idcard_color();
+        arrow.set(ArrowType.RIGHT, ARROW_SHADOW);
     }
 
-    private void send_button_cb ()
+    private bool button_press_cb()
     {
-       this.send_id ();
+        if (is_selected)
+            unselect();
+        else
+            select();
+
+        return false;
     }
 
-    private void set_idcard_color ()
+    private void set_idcard_color()
     {
-        var color = Gdk.Color ();
+        var color = Gdk.Color();
 
-        if (hbutton_box.get_visible () == false)
+        if (is_selected)
         {
-            color.red = 65535;
-            color.green = 65535;
-            color.blue = 65535;
+                color.red = 0xd9 << 8;
+                color.green = 0xf7 << 8;
+                color.blue = 65535;
         }
-        else
-        {
-            color.red = 33333;
-            color.green = 33333;
-            color.blue = 60000;
+        else {
+            if (position % 2 == 0)
+            {
+                color.red = color.green = color.blue = 0xf2 << 8;
+            }
+            else
+            {
+                color.red = 65535;
+                color.green = 65535;
+                color.blue = 65535;
+
+            }
         }
-        var state = this.get_state ();
-        this.event_box.modify_bg (state, color);
+        this.event_box.modify_bg(StateType.NORMAL, color);
+        this.arrow.modify_bg(StateType.NORMAL, color);
     }
     
-    public void
-    update_id_card_label ()
+    private void
+    make_id_card_label(Label label)
     {
-        string services_text = "";
+        var display_name = (manager_view.selection_in_progress() && this.id_card.is_no_identity()
+                            ? _("Do not use a Moonshot identity for this service") : this.id_card.display_name);
+        var label_text = Markup.printf_escaped("<span rise='8000'><big>%s</big></span>", display_name);
 
-        var display_name = Markup.printf_escaped ("<big>%s</big>", this.id_card.display_name);
-        for (int i=0; i<id_card.services.length; i++)
-        {
-            var service = id_card.services[i];
-            
-            if (i == (id_card.services.length - 1))
-              services_text = services_text + Markup.printf_escaped ("<i>%s</i>", service);
-            else
-              services_text = services_text + Markup.printf_escaped ("<i>%s, </i>", service);
-        }
-        label.set_markup (display_name + "\n" + services_text);
+        label.set_markup(label_text);
     }
 
-    public IdCardWidget (IdCard id_card)
+    public IdCardWidget(IdCard id_card, IdentityManagerView manager_view)
     {
         this.id_card = id_card;
-
-        var image = new Image.from_pixbuf (get_pixbuf(id_card));
-
-        label = new Label (null);
-        label.set_alignment ((float) 0, (float) 0.5);
-        label.set_ellipsize (Pango.EllipsizeMode.END);
-        update_id_card_label();
-
-        table = new Gtk.HBox (false, 6);
-        table.pack_start (image, false, false, 0);
-        table.pack_start (label, true, true, 0);
-
-        this.delete_button = new Button.with_label (_("Delete"));
-        this.details_button = new Button.with_label (_("View details"));
-        this.send_button = new Button.with_label (_("Send"));
-        set_atk_name_description (delete_button, _("Delete"), _("Delete this ID Card"));
-        set_atk_name_description (details_button, _("Details"), _("View the details of this ID Card"));
-        set_atk_name_description (send_button, _("Send"), _("Send this ID Card"));
-        this.hbutton_box = new HButtonBox ();
-        hbutton_box.pack_end (delete_button);
-        hbutton_box.pack_end (details_button);
-        hbutton_box.pack_end (send_button);
-        send_button.set_sensitive (false);
-
-        delete_button.clicked.connect (delete_button_cb);
-        details_button.clicked.connect (details_button_cb);
-        send_button.clicked.connect (send_button_cb);
-
-        this.main_vbox = new VBox (false, 12);
-        main_vbox.pack_start (table, true, true, 0);
-        main_vbox.pack_start (hbutton_box, false, false, 0);
-        main_vbox.set_border_width (12);
-
-        event_box = new EventBox ();
-        event_box.add (main_vbox);
-        event_box.button_press_event.connect (button_press_cb);
-        this.pack_start (event_box, true, true);
-
-        this.show_all ();
-        this.hbutton_box.hide ();
-
-        set_idcard_color ();
-    }
-
-    private void set_atk_name_description (Widget widget, string name, string description)
-    {
-       var atk_widget = widget.get_accessible ();
-
-       atk_widget.set_name (name);
-       atk_widget.set_description (description);
+        this.manager_view = manager_view;
+
+        var display_name_label = new Label(null);
+        display_name_label.set_alignment((float) 0, (float) 0.5);
+        display_name_label.set_ellipsize(Pango.EllipsizeMode.END);
+        make_id_card_label(display_name_label);
+
+        var details_wrapper = new VBox(false, 0);
+        details_wrapper.pack_start(display_name_label, false, false, 0);
+        this.details = new VBox(false, 0);
+        details_wrapper.pack_start(details, false, false, 0);
+
+        if (!this.id_card.is_no_identity()) {
+            var upper_details_text = _("Username") + ":  " + id_card.username;
+            upper_details_text += "\n" + _("Realm:") + "  " + id_card.issuer;
+            if (!id_card.trust_anchor.is_empty()) {
+                upper_details_text += "\n" + _("Trust anchor: Enterprise provisioned");
+            }
+            Label upper_details = new Label(upper_details_text);
+            upper_details.set_alignment(0, 0);
+            details.pack_start(upper_details);
+        }
+        var services_hbox = new HBox(false, 6);
+        Label services_label = new Label(_("Services: "));
+        services_label.set_alignment(0, 0);
+
+        string services_text = this.id_card.get_services_string("\n");
+        Label service_list = new Label(services_text);
+        service_list.set_alignment(0, 0);
+        service_list.set_ellipsize(Pango.EllipsizeMode.END);
+        service_list.set_max_width_chars(50);
+        services_hbox.pack_start(services_label, false, false, 0);
+        services_hbox.pack_start(service_list, false, false, 0);
+        details.pack_start(services_hbox);
+
+        hbox = new Gtk.HBox(false, 6);
+        var image = new Image.from_pixbuf(get_pixbuf(id_card));
+        if (this.id_card.is_no_identity()) {
+            image.clear();
+            // Use padding to make the image size =  48x48 (size = 2x padding)
+            image.set_padding(24, 24);
+        }
+        hbox.pack_start(image, false, false, 0);
+        hbox.pack_start(details_wrapper, true, true, 0);
+        this.arrow = new Arrow(ArrowType.RIGHT, ARROW_SHADOW);
+        this.arrow.set_alignment((float) 0.5, (float) 0);
+        hbox.pack_start(arrow, false, false);
+
+        this.main_vbox = new VBox(false, 12);
+        main_vbox.pack_start(hbox, true, true, 0);
+        main_vbox.set_border_width(12);
+
+        event_box = new EventBox();
+        event_box.add(main_vbox);
+        event_box.button_press_event.connect(button_press_cb);
+        event_box.set_visible(false);
+        this.pack_start(event_box, true, true);
+
+        this.show_all();
+        details.hide();
+
+        set_idcard_color();
     }
 }
index 374ded9..323a336 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-identities-manager.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-identities-manager.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-identities-manager.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -39,7 +39,7 @@
 #include <string.h>
 #include <gnome-keyring-memory.h>
 #include <gee.h>
-#include <stdio.h>
+#include <glib/gi18n-lib.h>
 #include <gobject/gvaluecollector.h>
 
 
@@ -108,9 +108,29 @@ typedef struct _IdentityManagerModelPrivate IdentityManagerModelPrivate;
 
 typedef struct _IdentityManagerApp IdentityManagerApp;
 typedef struct _IdentityManagerAppClass IdentityManagerAppClass;
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 #define _identity_manager_app_unref0(var) ((var == NULL) ? NULL : (var = (identity_manager_app_unref (var), NULL)))
 
+#define TYPE_TRUST_ANCHOR (trust_anchor_get_type ())
+#define TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR, TrustAnchor))
+#define TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+#define IS_TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRUST_ANCHOR))
+#define IS_TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRUST_ANCHOR))
+#define TRUST_ANCHOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+
+typedef struct _TrustAnchor TrustAnchor;
+typedef struct _TrustAnchorClass TrustAnchorClass;
+
 #define TYPE_KEYRING_STORE (keyring_store_get_type ())
 #define KEYRING_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEYRING_STORE, KeyringStore))
 #define KEYRING_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEYRING_STORE, KeyringStoreClass))
@@ -178,6 +198,7 @@ struct _IIdentityCardStoreIface {
        IdCard* (*update_card) (IIdentityCardStore* self, IdCard* card);
        IIdentityCardStoreStoreType (*get_store_type) (IIdentityCardStore* self);
        GeeLinkedList* (*get_card_list) (IIdentityCardStore* self);
+       void (*store_id_cards) (IIdentityCardStore* self);
 };
 
 struct _IdentityManagerModel {
@@ -204,6 +225,8 @@ struct _Rule {
 static gpointer password_parent_class = NULL;
 static gpointer password_hash_table_parent_class = NULL;
 static gpointer identity_manager_model_parent_class = NULL;
+static MoonshotLogger* identity_manager_model_logger;
+static MoonshotLogger* identity_manager_model_logger = NULL;
 
 gpointer password_ref (gpointer instance);
 void password_unref (gpointer instance);
@@ -230,7 +253,7 @@ GType id_card_get_type (void) G_GNUC_CONST;
 GType iidentity_card_store_store_type_get_type (void) G_GNUC_CONST;
 GType iidentity_card_store_get_type (void) G_GNUC_CONST;
 static gchar* password_hash_table_ComputeHashKey (IdCard* card, IIdentityCardStore* store);
-const gchar* id_card_get_display_name (IdCard* self);
+const gchar* id_card_get_nai (IdCard* self);
 IIdentityCardStoreStoreType iidentity_card_store_get_store_type (IIdentityCardStore* self);
 void password_hash_table_CachePassword (PasswordHashTable* self, IdCard* card, IIdentityCardStore* store);
 const gchar* id_card_get_password (IdCard* self);
@@ -254,37 +277,51 @@ GType identity_manager_app_get_type (void) G_GNUC_CONST;
 enum  {
        IDENTITY_MANAGER_MODEL_DUMMY_PROPERTY
 };
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* get_logger (const gchar* name);
 #define IDENTITY_MANAGER_MODEL_FILE_NAME "identities.txt"
 GeeLinkedList* identity_manager_model_get_card_list (IdentityManagerModel* self);
 GeeLinkedList* iidentity_card_store_get_card_list (IIdentityCardStore* self);
-static gint __lambda4_ (gconstpointer a, gconstpointer b);
-gboolean id_card_IsNoIdentity (IdCard* self);
-static gint ___lambda4__gcompare_func (gconstpointer a, gconstpointer b);
+static gint __lambda4_ (IdentityManagerModel* self, IdCard* a, IdCard* b);
+gboolean id_card_is_no_identity (IdCard* self);
+const gchar* id_card_get_display_name (IdCard* self);
+static gint ___lambda4__gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
 IdCard* id_card_NewNoIdentity (void);
 gboolean id_card_get_store_password (IdCard* self);
 gboolean identity_manager_model_display_name_is_valid (IdentityManagerModel* self, const gchar* name, gchar** candidate);
-static gboolean identity_manager_model_remove_duplicates (IdentityManagerModel* self, IdCard* card);
-const gchar* id_card_get_nai (IdCard* self);
+static gboolean identity_manager_model_remove_duplicates (IdentityManagerModel* self, IdCard* new_card, GeeArrayList** old_duplicates);
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
 static gboolean identity_manager_model_remove_card_internal (IdentityManagerModel* self, IdCard* card);
+GType trust_anchor_get_type (void) G_GNUC_CONST;
+TrustAnchor* id_card_get_trust_anchor (IdCard* self);
+gint trust_anchor_Compare (TrustAnchor* self, TrustAnchor* other);
+void trust_anchor_set_datetime_added (TrustAnchor* self, const gchar* datetime);
+const gchar* trust_anchor_get_datetime_added (TrustAnchor* self);
+gboolean identity_manager_model_find_duplicate_nai_sets (IdentityManagerModel* self, GeeArrayList** duplicates);
 IdCard* identity_manager_model_find_id_card (IdentityManagerModel* self, const gchar* nai, gboolean force_flat_file_store);
 IIdentityCardStoreStoreType identity_manager_model_get_store_type (IdentityManagerModel* self);
 void identity_manager_model_set_store_type (IdentityManagerModel* self, IIdentityCardStoreStoreType type);
-void identity_manager_model_add_card (IdentityManagerModel* self, IdCard* card, gboolean force_flat_file_store);
+void identity_manager_model_add_card (IdentityManagerModel* self, IdCard* card, gboolean force_flat_file_store, GeeArrayList** old_duplicates);
 gboolean id_card_get_temporary (IdCard* self);
 void id_card_set_display_name (IdCard* self, const gchar* value);
+gchar* id_card_get_services_string (IdCard* self, const gchar* sep);
 void iidentity_card_store_add_card (IIdentityCardStore* self, IdCard* card);
 IdCard* identity_manager_model_update_card (IdentityManagerModel* self, IdCard* card);
 IdCard* iidentity_card_store_update_card (IIdentityCardStore* self, IdCard* card);
 gboolean iidentity_card_store_remove_card (IIdentityCardStore* self, IdCard* card);
 gboolean identity_manager_model_remove_card (IdentityManagerModel* self, IdCard* card);
+void moonshot_logger_warn (MoonshotLogger* self, const gchar* message, GError* e);
 KeyringStore* keyring_store_new (void);
 KeyringStore* keyring_store_construct (GType object_type);
 GType keyring_store_get_type (void) G_GNUC_CONST;
 LocalFlatFileStore* local_flat_file_store_new (void);
 LocalFlatFileStore* local_flat_file_store_construct (GType object_type);
 GType local_flat_file_store_get_type (void) G_GNUC_CONST;
+gchar* trust_anchor_format_datetime_now (void);
+gboolean trust_anchor_is_empty (TrustAnchor* self);
+void iidentity_card_store_store_id_cards (IIdentityCardStore* self);
 gboolean identity_manager_model_HasNonTrivialIdentities (IdentityManagerModel* self);
-gchar** id_card_get_services (IdCard* self, int* result_length1);
+GeeArrayList* id_card_get_services (IdCard* self);
 GType rule_get_type (void) G_GNUC_CONST;
 Rule* rule_dup (const Rule* self);
 void rule_free (Rule* self);
@@ -293,6 +330,7 @@ void rule_destroy (Rule* self);
 Rule* id_card_get_rules (IdCard* self, int* result_length1);
 IdentityManagerModel* identity_manager_model_new (IdentityManagerApp* parent_app, IIdentityCardStoreStoreType store_type);
 IdentityManagerModel* identity_manager_model_construct (GType object_type, IdentityManagerApp* parent_app, IIdentityCardStoreStoreType store_type);
+const gchar* iidentity_card_store_store_type_to_string (IIdentityCardStoreStoreType self);
 static void identity_manager_model_finalize (GObject* obj);
 
 
@@ -309,14 +347,14 @@ Password* password_construct (GType object_type, const gchar* in_password) {
        password_set_password (self, _tmp0_);
 #line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return self;
-#line 313 "moonshot-identities-manager.c"
+#line 351 "moonshot-identities-manager.c"
 }
 
 
 Password* password_new (const gchar* in_password) {
 #line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return password_construct (TYPE_PASSWORD, in_password);
-#line 320 "moonshot-identities-manager.c"
+#line 358 "moonshot-identities-manager.c"
 }
 
 
@@ -331,7 +369,7 @@ const gchar* password_get_password (Password* self) {
        result = _tmp0_;
 #line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return result;
-#line 335 "moonshot-identities-manager.c"
+#line 373 "moonshot-identities-manager.c"
 }
 
 
@@ -344,7 +382,7 @@ void password_set_password (Password* self, const gchar* value) {
        _tmp0_ = self->priv->_password;
 #line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp0_ != NULL) {
-#line 348 "moonshot-identities-manager.c"
+#line 386 "moonshot-identities-manager.c"
                const gchar* _tmp1_ = NULL;
 #line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp1_ = self->priv->_password;
@@ -352,13 +390,13 @@ void password_set_password (Password* self, const gchar* value) {
                gnome_keyring_memory_free ((void*) _tmp1_);
 #line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                self->priv->_password = NULL;
-#line 356 "moonshot-identities-manager.c"
+#line 394 "moonshot-identities-manager.c"
        }
 #line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp2_ = value;
 #line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp2_ != NULL) {
-#line 362 "moonshot-identities-manager.c"
+#line 400 "moonshot-identities-manager.c"
                const gchar* _tmp3_ = NULL;
                const gchar* _tmp4_ = NULL;
 #line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
@@ -367,7 +405,7 @@ void password_set_password (Password* self, const gchar* value) {
                _tmp4_ = gnome_keyring_memory_strdup (_tmp3_);
 #line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                self->priv->_password = _tmp4_;
-#line 371 "moonshot-identities-manager.c"
+#line 409 "moonshot-identities-manager.c"
        }
 }
 
@@ -375,7 +413,7 @@ void password_set_password (Password* self, const gchar* value) {
 static void value_password_init (GValue* value) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        value->data[0].v_pointer = NULL;
-#line 379 "moonshot-identities-manager.c"
+#line 417 "moonshot-identities-manager.c"
 }
 
 
@@ -384,7 +422,7 @@ static void value_password_free_value (GValue* value) {
        if (value->data[0].v_pointer) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                password_unref (value->data[0].v_pointer);
-#line 388 "moonshot-identities-manager.c"
+#line 426 "moonshot-identities-manager.c"
        }
 }
 
@@ -394,11 +432,11 @@ static void value_password_copy_value (const GValue* src_value, GValue* dest_val
        if (src_value->data[0].v_pointer) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                dest_value->data[0].v_pointer = password_ref (src_value->data[0].v_pointer);
-#line 398 "moonshot-identities-manager.c"
+#line 436 "moonshot-identities-manager.c"
        } else {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                dest_value->data[0].v_pointer = NULL;
-#line 402 "moonshot-identities-manager.c"
+#line 440 "moonshot-identities-manager.c"
        }
 }
 
@@ -406,37 +444,37 @@ static void value_password_copy_value (const GValue* src_value, GValue* dest_val
 static gpointer value_password_peek_pointer (const GValue* value) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return value->data[0].v_pointer;
-#line 410 "moonshot-identities-manager.c"
+#line 448 "moonshot-identities-manager.c"
 }
 
 
 static gchar* value_password_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (collect_values[0].v_pointer) {
-#line 417 "moonshot-identities-manager.c"
+#line 455 "moonshot-identities-manager.c"
                Password* object;
                object = collect_values[0].v_pointer;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                if (object->parent_instance.g_class == NULL) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
-#line 424 "moonshot-identities-manager.c"
+#line 462 "moonshot-identities-manager.c"
                } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
-#line 428 "moonshot-identities-manager.c"
+#line 466 "moonshot-identities-manager.c"
                }
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                value->data[0].v_pointer = password_ref (object);
-#line 432 "moonshot-identities-manager.c"
+#line 470 "moonshot-identities-manager.c"
        } else {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                value->data[0].v_pointer = NULL;
-#line 436 "moonshot-identities-manager.c"
+#line 474 "moonshot-identities-manager.c"
        }
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return NULL;
-#line 440 "moonshot-identities-manager.c"
+#line 478 "moonshot-identities-manager.c"
 }
 
 
@@ -447,25 +485,25 @@ static gchar* value_password_lcopy_value (const GValue* value, guint n_collect_v
        if (!object_p) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
-#line 451 "moonshot-identities-manager.c"
+#line 489 "moonshot-identities-manager.c"
        }
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (!value->data[0].v_pointer) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                *object_p = NULL;
-#line 457 "moonshot-identities-manager.c"
+#line 495 "moonshot-identities-manager.c"
        } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                *object_p = value->data[0].v_pointer;
-#line 461 "moonshot-identities-manager.c"
+#line 499 "moonshot-identities-manager.c"
        } else {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                *object_p = password_ref (value->data[0].v_pointer);
-#line 465 "moonshot-identities-manager.c"
+#line 503 "moonshot-identities-manager.c"
        }
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return NULL;
-#line 469 "moonshot-identities-manager.c"
+#line 507 "moonshot-identities-manager.c"
 }
 
 
@@ -479,7 +517,7 @@ GParamSpec* param_spec_password (const gchar* name, const gchar* nick, const gch
        G_PARAM_SPEC (spec)->value_type = object_type;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return G_PARAM_SPEC (spec);
-#line 483 "moonshot-identities-manager.c"
+#line 521 "moonshot-identities-manager.c"
 }
 
 
@@ -488,7 +526,7 @@ gpointer value_get_password (const GValue* value) {
        g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PASSWORD), NULL);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return value->data[0].v_pointer;
-#line 492 "moonshot-identities-manager.c"
+#line 530 "moonshot-identities-manager.c"
 }
 
 
@@ -508,17 +546,17 @@ void value_set_password (GValue* value, gpointer v_object) {
                value->data[0].v_pointer = v_object;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                password_ref (value->data[0].v_pointer);
-#line 512 "moonshot-identities-manager.c"
+#line 550 "moonshot-identities-manager.c"
        } else {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                value->data[0].v_pointer = NULL;
-#line 516 "moonshot-identities-manager.c"
+#line 554 "moonshot-identities-manager.c"
        }
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (old) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                password_unref (old);
-#line 522 "moonshot-identities-manager.c"
+#line 560 "moonshot-identities-manager.c"
        }
 }
 
@@ -537,17 +575,17 @@ void value_take_password (GValue* value, gpointer v_object) {
                g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                value->data[0].v_pointer = v_object;
-#line 541 "moonshot-identities-manager.c"
+#line 579 "moonshot-identities-manager.c"
        } else {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                value->data[0].v_pointer = NULL;
-#line 545 "moonshot-identities-manager.c"
+#line 583 "moonshot-identities-manager.c"
        }
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (old) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                password_unref (old);
-#line 551 "moonshot-identities-manager.c"
+#line 589 "moonshot-identities-manager.c"
        }
 }
 
@@ -559,7 +597,7 @@ static void password_class_init (PasswordClass * klass) {
        ((PasswordClass *) klass)->finalize = password_finalize;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_type_class_add_private (klass, sizeof (PasswordPrivate));
-#line 563 "moonshot-identities-manager.c"
+#line 601 "moonshot-identities-manager.c"
 }
 
 
@@ -568,7 +606,7 @@ static void password_instance_init (Password * self) {
        self->priv = PASSWORD_GET_PRIVATE (self);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        self->ref_count = 1;
-#line 572 "moonshot-identities-manager.c"
+#line 610 "moonshot-identities-manager.c"
 }
 
 
@@ -580,7 +618,7 @@ static void password_finalize (Password* obj) {
        g_signal_handlers_destroy (self);
 #line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        password_set_password (self, NULL);
-#line 584 "moonshot-identities-manager.c"
+#line 622 "moonshot-identities-manager.c"
 }
 
 
@@ -605,7 +643,7 @@ gpointer password_ref (gpointer instance) {
        g_atomic_int_inc (&self->ref_count);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return instance;
-#line 609 "moonshot-identities-manager.c"
+#line 647 "moonshot-identities-manager.c"
 }
 
 
@@ -618,7 +656,7 @@ void password_unref (gpointer instance) {
                PASSWORD_GET_CLASS (self)->finalize (self);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                g_type_free_instance ((GTypeInstance *) self);
-#line 622 "moonshot-identities-manager.c"
+#line 660 "moonshot-identities-manager.c"
        }
 }
 
@@ -638,7 +676,7 @@ static gchar* password_hash_table_ComputeHashKey (IdCard* card, IIdentityCardSto
 #line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp0_ = card;
 #line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp1_ = id_card_get_display_name (_tmp0_);
+       _tmp1_ = id_card_get_nai (_tmp0_);
 #line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp2_ = _tmp1_;
 #line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
@@ -651,7 +689,7 @@ static gchar* password_hash_table_ComputeHashKey (IdCard* card, IIdentityCardSto
        result = _tmp5_;
 #line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return result;
-#line 655 "moonshot-identities-manager.c"
+#line 693 "moonshot-identities-manager.c"
 }
 
 
@@ -688,7 +726,7 @@ void password_hash_table_CachePassword (PasswordHashTable* self, IdCard* card, I
        _tmp7_ = password_new (_tmp6_);
 #line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_hash_table_replace (_tmp0_, _tmp3_, _tmp7_);
-#line 692 "moonshot-identities-manager.c"
+#line 730 "moonshot-identities-manager.c"
 }
 
 
@@ -718,7 +756,7 @@ void password_hash_table_RemovePassword (PasswordHashTable* self, IdCard* card,
        g_hash_table_remove (_tmp0_, _tmp4_);
 #line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _g_free0 (_tmp4_);
-#line 722 "moonshot-identities-manager.c"
+#line 760 "moonshot-identities-manager.c"
 }
 
 
@@ -760,7 +798,7 @@ void password_hash_table_RetrievePassword (PasswordHashTable* self, IdCard* card
        _tmp7_ = password;
 #line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp7_ != NULL) {
-#line 764 "moonshot-identities-manager.c"
+#line 802 "moonshot-identities-manager.c"
                IdCard* _tmp8_ = NULL;
                Password* _tmp9_ = NULL;
                const gchar* _tmp10_ = NULL;
@@ -775,7 +813,7 @@ void password_hash_table_RetrievePassword (PasswordHashTable* self, IdCard* card
                _tmp11_ = _tmp10_;
 #line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                id_card_set_password (_tmp8_, _tmp11_);
-#line 779 "moonshot-identities-manager.c"
+#line 817 "moonshot-identities-manager.c"
        }
 }
 
@@ -783,14 +821,14 @@ void password_hash_table_RetrievePassword (PasswordHashTable* self, IdCard* card
 static void _g_free0_ (gpointer var) {
 #line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        var = (g_free (var), NULL);
-#line 787 "moonshot-identities-manager.c"
+#line 825 "moonshot-identities-manager.c"
 }
 
 
 static void _password_unref0_ (gpointer var) {
 #line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        (var == NULL) ? NULL : (var = (password_unref (var), NULL));
-#line 794 "moonshot-identities-manager.c"
+#line 832 "moonshot-identities-manager.c"
 }
 
 
@@ -813,14 +851,14 @@ PasswordHashTable* password_hash_table_construct (GType object_type) {
        self->priv->password_table = _tmp2_;
 #line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return self;
-#line 817 "moonshot-identities-manager.c"
+#line 855 "moonshot-identities-manager.c"
 }
 
 
 PasswordHashTable* password_hash_table_new (void) {
 #line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return password_hash_table_construct (TYPE_PASSWORD_HASH_TABLE);
-#line 824 "moonshot-identities-manager.c"
+#line 862 "moonshot-identities-manager.c"
 }
 
 
@@ -831,14 +869,14 @@ static void password_hash_table_class_init (PasswordHashTableClass * klass) {
        g_type_class_add_private (klass, sizeof (PasswordHashTablePrivate));
 #line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        G_OBJECT_CLASS (klass)->finalize = password_hash_table_finalize;
-#line 835 "moonshot-identities-manager.c"
+#line 873 "moonshot-identities-manager.c"
 }
 
 
 static void password_hash_table_instance_init (PasswordHashTable * self) {
 #line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        self->priv = PASSWORD_HASH_TABLE_GET_PRIVATE (self);
-#line 842 "moonshot-identities-manager.c"
+#line 880 "moonshot-identities-manager.c"
 }
 
 
@@ -850,7 +888,7 @@ static void password_hash_table_finalize (GObject* obj) {
        _g_hash_table_unref0 (self->priv->password_table);
 #line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        G_OBJECT_CLASS (password_hash_table_parent_class)->finalize (obj);
-#line 854 "moonshot-identities-manager.c"
+#line 892 "moonshot-identities-manager.c"
 }
 
 
@@ -867,19 +905,19 @@ GType password_hash_table_get_type (void) {
 
 
 static gpointer _g_object_ref0 (gpointer self) {
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return self ? g_object_ref (self) : NULL;
-#line 873 "moonshot-identities-manager.c"
+#line 911 "moonshot-identities-manager.c"
 }
 
 
-static gint __lambda4_ (gconstpointer a, gconstpointer b) {
+static gint __lambda4_ (IdentityManagerModel* self, IdCard* a, IdCard* b) {
        gint result = 0;
        IdCard* id_a = NULL;
-       gconstpointer _tmp0_ = NULL;
+       IdCard* _tmp0_ = NULL;
        IdCard* _tmp1_ = NULL;
        IdCard* id_b = NULL;
-       gconstpointer _tmp2_ = NULL;
+       IdCard* _tmp2_ = NULL;
        IdCard* _tmp3_ = NULL;
        gboolean _tmp4_ = FALSE;
        IdCard* _tmp5_ = NULL;
@@ -892,122 +930,126 @@ static gint __lambda4_ (gconstpointer a, gconstpointer b) {
        const gchar* _tmp19_ = NULL;
        const gchar* _tmp20_ = NULL;
        gint _tmp21_ = 0;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       g_return_val_if_fail (a != NULL, 0);
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       g_return_val_if_fail (b != NULL, 0);
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp0_ = a;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_ID_CARD, IdCard));
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        id_a = _tmp1_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp2_ = b;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_ID_CARD, IdCard));
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        id_b = _tmp3_;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp5_ = id_a;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp6_ = id_card_IsNoIdentity (_tmp5_);
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp6_ = id_card_is_no_identity (_tmp5_);
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp6_) {
-#line 914 "moonshot-identities-manager.c"
+#line 956 "moonshot-identities-manager.c"
                IdCard* _tmp7_ = NULL;
                gboolean _tmp8_ = FALSE;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp7_ = id_b;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp8_ = id_card_IsNoIdentity (_tmp7_);
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp8_ = id_card_is_no_identity (_tmp7_);
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp4_ = !_tmp8_;
-#line 923 "moonshot-identities-manager.c"
+#line 965 "moonshot-identities-manager.c"
        } else {
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp4_ = FALSE;
-#line 927 "moonshot-identities-manager.c"
+#line 969 "moonshot-identities-manager.c"
        }
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp4_) {
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                result = -1;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _g_object_unref0 (id_b);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _g_object_unref0 (id_a);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                return result;
-#line 939 "moonshot-identities-manager.c"
+#line 981 "moonshot-identities-manager.c"
        } else {
                gboolean _tmp9_ = FALSE;
                IdCard* _tmp10_ = NULL;
                gboolean _tmp11_ = FALSE;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp10_ = id_b;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp11_ = id_card_IsNoIdentity (_tmp10_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp11_ = id_card_is_no_identity (_tmp10_);
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                if (_tmp11_) {
-#line 950 "moonshot-identities-manager.c"
+#line 992 "moonshot-identities-manager.c"
                        IdCard* _tmp12_ = NULL;
                        gboolean _tmp13_ = FALSE;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp12_ = id_a;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                       _tmp13_ = id_card_IsNoIdentity (_tmp12_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp13_ = id_card_is_no_identity (_tmp12_);
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp9_ = !_tmp13_;
-#line 959 "moonshot-identities-manager.c"
+#line 1001 "moonshot-identities-manager.c"
                } else {
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp9_ = FALSE;
-#line 963 "moonshot-identities-manager.c"
+#line 1005 "moonshot-identities-manager.c"
                }
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                if (_tmp9_) {
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        result = 1;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _g_object_unref0 (id_b);
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _g_object_unref0 (id_a);
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        return result;
-#line 975 "moonshot-identities-manager.c"
+#line 1017 "moonshot-identities-manager.c"
                }
        }
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp14_ = g_strcmp0;
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp15_ = id_a;
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp16_ = id_card_get_display_name (_tmp15_);
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp17_ = _tmp16_;
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp18_ = id_b;
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp19_ = id_card_get_display_name (_tmp18_);
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp20_ = _tmp19_;
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp21_ = _tmp14_ (_tmp17_, _tmp20_);
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        result = _tmp21_;
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _g_object_unref0 (id_b);
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _g_object_unref0 (id_a);
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return result;
-#line 1002 "moonshot-identities-manager.c"
+#line 1044 "moonshot-identities-manager.c"
 }
 
 
-static gint ___lambda4__gcompare_func (gconstpointer a, gconstpointer b) {
+static gint ___lambda4__gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
        gint result;
-       result = __lambda4_ (a, b);
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       result = __lambda4_ ((IdentityManagerModel*) self, (IdCard*) a, (IdCard*) b);
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return result;
-#line 1011 "moonshot-identities-manager.c"
+#line 1053 "moonshot-identities-manager.c"
 }
 
 
@@ -1021,65 +1063,65 @@ GeeLinkedList* identity_manager_model_get_card_list (IdentityManagerModel* self)
        GeeLinkedList* _tmp4_ = NULL;
        gboolean _tmp5_ = FALSE;
        gboolean _tmp6_ = FALSE;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (self != NULL, NULL);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp0_ = self->priv->store;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp1_ = iidentity_card_store_get_card_list (_tmp0_);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        identities = _tmp1_;
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp2_ = identities;
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       gee_list_sort ((GeeList*) _tmp2_, ___lambda4__gcompare_func);
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       gee_list_sort ((GeeList*) _tmp2_, ___lambda4__gcompare_data_func, g_object_ref (self), g_object_unref);
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp4_ = identities;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp5_ = gee_abstract_collection_get_is_empty ((GeeAbstractCollection*) _tmp4_);
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp5_ = gee_collection_get_is_empty ((GeeCollection*) _tmp4_);
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp6_ = _tmp5_;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp6_) {
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp3_ = TRUE;
-#line 1047 "moonshot-identities-manager.c"
+#line 1089 "moonshot-identities-manager.c"
        } else {
                GeeLinkedList* _tmp7_ = NULL;
                gpointer _tmp8_ = NULL;
                IdCard* _tmp9_ = NULL;
                gboolean _tmp10_ = FALSE;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp7_ = identities;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, 0);
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp9_ = (IdCard*) _tmp8_;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp10_ = id_card_IsNoIdentity (_tmp9_);
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp10_ = id_card_is_no_identity (_tmp9_);
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp3_ = !_tmp10_;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _g_object_unref0 (_tmp9_);
-#line 1065 "moonshot-identities-manager.c"
+#line 1107 "moonshot-identities-manager.c"
        }
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp3_) {
-#line 1069 "moonshot-identities-manager.c"
+#line 1111 "moonshot-identities-manager.c"
                GeeLinkedList* _tmp11_ = NULL;
                IdCard* _tmp12_ = NULL;
                IdCard* _tmp13_ = NULL;
-#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp11_ = identities;
-#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp12_ = id_card_NewNoIdentity ();
-#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp13_ = _tmp12_;
-#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                gee_abstract_list_insert ((GeeAbstractList*) _tmp11_, 0, _tmp13_);
-#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _g_object_unref0 (_tmp13_);
-#line 1083 "moonshot-identities-manager.c"
+#line 1125 "moonshot-identities-manager.c"
        }
        {
                GeeLinkedList* _id_card_list = NULL;
@@ -1090,25 +1132,25 @@ GeeLinkedList* identity_manager_model_get_card_list (IdentityManagerModel* self)
                gint _tmp17_ = 0;
                gint _tmp18_ = 0;
                gint _id_card_index = 0;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp14_ = identities;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp15_ = _g_object_ref0 (_tmp14_);
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _id_card_list = _tmp15_;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp16_ = _id_card_list;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp17_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp16_);
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp17_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp16_);
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp18_ = _tmp17_;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _id_card_size = _tmp18_;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _id_card_index = -1;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                while (TRUE) {
-#line 1112 "moonshot-identities-manager.c"
+#line 1154 "moonshot-identities-manager.c"
                        gint _tmp19_ = 0;
                        gint _tmp20_ = 0;
                        gint _tmp21_ = 0;
@@ -1119,80 +1161,80 @@ GeeLinkedList* identity_manager_model_get_card_list (IdentityManagerModel* self)
                        IdCard* _tmp25_ = NULL;
                        gboolean _tmp26_ = FALSE;
                        gboolean _tmp27_ = FALSE;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp19_ = _id_card_index;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _id_card_index = _tmp19_ + 1;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp20_ = _id_card_index;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp21_ = _id_card_size;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        if (!(_tmp20_ < _tmp21_)) {
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                break;
-#line 1135 "moonshot-identities-manager.c"
+#line 1177 "moonshot-identities-manager.c"
                        }
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp22_ = _id_card_list;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp23_ = _id_card_index;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp24_ = gee_abstract_list_get ((GeeAbstractList*) _tmp22_, _tmp23_);
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        id_card = (IdCard*) _tmp24_;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp25_ = id_card;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp26_ = id_card_get_store_password (_tmp25_);
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp27_ = _tmp26_;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        if (!_tmp27_) {
-#line 1153 "moonshot-identities-manager.c"
+#line 1195 "moonshot-identities-manager.c"
                                PasswordHashTable* _tmp28_ = NULL;
                                IdCard* _tmp29_ = NULL;
                                IIdentityCardStore* _tmp30_ = NULL;
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _tmp28_ = self->priv->password_table;
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _tmp29_ = id_card;
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _tmp30_ = self->priv->store;
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                password_hash_table_RetrievePassword (_tmp28_, _tmp29_, _tmp30_);
-#line 1165 "moonshot-identities-manager.c"
+#line 1207 "moonshot-identities-manager.c"
                        }
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _g_object_unref0 (id_card);
-#line 1169 "moonshot-identities-manager.c"
+#line 1211 "moonshot-identities-manager.c"
                }
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _g_object_unref0 (_id_card_list);
-#line 1173 "moonshot-identities-manager.c"
+#line 1215 "moonshot-identities-manager.c"
        }
-#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        result = identities;
-#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return result;
-#line 1179 "moonshot-identities-manager.c"
+#line 1221 "moonshot-identities-manager.c"
 }
 
 
 gboolean identity_manager_model_display_name_is_valid (IdentityManagerModel* self, const gchar* name, gchar** candidate) {
        gchar* _vala_candidate = NULL;
        gboolean result = FALSE;
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (name != NULL, FALSE);
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if ((&_vala_candidate) != NULL) {
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _g_free0 (_vala_candidate);
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _vala_candidate = NULL;
-#line 1196 "moonshot-identities-manager.c"
+#line 1238 "moonshot-identities-manager.c"
        }
        {
                GeeLinkedList* _id_card_list = NULL;
@@ -1203,25 +1245,25 @@ gboolean identity_manager_model_display_name_is_valid (IdentityManagerModel* sel
                gint _tmp3_ = 0;
                gint _tmp4_ = 0;
                gint _id_card_index = 0;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp0_ = self->priv->store;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp1_ = iidentity_card_store_get_card_list (_tmp0_);
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _id_card_list = _tmp1_;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp2_ = _id_card_list;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp3_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp2_);
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp4_ = _tmp3_;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _id_card_size = _tmp4_;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _id_card_index = -1;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                while (TRUE) {
-#line 1225 "moonshot-identities-manager.c"
+#line 1267 "moonshot-identities-manager.c"
                        gint _tmp5_ = 0;
                        gint _tmp6_ = 0;
                        gint _tmp7_ = 0;
@@ -1233,53 +1275,53 @@ gboolean identity_manager_model_display_name_is_valid (IdentityManagerModel* sel
                        const gchar* _tmp12_ = NULL;
                        const gchar* _tmp13_ = NULL;
                        const gchar* _tmp14_ = NULL;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp5_ = _id_card_index;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _id_card_index = _tmp5_ + 1;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp6_ = _id_card_index;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp7_ = _id_card_size;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        if (!(_tmp6_ < _tmp7_)) {
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                break;
-#line 1249 "moonshot-identities-manager.c"
+#line 1291 "moonshot-identities-manager.c"
                        }
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp8_ = _id_card_list;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp9_ = _id_card_index;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp8_, _tmp9_);
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                       id_card = (IdCard*) _tmp10_;
 #line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       id_card = (IdCard*) _tmp10_;
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp11_ = id_card;
-#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp12_ = id_card_get_display_name (_tmp11_);
-#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp13_ = _tmp12_;
-#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp14_ = name;
-#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                       if (g_strcmp0 (_tmp13_, _tmp14_) == 0) {
 #line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       if (g_strcmp0 (_tmp13_, _tmp14_) == 0) {
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                if ((&_vala_candidate) != NULL) {
-#line 1271 "moonshot-identities-manager.c"
+#line 1313 "moonshot-identities-manager.c"
                                        {
                                                gint i = 0;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                i = 0;
-#line 1276 "moonshot-identities-manager.c"
+#line 1318 "moonshot-identities-manager.c"
                                                {
                                                        gboolean _tmp15_ = FALSE;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                        _tmp15_ = TRUE;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                        while (TRUE) {
-#line 1283 "moonshot-identities-manager.c"
+#line 1325 "moonshot-identities-manager.c"
                                                                gint _tmp17_ = 0;
                                                                gchar* tmp = NULL;
                                                                const gchar* _tmp18_ = NULL;
@@ -1287,303 +1329,817 @@ gboolean identity_manager_model_display_name_is_valid (IdentityManagerModel* sel
                                                                gchar* _tmp20_ = NULL;
                                                                const gchar* _tmp21_ = NULL;
                                                                gboolean _tmp22_ = FALSE;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                if (!_tmp15_) {
-#line 1293 "moonshot-identities-manager.c"
+#line 1335 "moonshot-identities-manager.c"
                                                                        gint _tmp16_ = 0;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                        _tmp16_ = i;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                        i = _tmp16_ + 1;
-#line 1299 "moonshot-identities-manager.c"
+#line 1341 "moonshot-identities-manager.c"
                                                                }
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                _tmp15_ = FALSE;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                _tmp17_ = i;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                if (!(_tmp17_ < 1000)) {
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                        break;
-#line 1309 "moonshot-identities-manager.c"
+#line 1351 "moonshot-identities-manager.c"
                                                                }
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                _tmp18_ = name;
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                _tmp19_ = i;
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                _tmp20_ = g_strdup_printf ("%s %d", _tmp18_, _tmp19_);
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                tmp = _tmp20_;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                _tmp21_ = tmp;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                _tmp22_ = identity_manager_model_display_name_is_valid (self, _tmp21_, NULL);
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                if (_tmp22_) {
-#line 1325 "moonshot-identities-manager.c"
+#line 1367 "moonshot-identities-manager.c"
                                                                        const gchar* _tmp23_ = NULL;
                                                                        gchar* _tmp24_ = NULL;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                        _tmp23_ = tmp;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                        _tmp24_ = g_strdup (_tmp23_);
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                        _g_free0 (_vala_candidate);
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                        _vala_candidate = _tmp24_;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                        _g_free0 (tmp);
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                        break;
-#line 1340 "moonshot-identities-manager.c"
+#line 1382 "moonshot-identities-manager.c"
                                                                }
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                                                _g_free0 (tmp);
-#line 1344 "moonshot-identities-manager.c"
+#line 1386 "moonshot-identities-manager.c"
                                                        }
                                                }
                                        }
                                }
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                result = FALSE;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _g_object_unref0 (id_card);
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _g_object_unref0 (_id_card_list);
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                if (candidate) {
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                        *candidate = _vala_candidate;
-#line 1359 "moonshot-identities-manager.c"
+#line 1401 "moonshot-identities-manager.c"
                                } else {
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                        _g_free0 (_vala_candidate);
-#line 1363 "moonshot-identities-manager.c"
+#line 1405 "moonshot-identities-manager.c"
                                }
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                return result;
-#line 1367 "moonshot-identities-manager.c"
+#line 1409 "moonshot-identities-manager.c"
                        }
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _g_object_unref0 (id_card);
-#line 1371 "moonshot-identities-manager.c"
+#line 1413 "moonshot-identities-manager.c"
                }
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _g_object_unref0 (_id_card_list);
-#line 1375 "moonshot-identities-manager.c"
+#line 1417 "moonshot-identities-manager.c"
        }
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        result = TRUE;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (candidate) {
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                *candidate = _vala_candidate;
-#line 1383 "moonshot-identities-manager.c"
+#line 1425 "moonshot-identities-manager.c"
        } else {
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _g_free0 (_vala_candidate);
-#line 1387 "moonshot-identities-manager.c"
+#line 1429 "moonshot-identities-manager.c"
        }
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return result;
-#line 1391 "moonshot-identities-manager.c"
+#line 1433 "moonshot-identities-manager.c"
 }
 
 
-static gboolean identity_manager_model_remove_duplicates (IdentityManagerModel* self, IdCard* card) {
+static gboolean identity_manager_model_remove_duplicates (IdentityManagerModel* self, IdCard* new_card, GeeArrayList** old_duplicates) {
+       GeeArrayList* _vala_old_duplicates = NULL;
        gboolean result = FALSE;
-       gboolean duplicate_found = FALSE;
-       gboolean found = FALSE;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       GeeArrayList* dups = NULL;
+       GeeArrayList* _tmp0_ = NULL;
+       GeeLinkedList* cards = NULL;
+       IIdentityCardStore* _tmp1_ = NULL;
+       GeeLinkedList* _tmp2_ = NULL;
+       GeeArrayList* _tmp61_ = NULL;
+       gint _tmp62_ = 0;
+       gint _tmp63_ = 0;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       g_return_val_if_fail (card != NULL, FALSE);
 #line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       duplicate_found = FALSE;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       found = FALSE;
-#line 1407 "moonshot-identities-manager.c"
-       {
-               gboolean _tmp0_ = FALSE;
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp0_ = TRUE;
+       g_return_val_if_fail (new_card != NULL, FALSE);
 #line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               while (TRUE) {
-#line 1414 "moonshot-identities-manager.c"
-                       GeeLinkedList* cards = NULL;
-                       IIdentityCardStore* _tmp2_ = NULL;
-                       GeeLinkedList* _tmp3_ = NULL;
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                       if (!_tmp0_) {
-#line 1420 "moonshot-identities-manager.c"
-                               gboolean _tmp1_ = FALSE;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp1_ = found;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               if (!_tmp1_) {
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       break;
-#line 1428 "moonshot-identities-manager.c"
-                               }
-                       }
+       _tmp0_ = gee_array_list_new (TYPE_ID_CARD, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
 #line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                       _tmp0_ = FALSE;
+       dups = _tmp0_;
 #line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                       _tmp2_ = self->priv->store;
+       _tmp1_ = self->priv->store;
 #line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                       _tmp3_ = iidentity_card_store_get_card_list (_tmp2_);
+       _tmp2_ = iidentity_card_store_get_card_list (_tmp1_);
 #line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                       cards = _tmp3_;
+       cards = _tmp2_;
+#line 1462 "moonshot-identities-manager.c"
+       {
+               GeeLinkedList* _id_card_list = NULL;
+               GeeLinkedList* _tmp3_ = NULL;
+               GeeLinkedList* _tmp4_ = NULL;
+               gint _id_card_size = 0;
+               GeeLinkedList* _tmp5_ = NULL;
+               gint _tmp6_ = 0;
+               gint _tmp7_ = 0;
+               gint _id_card_index = 0;
 #line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                       found = FALSE;
-#line 1441 "moonshot-identities-manager.c"
-                       {
-                               GeeLinkedList* _id_card_list = NULL;
-                               GeeLinkedList* _tmp4_ = NULL;
-                               GeeLinkedList* _tmp5_ = NULL;
-                               gint _id_card_size = 0;
-                               GeeLinkedList* _tmp6_ = NULL;
-                               gint _tmp7_ = 0;
-                               gint _tmp8_ = 0;
-                               gint _id_card_index = 0;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp4_ = cards;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp5_ = _g_object_ref0 (_tmp4_);
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _id_card_list = _tmp5_;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp6_ = _id_card_list;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp7_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp6_);
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp8_ = _tmp7_;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _id_card_size = _tmp8_;
+               _tmp3_ = cards;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _id_card_list = _tmp4_;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp5_ = _id_card_list;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp7_ = _tmp6_;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _id_card_size = _tmp7_;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _id_card_index = -1;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               while (TRUE) {
+#line 1490 "moonshot-identities-manager.c"
+                       gint _tmp8_ = 0;
+                       gint _tmp9_ = 0;
+                       gint _tmp10_ = 0;
+                       IdCard* id_card = NULL;
+                       GeeLinkedList* _tmp11_ = NULL;
+                       gint _tmp12_ = 0;
+                       gpointer _tmp13_ = NULL;
+                       gboolean _tmp14_ = FALSE;
+                       IdCard* _tmp15_ = NULL;
+                       IdCard* _tmp16_ = NULL;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp8_ = _id_card_index;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _id_card_index = _tmp8_ + 1;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp9_ = _id_card_index;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp10_ = _id_card_size;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       if (!(_tmp9_ < _tmp10_)) {
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               break;
+#line 1513 "moonshot-identities-manager.c"
+                       }
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp11_ = _id_card_list;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp12_ = _id_card_index;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp13_ = gee_abstract_list_get ((GeeAbstractList*) _tmp11_, _tmp12_);
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       id_card = (IdCard*) _tmp13_;
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _id_card_index = -1;
+                       _tmp15_ = new_card;
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               while (TRUE) {
-#line 1469 "moonshot-identities-manager.c"
-                                       gint _tmp9_ = 0;
-                                       gint _tmp10_ = 0;
-                                       gint _tmp11_ = 0;
-                                       IdCard* id_card = NULL;
-                                       GeeLinkedList* _tmp12_ = NULL;
-                                       gint _tmp13_ = 0;
-                                       gpointer _tmp14_ = NULL;
-                                       gboolean _tmp15_ = FALSE;
-                                       IdCard* _tmp16_ = NULL;
-                                       IdCard* _tmp17_ = NULL;
+                       _tmp16_ = id_card;
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       _tmp9_ = _id_card_index;
+                       if (_tmp15_ != _tmp16_) {
+#line 1529 "moonshot-identities-manager.c"
+                               IdCard* _tmp17_ = NULL;
+                               const gchar* _tmp18_ = NULL;
+                               const gchar* _tmp19_ = NULL;
+                               IdCard* _tmp20_ = NULL;
+                               const gchar* _tmp21_ = NULL;
+                               const gchar* _tmp22_ = NULL;
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       _id_card_index = _tmp9_ + 1;
+                               _tmp17_ = id_card;
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       _tmp10_ = _id_card_index;
+                               _tmp18_ = id_card_get_nai (_tmp17_);
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       _tmp11_ = _id_card_size;
+                               _tmp19_ = _tmp18_;
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       if (!(_tmp10_ < _tmp11_)) {
+                               _tmp20_ = new_card;
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               break;
-#line 1492 "moonshot-identities-manager.c"
-                                       }
+                               _tmp21_ = id_card_get_nai (_tmp20_);
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       _tmp12_ = _id_card_list;
+                               _tmp22_ = _tmp21_;
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       _tmp13_ = _id_card_index;
+                               _tmp14_ = g_strcmp0 (_tmp19_, _tmp22_) == 0;
+#line 1550 "moonshot-identities-manager.c"
+                       } else {
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       _tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp12_, _tmp13_);
+                               _tmp14_ = FALSE;
+#line 1554 "moonshot-identities-manager.c"
+                       }
 #line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       id_card = (IdCard*) _tmp14_;
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       _tmp16_ = card;
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       _tmp17_ = id_card;
+                       if (_tmp14_) {
+#line 1558 "moonshot-identities-manager.c"
+                               GeeArrayList* _tmp23_ = NULL;
+                               IdCard* _tmp24_ = NULL;
 #line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       if (_tmp16_ != _tmp17_) {
-#line 1508 "moonshot-identities-manager.c"
-                                               IdCard* _tmp18_ = NULL;
-                                               const gchar* _tmp19_ = NULL;
-                                               const gchar* _tmp20_ = NULL;
-                                               IdCard* _tmp21_ = NULL;
-                                               const gchar* _tmp22_ = NULL;
-                                               const gchar* _tmp23_ = NULL;
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp18_ = id_card;
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp19_ = id_card_get_nai (_tmp18_);
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp20_ = _tmp19_;
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp21_ = card;
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp22_ = id_card_get_nai (_tmp21_);
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp23_ = _tmp22_;
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp15_ = g_strcmp0 (_tmp20_, _tmp23_) == 0;
-#line 1529 "moonshot-identities-manager.c"
-                                       } else {
+                               _tmp23_ = dups;
 #line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp15_ = FALSE;
-#line 1533 "moonshot-identities-manager.c"
-                                       }
+                               _tmp24_ = id_card;
 #line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       if (_tmp15_) {
-#line 1537 "moonshot-identities-manager.c"
-                                               FILE* _tmp24_ = NULL;
-                                               IdCard* _tmp25_ = NULL;
-                                               const gchar* _tmp26_ = NULL;
-                                               const gchar* _tmp27_ = NULL;
-                                               IdCard* _tmp28_ = NULL;
-                                               gboolean _tmp29_ = FALSE;
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp24_ = stdout;
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp25_ = card;
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp26_ = id_card_get_nai (_tmp25_);
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp27_ = _tmp26_;
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               fprintf (_tmp24_, "removing duplicate id for '%s'\n", _tmp27_);
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp28_ = id_card;
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               identity_manager_model_remove_card_internal (self, _tmp28_);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               duplicate_found = TRUE;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _tmp29_ = duplicate_found;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               found = _tmp29_;
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp23_, _tmp24_);
+#line 1567 "moonshot-identities-manager.c"
+                       }
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _g_object_unref0 (id_card);
+#line 1571 "moonshot-identities-manager.c"
+               }
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _g_object_unref0 (_id_card_list);
+#line 1575 "moonshot-identities-manager.c"
+       }
+       {
+               GeeArrayList* _id_card_list = NULL;
+               GeeArrayList* _tmp25_ = NULL;
+               GeeArrayList* _tmp26_ = NULL;
+               gint _id_card_size = 0;
+               GeeArrayList* _tmp27_ = NULL;
+               gint _tmp28_ = 0;
+               gint _tmp29_ = 0;
+               gint _id_card_index = 0;
 #line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               _g_object_unref0 (id_card);
+               _tmp25_ = dups;
 #line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                               break;
-#line 1568 "moonshot-identities-manager.c"
-                                       }
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                                       _g_object_unref0 (id_card);
-#line 1572 "moonshot-identities-manager.c"
-                               }
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _g_object_unref0 (_id_card_list);
-#line 1576 "moonshot-identities-manager.c"
+               _tmp26_ = _g_object_ref0 (_tmp25_);
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _id_card_list = _tmp26_;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp27_ = _id_card_list;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp28_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp27_);
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp29_ = _tmp28_;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _id_card_size = _tmp29_;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _id_card_index = -1;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               while (TRUE) {
+#line 1604 "moonshot-identities-manager.c"
+                       gint _tmp30_ = 0;
+                       gint _tmp31_ = 0;
+                       gint _tmp32_ = 0;
+                       IdCard* id_card = NULL;
+                       GeeArrayList* _tmp33_ = NULL;
+                       gint _tmp34_ = 0;
+                       gpointer _tmp35_ = NULL;
+                       MoonshotLogger* _tmp36_ = NULL;
+                       IdCard* _tmp37_ = NULL;
+                       const gchar* _tmp38_ = NULL;
+                       const gchar* _tmp39_ = NULL;
+                       gchar* _tmp40_ = NULL;
+                       gchar* _tmp41_ = NULL;
+                       IdCard* _tmp42_ = NULL;
+                       IdCard* _tmp43_ = NULL;
+                       TrustAnchor* _tmp44_ = NULL;
+                       TrustAnchor* _tmp45_ = NULL;
+                       IdCard* _tmp46_ = NULL;
+                       TrustAnchor* _tmp47_ = NULL;
+                       TrustAnchor* _tmp48_ = NULL;
+                       gint _tmp49_ = 0;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp30_ = _id_card_index;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _id_card_index = _tmp30_ + 1;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp31_ = _id_card_index;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp32_ = _id_card_size;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       if (!(_tmp31_ < _tmp32_)) {
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               break;
+#line 1638 "moonshot-identities-manager.c"
                        }
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                       _g_object_unref0 (cards);
-#line 1580 "moonshot-identities-manager.c"
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp33_ = _id_card_list;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp34_ = _id_card_index;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp35_ = gee_abstract_list_get ((GeeAbstractList*) _tmp33_, _tmp34_);
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       id_card = (IdCard*) _tmp35_;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp36_ = identity_manager_model_logger;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp37_ = new_card;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp38_ = id_card_get_nai (_tmp37_);
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp39_ = _tmp38_;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp40_ = g_strdup_printf ("removing duplicate id for '%s'\n", _tmp39_);
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp41_ = _tmp40_;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       moonshot_logger_trace (_tmp36_, _tmp41_, NULL);
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _g_free0 (_tmp41_);
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp42_ = id_card;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       identity_manager_model_remove_card_internal (self, _tmp42_);
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp43_ = new_card;
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp44_ = id_card_get_trust_anchor (_tmp43_);
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp45_ = _tmp44_;
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp46_ = id_card;
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp47_ = id_card_get_trust_anchor (_tmp46_);
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp48_ = _tmp47_;
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp49_ = trust_anchor_Compare (_tmp45_, _tmp48_);
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       if (_tmp49_ == 0) {
+#line 1684 "moonshot-identities-manager.c"
+                               MoonshotLogger* _tmp50_ = NULL;
+                               IdCard* _tmp51_ = NULL;
+                               TrustAnchor* _tmp52_ = NULL;
+                               TrustAnchor* _tmp53_ = NULL;
+                               IdCard* _tmp54_ = NULL;
+                               TrustAnchor* _tmp55_ = NULL;
+                               TrustAnchor* _tmp56_ = NULL;
+                               const gchar* _tmp57_ = NULL;
+                               const gchar* _tmp58_ = NULL;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp50_ = identity_manager_model_logger;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               moonshot_logger_trace (_tmp50_, "Old and new cards have same trust anchor. Re-using the datetime_added " \
+"field from the old card.", NULL);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp51_ = new_card;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp52_ = id_card_get_trust_anchor (_tmp51_);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp53_ = _tmp52_;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp54_ = id_card;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp55_ = id_card_get_trust_anchor (_tmp54_);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp56_ = _tmp55_;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp57_ = trust_anchor_get_datetime_added (_tmp56_);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp58_ = _tmp57_;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               trust_anchor_set_datetime_added (_tmp53_, _tmp58_);
+#line 1716 "moonshot-identities-manager.c"
+                       }
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _g_object_unref0 (id_card);
+#line 1720 "moonshot-identities-manager.c"
+               }
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _g_object_unref0 (_id_card_list);
+#line 1724 "moonshot-identities-manager.c"
+       }
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       if ((&_vala_old_duplicates) != NULL) {
+#line 1728 "moonshot-identities-manager.c"
+               GeeArrayList* _tmp59_ = NULL;
+               GeeArrayList* _tmp60_ = NULL;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp59_ = dups;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp60_ = _g_object_ref0 (_tmp59_);
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _g_object_unref0 (_vala_old_duplicates);
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _vala_old_duplicates = _tmp60_;
+#line 1739 "moonshot-identities-manager.c"
+       }
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp61_ = dups;
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp62_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp61_);
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp63_ = _tmp62_;
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       result = _tmp63_ > 0;
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _g_object_unref0 (cards);
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _g_object_unref0 (dups);
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       if (old_duplicates) {
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               *old_duplicates = _vala_old_duplicates;
+#line 1757 "moonshot-identities-manager.c"
+       } else {
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _g_object_unref0 (_vala_old_duplicates);
+#line 1761 "moonshot-identities-manager.c"
+       }
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       return result;
+#line 1765 "moonshot-identities-manager.c"
+}
+
+
+static const gchar* string_to_string (const gchar* self) {
+       const gchar* result = NULL;
+#line 1420 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = self;
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 1777 "moonshot-identities-manager.c"
+}
+
+
+gboolean identity_manager_model_find_duplicate_nai_sets (IdentityManagerModel* self, GeeArrayList** duplicates) {
+       GeeArrayList* _vala_duplicates = NULL;
+       gboolean result = FALSE;
+       GeeHashMap* nais = NULL;
+       GeeHashMap* _tmp0_ = NULL;
+       GeeArrayList* _tmp1_ = NULL;
+       GeeLinkedList* card_list = NULL;
+       GeeLinkedList* _tmp2_ = NULL;
+       GeeLinkedList* _tmp3_ = NULL;
+       gboolean found = FALSE;
+       GeeArrayList* _tmp46_ = NULL;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, GEE_TYPE_ARRAY_LIST, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       nais = _tmp0_;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp1_ = gee_array_list_new (GEE_TYPE_ARRAY_LIST, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _g_object_unref0 (_vala_duplicates);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _vala_duplicates = _tmp1_;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp2_ = identity_manager_model_get_card_list (self);
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       card_list = _tmp2_;
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp3_ = card_list;
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       if (_tmp3_ == NULL) {
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               result = FALSE;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _g_object_unref0 (card_list);
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _g_object_unref0 (nais);
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               if (duplicates) {
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       *duplicates = _vala_duplicates;
+#line 1822 "moonshot-identities-manager.c"
+               } else {
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _g_object_unref0 (_vala_duplicates);
+#line 1826 "moonshot-identities-manager.c"
                }
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               return result;
+#line 1830 "moonshot-identities-manager.c"
+       }
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       found = FALSE;
+#line 1834 "moonshot-identities-manager.c"
+       {
+               GeeLinkedList* _id_card_list = NULL;
+               GeeLinkedList* _tmp4_ = NULL;
+               GeeLinkedList* _tmp5_ = NULL;
+               gint _id_card_size = 0;
+               GeeLinkedList* _tmp6_ = NULL;
+               gint _tmp7_ = 0;
+               gint _tmp8_ = 0;
+               gint _id_card_index = 0;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp4_ = card_list;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _id_card_list = _tmp5_;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp6_ = _id_card_list;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp7_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp6_);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp8_ = _tmp7_;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _id_card_size = _tmp8_;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _id_card_index = -1;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               while (TRUE) {
+#line 1862 "moonshot-identities-manager.c"
+                       gint _tmp9_ = 0;
+                       gint _tmp10_ = 0;
+                       gint _tmp11_ = 0;
+                       IdCard* id_card = NULL;
+                       GeeLinkedList* _tmp12_ = NULL;
+                       gint _tmp13_ = 0;
+                       gpointer _tmp14_ = NULL;
+                       MoonshotLogger* _tmp15_ = NULL;
+                       IdCard* _tmp16_ = NULL;
+                       const gchar* _tmp17_ = NULL;
+                       const gchar* _tmp18_ = NULL;
+                       const gchar* _tmp19_ = NULL;
+                       IdCard* _tmp20_ = NULL;
+                       const gchar* _tmp21_ = NULL;
+                       const gchar* _tmp22_ = NULL;
+                       const gchar* _tmp23_ = NULL;
+                       gchar* _tmp24_ = NULL;
+                       gchar* _tmp25_ = NULL;
+                       GeeHashMap* _tmp26_ = NULL;
+                       IdCard* _tmp27_ = NULL;
+                       const gchar* _tmp28_ = NULL;
+                       const gchar* _tmp29_ = NULL;
+                       gboolean _tmp30_ = FALSE;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp9_ = _id_card_index;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _id_card_index = _tmp9_ + 1;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp10_ = _id_card_index;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp11_ = _id_card_size;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       if (!(_tmp10_ < _tmp11_)) {
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               break;
+#line 1898 "moonshot-identities-manager.c"
+                       }
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp12_ = _id_card_list;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp13_ = _id_card_index;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp12_, _tmp13_);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       id_card = (IdCard*) _tmp14_;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp15_ = identity_manager_model_logger;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp16_ = id_card;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp17_ = id_card_get_display_name (_tmp16_);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp18_ = _tmp17_;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp19_ = string_to_string (_tmp18_);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp20_ = id_card;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp21_ = id_card_get_nai (_tmp20_);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp22_ = _tmp21_;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp23_ = string_to_string (_tmp22_);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp24_ = g_strconcat ("load_id_cards: Loading card with display name '", _tmp19_, "' and nai '", _tmp23_, "'", NULL);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp25_ = _tmp24_;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       moonshot_logger_trace (_tmp15_, _tmp25_, NULL);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _g_free0 (_tmp25_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp26_ = nais;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp27_ = id_card;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp28_ = id_card_get_nai (_tmp27_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp29_ = _tmp28_;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp30_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp26_, _tmp29_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       if (_tmp30_) {
+#line 1946 "moonshot-identities-manager.c"
+                               GeeArrayList* list = NULL;
+                               GeeHashMap* _tmp31_ = NULL;
+                               IdCard* _tmp32_ = NULL;
+                               const gchar* _tmp33_ = NULL;
+                               const gchar* _tmp34_ = NULL;
+                               gpointer _tmp35_ = NULL;
+                               GeeArrayList* _tmp36_ = NULL;
+                               IdCard* _tmp37_ = NULL;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp31_ = nais;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp32_ = id_card;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp33_ = id_card_get_nai (_tmp32_);
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp34_ = _tmp33_;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp35_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp31_, _tmp34_);
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               list = (GeeArrayList*) _tmp35_;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp36_ = list;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp37_ = id_card;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp36_, _tmp37_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _g_object_unref0 (list);
+#line 1975 "moonshot-identities-manager.c"
+                       } else {
+                               GeeArrayList* list = NULL;
+                               GeeArrayList* _tmp38_ = NULL;
+                               GeeArrayList* _tmp39_ = NULL;
+                               IdCard* _tmp40_ = NULL;
+                               GeeHashMap* _tmp41_ = NULL;
+                               IdCard* _tmp42_ = NULL;
+                               const gchar* _tmp43_ = NULL;
+                               const gchar* _tmp44_ = NULL;
+                               GeeArrayList* _tmp45_ = NULL;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp38_ = gee_array_list_new (TYPE_ID_CARD, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               list = _tmp38_;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp39_ = list;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp40_ = id_card;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp39_, _tmp40_);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp41_ = nais;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp42_ = id_card;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp43_ = id_card_get_nai (_tmp42_);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp44_ = _tmp43_;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp45_ = list;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp41_, _tmp44_, _tmp45_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _g_object_unref0 (list);
+#line 2010 "moonshot-identities-manager.c"
+                       }
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _g_object_unref0 (id_card);
+#line 2014 "moonshot-identities-manager.c"
+               }
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _g_object_unref0 (_id_card_list);
+#line 2018 "moonshot-identities-manager.c"
+       }
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp46_ = gee_array_list_new (GEE_TYPE_ARRAY_LIST, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _g_object_unref0 (_vala_duplicates);
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _vala_duplicates = _tmp46_;
+#line 2026 "moonshot-identities-manager.c"
+       {
+               GeeIterator* _entry_it = NULL;
+               GeeHashMap* _tmp47_ = NULL;
+               GeeSet* _tmp48_ = NULL;
+               GeeSet* _tmp49_ = NULL;
+               GeeSet* _tmp50_ = NULL;
+               GeeIterator* _tmp51_ = NULL;
+               GeeIterator* _tmp52_ = NULL;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp47_ = nais;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp48_ = gee_abstract_map_get_entries ((GeeAbstractMap*) _tmp47_);
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp49_ = _tmp48_;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp50_ = _tmp49_;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp51_ = gee_iterable_iterator ((GeeIterable*) _tmp50_);
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp52_ = _tmp51_;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _g_object_unref0 (_tmp50_);
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _entry_it = _tmp52_;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               while (TRUE) {
+#line 2053 "moonshot-identities-manager.c"
+                       GeeIterator* _tmp53_ = NULL;
+                       gboolean _tmp54_ = FALSE;
+                       GeeMapEntry* entry = NULL;
+                       GeeIterator* _tmp55_ = NULL;
+                       gpointer _tmp56_ = NULL;
+                       GeeArrayList* list = NULL;
+                       GeeMapEntry* _tmp57_ = NULL;
+                       gconstpointer _tmp58_ = NULL;
+                       GeeArrayList* _tmp59_ = NULL;
+                       GeeArrayList* _tmp60_ = NULL;
+                       GeeArrayList* _tmp61_ = NULL;
+                       gint _tmp62_ = 0;
+                       gint _tmp63_ = 0;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp53_ = _entry_it;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp54_ = gee_iterator_next (_tmp53_);
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       if (!_tmp54_) {
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               break;
+#line 2075 "moonshot-identities-manager.c"
+                       }
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp55_ = _entry_it;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp56_ = gee_iterator_get (_tmp55_);
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       entry = (GeeMapEntry*) _tmp56_;
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp57_ = entry;
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp58_ = gee_map_entry_get_value (_tmp57_);
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp59_ = _tmp58_;
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp60_ = _g_object_ref0 ((GeeArrayList*) _tmp59_);
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       list = _tmp60_;
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp61_ = list;
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp62_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp61_);
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp63_ = _tmp62_;
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       if (_tmp63_ > 1) {
+#line 2101 "moonshot-identities-manager.c"
+                               GeeArrayList* _tmp64_ = NULL;
+                               GeeArrayList* _tmp65_ = NULL;
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp64_ = _vala_duplicates;
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp65_ = list;
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp64_, _tmp65_);
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               found = TRUE;
+#line 2112 "moonshot-identities-manager.c"
+                       }
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _g_object_unref0 (list);
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _g_object_unref0 (entry);
+#line 2118 "moonshot-identities-manager.c"
+               }
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _g_object_unref0 (_entry_it);
+#line 2122 "moonshot-identities-manager.c"
+       }
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       result = found;
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _g_object_unref0 (card_list);
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _g_object_unref0 (nais);
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       if (duplicates) {
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               *duplicates = _vala_duplicates;
+#line 2134 "moonshot-identities-manager.c"
+       } else {
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _g_object_unref0 (_vala_duplicates);
+#line 2138 "moonshot-identities-manager.c"
        }
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       result = duplicate_found;
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return result;
-#line 1587 "moonshot-identities-manager.c"
+#line 2142 "moonshot-identities-manager.c"
 }
 
 
@@ -1596,23 +2152,21 @@ IdCard* identity_manager_model_find_id_card (IdentityManagerModel* self, const g
        IIdentityCardStoreStoreType _tmp18_ = 0;
        gboolean _tmp19_ = FALSE;
        gboolean _tmp20_ = FALSE;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (self != NULL, NULL);
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       g_return_val_if_fail (nai != NULL, NULL);
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        retval = NULL;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp0_ = identity_manager_model_get_store_type (self);
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        saved_store_type = _tmp0_;
-#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp1_ = force_flat_file_store;
-#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp1_) {
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 217 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                identity_manager_model_set_store_type (self, IIDENTITY_CARD_STORE_STORE_TYPE_FLAT_FILE);
-#line 1616 "moonshot-identities-manager.c"
+#line 2169 "moonshot-identities-manager.c"
        }
        {
                GeeLinkedList* _id_list = NULL;
@@ -1622,23 +2176,23 @@ IdCard* identity_manager_model_find_id_card (IdentityManagerModel* self, const g
                gint _tmp4_ = 0;
                gint _tmp5_ = 0;
                gint _id_index = 0;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp2_ = identity_manager_model_get_card_list (self);
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _id_list = _tmp2_;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp3_ = _id_list;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp4_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp3_);
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp5_ = _tmp4_;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _id_size = _tmp5_;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _id_index = -1;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                while (TRUE) {
-#line 1642 "moonshot-identities-manager.c"
+#line 2195 "moonshot-identities-manager.c"
                        gint _tmp6_ = 0;
                        gint _tmp7_ = 0;
                        gint _tmp8_ = 0;
@@ -1650,307 +2204,376 @@ IdCard* identity_manager_model_find_id_card (IdentityManagerModel* self, const g
                        const gchar* _tmp13_ = NULL;
                        const gchar* _tmp14_ = NULL;
                        const gchar* _tmp15_ = NULL;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp6_ = _id_index;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _id_index = _tmp6_ + 1;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp7_ = _id_index;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp8_ = _id_size;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        if (!(_tmp7_ < _tmp8_)) {
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                break;
-#line 1666 "moonshot-identities-manager.c"
+#line 2219 "moonshot-identities-manager.c"
                        }
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp9_ = _id_list;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp10_ = _id_index;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        id = (IdCard*) _tmp11_;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp12_ = id;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp13_ = id_card_get_nai (_tmp12_);
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp14_ = _tmp13_;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp15_ = nai;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        if (g_strcmp0 (_tmp14_, _tmp15_) == 0) {
-#line 1686 "moonshot-identities-manager.c"
+#line 2239 "moonshot-identities-manager.c"
                                IdCard* _tmp16_ = NULL;
                                IdCard* _tmp17_ = NULL;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _tmp16_ = id;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _tmp17_ = _g_object_ref0 (_tmp16_);
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _g_object_unref0 (retval);
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                retval = _tmp17_;
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _g_object_unref0 (id);
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                break;
-#line 1701 "moonshot-identities-manager.c"
+#line 2254 "moonshot-identities-manager.c"
                        }
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _g_object_unref0 (id);
-#line 1705 "moonshot-identities-manager.c"
+#line 2258 "moonshot-identities-manager.c"
                }
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _g_object_unref0 (_id_list);
-#line 1709 "moonshot-identities-manager.c"
+#line 2262 "moonshot-identities-manager.c"
        }
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp18_ = saved_store_type;
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        identity_manager_model_set_store_type (self, _tmp18_);
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp20_ = force_flat_file_store;
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp20_) {
-#line 1719 "moonshot-identities-manager.c"
+#line 2272 "moonshot-identities-manager.c"
                IIdentityCardStoreStoreType _tmp21_ = 0;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp21_ = saved_store_type;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp19_ = _tmp21_ != IIDENTITY_CARD_STORE_STORE_TYPE_FLAT_FILE;
-#line 1725 "moonshot-identities-manager.c"
+#line 2278 "moonshot-identities-manager.c"
        } else {
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp19_ = FALSE;
-#line 1729 "moonshot-identities-manager.c"
+#line 2282 "moonshot-identities-manager.c"
        }
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp19_) {
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                g_signal_emit_by_name (self, "card-list-changed");
-#line 1735 "moonshot-identities-manager.c"
+#line 2288 "moonshot-identities-manager.c"
        }
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        result = retval;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return result;
-#line 1741 "moonshot-identities-manager.c"
+#line 2294 "moonshot-identities-manager.c"
 }
 
 
-void identity_manager_model_add_card (IdentityManagerModel* self, IdCard* card, gboolean force_flat_file_store) {
+void identity_manager_model_add_card (IdentityManagerModel* self, IdCard* card, gboolean force_flat_file_store, GeeArrayList** old_duplicates) {
+       GeeArrayList* _vala_old_duplicates = NULL;
        IdCard* _tmp0_ = NULL;
        gboolean _tmp1_ = FALSE;
        gboolean _tmp2_ = FALSE;
        gchar* candidate = NULL;
        IIdentityCardStoreStoreType saved_store_type = 0;
-       IIdentityCardStoreStoreType _tmp3_ = 0;
-       gboolean _tmp4_ = FALSE;
-       IdCard* _tmp5_ = NULL;
+       IIdentityCardStoreStoreType _tmp4_ = 0;
+       gboolean _tmp5_ = FALSE;
        IdCard* _tmp6_ = NULL;
-       const gchar* _tmp7_ = NULL;
-       const gchar* _tmp8_ = NULL;
-       gchar* _tmp9_ = NULL;
-       gboolean _tmp10_ = FALSE;
-       IdCard* _tmp13_ = NULL;
-       gboolean _tmp14_ = FALSE;
-       gboolean _tmp15_ = FALSE;
-       IIdentityCardStore* _tmp19_ = NULL;
-       IdCard* _tmp20_ = NULL;
-       IIdentityCardStoreStoreType _tmp21_ = 0;
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       GeeArrayList* _tmp7_ = NULL;
+       IdCard* _tmp8_ = NULL;
+       const gchar* _tmp9_ = NULL;
+       const gchar* _tmp10_ = NULL;
+       gchar* _tmp11_ = NULL;
+       gboolean _tmp12_ = FALSE;
+       IdCard* _tmp15_ = NULL;
+       gboolean _tmp16_ = FALSE;
+       gboolean _tmp17_ = FALSE;
+       MoonshotLogger* _tmp21_ = NULL;
+       IdCard* _tmp22_ = NULL;
+       const gchar* _tmp23_ = NULL;
+       const gchar* _tmp24_ = NULL;
+       IdCard* _tmp25_ = NULL;
+       gchar* _tmp26_ = NULL;
+       gchar* _tmp27_ = NULL;
+       gchar* _tmp28_ = NULL;
+       gchar* _tmp29_ = NULL;
+       IIdentityCardStore* _tmp30_ = NULL;
+       IdCard* _tmp31_ = NULL;
+       IIdentityCardStoreStoreType _tmp32_ = 0;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_if_fail (self != NULL);
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_if_fail (card != NULL);
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp0_ = card;
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp1_ = id_card_get_temporary (_tmp0_);
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp2_ = _tmp1_;
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp2_) {
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 2341 "moonshot-identities-manager.c"
+               MoonshotLogger* _tmp3_ = NULL;
+#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp3_ = identity_manager_model_logger;
+#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               moonshot_logger_trace (_tmp3_, "add_card: card is temporary; returning.", NULL);
+#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               if (old_duplicates) {
+#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       *old_duplicates = _vala_old_duplicates;
+#line 2351 "moonshot-identities-manager.c"
+               } else {
+#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _g_object_unref0 (_vala_old_duplicates);
+#line 2355 "moonshot-identities-manager.c"
+               }
+#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                return;
-#line 1779 "moonshot-identities-manager.c"
+#line 2359 "moonshot-identities-manager.c"
        }
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp3_ = identity_manager_model_get_store_type (self);
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       saved_store_type = _tmp3_;
-#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp4_ = force_flat_file_store;
-#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       if (_tmp4_) {
-#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 239 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp4_ = identity_manager_model_get_store_type (self);
+#line 239 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       saved_store_type = _tmp4_;
+#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp5_ = force_flat_file_store;
+#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       if (_tmp5_) {
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                identity_manager_model_set_store_type (self, IIDENTITY_CARD_STORE_STORE_TYPE_FLAT_FILE);
-#line 1791 "moonshot-identities-manager.c"
+#line 2371 "moonshot-identities-manager.c"
        }
-#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp5_ = card;
-#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       identity_manager_model_remove_duplicates (self, _tmp5_);
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp6_ = card;
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp7_ = id_card_get_display_name (_tmp6_);
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp8_ = _tmp7_;
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp10_ = identity_manager_model_display_name_is_valid (self, _tmp8_, &_tmp9_);
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       identity_manager_model_remove_duplicates (self, _tmp6_, &_tmp7_);
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _g_object_unref0 (_vala_old_duplicates);
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _vala_old_duplicates = _tmp7_;
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp8_ = card;
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp9_ = id_card_get_display_name (_tmp8_);
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp10_ = _tmp9_;
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp12_ = identity_manager_model_display_name_is_valid (self, _tmp10_, &_tmp11_);
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _g_free0 (candidate);
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       candidate = _tmp9_;
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       if (!_tmp10_) {
-#line 1811 "moonshot-identities-manager.c"
-               IdCard* _tmp11_ = NULL;
-               const gchar* _tmp12_ = NULL;
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp11_ = card;
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp12_ = candidate;
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               id_card_set_display_name (_tmp11_, _tmp12_);
-#line 1820 "moonshot-identities-manager.c"
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       candidate = _tmp11_;
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       if (!_tmp12_) {
+#line 2395 "moonshot-identities-manager.c"
+               IdCard* _tmp13_ = NULL;
+               const gchar* _tmp14_ = NULL;
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp13_ = card;
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp14_ = candidate;
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               id_card_set_display_name (_tmp13_, _tmp14_);
+#line 2404 "moonshot-identities-manager.c"
        }
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp13_ = card;
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp14_ = id_card_get_store_password (_tmp13_);
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp15_ = _tmp14_;
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       if (!_tmp15_) {
-#line 1830 "moonshot-identities-manager.c"
-               PasswordHashTable* _tmp16_ = NULL;
-               IdCard* _tmp17_ = NULL;
-               IIdentityCardStore* _tmp18_ = NULL;
-#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp16_ = self->priv->password_table;
-#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp17_ = card;
-#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp18_ = self->priv->store;
-#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               password_hash_table_CachePassword (_tmp16_, _tmp17_, _tmp18_);
-#line 1842 "moonshot-identities-manager.c"
+#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp15_ = card;
+#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp16_ = id_card_get_store_password (_tmp15_);
+#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp17_ = _tmp16_;
+#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       if (!_tmp17_) {
+#line 2414 "moonshot-identities-manager.c"
+               PasswordHashTable* _tmp18_ = NULL;
+               IdCard* _tmp19_ = NULL;
+               IIdentityCardStore* _tmp20_ = NULL;
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp18_ = self->priv->password_table;
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp19_ = card;
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp20_ = self->priv->store;
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               password_hash_table_CachePassword (_tmp18_, _tmp19_, _tmp20_);
+#line 2426 "moonshot-identities-manager.c"
        }
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp19_ = self->priv->store;
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp20_ = card;
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       iidentity_card_store_add_card (_tmp19_, _tmp20_);
-#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp21_ = saved_store_type;
-#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       identity_manager_model_set_store_type (self, _tmp21_);
-#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp21_ = identity_manager_model_logger;
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp22_ = card;
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp23_ = id_card_get_display_name (_tmp22_);
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp24_ = _tmp23_;
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp25_ = card;
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp26_ = id_card_get_services_string (_tmp25_, "; ");
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp27_ = _tmp26_;
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp28_ = g_strdup_printf ("add_card: Adding card '%s' with services: '%s'", _tmp24_, _tmp27_);
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp29_ = _tmp28_;
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       moonshot_logger_trace (_tmp21_, _tmp29_, NULL);
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _g_free0 (_tmp29_);
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _g_free0 (_tmp27_);
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp30_ = self->priv->store;
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp31_ = card;
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       iidentity_card_store_add_card (_tmp30_, _tmp31_);
+#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp32_ = saved_store_type;
+#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       identity_manager_model_set_store_type (self, _tmp32_);
+#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_signal_emit_by_name (self, "card-list-changed");
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _g_free0 (candidate);
-#line 1858 "moonshot-identities-manager.c"
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       if (old_duplicates) {
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               *old_duplicates = _vala_old_duplicates;
+#line 2470 "moonshot-identities-manager.c"
+       } else {
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _g_object_unref0 (_vala_old_duplicates);
+#line 2474 "moonshot-identities-manager.c"
+       }
 }
 
 
 IdCard* identity_manager_model_update_card (IdentityManagerModel* self, IdCard* card) {
        IdCard* result = NULL;
+       MoonshotLogger* _tmp0_ = NULL;
        IdCard* retval = NULL;
-       IdCard* _tmp0_ = NULL;
-       gboolean _tmp1_ = FALSE;
+       IdCard* _tmp1_ = NULL;
        gboolean _tmp2_ = FALSE;
-       IdCard* _tmp5_ = NULL;
-       gboolean _tmp6_ = FALSE;
+       gboolean _tmp3_ = FALSE;
+       IdCard* _tmp6_ = NULL;
        gboolean _tmp7_ = FALSE;
-       IIdentityCardStore* _tmp14_ = NULL;
-       IdCard* _tmp15_ = NULL;
+       gboolean _tmp8_ = FALSE;
+       IIdentityCardStore* _tmp15_ = NULL;
        IdCard* _tmp16_ = NULL;
-#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       IdCard* _tmp17_ = NULL;
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (self != NULL, NULL);
-#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (card != NULL, NULL);
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp0_ = card;
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp1_ = id_card_get_temporary (_tmp0_);
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp2_ = _tmp1_;
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       if (_tmp2_) {
-#line 1886 "moonshot-identities-manager.c"
-               IdCard* _tmp3_ = NULL;
+#line 263 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp0_ = identity_manager_model_logger;
+#line 263 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       moonshot_logger_trace (_tmp0_, "update_card", NULL);
+#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp1_ = card;
+#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp2_ = id_card_get_temporary (_tmp1_);
+#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp3_ = _tmp2_;
+#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       if (_tmp3_) {
+#line 2508 "moonshot-identities-manager.c"
                IdCard* _tmp4_ = NULL;
-#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp3_ = card;
-#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp4_ = _g_object_ref0 (_tmp3_);
-#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               IdCard* _tmp5_ = NULL;
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp4_ = card;
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _g_object_unref0 (retval);
-#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               retval = _tmp4_;
-#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               retval = _tmp5_;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                result = retval;
-#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                return result;
-#line 1901 "moonshot-identities-manager.c"
+#line 2523 "moonshot-identities-manager.c"
        }
-#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp5_ = card;
-#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp6_ = id_card_get_store_password (_tmp5_);
-#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp7_ = _tmp6_;
-#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       if (!_tmp7_) {
-#line 1911 "moonshot-identities-manager.c"
-               PasswordHashTable* _tmp8_ = NULL;
-               IdCard* _tmp9_ = NULL;
-               IIdentityCardStore* _tmp10_ = NULL;
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp8_ = self->priv->password_table;
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp9_ = card;
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp10_ = self->priv->store;
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               password_hash_table_CachePassword (_tmp8_, _tmp9_, _tmp10_);
-#line 1923 "moonshot-identities-manager.c"
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp6_ = card;
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp7_ = id_card_get_store_password (_tmp6_);
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp8_ = _tmp7_;
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       if (!_tmp8_) {
+#line 2533 "moonshot-identities-manager.c"
+               PasswordHashTable* _tmp9_ = NULL;
+               IdCard* _tmp10_ = NULL;
+               IIdentityCardStore* _tmp11_ = NULL;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp9_ = self->priv->password_table;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp10_ = card;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp11_ = self->priv->store;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               password_hash_table_CachePassword (_tmp9_, _tmp10_, _tmp11_);
+#line 2545 "moonshot-identities-manager.c"
        } else {
-               PasswordHashTable* _tmp11_ = NULL;
-               IdCard* _tmp12_ = NULL;
-               IIdentityCardStore* _tmp13_ = NULL;
-#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp11_ = self->priv->password_table;
-#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp12_ = card;
-#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp13_ = self->priv->store;
-#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               password_hash_table_RemovePassword (_tmp11_, _tmp12_, _tmp13_);
-#line 1936 "moonshot-identities-manager.c"
+               PasswordHashTable* _tmp12_ = NULL;
+               IdCard* _tmp13_ = NULL;
+               IIdentityCardStore* _tmp14_ = NULL;
+#line 274 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp12_ = self->priv->password_table;
+#line 274 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp13_ = card;
+#line 274 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp14_ = self->priv->store;
+#line 274 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               password_hash_table_RemovePassword (_tmp12_, _tmp13_, _tmp14_);
+#line 2558 "moonshot-identities-manager.c"
        }
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp14_ = self->priv->store;
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp15_ = card;
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp16_ = iidentity_card_store_update_card (_tmp14_, _tmp15_);
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 275 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp15_ = self->priv->store;
+#line 275 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp16_ = card;
+#line 275 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp17_ = iidentity_card_store_update_card (_tmp15_, _tmp16_);
+#line 275 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _g_object_unref0 (retval);
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       retval = _tmp16_;
-#line 217 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 275 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       retval = _tmp17_;
+#line 276 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_signal_emit_by_name (self, "card-list-changed");
-#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        result = retval;
-#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return result;
-#line 1954 "moonshot-identities-manager.c"
+#line 2576 "moonshot-identities-manager.c"
 }
 
 
@@ -1965,43 +2588,43 @@ static gboolean identity_manager_model_remove_card_internal (IdentityManagerMode
        IIdentityCardStore* _tmp6_ = NULL;
        IdCard* _tmp7_ = NULL;
        gboolean _tmp8_ = FALSE;
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (card != NULL, FALSE);
-#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp0_ = card;
-#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp1_ = id_card_get_temporary (_tmp0_);
-#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp2_ = _tmp1_;
-#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp2_) {
-#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                result = FALSE;
-#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                return result;
-#line 1985 "moonshot-identities-manager.c"
+#line 2607 "moonshot-identities-manager.c"
        }
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp3_ = self->priv->password_table;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp4_ = card;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp5_ = self->priv->store;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        password_hash_table_RemovePassword (_tmp3_, _tmp4_, _tmp5_);
-#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp6_ = self->priv->store;
-#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp7_ = card;
-#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp8_ = iidentity_card_store_remove_card (_tmp6_, _tmp7_);
-#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        result = _tmp8_;
-#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return result;
-#line 2005 "moonshot-identities-manager.c"
+#line 2627 "moonshot-identities-manager.c"
 }
 
 
@@ -2009,29 +2632,80 @@ gboolean identity_manager_model_remove_card (IdentityManagerModel* self, IdCard*
        gboolean result = FALSE;
        IdCard* _tmp0_ = NULL;
        gboolean _tmp1_ = FALSE;
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       MoonshotLogger* _tmp9_ = NULL;
+       IdCard* _tmp10_ = NULL;
+       const gchar* _tmp11_ = NULL;
+       const gchar* _tmp12_ = NULL;
+       const gchar* _tmp13_ = NULL;
+       gchar* _tmp14_ = NULL;
+       gchar* _tmp15_ = NULL;
+#line 287 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 287 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (card != NULL, FALSE);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp0_ = card;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp1_ = identity_manager_model_remove_card_internal (self, _tmp0_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp1_) {
-#line 230 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 2652 "moonshot-identities-manager.c"
+               MoonshotLogger* _tmp2_ = NULL;
+               IdCard* _tmp3_ = NULL;
+               const gchar* _tmp4_ = NULL;
+               const gchar* _tmp5_ = NULL;
+               const gchar* _tmp6_ = NULL;
+               gchar* _tmp7_ = NULL;
+               gchar* _tmp8_ = NULL;
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp2_ = identity_manager_model_logger;
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp3_ = card;
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp4_ = id_card_get_display_name (_tmp3_);
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp5_ = _tmp4_;
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp6_ = string_to_string (_tmp5_);
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp7_ = g_strconcat ("remove_card: Removed '", _tmp6_, "'", NULL);
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp8_ = _tmp7_;
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               moonshot_logger_trace (_tmp2_, _tmp8_, NULL);
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _g_free0 (_tmp8_);
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                g_signal_emit_by_name (self, "card-list-changed");
-#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                result = TRUE;
-#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 291 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                return result;
-#line 2029 "moonshot-identities-manager.c"
+#line 2684 "moonshot-identities-manager.c"
        }
-#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp9_ = identity_manager_model_logger;
+#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp10_ = card;
+#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp11_ = id_card_get_display_name (_tmp10_);
+#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp12_ = _tmp11_;
+#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp13_ = string_to_string (_tmp12_);
+#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp14_ = g_strconcat ("remove_card: Couldn't remove '", _tmp13_, "'", NULL);
+#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp15_ = _tmp14_;
+#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       moonshot_logger_warn (_tmp9_, _tmp15_, NULL);
+#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _g_free0 (_tmp15_);
+#line 294 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        result = FALSE;
-#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 294 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return result;
-#line 2035 "moonshot-identities-manager.c"
+#line 2708 "moonshot-identities-manager.c"
 }
 
 
@@ -2039,72 +2713,263 @@ void identity_manager_model_set_store_type (IdentityManagerModel* self, IIdentit
        gboolean _tmp0_ = FALSE;
        IIdentityCardStore* _tmp1_ = NULL;
        IIdentityCardStoreStoreType _tmp5_ = 0;
-#line 236 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       gchar* before_now = NULL;
+       const gchar* _tmp8_ = NULL;
+       gchar* _tmp9_ = NULL;
+       gchar* _tmp10_ = NULL;
+       gchar* _tmp11_ = NULL;
+       gchar* _tmp12_ = NULL;
+       gboolean save_needed = FALSE;
+       gboolean _tmp45_ = FALSE;
+#line 299 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_if_fail (self != NULL);
-#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 300 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp1_ = self->priv->store;
-#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 300 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp1_ != NULL) {
-#line 2049 "moonshot-identities-manager.c"
+#line 2730 "moonshot-identities-manager.c"
                IIdentityCardStore* _tmp2_ = NULL;
                IIdentityCardStoreStoreType _tmp3_ = 0;
                IIdentityCardStoreStoreType _tmp4_ = 0;
-#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 300 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp2_ = self->priv->store;
-#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 300 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp3_ = iidentity_card_store_get_store_type (_tmp2_);
-#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 300 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp4_ = type;
-#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 300 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp0_ = _tmp3_ == _tmp4_;
-#line 2061 "moonshot-identities-manager.c"
+#line 2742 "moonshot-identities-manager.c"
        } else {
-#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 300 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp0_ = FALSE;
-#line 2065 "moonshot-identities-manager.c"
+#line 2746 "moonshot-identities-manager.c"
        }
-#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 300 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        if (_tmp0_) {
-#line 238 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                return;
-#line 2071 "moonshot-identities-manager.c"
+#line 2752 "moonshot-identities-manager.c"
        }
-#line 239 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 302 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp5_ = type;
-#line 239 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 302 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        switch (_tmp5_) {
-#line 239 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 302 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                case IIDENTITY_CARD_STORE_STORE_TYPE_KEYRING:
-#line 2079 "moonshot-identities-manager.c"
+#line 2760 "moonshot-identities-manager.c"
                {
                        KeyringStore* _tmp6_ = NULL;
-#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp6_ = keyring_store_new ();
-#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _g_object_unref0 (self->priv->store);
-#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        self->priv->store = (IIdentityCardStore*) _tmp6_;
-#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        break;
-#line 2090 "moonshot-identities-manager.c"
+#line 2771 "moonshot-identities-manager.c"
                }
                default:
-#line 239 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 302 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                case IIDENTITY_CARD_STORE_STORE_TYPE_FLAT_FILE:
-#line 2095 "moonshot-identities-manager.c"
+#line 2776 "moonshot-identities-manager.c"
                {
                        LocalFlatFileStore* _tmp7_ = NULL;
-#line 247 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp7_ = local_flat_file_store_new ();
-#line 247 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _g_object_unref0 (self->priv->store);
-#line 247 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        self->priv->store = (IIdentityCardStore*) _tmp7_;
-#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        break;
-#line 2106 "moonshot-identities-manager.c"
+#line 2787 "moonshot-identities-manager.c"
+               }
+       }
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp8_ = _ ("Before ");
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp9_ = trust_anchor_format_datetime_now ();
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp10_ = _tmp9_;
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp11_ = g_strconcat (_tmp8_, _tmp10_, NULL);
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp12_ = _tmp11_;
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _g_free0 (_tmp10_);
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       before_now = _tmp12_;
+#line 317 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       save_needed = FALSE;
+#line 2806 "moonshot-identities-manager.c"
+       {
+               GeeLinkedList* _id_list = NULL;
+               IIdentityCardStore* _tmp13_ = NULL;
+               GeeLinkedList* _tmp14_ = NULL;
+               gint _id_size = 0;
+               GeeLinkedList* _tmp15_ = NULL;
+               gint _tmp16_ = 0;
+               gint _tmp17_ = 0;
+               gint _id_index = 0;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp13_ = self->priv->store;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp14_ = iidentity_card_store_get_card_list (_tmp13_);
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _id_list = _tmp14_;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp15_ = _id_list;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp16_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp15_);
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp17_ = _tmp16_;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _id_size = _tmp17_;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _id_index = -1;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               while (TRUE) {
+#line 2834 "moonshot-identities-manager.c"
+                       gint _tmp18_ = 0;
+                       gint _tmp19_ = 0;
+                       gint _tmp20_ = 0;
+                       IdCard* id = NULL;
+                       GeeLinkedList* _tmp21_ = NULL;
+                       gint _tmp22_ = 0;
+                       gpointer _tmp23_ = NULL;
+                       gboolean _tmp24_ = FALSE;
+                       IdCard* _tmp25_ = NULL;
+                       TrustAnchor* _tmp26_ = NULL;
+                       TrustAnchor* _tmp27_ = NULL;
+                       gboolean _tmp28_ = FALSE;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp18_ = _id_index;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _id_index = _tmp18_ + 1;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp19_ = _id_index;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp20_ = _id_size;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       if (!(_tmp19_ < _tmp20_)) {
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               break;
+#line 2859 "moonshot-identities-manager.c"
+                       }
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp21_ = _id_list;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp22_ = _id_index;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp23_ = gee_abstract_list_get ((GeeAbstractList*) _tmp21_, _tmp22_);
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       id = (IdCard*) _tmp23_;
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp25_ = id;
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp26_ = id_card_get_trust_anchor (_tmp25_);
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp27_ = _tmp26_;
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp28_ = trust_anchor_is_empty (_tmp27_);
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       if (!_tmp28_) {
+#line 2879 "moonshot-identities-manager.c"
+                               IdCard* _tmp29_ = NULL;
+                               TrustAnchor* _tmp30_ = NULL;
+                               TrustAnchor* _tmp31_ = NULL;
+                               const gchar* _tmp32_ = NULL;
+                               const gchar* _tmp33_ = NULL;
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp29_ = id;
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp30_ = id_card_get_trust_anchor (_tmp29_);
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp31_ = _tmp30_;
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp32_ = trust_anchor_get_datetime_added (_tmp31_);
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp33_ = _tmp32_;
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp24_ = g_strcmp0 (_tmp33_, "") == 0;
+#line 2897 "moonshot-identities-manager.c"
+                       } else {
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp24_ = FALSE;
+#line 2901 "moonshot-identities-manager.c"
+                       }
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       if (_tmp24_) {
+#line 2905 "moonshot-identities-manager.c"
+                               MoonshotLogger* _tmp34_ = NULL;
+                               IdCard* _tmp35_ = NULL;
+                               const gchar* _tmp36_ = NULL;
+                               const gchar* _tmp37_ = NULL;
+                               const gchar* _tmp38_ = NULL;
+                               gchar* _tmp39_ = NULL;
+                               gchar* _tmp40_ = NULL;
+                               IdCard* _tmp41_ = NULL;
+                               TrustAnchor* _tmp42_ = NULL;
+                               TrustAnchor* _tmp43_ = NULL;
+                               const gchar* _tmp44_ = NULL;
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp34_ = identity_manager_model_logger;
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp35_ = id;
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp36_ = id_card_get_display_name (_tmp35_);
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp37_ = _tmp36_;
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp38_ = before_now;
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp39_ = g_strdup_printf ("set_store_type : Set ta_datetime_added for old trust anchor on '%s' to" \
+" '%s'", _tmp37_, _tmp38_);
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp40_ = _tmp39_;
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               moonshot_logger_trace (_tmp34_, _tmp40_, NULL);
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _g_free0 (_tmp40_);
+#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp41_ = id;
+#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp42_ = id_card_get_trust_anchor (_tmp41_);
+#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp43_ = _tmp42_;
+#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp44_ = before_now;
+#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               trust_anchor_set_datetime_added (_tmp43_, _tmp44_);
+#line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               save_needed = TRUE;
+#line 2947 "moonshot-identities-manager.c"
+                       }
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _g_object_unref0 (id);
+#line 2951 "moonshot-identities-manager.c"
                }
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _g_object_unref0 (_id_list);
+#line 2955 "moonshot-identities-manager.c"
        }
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp45_ = save_needed;
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       if (_tmp45_) {
+#line 2961 "moonshot-identities-manager.c"
+               IIdentityCardStore* _tmp46_ = NULL;
+#line 326 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp46_ = self->priv->store;
+#line 326 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               iidentity_card_store_store_id_cards (_tmp46_);
+#line 2967 "moonshot-identities-manager.c"
+       }
+#line 299 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _g_free0 (before_now);
+#line 2971 "moonshot-identities-manager.c"
 }
 
 
@@ -2112,25 +2977,25 @@ IIdentityCardStoreStoreType identity_manager_model_get_store_type (IdentityManag
        IIdentityCardStoreStoreType result = 0;
        IIdentityCardStore* _tmp0_ = NULL;
        IIdentityCardStoreStoreType _tmp1_ = 0;
-#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (self != NULL, 0);
-#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 331 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp0_ = self->priv->store;
-#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 331 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _tmp1_ = iidentity_card_store_get_store_type (_tmp0_);
-#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 331 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        result = _tmp1_;
-#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 331 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return result;
-#line 2126 "moonshot-identities-manager.c"
+#line 2989 "moonshot-identities-manager.c"
 }
 
 
 gboolean identity_manager_model_HasNonTrivialIdentities (IdentityManagerModel* self) {
        gboolean result = FALSE;
-#line 256 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 2134 "moonshot-identities-manager.c"
+#line 2997 "moonshot-identities-manager.c"
        {
                GeeLinkedList* _card_list = NULL;
                IIdentityCardStore* _tmp0_ = NULL;
@@ -2140,25 +3005,25 @@ gboolean identity_manager_model_HasNonTrivialIdentities (IdentityManagerModel* s
                gint _tmp3_ = 0;
                gint _tmp4_ = 0;
                gint _card_index = 0;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp0_ = self->priv->store;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp1_ = iidentity_card_store_get_card_list (_tmp0_);
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _card_list = _tmp1_;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp2_ = _card_list;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-               _tmp3_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp2_);
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+               _tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _tmp4_ = _tmp3_;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _card_size = _tmp4_;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _card_index = -1;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                while (TRUE) {
-#line 2162 "moonshot-identities-manager.c"
+#line 3025 "moonshot-identities-manager.c"
                        gint _tmp5_ = 0;
                        gint _tmp6_ = 0;
                        gint _tmp7_ = 0;
@@ -2170,155 +3035,177 @@ gboolean identity_manager_model_HasNonTrivialIdentities (IdentityManagerModel* s
                        gboolean _tmp12_ = FALSE;
                        IdCard* _tmp13_ = NULL;
                        gboolean _tmp14_ = FALSE;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp5_ = _card_index;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _card_index = _tmp5_ + 1;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp6_ = _card_index;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp7_ = _card_size;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        if (!(_tmp6_ < _tmp7_)) {
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                break;
-#line 2186 "moonshot-identities-manager.c"
+#line 3049 "moonshot-identities-manager.c"
                        }
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp8_ = _card_list;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp9_ = _card_index;
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp8_, _tmp9_);
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        card = (IdCard*) _tmp10_;
-#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _tmp13_ = card;
-#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                       _tmp14_ = id_card_IsNoIdentity (_tmp13_);
-#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                       _tmp14_ = id_card_is_no_identity (_tmp13_);
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        if (!_tmp14_) {
-#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _tmp12_ = TRUE;
-#line 2204 "moonshot-identities-manager.c"
+#line 3067 "moonshot-identities-manager.c"
                        } else {
                                IdCard* _tmp15_ = NULL;
-                               gchar** _tmp16_ = NULL;
-                               gint _tmp16__length1 = 0;
-                               gchar** _tmp17_ = NULL;
-                               gint _tmp17__length1 = 0;
-#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               GeeArrayList* _tmp16_ = NULL;
+                               GeeArrayList* _tmp17_ = NULL;
+                               gint _tmp18_ = 0;
+                               gint _tmp19_ = 0;
+#line 339 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _tmp15_ = card;
-#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp16_ = id_card_get_services (_tmp15_, &_tmp16__length1);
-#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 339 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp16_ = id_card_get_services (_tmp15_);
+#line 339 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _tmp17_ = _tmp16_;
-#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp17__length1 = _tmp16__length1;
-#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp12_ = _tmp17__length1 > 0;
-#line 2221 "moonshot-identities-manager.c"
+#line 339 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp18_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp17_);
+#line 339 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp19_ = _tmp18_;
+#line 339 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp12_ = _tmp19_ > 0;
+#line 3086 "moonshot-identities-manager.c"
                        }
-#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        if (_tmp12_) {
-#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _tmp11_ = TRUE;
-#line 2227 "moonshot-identities-manager.c"
+#line 3092 "moonshot-identities-manager.c"
                        } else {
-                               IdCard* _tmp18_ = NULL;
-                               Rule* _tmp19_ = NULL;
-                               gint _tmp19__length1 = 0;
-                               Rule* _tmp20_ = NULL;
-                               gint _tmp20__length1 = 0;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp18_ = card;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp19_ = id_card_get_rules (_tmp18_, &_tmp19__length1);
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp20_ = _tmp19_;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp20__length1 = _tmp19__length1;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-                               _tmp11_ = _tmp20__length1 > 0;
-#line 2244 "moonshot-identities-manager.c"
+                               IdCard* _tmp20_ = NULL;
+                               Rule* _tmp21_ = NULL;
+                               gint _tmp21__length1 = 0;
+                               Rule* _tmp22_ = NULL;
+                               gint _tmp22__length1 = 0;
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp20_ = card;
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp21_ = id_card_get_rules (_tmp20_, &_tmp21__length1);
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp22_ = _tmp21_;
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp22__length1 = _tmp21__length1;
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+                               _tmp11_ = _tmp22__length1 > 0;
+#line 3109 "moonshot-identities-manager.c"
                        }
-#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        if (_tmp11_) {
-#line 263 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 341 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                result = TRUE;
-#line 263 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 341 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _g_object_unref0 (card);
-#line 263 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 341 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                _g_object_unref0 (_card_list);
-#line 263 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 341 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                                return result;
-#line 2256 "moonshot-identities-manager.c"
+#line 3121 "moonshot-identities-manager.c"
                        }
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                        _g_object_unref0 (card);
-#line 2260 "moonshot-identities-manager.c"
+#line 3125 "moonshot-identities-manager.c"
                }
-#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
                _g_object_unref0 (_card_list);
-#line 2264 "moonshot-identities-manager.c"
+#line 3129 "moonshot-identities-manager.c"
        }
-#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 344 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        result = FALSE;
-#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 344 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return result;
-#line 2270 "moonshot-identities-manager.c"
+#line 3135 "moonshot-identities-manager.c"
 }
 
 
 static gpointer _identity_manager_app_ref0 (gpointer self) {
-#line 273 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return self ? identity_manager_app_ref (self) : NULL;
-#line 2277 "moonshot-identities-manager.c"
+#line 3142 "moonshot-identities-manager.c"
 }
 
 
 IdentityManagerModel* identity_manager_model_construct (GType object_type, IdentityManagerApp* parent_app, IIdentityCardStoreStoreType store_type) {
        IdentityManagerModel * self = NULL;
-       IdentityManagerApp* _tmp0_ = NULL;
-       IdentityManagerApp* _tmp1_ = NULL;
-       PasswordHashTable* _tmp2_ = NULL;
-       IIdentityCardStoreStoreType _tmp3_ = 0;
-#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       MoonshotLogger* _tmp0_ = NULL;
+       IIdentityCardStoreStoreType _tmp1_ = 0;
+       GEnumValue* _tmp2_;
+       gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
+       IdentityManagerApp* _tmp5_ = NULL;
+       IdentityManagerApp* _tmp6_ = NULL;
+       PasswordHashTable* _tmp7_ = NULL;
+       IIdentityCardStoreStoreType _tmp8_ = 0;
+#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_return_val_if_fail (parent_app != NULL, NULL);
-#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        self = (IdentityManagerModel*) g_object_new (object_type, NULL);
-#line 273 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp0_ = parent_app;
-#line 273 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp1_ = _identity_manager_app_ref0 (_tmp0_);
-#line 273 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp0_ = identity_manager_model_logger;
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp1_ = store_type;
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp2_ = g_enum_get_value (g_type_class_ref (IIDENTITY_CARD_STORE_TYPE_STORE_TYPE), _tmp1_);
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp3_ = g_strconcat ("IdentityManagerModel: store_type=", (_tmp2_ != NULL) ? _tmp2_->value_name : NULL, NULL);
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp4_ = _tmp3_;
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       moonshot_logger_trace (_tmp0_, _tmp4_, NULL);
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _g_free0 (_tmp4_);
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp5_ = parent_app;
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp6_ = _identity_manager_app_ref0 (_tmp5_);
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _identity_manager_app_unref0 (self->priv->parent);
-#line 273 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       self->priv->parent = _tmp1_;
-#line 274 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp2_ = password_hash_table_new ();
-#line 274 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       self->priv->parent = _tmp6_;
+#line 353 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp7_ = password_hash_table_new ();
+#line 353 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _g_object_unref0 (self->priv->password_table);
-#line 274 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       self->priv->password_table = _tmp2_;
-#line 275 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       _tmp3_ = store_type;
-#line 275 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
-       identity_manager_model_set_store_type (self, _tmp3_);
-#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 353 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       self->priv->password_table = _tmp7_;
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp8_ = store_type;
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       identity_manager_model_set_store_type (self, _tmp8_);
+#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return self;
-#line 2311 "moonshot-identities-manager.c"
+#line 3195 "moonshot-identities-manager.c"
 }
 
 
 IdentityManagerModel* identity_manager_model_new (IdentityManagerApp* parent_app, IIdentityCardStoreStoreType store_type) {
-#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        return identity_manager_model_construct (TYPE_IDENTITY_MANAGER_MODEL, parent_app, store_type);
-#line 2318 "moonshot-identities-manager.c"
+#line 3202 "moonshot-identities-manager.c"
 }
 
 
 static void identity_manager_model_class_init (IdentityManagerModelClass * klass) {
+       MoonshotLogger* _tmp0_ = NULL;
 #line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        identity_manager_model_parent_class = g_type_class_peek_parent (klass);
 #line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
@@ -2327,14 +3214,18 @@ static void identity_manager_model_class_init (IdentityManagerModelClass * klass
        G_OBJECT_CLASS (klass)->finalize = identity_manager_model_finalize;
 #line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        g_signal_new ("card_list_changed", TYPE_IDENTITY_MANAGER_MODEL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
-#line 2331 "moonshot-identities-manager.c"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       _tmp0_ = get_logger ("IdentityManagerModel");
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+       identity_manager_model_logger = _tmp0_;
+#line 3220 "moonshot-identities-manager.c"
 }
 
 
 static void identity_manager_model_instance_init (IdentityManagerModel * self) {
 #line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        self->priv = IDENTITY_MANAGER_MODEL_GET_PRIVATE (self);
-#line 2338 "moonshot-identities-manager.c"
+#line 3227 "moonshot-identities-manager.c"
 }
 
 
@@ -2342,15 +3233,15 @@ static void identity_manager_model_finalize (GObject* obj) {
        IdentityManagerModel * self;
 #line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModel);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _g_object_unref0 (self->priv->password_table);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _g_object_unref0 (self->priv->store);
-#line 270 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
+#line 348 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        _identity_manager_app_unref0 (self->priv->parent);
 #line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identities-manager.vala"
        G_OBJECT_CLASS (identity_manager_model_parent_class)->finalize (obj);
-#line 2354 "moonshot-identities-manager.c"
+#line 3243 "moonshot-identities-manager.c"
 }
 
 
index 292fb0e..a11e726 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -64,7 +64,7 @@ public class PasswordHashTable : Object {
     private HashTable<string, Password> password_table;
 
     private static string ComputeHashKey(IdCard card, IIdentityCardStore store) {
-        return "%s_store_%d".printf( card.display_name, store.get_store_type() );
+        return "%s_store_%d".printf( card.nai, store.get_store_type() );
     }
 
     public void CachePassword(IdCard card, IIdentityCardStore store) {
@@ -86,80 +86,131 @@ public class PasswordHashTable : Object {
 }
 
 public class IdentityManagerModel : Object {
+    static MoonshotLogger logger = get_logger("IdentityManagerModel");
+
     private const string FILE_NAME = "identities.txt";
     private PasswordHashTable password_table;
     private IIdentityCardStore store;
     public LinkedList<IdCard>  get_card_list() {
-         var identities = store.get_card_list();
-         identities.sort( (a, b) => {
-             IdCard id_a = (IdCard )a;
-             IdCard id_b = (IdCard )b;
-             if (id_a.IsNoIdentity() && !id_b.IsNoIdentity()) {
-                return -1;
-             } else if (id_b.IsNoIdentity() && !id_a.IsNoIdentity()) {
-                return 1;
-             }
-             return strcmp(id_a.display_name, id_b.display_name);
-         });
-         if (identities.is_empty || !identities[0].IsNoIdentity())
-             identities.insert(0, IdCard.NewNoIdentity());
-         foreach (IdCard id_card in identities) {
-             if (!id_card.store_password) {
-                 password_table.RetrievePassword(id_card, store);
-             }
-         }
-         return identities;
+        var identities = store.get_card_list();
+        identities.sort((a, b) => {
+                IdCard id_a = (IdCard )a;
+                IdCard id_b = (IdCard )b;
+                if (id_a.is_no_identity() && !id_b.is_no_identity()) {
+                    return -1;
+                } else if (id_b.is_no_identity() && !id_a.is_no_identity()) {
+                    return 1;
+                }
+                return strcmp(id_a.display_name, id_b.display_name);
+            });
+        if (identities.is_empty || !identities[0].is_no_identity())
+            identities.insert(0, IdCard.NewNoIdentity());
+        foreach (IdCard id_card in identities) {
+            if (!id_card.store_password) {
+                password_table.RetrievePassword(id_card, store);
+            }
+        }
+        return identities;
     }
     public signal void card_list_changed();
 
     /* This method finds a valid display name */
-    public bool display_name_is_valid (string name,
-                                       out string? candidate)
+    public bool display_name_is_valid(string name,
+                                      out string? candidate)
     {
         if (&candidate != null)
-          candidate = null;
+            candidate = null;
         foreach (IdCard id_card in this.store.get_card_list())
         {
-          if (id_card.display_name == name)
-          {
-            if (&candidate != null)
+            if (id_card.display_name == name)
             {
-              for (int i=0; i<1000; i++)
-              {
-                string tmp = "%s %d".printf (name, i);
-                if (display_name_is_valid (tmp, null))
+                if (&candidate != null)
                 {
-                  candidate = tmp;
-                  break;
+                    for (int i = 0; i < 1000; i++)
+                    {
+                        string tmp = "%s %d".printf(name, i);
+                        if (display_name_is_valid(tmp, null))
+                        {
+                            candidate = tmp;
+                            break;
+                        }
+                    }
                 }
-              }
+                return false;
             }
-            return false;
-          }
         }
         return true;
     }
 
-    private bool remove_duplicates(IdCard card)
+    private bool remove_duplicates(IdCard new_card, out ArrayList<IdCard>? old_duplicates)
+    {
+        ArrayList<IdCard> dups = new ArrayList<IdCard>();
+        var cards = this.store.get_card_list();
+        foreach (IdCard id_card in cards) {
+            if ((new_card != id_card) && (id_card.nai == new_card.nai)) {
+                dups.add(id_card);
+            }
+        }
+
+        foreach (IdCard id_card in dups) {
+            logger.trace("removing duplicate id for '%s'\n".printf(new_card.nai));
+            remove_card_internal(id_card);
+
+            if (new_card.trust_anchor.Compare(id_card.trust_anchor) == 0) {
+                logger.trace("Old and new cards have same trust anchor. Re-using the datetime_added field from the old card.");
+                new_card.trust_anchor.set_datetime_added(id_card.trust_anchor.datetime_added);
+            }
+        }
+
+        if (&old_duplicates != null) {
+            old_duplicates = dups;
+        }
+
+        return (dups.size > 0);
+    }
+
+
+    public bool find_duplicate_nai_sets(out ArrayList<ArrayList<IdCard>> duplicates)
     {
-        bool duplicate_found = false;
+        var nais = new HashMap<string, ArrayList<IdCard>>();
+
+        duplicates = new ArrayList<ArrayList<IdCard>>();
+        LinkedList<IdCard> card_list = get_card_list() ;
+        if (card_list == null) {
+            return false;
+        }
+
         bool found = false;
-        do {
-           var cards = this.store.get_card_list();
-           found = false;
-           foreach (IdCard id_card in cards) {
-               if ((card != id_card) && (id_card.nai == card.nai)) {
-                  stdout.printf("removing duplicate id for '%s'\n", card.nai);
-                  remove_card_internal(id_card);
-                  found = duplicate_found = true;
-                  break;
-               }
-           }
-        } while (found);
-        return duplicate_found;
+        foreach (IdCard id_card in card_list) {
+            logger.trace(@"load_id_cards: Loading card with display name '$(id_card.display_name)' and nai '$(id_card.nai)'");
+
+            //!!TODO: This uniqueness check really belongs somewhere else -- like where we add
+            // IDs, and/or read them from storage. However, we should never hit this.
+
+            if (nais.has_key(id_card.nai)) {
+                ArrayList<IdCard> list = nais.get(id_card.nai);
+                list.add(id_card);
+            }
+            else {
+                ArrayList<IdCard> list = new ArrayList<IdCard>();
+                list.add(id_card);
+                nais.set(id_card.nai, list);
+            }
+        }
+
+        duplicates = new ArrayList<ArrayList<IdCard>>();
+        foreach (Map.Entry<string, ArrayList<IdCard>> entry in nais.entries) {
+            var list = entry.value;
+            if (list.size > 1) {
+                duplicates.add(list);
+                found = true;
+            }
+        }
+        return found;
     }
 
-    public IdCard? find_id_card(string nai, bool force_flat_file_store) {
+
+    public IdCard? find_id_card(string? nai, bool force_flat_file_store) {
         IdCard? retval = null;
         IIdentityCardStore.StoreType saved_store_type = get_store_type();
         if (force_flat_file_store)
@@ -178,9 +229,11 @@ public class IdentityManagerModel : Object {
         return retval;
     }
 
-    public void add_card(IdCard card, bool force_flat_file_store) {
-        if (card.temporary)
+    public void add_card(IdCard card, bool force_flat_file_store, out ArrayList<IdCard>? old_duplicates=null) {
+        if (card.temporary) {
+            logger.trace("add_card: card is temporary; returning.");
             return;
+        }
 
         string candidate;
         IIdentityCardStore.StoreType saved_store_type = get_store_type();
@@ -188,21 +241,27 @@ public class IdentityManagerModel : Object {
         if (force_flat_file_store)
             set_store_type(IIdentityCardStore.StoreType.FLAT_FILE);
 
-        remove_duplicates(card);
+        remove_duplicates(card, out old_duplicates);
 
-        if (!display_name_is_valid (card.display_name, out candidate))
+        if (!display_name_is_valid(card.display_name, out candidate))
         {
-          card.display_name = candidate;
+            card.display_name = candidate;
         }
 
         if (!card.store_password)
             password_table.CachePassword(card, store);
+
+        logger.trace("add_card: Adding card '%s' with services: '%s'"
+                     .printf(card.display_name, card.get_services_string("; ")));
+
         store.add_card(card);
         set_store_type(saved_store_type);
         card_list_changed();
-     }
+    }
+
+    public IdCard update_card(IdCard card) {
+        logger.trace("update_card");
 
-     public IdCard update_card(IdCard card) {
         IdCard retval;
         if (card.temporary) {
             retval = card;
@@ -216,60 +275,80 @@ public class IdentityManagerModel : Object {
         retval = store.update_card(card);
         card_list_changed();
         return retval;
-     }
+    }
 
-     private bool remove_card_internal(IdCard card) {
-         if (card.temporary)
-             return false;
-         password_table.RemovePassword(card, store);
-         return store.remove_card(card);
-     }
+    private bool remove_card_internal(IdCard card) {
+        if (card.temporary)
+            return false;
+        password_table.RemovePassword(card, store);
+        return store.remove_card(card);
+    }
 
-     public bool remove_card(IdCard card) {
-         if (remove_card_internal(card)) {
+    public bool remove_card(IdCard card) {
+        if (remove_card_internal(card)) {
+            logger.trace(@"remove_card: Removed '$(card.display_name)'");
             card_list_changed();
             return true;
-         }
-         return false;
-     }
-
-     public void set_store_type(IIdentityCardStore.StoreType type) {
-         if ((store != null) && (store.get_store_type() == type))
-             return;
-         switch (type) {
-#if GNOME_KEYRING
-             case IIdentityCardStore.StoreType.KEYRING:
-                 store = new KeyringStore();
-                 break;
-#endif
-             case IIdentityCardStore.StoreType.FLAT_FILE:
-             default:
-                 store = new LocalFlatFileStore();
-                 break;
-         }
-     }
-
-     public IIdentityCardStore.StoreType get_store_type() {
-         return store.get_store_type();
-     }
-
-     public bool HasNonTrivialIdentities() {
-         foreach (IdCard card in this.store.get_card_list()) {
-             // The 'NoIdentity' card is non-trivial if it has services or rules.
-             // All other cards are automatically non-trivial.
-             if ((!card.IsNoIdentity()) || 
-                 (card.services.length > 0) ||
-                 (card.rules.length > 0)) {
-                 return true;
-             }
-         }
-         return false;
-     }
+        }
+        logger.warn(@"remove_card: Couldn't remove '$(card.display_name)'");
+        return false;
+    }
+
+    // The name is misleading: This not only sets the store type,
+    // it also creates a new store instance, which loads the card data.
+    public void set_store_type(IIdentityCardStore.StoreType type) {
+        if ((store != null) && (store.get_store_type() == type))
+            return;
+        switch (type) {
+            #if GNOME_KEYRING
+        case IIdentityCardStore.StoreType.KEYRING:
+            store = new KeyringStore();
+            break;
+            #endif
+        case IIdentityCardStore.StoreType.FLAT_FILE:
+        default:
+            store = new LocalFlatFileStore();
+            break;
+        }
+
+        // Loop through the loaded IDs. If any trust anchors are old enough that we didn't record
+        // the datetime_added, add it now.
+        string before_now = _("Before ") + TrustAnchor.format_datetime_now();
+        bool save_needed = false;
+        foreach (IdCard id in this.store.get_card_list()) {
+            if (!id.trust_anchor.is_empty() && id.trust_anchor.datetime_added == "") {
+                logger.trace("set_store_type : Set ta_datetime_added for old trust anchor on '%s' to '%s'".printf(id.display_name, before_now));
+                id.trust_anchor.set_datetime_added(before_now);
+                save_needed = true;
+            }
+        }
+        if (save_needed) {
+            this.store.store_id_cards();
+        }
+    }
+
+    public IIdentityCardStore.StoreType get_store_type() {
+        return store.get_store_type();
+    }
+
+    public bool HasNonTrivialIdentities() {
+        foreach (IdCard card in this.store.get_card_list()) {
+            // The 'NoIdentity' card is non-trivial if it has services or rules.
+            // All other cards are automatically non-trivial.
+            if ((!card.is_no_identity()) || 
+                (card.services.size > 0) ||
+                (card.rules.length > 0)) {
+                return true;
+            }
+        }
+        return false;
+    }
 
 
     private IdentityManagerApp parent;
 
     public IdentityManagerModel(IdentityManagerApp parent_app, IIdentityCardStore.StoreType store_type) {
+        logger.trace("IdentityManagerModel: store_type=" + store_type.to_string());
         parent = parent_app;
         password_table = new PasswordHashTable();
         set_store_type(store_type);
diff --git a/src/moonshot-identity-dialog.c b/src/moonshot-identity-dialog.c
new file mode 100644 (file)
index 0000000..4f06f89
--- /dev/null
@@ -0,0 +1,4030 @@
+/* moonshot-identity-dialog.c generated by valac 0.34.9, the Vala compiler
+ * generated from moonshot-identity-dialog.vala, do not modify */
+
+/*
+ * Copyright (c) 2016, JANET(UK)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of JANET(UK) nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+#include <float.h>
+#include <math.h>
+#include <atk/atk.h>
+#include <gio/gio.h>
+
+
+#define TYPE_IDENTITY_DIALOG (identity_dialog_get_type ())
+#define IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_DIALOG, IdentityDialog))
+#define IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_DIALOG, IdentityDialogClass))
+#define IS_IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_DIALOG))
+#define IS_IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_DIALOG))
+#define IDENTITY_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_DIALOG, IdentityDialogClass))
+
+typedef struct _IdentityDialog IdentityDialog;
+typedef struct _IdentityDialogClass IdentityDialogClass;
+typedef struct _IdentityDialogPrivate IdentityDialogPrivate;
+
+#define TYPE_ID_CARD (id_card_get_type ())
+#define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
+#define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
+#define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
+#define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
+#define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
+
+typedef struct _IdCard IdCard;
+typedef struct _IdCardClass IdCardClass;
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_IDENTITY_MANAGER_VIEW (identity_manager_view_get_type ())
+#define IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerView))
+#define IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
+#define IS_IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_VIEW))
+#define IS_IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_VIEW))
+#define IDENTITY_MANAGER_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
+
+typedef struct _IdentityManagerView IdentityManagerView;
+typedef struct _IdentityManagerViewClass IdentityManagerViewClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _Block4Data Block4Data;
+
+#define TYPE_TRUST_ANCHOR (trust_anchor_get_type ())
+#define TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR, TrustAnchor))
+#define TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+#define IS_TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRUST_ANCHOR))
+#define IS_TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRUST_ANCHOR))
+#define TRUST_ANCHOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+
+typedef struct _TrustAnchor TrustAnchor;
+typedef struct _TrustAnchorClass TrustAnchorClass;
+#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
+
+#define TRUST_ANCHOR_TYPE_TRUST_ANCHOR_TYPE (trust_anchor_trust_anchor_type_get_type ())
+typedef struct _Block5Data Block5Data;
+typedef struct _Block6Data Block6Data;
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+struct _IdentityDialog {
+       GtkDialog parent_instance;
+       IdentityDialogPrivate * priv;
+       gboolean complete;
+       gboolean clear_trust_anchor;
+};
+
+struct _IdentityDialogClass {
+       GtkDialogClass parent_class;
+};
+
+struct _IdentityDialogPrivate {
+       GtkEntry* displayname_entry;
+       GtkLabel* displayname_label;
+       GtkEntry* realm_entry;
+       GtkLabel* realm_label;
+       GtkEntry* username_entry;
+       GtkLabel* username_label;
+       GtkEntry* password_entry;
+       GtkLabel* password_label;
+       GtkCheckButton* remember_checkbutton;
+       GtkLabel* message_label;
+       IdCard* card;
+       GeeArrayList* services;
+       GtkLabel* selected_item;
+};
+
+struct _Block4Data {
+       int _ref_count_;
+       IdentityDialog* self;
+       gint ncolumns;
+       gchar* ta_label_prefix;
+       gchar* none;
+       GtkLabel* ta_label;
+       GtkAttachOptions fill_and_expand;
+       GtkTable* ta_table;
+       IdCard* id;
+};
+
+typedef enum  {
+       TRUST_ANCHOR_TRUST_ANCHOR_TYPE_EMPTY,
+       TRUST_ANCHOR_TRUST_ANCHOR_TYPE_CA_CERT,
+       TRUST_ANCHOR_TRUST_ANCHOR_TYPE_SERVER_CERT
+} TrustAnchorTrustAnchorType;
+
+struct _Block5Data {
+       int _ref_count_;
+       IdentityDialog* self;
+       GtkButton* remove_button;
+       GtkTable* services_table;
+};
+
+struct _Block6Data {
+       int _ref_count_;
+       Block5Data * _data5_;
+       GtkLabel* label;
+};
+
+
+extern gchar* export_directory;
+gchar* export_directory = NULL;
+static gpointer identity_dialog_parent_class = NULL;
+static GdkColor identity_dialog_white;
+static GdkColor identity_dialog_white = {0};
+static GdkColor identity_dialog_selected_color;
+static GdkColor identity_dialog_selected_color = {0};
+static MoonshotLogger* identity_dialog_logger;
+static MoonshotLogger* identity_dialog_logger = NULL;
+
+#define CANCEL GTK_STOCK_CANCEL
+GType identity_dialog_get_type (void) G_GNUC_CONST;
+GType id_card_get_type (void) G_GNUC_CONST;
+#define IDENTITY_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_IDENTITY_DIALOG, IdentityDialogPrivate))
+enum  {
+       IDENTITY_DIALOG_DUMMY_PROPERTY,
+       IDENTITY_DIALOG_DISPLAY_NAME,
+       IDENTITY_DIALOG_ISSUER,
+       IDENTITY_DIALOG_USERNAME,
+       IDENTITY_DIALOG_PASSWORD,
+       IDENTITY_DIALOG_STORE_PASSWORD
+};
+void make_color (guint16 red, guint16 green, guint16 blue, GdkColor* result);
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* get_logger (const gchar* name);
+#define IDENTITY_DIALOG_displayname_labeltext _ ("Display Name")
+#define IDENTITY_DIALOG_realm_labeltext _ ("Realm")
+#define IDENTITY_DIALOG_username_labeltext _ ("Username")
+#define IDENTITY_DIALOG_password_labeltext _ ("Password")
+void identity_dialog_clear_password (IdentityDialog* self);
+void clear_password_entry (GtkEntry* entry);
+GeeArrayList* identity_dialog_get_services (IdentityDialog* self);
+GType identity_manager_view_get_type (void) G_GNUC_CONST;
+IdentityDialog* identity_dialog_new (IdentityManagerView* parent);
+IdentityDialog* identity_dialog_construct (GType object_type, IdentityManagerView* parent);
+IdentityDialog* identity_dialog_new_with_idcard (IdCard* a_card, const gchar* title, IdentityManagerView* parent);
+IdentityDialog* identity_dialog_construct_with_idcard (GType object_type, IdCard* a_card, const gchar* title, IdentityManagerView* parent);
+IdCard* id_card_new (void);
+IdCard* id_card_construct (GType object_type);
+const gchar* id_card_get_display_name (IdCard* self);
+const gchar* id_card_get_issuer (IdCard* self);
+const gchar* id_card_get_username (IdCard* self);
+gboolean id_card_get_store_password (IdCard* self);
+const gchar* id_card_get_password (IdCard* self);
+void set_atk_relation (GtkWidget* widget, GtkWidget* target_widget, AtkRelationType relationship);
+static void identity_dialog_add_as_vbox (GtkBox* content_area, GtkLabel* label, GtkEntry* entry);
+static void identity_dialog_on_response (IdentityDialog* self, GtkDialog* source, gint response_id);
+static void _identity_dialog_on_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
+GeeArrayList* id_card_get_services (IdCard* self);
+static GtkWidget* identity_dialog_make_trust_anchor_box (IdentityDialog* self, IdCard* id);
+static GtkVBox* identity_dialog_make_services_vbox (IdentityDialog* self);
+gboolean id_card_is_no_identity (IdCard* self);
+static void __lambda12_ (IdentityDialog* self);
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
+static void ___lambda12__gtk_object_destroy (GtkObject* _sender, gpointer self);
+void set_bg_color (GtkWidget* w);
+static Block4Data* block4_data_ref (Block4Data* _data4_);
+static void block4_data_unref (void * _userdata_);
+GType trust_anchor_get_type (void) G_GNUC_CONST;
+TrustAnchor* id_card_get_trust_anchor (IdCard* self);
+gboolean trust_anchor_is_empty (TrustAnchor* self);
+static void __lambda8_ (Block4Data* _data4_, GtkButton* w);
+gboolean warning_dialog_confirm (GtkWindow* parent, const gchar* message, const gchar* dialog_name);
+static void ___lambda8__gtk_button_clicked (GtkButton* _sender, gpointer self);
+const gchar* trust_anchor_get_datetime_added (TrustAnchor* self);
+GType trust_anchor_trust_anchor_type_get_type (void) G_GNUC_CONST;
+TrustAnchorTrustAnchorType trust_anchor_get_anchor_type (TrustAnchor* self);
+GtkWidget* make_ta_fingerprint_widget (const gchar* server_cert, const gchar* label_text);
+const gchar* trust_anchor_get_server_cert (TrustAnchor* self);
+static void ___lambda9_ (Block4Data* _data4_, GtkButton* w);
+static void identity_dialog_export_certificate (IdentityDialog* self, IdCard* id);
+static void ____lambda9__gtk_button_clicked (GtkButton* _sender, gpointer self);
+const gchar* trust_anchor_get_subject (TrustAnchor* self);
+const gchar* trust_anchor_get_subject_alt (TrustAnchor* self);
+gchar* trust_anchor_get_expiration_date (TrustAnchor* self, gchar** err_out);
+static gchar* identity_dialog_update_preamble (const gchar* preamble);
+static gchar* identity_dialog_update_message (const gchar* old_message, const gchar* new_item);
+static void identity_dialog_check_field (const gchar* field, GtkLabel* label, const gchar* fieldname, gchar** preamble, gchar** message);
+static gboolean identity_dialog_check_fields (IdentityDialog* self);
+gboolean identity_dialog_get_store_password (IdentityDialog* self);
+const gchar* identity_dialog_get_password (IdentityDialog* self);
+const gchar* identity_dialog_get_display_name (IdentityDialog* self);
+const gchar* identity_dialog_get_username (IdentityDialog* self);
+const gchar* identity_dialog_get_issuer (IdentityDialog* self);
+static Block5Data* block5_data_ref (Block5Data* _data5_);
+static void block5_data_unref (void * _userdata_);
+static Block6Data* block6_data_ref (Block6Data* _data6_);
+static void block6_data_unref (void * _userdata_);
+static gboolean ____lambda10_ (Block6Data* _data6_);
+const gchar* gtk_state_type_to_string (GtkStateType self);
+static gboolean _____lambda10__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static void __lambda11_ (Block5Data* _data5_, GtkButton* remove_button);
+static void ___lambda11__gtk_button_clicked (GtkButton* _sender, gpointer self);
+const gchar* trust_anchor_get_ca_cert (TrustAnchor* self);
+static void identity_dialog_finalize (GObject* obj);
+static void _vala_identity_dialog_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+
+
+/**
+     * Don't leave passwords in memory longer than necessary.
+     * This may not actually erase the password data bytes, but it seems to be the best we can do.
+     */
+void identity_dialog_clear_password (IdentityDialog* self) {
+       GtkEntry* _tmp0_ = NULL;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (self != NULL);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = self->priv->password_entry;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       clear_password_entry (_tmp0_);
+#line 281 "moonshot-identity-dialog.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 288 "moonshot-identity-dialog.c"
+}
+
+
+GeeArrayList* identity_dialog_get_services (IdentityDialog* self) {
+       GeeArrayList* result = NULL;
+       GeeArrayList* _tmp0_ = NULL;
+       GeeArrayList* _tmp1_ = NULL;
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = self->priv->services;
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       result = _tmp1_;
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return result;
+#line 306 "moonshot-identity-dialog.c"
+}
+
+
+IdentityDialog* identity_dialog_construct (GType object_type, IdentityManagerView* parent) {
+       IdentityDialog * self = NULL;
+       const gchar* _tmp0_ = NULL;
+       IdentityManagerView* _tmp1_ = NULL;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (parent != NULL, NULL);
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = _ ("Add ID Card");
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = parent;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self = (IdentityDialog*) identity_dialog_construct_with_idcard (object_type, NULL, _tmp0_, _tmp1_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return self;
+#line 324 "moonshot-identity-dialog.c"
+}
+
+
+IdentityDialog* identity_dialog_new (IdentityManagerView* parent) {
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return identity_dialog_construct (TYPE_IDENTITY_DIALOG, parent);
+#line 331 "moonshot-identity-dialog.c"
+}
+
+
+static const gchar* string_to_string (const gchar* self) {
+       const gchar* result = NULL;
+#line 1420 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = self;
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 343 "moonshot-identity-dialog.c"
+}
+
+
+static void _identity_dialog_on_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) {
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       identity_dialog_on_response ((IdentityDialog*) self, _sender, response_id);
+#line 350 "moonshot-identity-dialog.c"
+}
+
+
+static void __lambda12_ (IdentityDialog* self) {
+       MoonshotLogger* _tmp0_ = NULL;
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = identity_dialog_logger;
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       moonshot_logger_trace (_tmp0_, "Destroying IdentityDialog; clearing its password.", NULL);
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       identity_dialog_clear_password (self);
+#line 362 "moonshot-identity-dialog.c"
+}
+
+
+static void ___lambda12__gtk_object_destroy (GtkObject* _sender, gpointer self) {
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       __lambda12_ ((IdentityDialog*) self);
+#line 369 "moonshot-identity-dialog.c"
+}
+
+
+IdentityDialog* identity_dialog_construct_with_idcard (GType object_type, IdCard* a_card, const gchar* title, IdentityManagerView* parent) {
+       IdentityDialog * self = NULL;
+       gboolean is_new_card = FALSE;
+       IdCard* _tmp0_ = NULL;
+       IdCard* _tmp1_ = NULL;
+       IdCard* _tmp2_ = NULL;
+       IdCard* _tmp3_ = NULL;
+       IdCard* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       IdentityManagerView* _tmp7_ = NULL;
+       const gchar* _tmp8_ = NULL;
+       GtkBox* content_area = NULL;
+       GtkWidget* _tmp9_ = NULL;
+       GtkBox* _tmp10_ = NULL;
+       const gchar* _tmp11_ = NULL;
+       gchar* _tmp12_ = NULL;
+       gchar* _tmp13_ = NULL;
+       GtkLabel* _tmp14_ = NULL;
+       GtkLabel* _tmp15_ = NULL;
+       GtkEntry* _tmp16_ = NULL;
+       GtkEntry* _tmp17_ = NULL;
+       IdCard* _tmp18_ = NULL;
+       const gchar* _tmp19_ = NULL;
+       const gchar* _tmp20_ = NULL;
+       GtkEntry* _tmp21_ = NULL;
+       const gchar* _tmp22_ = NULL;
+       gchar* _tmp23_ = NULL;
+       gchar* _tmp24_ = NULL;
+       GtkLabel* _tmp25_ = NULL;
+       GtkLabel* _tmp26_ = NULL;
+       GtkEntry* _tmp27_ = NULL;
+       GtkEntry* _tmp28_ = NULL;
+       IdCard* _tmp29_ = NULL;
+       const gchar* _tmp30_ = NULL;
+       const gchar* _tmp31_ = NULL;
+       GtkEntry* _tmp32_ = NULL;
+       const gchar* _tmp33_ = NULL;
+       gchar* _tmp34_ = NULL;
+       gchar* _tmp35_ = NULL;
+       GtkLabel* _tmp36_ = NULL;
+       GtkLabel* _tmp37_ = NULL;
+       GtkEntry* _tmp38_ = NULL;
+       GtkEntry* _tmp39_ = NULL;
+       IdCard* _tmp40_ = NULL;
+       const gchar* _tmp41_ = NULL;
+       const gchar* _tmp42_ = NULL;
+       GtkEntry* _tmp43_ = NULL;
+       const gchar* _tmp44_ = NULL;
+       gchar* _tmp45_ = NULL;
+       gchar* _tmp46_ = NULL;
+       GtkLabel* _tmp47_ = NULL;
+       GtkLabel* _tmp48_ = NULL;
+       const gchar* _tmp49_ = NULL;
+       GtkCheckButton* _tmp50_ = NULL;
+       GtkCheckButton* _tmp51_ = NULL;
+       IdCard* _tmp52_ = NULL;
+       gboolean _tmp53_ = FALSE;
+       gboolean _tmp54_ = FALSE;
+       GtkEntry* _tmp55_ = NULL;
+       GtkEntry* _tmp56_ = NULL;
+       GtkEntry* _tmp57_ = NULL;
+       GtkEntry* _tmp58_ = NULL;
+       GtkEntry* _tmp59_ = NULL;
+       IdCard* _tmp60_ = NULL;
+       const gchar* _tmp61_ = NULL;
+       const gchar* _tmp62_ = NULL;
+       GtkLabel* _tmp63_ = NULL;
+       GtkLabel* _tmp64_ = NULL;
+       GtkLabel* _tmp65_ = NULL;
+       GtkEntry* _tmp66_ = NULL;
+       GtkLabel* _tmp67_ = NULL;
+       GtkEntry* _tmp68_ = NULL;
+       GtkLabel* _tmp69_ = NULL;
+       GtkEntry* _tmp70_ = NULL;
+       GtkLabel* _tmp71_ = NULL;
+       GtkEntry* _tmp72_ = NULL;
+       GtkBox* _tmp73_ = NULL;
+       GtkLabel* _tmp74_ = NULL;
+       GtkBox* _tmp75_ = NULL;
+       GtkLabel* _tmp76_ = NULL;
+       GtkEntry* _tmp77_ = NULL;
+       GtkBox* _tmp78_ = NULL;
+       GtkLabel* _tmp79_ = NULL;
+       GtkEntry* _tmp80_ = NULL;
+       GtkBox* _tmp81_ = NULL;
+       GtkLabel* _tmp82_ = NULL;
+       GtkEntry* _tmp83_ = NULL;
+       GtkBox* _tmp84_ = NULL;
+       GtkLabel* _tmp85_ = NULL;
+       GtkEntry* _tmp86_ = NULL;
+       GtkHBox* remember_hbox = NULL;
+       GtkHBox* _tmp87_ = NULL;
+       GtkHBox* _tmp88_ = NULL;
+       GtkHBox* _tmp89_ = NULL;
+       GtkHBox* _tmp90_ = NULL;
+       GtkHBox* _tmp91_ = NULL;
+       GtkCheckButton* _tmp92_ = NULL;
+       GtkBox* _tmp93_ = NULL;
+       GtkHBox* _tmp94_ = NULL;
+       GtkBox* _tmp95_ = NULL;
+       GeeArrayList* _tmp96_ = NULL;
+       GeeArrayList* _tmp97_ = NULL;
+       IdCard* _tmp98_ = NULL;
+       GeeArrayList* _tmp99_ = NULL;
+       GeeArrayList* _tmp100_ = NULL;
+       gboolean _tmp101_ = FALSE;
+       IdCard* _tmp113_ = NULL;
+       gboolean _tmp114_ = FALSE;
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (title != NULL, NULL);
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (parent != NULL, NULL);
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self = (IdentityDialog*) g_object_new (object_type, NULL);
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       is_new_card = FALSE;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = a_card;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (_tmp0_ == NULL) {
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               is_new_card = TRUE;
+#line 495 "moonshot-identity-dialog.c"
+       }
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp2_ = a_card;
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = _tmp3_;
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (_tmp1_ == NULL) {
+#line 505 "moonshot-identity-dialog.c"
+               IdCard* _tmp4_ = NULL;
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp4_ = id_card_new ();
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (_tmp1_);
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp1_ = _tmp4_;
+#line 513 "moonshot-identity-dialog.c"
+       }
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp5_ = _tmp1_;
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = NULL;
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->card);
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv->card = _tmp5_;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp6_ = title;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_window_set_title ((GtkWindow*) self, _tmp6_);
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_window_set_modal ((GtkWindow*) self, TRUE);
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp7_ = parent;
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_window_set_transient_for ((GtkWindow*) self, (GtkWindow*) _tmp7_);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp8_ = _ ("OK");
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_dialog_add_buttons ((GtkDialog*) self, CANCEL, GTK_RESPONSE_CANCEL, _tmp8_, GTK_RESPONSE_OK, NULL);
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp9_ = gtk_dialog_get_content_area ((GtkDialog*) self);
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GTK_TYPE_BOX, GtkBox));
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       content_area = _tmp10_;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp11_ = string_to_string (IDENTITY_DIALOG_displayname_labeltext);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp12_ = g_strconcat (_tmp11_, ":", NULL);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp13_ = _tmp12_;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp14_ = (GtkLabel*) gtk_label_new (_tmp13_);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp14_);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->displayname_label);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv->displayname_label = _tmp14_;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp13_);
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp15_ = self->priv->displayname_label;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) _tmp15_, (gfloat) 0, (gfloat) 0.5);
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp16_ = (GtkEntry*) gtk_entry_new ();
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp16_);
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->displayname_entry);
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv->displayname_entry = _tmp16_;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp17_ = self->priv->displayname_entry;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp18_ = self->priv->card;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp19_ = id_card_get_display_name (_tmp18_);
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp20_ = _tmp19_;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_entry_set_text (_tmp17_, _tmp20_);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp21_ = self->priv->displayname_entry;
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_entry_set_width_chars (_tmp21_, 40);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp22_ = string_to_string (IDENTITY_DIALOG_realm_labeltext);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp23_ = g_strconcat (_tmp22_, ":", NULL);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp24_ = _tmp23_;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp25_ = (GtkLabel*) gtk_label_new (_tmp24_);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp25_);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->realm_label);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv->realm_label = _tmp25_;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp24_);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp26_ = self->priv->realm_label;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) _tmp26_, (gfloat) 0, (gfloat) 0.5);
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp27_ = (GtkEntry*) gtk_entry_new ();
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp27_);
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->realm_entry);
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv->realm_entry = _tmp27_;
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp28_ = self->priv->realm_entry;
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp29_ = self->priv->card;
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp30_ = id_card_get_issuer (_tmp29_);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp31_ = _tmp30_;
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_entry_set_text (_tmp28_, _tmp31_);
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp32_ = self->priv->realm_entry;
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_entry_set_width_chars (_tmp32_, 60);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp33_ = string_to_string (IDENTITY_DIALOG_username_labeltext);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp34_ = g_strconcat (_tmp33_, ":", NULL);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp35_ = _tmp34_;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp36_ = (GtkLabel*) gtk_label_new (_tmp35_);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp36_);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->username_label);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv->username_label = _tmp36_;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp35_);
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp37_ = self->priv->username_label;
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) _tmp37_, (gfloat) 0, (gfloat) 0.5);
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp38_ = (GtkEntry*) gtk_entry_new ();
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp38_);
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->username_entry);
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv->username_entry = _tmp38_;
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp39_ = self->priv->username_entry;
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp40_ = self->priv->card;
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp41_ = id_card_get_username (_tmp40_);
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp42_ = _tmp41_;
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_entry_set_text (_tmp39_, _tmp42_);
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp43_ = self->priv->username_entry;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_entry_set_width_chars (_tmp43_, 40);
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp44_ = string_to_string (IDENTITY_DIALOG_password_labeltext);
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp45_ = g_strconcat (_tmp44_, ":", NULL);
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp46_ = _tmp45_;
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp47_ = (GtkLabel*) gtk_label_new (_tmp46_);
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp47_);
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->password_label);
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv->password_label = _tmp47_;
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp46_);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp48_ = self->priv->password_label;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) _tmp48_, (gfloat) 0, (gfloat) 0.5);
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp49_ = _ ("Remember password");
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp50_ = (GtkCheckButton*) gtk_check_button_new_with_label (_tmp49_);
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp50_);
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->remember_checkbutton);
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv->remember_checkbutton = _tmp50_;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp51_ = self->priv->remember_checkbutton;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp52_ = self->priv->card;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp53_ = id_card_get_store_password (_tmp52_);
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp54_ = _tmp53_;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_toggle_button_set_active ((GtkToggleButton*) _tmp51_, _tmp54_);
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp55_ = (GtkEntry*) gtk_entry_new ();
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp55_);
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->password_entry);
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv->password_entry = _tmp55_;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp56_ = self->priv->password_entry;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_entry_set_invisible_char (_tmp56_, (gunichar) '*');
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp57_ = self->priv->password_entry;
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_entry_set_visibility (_tmp57_, FALSE);
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp58_ = self->priv->password_entry;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_entry_set_width_chars (_tmp58_, 40);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp59_ = self->priv->password_entry;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp60_ = self->priv->card;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp61_ = id_card_get_password (_tmp60_);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp62_ = _tmp61_;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_entry_set_text (_tmp59_, _tmp62_);
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp63_ = (GtkLabel*) gtk_label_new ("");
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp63_);
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->message_label);
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv->message_label = _tmp63_;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp64_ = self->priv->message_label;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_widget_set_visible ((GtkWidget*) _tmp64_, FALSE);
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp65_ = self->priv->displayname_label;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp66_ = self->priv->displayname_entry;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       set_atk_relation ((GtkWidget*) _tmp65_, (GtkWidget*) _tmp66_, ATK_RELATION_LABEL_FOR);
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp67_ = self->priv->realm_label;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp68_ = self->priv->realm_entry;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       set_atk_relation ((GtkWidget*) _tmp67_, (GtkWidget*) _tmp68_, ATK_RELATION_LABEL_FOR);
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp69_ = self->priv->username_label;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp70_ = self->priv->username_entry;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       set_atk_relation ((GtkWidget*) _tmp69_, (GtkWidget*) _tmp70_, ATK_RELATION_LABEL_FOR);
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp71_ = self->priv->password_label;
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp72_ = self->priv->password_entry;
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       set_atk_relation ((GtkWidget*) _tmp71_, (GtkWidget*) _tmp72_, ATK_RELATION_LABEL_FOR);
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp73_ = content_area;
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp74_ = self->priv->message_label;
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start (_tmp73_, (GtkWidget*) _tmp74_, FALSE, FALSE, (guint) 6);
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp75_ = content_area;
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp76_ = self->priv->displayname_label;
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp77_ = self->priv->displayname_entry;
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       identity_dialog_add_as_vbox (_tmp75_, _tmp76_, _tmp77_);
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp78_ = content_area;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp79_ = self->priv->username_label;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp80_ = self->priv->username_entry;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       identity_dialog_add_as_vbox (_tmp78_, _tmp79_, _tmp80_);
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp81_ = content_area;
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp82_ = self->priv->realm_label;
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp83_ = self->priv->realm_entry;
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       identity_dialog_add_as_vbox (_tmp81_, _tmp82_, _tmp83_);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp84_ = content_area;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp85_ = self->priv->password_label;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp86_ = self->priv->password_entry;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       identity_dialog_add_as_vbox (_tmp84_, _tmp85_, _tmp86_);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp87_ = (GtkHBox*) gtk_hbox_new (FALSE, 40);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp87_);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       remember_hbox = _tmp87_;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp88_ = remember_hbox;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp89_ = (GtkHBox*) gtk_hbox_new (FALSE, 0);
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp89_);
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp90_ = _tmp89_;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp88_, (GtkWidget*) _tmp90_, FALSE, FALSE, (guint) 0);
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (_tmp90_);
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp91_ = remember_hbox;
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp92_ = self->priv->remember_checkbutton;
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp91_, (GtkWidget*) _tmp92_, FALSE, FALSE, (guint) 0);
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp93_ = content_area;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp94_ = remember_hbox;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start (_tmp93_, (GtkWidget*) _tmp94_, FALSE, FALSE, (guint) 2);
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_signal_connect_object ((GtkDialog*) self, "response", (GCallback) _identity_dialog_on_response_gtk_dialog_response, self, 0);
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp95_ = content_area;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_container_set_border_width ((GtkContainer*) _tmp95_, (guint) 6);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp96_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->services);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv->services = _tmp96_;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp97_ = self->priv->services;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp98_ = self->priv->card;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp99_ = id_card_get_services (_tmp98_);
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp100_ = _tmp99_;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gee_array_list_add_all (_tmp97_, (GeeCollection*) _tmp100_);
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp101_ = is_new_card;
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (!_tmp101_) {
+#line 869 "moonshot-identity-dialog.c"
+               GtkWidget* trust_anchor_box = NULL;
+               IdCard* _tmp102_ = NULL;
+               GtkWidget* _tmp103_ = NULL;
+               GtkBox* _tmp104_ = NULL;
+               GtkWidget* _tmp105_ = NULL;
+               GtkVBox* services_vbox = NULL;
+               GtkVBox* _tmp106_ = NULL;
+               GtkBox* _tmp107_ = NULL;
+               GtkVBox* _tmp108_ = NULL;
+               GtkAlignment* services_vbox_bottom_spacer = NULL;
+               GtkAlignment* _tmp109_ = NULL;
+               GtkAlignment* _tmp110_ = NULL;
+               GtkBox* _tmp111_ = NULL;
+               GtkAlignment* _tmp112_ = NULL;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp102_ = self->priv->card;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp103_ = identity_dialog_make_trust_anchor_box (self, _tmp102_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               trust_anchor_box = _tmp103_;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp104_ = content_area;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp105_ = trust_anchor_box;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_box_pack_start (_tmp104_, _tmp105_, FALSE, FALSE, (guint) 15);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp106_ = identity_dialog_make_services_vbox (self);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               services_vbox = _tmp106_;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp107_ = content_area;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp108_ = services_vbox;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_box_pack_start (_tmp107_, (GtkWidget*) _tmp108_, TRUE, TRUE, (guint) 0);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp109_ = (GtkAlignment*) gtk_alignment_new ((gfloat) 0, (gfloat) 0, (gfloat) 0, (gfloat) 0);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_object_ref_sink (_tmp109_);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               services_vbox_bottom_spacer = _tmp109_;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp110_ = services_vbox_bottom_spacer;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_widget_set_size_request ((GtkWidget*) _tmp110_, 0, 12);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp111_ = content_area;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp112_ = services_vbox_bottom_spacer;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_box_pack_start (_tmp111_, (GtkWidget*) _tmp112_, FALSE, FALSE, (guint) 0);
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (services_vbox_bottom_spacer);
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (services_vbox);
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (trust_anchor_box);
+#line 928 "moonshot-identity-dialog.c"
+       }
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp113_ = self->priv->card;
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp114_ = id_card_is_no_identity (_tmp113_);
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (_tmp114_) {
+#line 936 "moonshot-identity-dialog.c"
+               GtkEntry* _tmp115_ = NULL;
+               GtkEntry* _tmp116_ = NULL;
+               GtkEntry* _tmp117_ = NULL;
+               GtkEntry* _tmp118_ = NULL;
+               GtkCheckButton* _tmp119_ = NULL;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp115_ = self->priv->displayname_entry;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) _tmp115_, FALSE);
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp116_ = self->priv->realm_entry;
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) _tmp116_, FALSE);
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp117_ = self->priv->username_entry;
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) _tmp117_, FALSE);
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp118_ = self->priv->password_entry;
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) _tmp118_, FALSE);
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp119_ = self->priv->remember_checkbutton;
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) _tmp119_, FALSE);
+#line 962 "moonshot-identity-dialog.c"
+       }
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_signal_connect_object ((GtkObject*) self, "destroy", (GCallback) ___lambda12__gtk_object_destroy, self, 0);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_container_set_border_width ((GtkContainer*) self, (guint) 6);
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_window_set_resizable ((GtkWindow*) self, FALSE);
+#line 217 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       set_bg_color ((GtkWidget*) self);
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_widget_show_all ((GtkWidget*) self);
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (remember_hbox);
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (content_area);
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (_tmp1_);
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return self;
+#line 982 "moonshot-identity-dialog.c"
+}
+
+
+IdentityDialog* identity_dialog_new_with_idcard (IdCard* a_card, const gchar* title, IdentityManagerView* parent) {
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return identity_dialog_construct_with_idcard (TYPE_IDENTITY_DIALOG, a_card, title, parent);
+#line 989 "moonshot-identity-dialog.c"
+}
+
+
+static Block4Data* block4_data_ref (Block4Data* _data4_) {
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_atomic_int_inc (&_data4_->_ref_count_);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return _data4_;
+#line 998 "moonshot-identity-dialog.c"
+}
+
+
+static void block4_data_unref (void * _userdata_) {
+       Block4Data* _data4_;
+       _data4_ = (Block4Data*) _userdata_;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (g_atomic_int_dec_and_test (&_data4_->_ref_count_)) {
+#line 1007 "moonshot-identity-dialog.c"
+               IdentityDialog* self;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               self = _data4_->self;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (_data4_->ta_table);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (_data4_->ta_label);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (_data4_->none);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (_data4_->ta_label_prefix);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (_data4_->id);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (self);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_slice_free (Block4Data, _data4_);
+#line 1025 "moonshot-identity-dialog.c"
+       }
+}
+
+
+static void __lambda8_ (Block4Data* _data4_, GtkButton* w) {
+       IdentityDialog* self;
+       gboolean _result_ = FALSE;
+       const gchar* _tmp0_ = NULL;
+       gchar* _tmp1_ = NULL;
+       gchar* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
+       IdCard* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       const gchar* _tmp7_ = NULL;
+       gchar* _tmp8_ = NULL;
+       gchar* _tmp9_ = NULL;
+       const gchar* _tmp10_ = NULL;
+       gchar* _tmp11_ = NULL;
+       gchar* _tmp12_ = NULL;
+       gboolean _tmp13_ = FALSE;
+       gboolean _tmp14_ = FALSE;
+       gboolean _tmp15_ = FALSE;
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self = _data4_->self;
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (w != NULL);
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = _ ("You are about to clear the trust anchor fingerprint for '%s'.");
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = g_strconcat ("<span font-weight='heavy'>", _tmp0_, NULL);
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp2_ = _tmp1_;
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp3_ = g_strconcat (_tmp2_, "</span>", NULL);
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp4_ = _tmp3_;
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp5_ = _data4_->id;
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp6_ = id_card_get_display_name (_tmp5_);
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp7_ = _tmp6_;
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp8_ = g_markup_printf_escaped (_tmp4_, _tmp7_);
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp9_ = _tmp8_;
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp10_ = _ ("\n\nAre you sure you want to do this?");
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp11_ = g_strconcat (_tmp9_, _tmp10_, NULL);
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp12_ = _tmp11_;
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp13_ = warning_dialog_confirm ((GtkWindow*) self, _tmp12_, "clear_trust_anchor");
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp14_ = _tmp13_;
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp12_);
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp9_);
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp4_);
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp2_);
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _result_ = _tmp14_;
+#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp15_ = _result_;
+#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (_tmp15_) {
+#line 1097 "moonshot-identity-dialog.c"
+               GList* children = NULL;
+               GtkTable* _tmp16_ = NULL;
+               GList* _tmp17_ = NULL;
+               GList* _tmp18_ = NULL;
+               GtkTable* _tmp21_ = NULL;
+               gint _tmp22_ = 0;
+               GtkLabel* _tmp23_ = NULL;
+               const gchar* _tmp24_ = NULL;
+               const gchar* _tmp25_ = NULL;
+               gchar* _tmp26_ = NULL;
+               gchar* _tmp27_ = NULL;
+               GtkTable* _tmp28_ = NULL;
+               GtkLabel* _tmp29_ = NULL;
+               GtkAttachOptions _tmp30_ = 0;
+               GtkAttachOptions _tmp31_ = 0;
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               self->clear_trust_anchor = TRUE;
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp16_ = _data4_->ta_table;
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp17_ = gtk_container_get_children ((GtkContainer*) _tmp16_);
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               children = _tmp17_;
+#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp18_ = children;
+#line 1123 "moonshot-identity-dialog.c"
+               {
+                       GList* child_collection = NULL;
+                       GList* child_it = NULL;
+#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       child_collection = _tmp18_;
+#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
+#line 1131 "moonshot-identity-dialog.c"
+                               GtkWidget* child = NULL;
+#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                               child = (GtkWidget*) child_it->data;
+#line 1135 "moonshot-identity-dialog.c"
+                               {
+                                       GtkTable* _tmp19_ = NULL;
+                                       GtkWidget* _tmp20_ = NULL;
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                                       _tmp19_ = _data4_->ta_table;
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                                       _tmp20_ = child;
+#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                                       gtk_container_remove ((GtkContainer*) _tmp19_, _tmp20_);
+#line 1145 "moonshot-identity-dialog.c"
+                               }
+                       }
+               }
+#line 270 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp21_ = _data4_->ta_table;
+#line 270 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp22_ = _data4_->ncolumns;
+#line 270 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_table_resize (_tmp21_, (guint) 1, (guint) _tmp22_);
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp23_ = _data4_->ta_label;
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp24_ = _data4_->ta_label_prefix;
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp25_ = _data4_->none;
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp26_ = g_strconcat (_tmp24_, _tmp25_, NULL);
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp27_ = _tmp26_;
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_label_set_text (_tmp23_, _tmp27_);
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (_tmp27_);
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp28_ = _data4_->ta_table;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp29_ = _data4_->ta_label;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp30_ = _data4_->fill_and_expand;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp31_ = _data4_->fill_and_expand;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_table_attach (_tmp28_, (GtkWidget*) _tmp29_, (guint) 0, (guint) 1, (guint) 0, (guint) 1, _tmp30_, _tmp31_, (guint) 0, (guint) 0);
+#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_list_free0 (children);
+#line 1181 "moonshot-identity-dialog.c"
+       }
+}
+
+
+static void ___lambda8__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       __lambda8_ (self, _sender);
+#line 1189 "moonshot-identity-dialog.c"
+}
+
+
+static void ___lambda9_ (Block4Data* _data4_, GtkButton* w) {
+       IdentityDialog* self;
+       IdCard* _tmp0_ = NULL;
+#line 296 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self = _data4_->self;
+#line 296 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (w != NULL);
+#line 296 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = _data4_->id;
+#line 296 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       identity_dialog_export_certificate (self, _tmp0_);
+#line 1204 "moonshot-identity-dialog.c"
+}
+
+
+static void ____lambda9__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 296 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       ___lambda9_ (self, _sender);
+#line 1211 "moonshot-identity-dialog.c"
+}
+
+
+static GtkWidget* identity_dialog_make_trust_anchor_box (IdentityDialog* self, IdCard* id) {
+       GtkWidget* result = NULL;
+       Block4Data* _data4_;
+       IdCard* _tmp0_ = NULL;
+       IdCard* _tmp1_ = NULL;
+       gint nrows = 0;
+       const gchar* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       gchar* _tmp5_ = NULL;
+       GtkHBox* trust_anchor_box = NULL;
+       GtkHBox* _tmp6_ = NULL;
+       const gchar* _tmp7_ = NULL;
+       IdCard* _tmp8_ = NULL;
+       TrustAnchor* _tmp9_ = NULL;
+       TrustAnchor* _tmp10_ = NULL;
+       gboolean _tmp11_ = FALSE;
+       const gchar* _tmp14_ = NULL;
+       gchar* _tmp15_ = NULL;
+       gchar* _tmp16_ = NULL;
+       GtkLabel* _tmp17_ = NULL;
+       GtkLabel* _tmp18_ = NULL;
+       GtkLabel* _tmp19_ = NULL;
+       IdCard* _tmp20_ = NULL;
+       TrustAnchor* _tmp21_ = NULL;
+       TrustAnchor* _tmp22_ = NULL;
+       gboolean _tmp23_ = FALSE;
+       GtkAttachOptions fill = 0;
+       gint _tmp26_ = 0;
+       gint _tmp27_ = 0;
+       GtkTable* _tmp28_ = NULL;
+       gint row = 0;
+       GtkButton* ta_clear_button = NULL;
+       const gchar* _tmp29_ = NULL;
+       GtkButton* _tmp30_ = NULL;
+       GtkButton* _tmp31_ = NULL;
+       GtkTable* _tmp32_ = NULL;
+       GtkLabel* _tmp33_ = NULL;
+       gint _tmp34_ = 0;
+       gint _tmp35_ = 0;
+       GtkAttachOptions _tmp36_ = 0;
+       GtkAttachOptions _tmp37_ = 0;
+       GtkTable* _tmp38_ = NULL;
+       GtkButton* _tmp39_ = NULL;
+       gint _tmp40_ = 0;
+       gint _tmp41_ = 0;
+       GtkAttachOptions _tmp42_ = 0;
+       GtkAttachOptions _tmp43_ = 0;
+       gint _tmp44_ = 0;
+       GtkLabel* added_label = NULL;
+       IdCard* _tmp45_ = NULL;
+       TrustAnchor* _tmp46_ = NULL;
+       TrustAnchor* _tmp47_ = NULL;
+       const gchar* _tmp48_ = NULL;
+       const gchar* _tmp49_ = NULL;
+       gchar* _tmp50_ = NULL;
+       gchar* _tmp51_ = NULL;
+       const gchar* _tmp52_ = NULL;
+       GtkLabel* _tmp53_ = NULL;
+       GtkLabel* _tmp54_ = NULL;
+       GtkLabel* _tmp55_ = NULL;
+       GtkTable* _tmp56_ = NULL;
+       GtkLabel* _tmp57_ = NULL;
+       gint _tmp58_ = 0;
+       gint _tmp59_ = 0;
+       GtkAttachOptions _tmp60_ = 0;
+       GtkAttachOptions _tmp61_ = 0;
+       gint _tmp62_ = 0;
+       IdCard* _tmp63_ = NULL;
+       TrustAnchor* _tmp64_ = NULL;
+       TrustAnchor* _tmp65_ = NULL;
+       TrustAnchorTrustAnchorType _tmp66_ = 0;
+       GtkHBox* _tmp172_ = NULL;
+       GtkTable* _tmp173_ = NULL;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (id != NULL, NULL);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data4_ = g_slice_new0 (Block4Data);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data4_->_ref_count_ = 1;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data4_->self = g_object_ref (self);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = id;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (_data4_->id);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data4_->id = _tmp1_;
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       nrows = 7;
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data4_->ncolumns = 2;
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp2_ = _ ("Trust anchor: ");
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp3_ = g_strdup (_tmp2_);
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data4_->ta_label_prefix = _tmp3_;
+#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp4_ = _ ("None");
+#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp5_ = g_strdup (_tmp4_);
+#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data4_->none = _tmp5_;
+#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp6_ = (GtkHBox*) gtk_hbox_new (FALSE, 0);
+#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp6_);
+#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       trust_anchor_box = _tmp6_;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp8_ = _data4_->id;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp9_ = id_card_get_trust_anchor (_tmp8_);
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp10_ = _tmp9_;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp11_ = trust_anchor_is_empty (_tmp10_);
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (_tmp11_) {
+#line 1339 "moonshot-identity-dialog.c"
+               const gchar* _tmp12_ = NULL;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp12_ = _data4_->none;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp7_ = _tmp12_;
+#line 1345 "moonshot-identity-dialog.c"
+       } else {
+               const gchar* _tmp13_ = NULL;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp13_ = _ ("Enterprise provisioned");
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp7_ = _tmp13_;
+#line 1352 "moonshot-identity-dialog.c"
+       }
+#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp14_ = _data4_->ta_label_prefix;
+#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp15_ = g_strconcat (_tmp14_, _tmp7_, NULL);
+#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp16_ = _tmp15_;
+#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp17_ = (GtkLabel*) gtk_label_new (_tmp16_);
+#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp17_);
+#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp18_ = _tmp17_;
+#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp16_);
+#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data4_->ta_label = _tmp18_;
+#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp19_ = _data4_->ta_label;
+#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) _tmp19_, (gfloat) 0, 0.5f);
+#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp20_ = _data4_->id;
+#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp21_ = id_card_get_trust_anchor (_tmp20_);
+#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp22_ = _tmp21_;
+#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp23_ = trust_anchor_is_empty (_tmp22_);
+#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (_tmp23_) {
+#line 1384 "moonshot-identity-dialog.c"
+               GtkHBox* _tmp24_ = NULL;
+               GtkLabel* _tmp25_ = NULL;
+#line 236 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp24_ = trust_anchor_box;
+#line 236 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp25_ = _data4_->ta_label;
+#line 236 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_box_pack_start ((GtkBox*) _tmp24_, (GtkWidget*) _tmp25_, FALSE, FALSE, (guint) 0);
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               result = (GtkWidget*) trust_anchor_box;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               block4_data_unref (_data4_);
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _data4_ = NULL;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               return result;
+#line 1401 "moonshot-identity-dialog.c"
+       }
+#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data4_->fill_and_expand = GTK_EXPAND | GTK_FILL;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       fill = GTK_FILL;
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp26_ = nrows;
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp27_ = _data4_->ncolumns;
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp28_ = (GtkTable*) gtk_table_new ((guint) _tmp26_, (guint) _tmp27_, FALSE);
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp28_);
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data4_->ta_table = _tmp28_;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       row = 0;
+#line 247 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp29_ = _ ("Clear Trust Anchor");
+#line 247 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp30_ = (GtkButton*) gtk_button_new_with_label (_tmp29_);
+#line 247 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp30_);
+#line 247 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       ta_clear_button = _tmp30_;
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp31_ = ta_clear_button;
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_signal_connect_data (_tmp31_, "clicked", (GCallback) ___lambda8__gtk_button_clicked, block4_data_ref (_data4_), (GClosureNotify) block4_data_unref, 0);
+#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp32_ = _data4_->ta_table;
+#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp33_ = _data4_->ta_label;
+#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp34_ = row;
+#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp35_ = row;
+#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp36_ = _data4_->fill_and_expand;
+#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp37_ = _data4_->fill_and_expand;
+#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_table_attach (_tmp32_, (GtkWidget*) _tmp33_, (guint) 0, (guint) 1, (guint) _tmp34_, (guint) (_tmp35_ + 1), _tmp36_, _tmp37_, (guint) 0, (guint) 0);
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp38_ = _data4_->ta_table;
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp39_ = ta_clear_button;
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp40_ = row;
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp41_ = row;
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp42_ = fill;
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp43_ = fill;
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_table_attach (_tmp38_, (GtkWidget*) _tmp39_, (guint) 1, (guint) 2, (guint) _tmp40_, (guint) (_tmp41_ + 1), _tmp42_, _tmp43_, (guint) 0, (guint) 0);
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp44_ = row;
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       row = _tmp44_ + 1;
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp45_ = _data4_->id;
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp46_ = id_card_get_trust_anchor (_tmp45_);
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp47_ = _tmp46_;
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp48_ = trust_anchor_get_datetime_added (_tmp47_);
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp49_ = _tmp48_;
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp50_ = g_strconcat ("Added: ", _tmp49_, NULL);
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp51_ = _tmp50_;
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp52_ = _ (_tmp51_);
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp53_ = (GtkLabel*) gtk_label_new (_tmp52_);
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp53_);
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp54_ = _tmp53_;
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp51_);
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       added_label = _tmp54_;
+#line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp55_ = added_label;
+#line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) _tmp55_, (gfloat) 0, 0.5f);
+#line 285 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp56_ = _data4_->ta_table;
+#line 285 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp57_ = added_label;
+#line 285 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp58_ = row;
+#line 285 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp59_ = row;
+#line 285 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp60_ = _data4_->fill_and_expand;
+#line 285 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp61_ = _data4_->fill_and_expand;
+#line 285 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_table_attach (_tmp56_, (GtkWidget*) _tmp57_, (guint) 0, (guint) 1, (guint) _tmp58_, (guint) (_tmp59_ + 1), _tmp60_, _tmp61_, (guint) 20, (guint) 5);
+#line 286 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp62_ = row;
+#line 286 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       row = _tmp62_ + 1;
+#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp63_ = _data4_->id;
+#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp64_ = id_card_get_trust_anchor (_tmp63_);
+#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp65_ = _tmp64_;
+#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp66_ = trust_anchor_get_anchor_type (_tmp65_);
+#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (_tmp66_ == TRUST_ANCHOR_TRUST_ANCHOR_TYPE_SERVER_CERT) {
+#line 1521 "moonshot-identity-dialog.c"
+               GtkWidget* fingerprint = NULL;
+               IdCard* _tmp67_ = NULL;
+               TrustAnchor* _tmp68_ = NULL;
+               TrustAnchor* _tmp69_ = NULL;
+               const gchar* _tmp70_ = NULL;
+               const gchar* _tmp71_ = NULL;
+               GtkWidget* _tmp72_ = NULL;
+               GtkTable* _tmp73_ = NULL;
+               GtkWidget* _tmp74_ = NULL;
+               gint _tmp75_ = 0;
+               gint _tmp76_ = 0;
+               GtkAttachOptions _tmp77_ = 0;
+               GtkAttachOptions _tmp78_ = 0;
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp67_ = _data4_->id;
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp68_ = id_card_get_trust_anchor (_tmp67_);
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp69_ = _tmp68_;
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp70_ = trust_anchor_get_server_cert (_tmp69_);
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp71_ = _tmp70_;
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp72_ = make_ta_fingerprint_widget (_tmp71_, NULL);
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               fingerprint = _tmp72_;
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp73_ = _data4_->ta_table;
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp74_ = fingerprint;
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp75_ = row;
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp76_ = row;
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp77_ = _data4_->fill_and_expand;
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp78_ = _data4_->fill_and_expand;
+#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_table_attach (_tmp73_, _tmp74_, (guint) 0, (guint) 2, (guint) _tmp75_, (guint) (_tmp76_ + 2), _tmp77_, _tmp78_, (guint) 5, (guint) 5);
+#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (fingerprint);
+#line 1565 "moonshot-identity-dialog.c"
+       } else {
+               GtkLabel* ca_cert_label = NULL;
+               const gchar* _tmp79_ = NULL;
+               GtkLabel* _tmp80_ = NULL;
+               GtkLabel* _tmp81_ = NULL;
+               GtkButton* export_button = NULL;
+               const gchar* _tmp82_ = NULL;
+               GtkButton* _tmp83_ = NULL;
+               GtkButton* _tmp84_ = NULL;
+               GtkTable* _tmp85_ = NULL;
+               GtkLabel* _tmp86_ = NULL;
+               gint _tmp87_ = 0;
+               gint _tmp88_ = 0;
+               GtkAttachOptions _tmp89_ = 0;
+               GtkAttachOptions _tmp90_ = 0;
+               GtkTable* _tmp91_ = NULL;
+               GtkButton* _tmp92_ = NULL;
+               gint _tmp93_ = 0;
+               gint _tmp94_ = 0;
+               GtkAttachOptions _tmp95_ = 0;
+               GtkAttachOptions _tmp96_ = 0;
+               gint _tmp97_ = 0;
+               IdCard* _tmp98_ = NULL;
+               TrustAnchor* _tmp99_ = NULL;
+               TrustAnchor* _tmp100_ = NULL;
+               const gchar* _tmp101_ = NULL;
+               const gchar* _tmp102_ = NULL;
+               IdCard* _tmp121_ = NULL;
+               TrustAnchor* _tmp122_ = NULL;
+               TrustAnchor* _tmp123_ = NULL;
+               const gchar* _tmp124_ = NULL;
+               const gchar* _tmp125_ = NULL;
+               GtkLabel* expiration_label = NULL;
+               const gchar* _tmp144_ = NULL;
+               IdCard* _tmp145_ = NULL;
+               TrustAnchor* _tmp146_ = NULL;
+               TrustAnchor* _tmp147_ = NULL;
+               gchar* _tmp148_ = NULL;
+               gchar* _tmp149_ = NULL;
+               gchar* _tmp150_ = NULL;
+               gchar* _tmp151_ = NULL;
+               GtkLabel* _tmp152_ = NULL;
+               GtkLabel* _tmp153_ = NULL;
+               GtkLabel* _tmp154_ = NULL;
+               GtkTable* _tmp155_ = NULL;
+               GtkLabel* _tmp156_ = NULL;
+               gint _tmp157_ = 0;
+               gint _tmp158_ = 0;
+               GtkAttachOptions _tmp159_ = 0;
+               GtkAttachOptions _tmp160_ = 0;
+               gint _tmp161_ = 0;
+               GtkLabel* constraint_label = NULL;
+               const gchar* _tmp162_ = NULL;
+               GtkLabel* _tmp163_ = NULL;
+               GtkLabel* _tmp164_ = NULL;
+               GtkTable* _tmp165_ = NULL;
+               GtkLabel* _tmp166_ = NULL;
+               gint _tmp167_ = 0;
+               gint _tmp168_ = 0;
+               GtkAttachOptions _tmp169_ = 0;
+               GtkAttachOptions _tmp170_ = 0;
+               gint _tmp171_ = 0;
+#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp79_ = _ ("CA Certificate:");
+#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp80_ = (GtkLabel*) gtk_label_new (_tmp79_);
+#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_object_ref_sink (_tmp80_);
+#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               ca_cert_label = _tmp80_;
+#line 294 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp81_ = ca_cert_label;
+#line 294 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_misc_set_alignment ((GtkMisc*) _tmp81_, (gfloat) 0, 0.5f);
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp82_ = _ ("Export Certificate");
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp83_ = (GtkButton*) gtk_button_new_with_label (_tmp82_);
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_object_ref_sink (_tmp83_);
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               export_button = _tmp83_;
+#line 296 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp84_ = export_button;
+#line 296 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_signal_connect_data (_tmp84_, "clicked", (GCallback) ____lambda9__gtk_button_clicked, block4_data_ref (_data4_), (GClosureNotify) block4_data_unref, 0);
+#line 298 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp85_ = _data4_->ta_table;
+#line 298 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp86_ = ca_cert_label;
+#line 298 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp87_ = row;
+#line 298 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp88_ = row;
+#line 298 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp89_ = _data4_->fill_and_expand;
+#line 298 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp90_ = _data4_->fill_and_expand;
+#line 298 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_table_attach (_tmp85_, (GtkWidget*) _tmp86_, (guint) 0, (guint) 1, (guint) _tmp87_, (guint) (_tmp88_ + 1), _tmp89_, _tmp90_, (guint) 20, (guint) 0);
+#line 299 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp91_ = _data4_->ta_table;
+#line 299 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp92_ = export_button;
+#line 299 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp93_ = row;
+#line 299 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp94_ = row;
+#line 299 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp95_ = fill;
+#line 299 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp96_ = fill;
+#line 299 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_table_attach (_tmp91_, (GtkWidget*) _tmp92_, (guint) 1, (guint) 2, (guint) _tmp93_, (guint) (_tmp94_ + 1), _tmp95_, _tmp96_, (guint) 0, (guint) 0);
+#line 300 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp97_ = row;
+#line 300 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               row = _tmp97_ + 1;
+#line 302 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp98_ = _data4_->id;
+#line 302 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp99_ = id_card_get_trust_anchor (_tmp98_);
+#line 302 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp100_ = _tmp99_;
+#line 302 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp101_ = trust_anchor_get_subject (_tmp100_);
+#line 302 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp102_ = _tmp101_;
+#line 302 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               if (g_strcmp0 (_tmp102_, "") != 0) {
+#line 1696 "moonshot-identity-dialog.c"
+                       GtkLabel* subject_label = NULL;
+                       const gchar* _tmp103_ = NULL;
+                       IdCard* _tmp104_ = NULL;
+                       TrustAnchor* _tmp105_ = NULL;
+                       TrustAnchor* _tmp106_ = NULL;
+                       const gchar* _tmp107_ = NULL;
+                       const gchar* _tmp108_ = NULL;
+                       gchar* _tmp109_ = NULL;
+                       gchar* _tmp110_ = NULL;
+                       GtkLabel* _tmp111_ = NULL;
+                       GtkLabel* _tmp112_ = NULL;
+                       GtkLabel* _tmp113_ = NULL;
+                       GtkTable* _tmp114_ = NULL;
+                       GtkLabel* _tmp115_ = NULL;
+                       gint _tmp116_ = 0;
+                       gint _tmp117_ = 0;
+                       GtkAttachOptions _tmp118_ = 0;
+                       GtkAttachOptions _tmp119_ = 0;
+                       gint _tmp120_ = 0;
+#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp103_ = _ ("Subject: ");
+#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp104_ = _data4_->id;
+#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp105_ = id_card_get_trust_anchor (_tmp104_);
+#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp106_ = _tmp105_;
+#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp107_ = trust_anchor_get_subject (_tmp106_);
+#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp108_ = _tmp107_;
+#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp109_ = g_strconcat (_tmp103_, _tmp108_, NULL);
+#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp110_ = _tmp109_;
+#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp111_ = (GtkLabel*) gtk_label_new (_tmp110_);
+#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       g_object_ref_sink (_tmp111_);
+#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp112_ = _tmp111_;
+#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (_tmp110_);
+#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       subject_label = _tmp112_;
+#line 304 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp113_ = subject_label;
+#line 304 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       gtk_misc_set_alignment ((GtkMisc*) _tmp113_, (gfloat) 0, 0.5f);
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp114_ = _data4_->ta_table;
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp115_ = subject_label;
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp116_ = row;
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp117_ = row;
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp118_ = _data4_->fill_and_expand;
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp119_ = _data4_->fill_and_expand;
+#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       gtk_table_attach (_tmp114_, (GtkWidget*) _tmp115_, (guint) 0, (guint) 1, (guint) _tmp116_, (guint) (_tmp117_ + 1), _tmp118_, _tmp119_, (guint) 40, (guint) 5);
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp120_ = row;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       row = _tmp120_ + 1;
+#line 302 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_object_unref0 (subject_label);
+#line 1766 "moonshot-identity-dialog.c"
+               }
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp121_ = _data4_->id;
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp122_ = id_card_get_trust_anchor (_tmp121_);
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp123_ = _tmp122_;
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp124_ = trust_anchor_get_subject_alt (_tmp123_);
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp125_ = _tmp124_;
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               if (g_strcmp0 (_tmp125_, "") != 0) {
+#line 1780 "moonshot-identity-dialog.c"
+                       GtkLabel* subject_alt_label = NULL;
+                       const gchar* _tmp126_ = NULL;
+                       IdCard* _tmp127_ = NULL;
+                       TrustAnchor* _tmp128_ = NULL;
+                       TrustAnchor* _tmp129_ = NULL;
+                       const gchar* _tmp130_ = NULL;
+                       const gchar* _tmp131_ = NULL;
+                       gchar* _tmp132_ = NULL;
+                       gchar* _tmp133_ = NULL;
+                       GtkLabel* _tmp134_ = NULL;
+                       GtkLabel* _tmp135_ = NULL;
+                       GtkLabel* _tmp136_ = NULL;
+                       GtkTable* _tmp137_ = NULL;
+                       GtkLabel* _tmp138_ = NULL;
+                       gint _tmp139_ = 0;
+                       gint _tmp140_ = 0;
+                       GtkAttachOptions _tmp141_ = 0;
+                       GtkAttachOptions _tmp142_ = 0;
+                       gint _tmp143_ = 0;
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp126_ = _ ("Subject-Alt: ");
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp127_ = _data4_->id;
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp128_ = id_card_get_trust_anchor (_tmp127_);
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp129_ = _tmp128_;
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp130_ = trust_anchor_get_subject_alt (_tmp129_);
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp131_ = _tmp130_;
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp132_ = g_strconcat (_tmp126_, _tmp131_, NULL);
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp133_ = _tmp132_;
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp134_ = (GtkLabel*) gtk_label_new (_tmp133_);
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       g_object_ref_sink (_tmp134_);
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp135_ = _tmp134_;
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (_tmp133_);
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       subject_alt_label = _tmp135_;
+#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp136_ = subject_alt_label;
+#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       gtk_misc_set_alignment ((GtkMisc*) _tmp136_, (gfloat) 0, 0.5f);
+#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp137_ = _data4_->ta_table;
+#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp138_ = subject_alt_label;
+#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp139_ = row;
+#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp140_ = row;
+#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp141_ = _data4_->fill_and_expand;
+#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp142_ = _data4_->fill_and_expand;
+#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       gtk_table_attach (_tmp137_, (GtkWidget*) _tmp138_, (guint) 0, (guint) 1, (guint) _tmp139_, (guint) (_tmp140_ + 1), _tmp141_, _tmp142_, (guint) 40, (guint) 5);
+#line 313 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp143_ = row;
+#line 313 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       row = _tmp143_ + 1;
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_object_unref0 (subject_alt_label);
+#line 1850 "moonshot-identity-dialog.c"
+               }
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp144_ = _ ("Expiration date: ");
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp145_ = _data4_->id;
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp146_ = id_card_get_trust_anchor (_tmp145_);
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp147_ = _tmp146_;
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp148_ = trust_anchor_get_expiration_date (_tmp147_, NULL);
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp149_ = _tmp148_;
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp150_ = g_strconcat (_tmp144_, _tmp149_, NULL);
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp151_ = _tmp150_;
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp152_ = (GtkLabel*) gtk_label_new (_tmp151_);
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_object_ref_sink (_tmp152_);
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp153_ = _tmp152_;
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (_tmp151_);
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (_tmp149_);
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               expiration_label = _tmp153_;
+#line 317 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp154_ = expiration_label;
+#line 317 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_misc_set_alignment ((GtkMisc*) _tmp154_, (gfloat) 0, 0.5f);
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp155_ = _data4_->ta_table;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp156_ = expiration_label;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp157_ = row;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp158_ = row;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp159_ = _data4_->fill_and_expand;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp160_ = _data4_->fill_and_expand;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_table_attach (_tmp155_, (GtkWidget*) _tmp156_, (guint) 0, (guint) 1, (guint) _tmp157_, (guint) (_tmp158_ + 1), _tmp159_, _tmp160_, (guint) 40, (guint) 5);
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp161_ = row;
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               row = _tmp161_ + 1;
+#line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp162_ = _ ("Constraint: ");
+#line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp163_ = (GtkLabel*) gtk_label_new (_tmp162_);
+#line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_object_ref_sink (_tmp163_);
+#line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               constraint_label = _tmp163_;
+#line 323 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp164_ = constraint_label;
+#line 323 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_misc_set_alignment ((GtkMisc*) _tmp164_, (gfloat) 0, 0.5f);
+#line 324 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp165_ = _data4_->ta_table;
+#line 324 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp166_ = constraint_label;
+#line 324 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp167_ = row;
+#line 324 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp168_ = row;
+#line 324 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp169_ = _data4_->fill_and_expand;
+#line 324 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp170_ = _data4_->fill_and_expand;
+#line 324 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_table_attach (_tmp165_, (GtkWidget*) _tmp166_, (guint) 0, (guint) 1, (guint) _tmp167_, (guint) (_tmp168_ + 1), _tmp169_, _tmp170_, (guint) 20, (guint) 0);
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp171_ = row;
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               row = _tmp171_ + 1;
+#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (constraint_label);
+#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (expiration_label);
+#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (export_button);
+#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (ca_cert_label);
+#line 1940 "moonshot-identity-dialog.c"
+       }
+#line 328 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp172_ = trust_anchor_box;
+#line 328 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp173_ = _data4_->ta_table;
+#line 328 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp172_, (GtkWidget*) _tmp173_, FALSE, FALSE, (guint) 0);
+#line 329 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       result = (GtkWidget*) trust_anchor_box;
+#line 329 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (added_label);
+#line 329 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (ta_clear_button);
+#line 329 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       block4_data_unref (_data4_);
+#line 329 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data4_ = NULL;
+#line 329 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return result;
+#line 1960 "moonshot-identity-dialog.c"
+}
+
+
+static void identity_dialog_add_as_vbox (GtkBox* content_area, GtkLabel* label, GtkEntry* entry) {
+       GtkVBox* vbox = NULL;
+       GtkVBox* _tmp0_ = NULL;
+       GtkLabel* _tmp1_ = NULL;
+       GtkEntry* _tmp2_ = NULL;
+       GtkHBox* hbox = NULL;
+       GtkHBox* _tmp3_ = NULL;
+       GtkBox* _tmp4_ = NULL;
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (content_area != NULL);
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (label != NULL);
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (entry != NULL);
+#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = (GtkVBox*) gtk_vbox_new (FALSE, 2);
+#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp0_);
+#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       vbox = _tmp0_;
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = label;
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) _tmp1_, FALSE, FALSE, (guint) 0);
+#line 337 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp2_ = entry;
+#line 337 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) _tmp2_, FALSE, FALSE, (guint) 0);
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp3_ = (GtkHBox*) gtk_hbox_new (FALSE, 0);
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp3_);
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       hbox = _tmp3_;
+#line 341 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox, FALSE, FALSE, (guint) 0);
+#line 342 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp4_ = content_area;
+#line 342 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start (_tmp4_, (GtkWidget*) hbox, FALSE, FALSE, (guint) 6);
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (hbox);
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (vbox);
+#line 2008 "moonshot-identity-dialog.c"
+}
+
+
+static gchar* identity_dialog_update_preamble (const gchar* preamble) {
+       gchar* result = NULL;
+       const gchar* _tmp0_ = NULL;
+       const gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
+#line 345 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (preamble != NULL, NULL);
+#line 347 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = preamble;
+#line 347 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (g_strcmp0 (_tmp0_, "") == 0) {
+#line 2023 "moonshot-identity-dialog.c"
+               const gchar* _tmp1_ = NULL;
+               gchar* _tmp2_ = NULL;
+#line 348 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp1_ = _ ("Missing required field: ");
+#line 348 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp2_ = g_strdup (_tmp1_);
+#line 348 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               result = _tmp2_;
+#line 348 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               return result;
+#line 2034 "moonshot-identity-dialog.c"
+       }
+#line 349 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp3_ = _ ("Missing required fields: ");
+#line 349 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp4_ = g_strdup (_tmp3_);
+#line 349 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       result = _tmp4_;
+#line 349 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return result;
+#line 2044 "moonshot-identity-dialog.c"
+}
+
+
+static gchar* identity_dialog_update_message (const gchar* old_message, const gchar* new_item) {
+       gchar* result = NULL;
+       gchar* message = NULL;
+       const gchar* _tmp0_ = NULL;
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (old_message != NULL, NULL);
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (new_item != NULL, NULL);
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = old_message;
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (g_strcmp0 (_tmp0_, "") == 0) {
+#line 2060 "moonshot-identity-dialog.c"
+               const gchar* _tmp1_ = NULL;
+               gchar* _tmp2_ = NULL;
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp1_ = new_item;
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp2_ = g_strdup (_tmp1_);
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (message);
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               message = _tmp2_;
+#line 2071 "moonshot-identity-dialog.c"
+       } else {
+               const gchar* _tmp3_ = NULL;
+               gchar* _tmp4_ = NULL;
+               gchar* _tmp5_ = NULL;
+               const gchar* _tmp6_ = NULL;
+               gchar* _tmp7_ = NULL;
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp3_ = old_message;
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp4_ = g_strconcat (_tmp3_, ", ", NULL);
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp5_ = _tmp4_;
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp6_ = new_item;
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp7_ = g_strconcat (_tmp5_, _tmp6_, NULL);
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (message);
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               message = _tmp7_;
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (_tmp5_);
+#line 2094 "moonshot-identity-dialog.c"
+       }
+#line 359 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       result = message;
+#line 359 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return result;
+#line 2100 "moonshot-identity-dialog.c"
+}
+
+
+static void identity_dialog_check_field (const gchar* field, GtkLabel* label, const gchar* fieldname, gchar** preamble, gchar** message) {
+       const gchar* _tmp0_ = NULL;
+       GtkLabel* _tmp6_ = NULL;
+       const gchar* _tmp7_ = NULL;
+       const gchar* _tmp8_ = NULL;
+       gchar* _tmp9_ = NULL;
+       gchar* _tmp10_ = NULL;
+       const gchar* _tmp11_ = NULL;
+       gchar* _tmp12_ = NULL;
+       const gchar* _tmp13_ = NULL;
+       const gchar* _tmp14_ = NULL;
+       gchar* _tmp15_ = NULL;
+#line 362 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (field != NULL);
+#line 362 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (label != NULL);
+#line 362 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (fieldname != NULL);
+#line 362 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (*preamble != NULL);
+#line 362 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (*message != NULL);
+#line 364 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = field;
+#line 364 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (g_strcmp0 (_tmp0_, "") != 0) {
+#line 2130 "moonshot-identity-dialog.c"
+               GtkLabel* _tmp1_ = NULL;
+               const gchar* _tmp2_ = NULL;
+               const gchar* _tmp3_ = NULL;
+               gchar* _tmp4_ = NULL;
+               gchar* _tmp5_ = NULL;
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp1_ = label;
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp2_ = fieldname;
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp3_ = string_to_string (_tmp2_);
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp4_ = g_strconcat (_tmp3_, ":", NULL);
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp5_ = _tmp4_;
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_label_set_markup (_tmp1_, _tmp5_);
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (_tmp5_);
+#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               return;
+#line 2152 "moonshot-identity-dialog.c"
+       }
+#line 368 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp6_ = label;
+#line 368 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp7_ = fieldname;
+#line 368 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp8_ = string_to_string (_tmp7_);
+#line 368 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp9_ = g_strconcat ("<span foreground=\"red\">", _tmp8_, ":</span>", NULL);
+#line 368 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp10_ = _tmp9_;
+#line 368 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_label_set_markup (_tmp6_, _tmp10_);
+#line 368 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp10_);
+#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp11_ = *preamble;
+#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp12_ = identity_dialog_update_preamble (_tmp11_);
+#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (*preamble);
+#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       *preamble = _tmp12_;
+#line 370 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp13_ = *message;
+#line 370 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp14_ = fieldname;
+#line 370 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp15_ = identity_dialog_update_message (_tmp13_, _tmp14_);
+#line 370 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (*message);
+#line 370 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       *message = _tmp15_;
+#line 2186 "moonshot-identity-dialog.c"
+}
+
+
+static gboolean identity_dialog_check_fields (IdentityDialog* self) {
+       gboolean result = FALSE;
+       gchar* preamble = NULL;
+       gchar* _tmp0_ = NULL;
+       gchar* message = NULL;
+       gchar* _tmp1_ = NULL;
+       const gchar* _tmp2_ = NULL;
+       gboolean _tmp3_ = FALSE;
+       gboolean _tmp4_ = FALSE;
+       gchar* password_test = NULL;
+       gchar* _tmp7_ = NULL;
+       IdCard* _tmp8_ = NULL;
+       gboolean _tmp9_ = FALSE;
+       const gchar* _tmp21_ = NULL;
+#line 373 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 375 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = g_strdup ("");
+#line 375 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       preamble = _tmp0_;
+#line 376 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = g_strdup ("");
+#line 376 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       message = _tmp1_;
+#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp3_ = identity_dialog_get_store_password (self);
+#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp4_ = _tmp3_;
+#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (_tmp4_) {
+#line 2220 "moonshot-identity-dialog.c"
+               const gchar* _tmp5_ = NULL;
+               const gchar* _tmp6_ = NULL;
+#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp5_ = identity_dialog_get_password (self);
+#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp6_ = _tmp5_;
+#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp2_ = _tmp6_;
+#line 2229 "moonshot-identity-dialog.c"
+       } else {
+#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp2_ = "not required";
+#line 2233 "moonshot-identity-dialog.c"
+       }
+#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp7_ = g_strdup (_tmp2_);
+#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       password_test = _tmp7_;
+#line 378 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp8_ = self->priv->card;
+#line 378 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp9_ = id_card_is_no_identity (_tmp8_);
+#line 378 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (!_tmp9_) {
+#line 2245 "moonshot-identity-dialog.c"
+               const gchar* _tmp10_ = NULL;
+               const gchar* _tmp11_ = NULL;
+               GtkLabel* _tmp12_ = NULL;
+               const gchar* _tmp13_ = NULL;
+               const gchar* _tmp14_ = NULL;
+               GtkLabel* _tmp15_ = NULL;
+               const gchar* _tmp16_ = NULL;
+               const gchar* _tmp17_ = NULL;
+               GtkLabel* _tmp18_ = NULL;
+               const gchar* _tmp19_ = NULL;
+               GtkLabel* _tmp20_ = NULL;
+#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp10_ = identity_dialog_get_display_name (self);
+#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp11_ = _tmp10_;
+#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp12_ = self->priv->displayname_label;
+#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               identity_dialog_check_field (_tmp11_, _tmp12_, IDENTITY_DIALOG_displayname_labeltext, &preamble, &message);
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp13_ = identity_dialog_get_username (self);
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp14_ = _tmp13_;
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp15_ = self->priv->username_label;
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               identity_dialog_check_field (_tmp14_, _tmp15_, IDENTITY_DIALOG_username_labeltext, &preamble, &message);
+#line 382 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp16_ = identity_dialog_get_issuer (self);
+#line 382 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp17_ = _tmp16_;
+#line 382 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp18_ = self->priv->realm_label;
+#line 382 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               identity_dialog_check_field (_tmp17_, _tmp18_, IDENTITY_DIALOG_realm_labeltext, &preamble, &message);
+#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp19_ = password_test;
+#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp20_ = self->priv->password_label;
+#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               identity_dialog_check_field (_tmp19_, _tmp20_, IDENTITY_DIALOG_password_labeltext, &preamble, &message);
+#line 2287 "moonshot-identity-dialog.c"
+       }
+#line 385 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp21_ = message;
+#line 385 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (g_strcmp0 (_tmp21_, "") != 0) {
+#line 2293 "moonshot-identity-dialog.c"
+               GtkLabel* _tmp22_ = NULL;
+               GtkLabel* _tmp23_ = NULL;
+               const gchar* _tmp24_ = NULL;
+               const gchar* _tmp25_ = NULL;
+               const gchar* _tmp26_ = NULL;
+               const gchar* _tmp27_ = NULL;
+               gchar* _tmp28_ = NULL;
+               gchar* _tmp29_ = NULL;
+#line 386 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp22_ = self->priv->message_label;
+#line 386 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_widget_set_visible ((GtkWidget*) _tmp22_, TRUE);
+#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp23_ = self->priv->message_label;
+#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp24_ = preamble;
+#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp25_ = string_to_string (_tmp24_);
+#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp26_ = message;
+#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp27_ = string_to_string (_tmp26_);
+#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp28_ = g_strconcat ("<span foreground=\"red\">", _tmp25_, _tmp27_, "</span>", NULL);
+#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp29_ = _tmp28_;
+#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_label_set_markup (_tmp23_, _tmp29_);
+#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (_tmp29_);
+#line 388 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               result = FALSE;
+#line 388 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (password_test);
+#line 388 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (message);
+#line 388 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (preamble);
+#line 388 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               return result;
+#line 2334 "moonshot-identity-dialog.c"
+       }
+#line 390 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       result = TRUE;
+#line 390 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (password_test);
+#line 390 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (message);
+#line 390 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (preamble);
+#line 390 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return result;
+#line 2346 "moonshot-identity-dialog.c"
+}
+
+
+static void identity_dialog_on_response (IdentityDialog* self, GtkDialog* source, gint response_id) {
+       gint _tmp0_ = 0;
+#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (self != NULL);
+#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (source != NULL);
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = response_id;
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       switch (_tmp0_) {
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               case GTK_RESPONSE_OK:
+#line 2362 "moonshot-identity-dialog.c"
+               {
+                       gboolean _tmp1_ = FALSE;
+#line 397 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp1_ = identity_dialog_check_fields (self);
+#line 397 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       self->complete = _tmp1_;
+#line 398 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       break;
+#line 2371 "moonshot-identity-dialog.c"
+               }
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               case GTK_RESPONSE_CANCEL:
+#line 2375 "moonshot-identity-dialog.c"
+               {
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       self->complete = TRUE;
+#line 401 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       break;
+#line 2381 "moonshot-identity-dialog.c"
+               }
+               default:
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               break;
+#line 2386 "moonshot-identity-dialog.c"
+       }
+}
+
+
+static Block5Data* block5_data_ref (Block5Data* _data5_) {
+#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_atomic_int_inc (&_data5_->_ref_count_);
+#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return _data5_;
+#line 2396 "moonshot-identity-dialog.c"
+}
+
+
+static void block5_data_unref (void * _userdata_) {
+       Block5Data* _data5_;
+       _data5_ = (Block5Data*) _userdata_;
+#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (g_atomic_int_dec_and_test (&_data5_->_ref_count_)) {
+#line 2405 "moonshot-identity-dialog.c"
+               IdentityDialog* self;
+#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               self = _data5_->self;
+#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (_data5_->services_table);
+#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (_data5_->remove_button);
+#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (self);
+#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_slice_free (Block5Data, _data5_);
+#line 2417 "moonshot-identity-dialog.c"
+       }
+}
+
+
+static Block6Data* block6_data_ref (Block6Data* _data6_) {
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_atomic_int_inc (&_data6_->_ref_count_);
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return _data6_;
+#line 2427 "moonshot-identity-dialog.c"
+}
+
+
+static void block6_data_unref (void * _userdata_) {
+       Block6Data* _data6_;
+       _data6_ = (Block6Data*) _userdata_;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (g_atomic_int_dec_and_test (&_data6_->_ref_count_)) {
+#line 2436 "moonshot-identity-dialog.c"
+               IdentityDialog* self;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               self = _data6_->_data5_->self;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (_data6_->label);
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               block5_data_unref (_data6_->_data5_);
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _data6_->_data5_ = NULL;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_slice_free (Block6Data, _data6_);
+#line 2448 "moonshot-identity-dialog.c"
+       }
+}
+
+
+static gboolean ____lambda10_ (Block6Data* _data6_) {
+       Block5Data* _data5_;
+       IdentityDialog* self;
+       gboolean result = FALSE;
+       GtkStateType state = 0;
+       GtkLabel* _tmp0_ = NULL;
+       GtkStateType _tmp1_ = 0;
+       MoonshotLogger* _tmp2_ = NULL;
+       GtkStateType _tmp3_ = 0;
+       GEnumValue* _tmp4_;
+       gchar* _tmp5_ = NULL;
+       gchar* _tmp6_ = NULL;
+       gchar* _tmp7_ = NULL;
+       gchar* _tmp8_ = NULL;
+       gchar* _tmp9_ = NULL;
+       gchar* _tmp10_ = NULL;
+       gchar* _tmp11_ = NULL;
+       gchar* _tmp12_ = NULL;
+       GtkLabel* _tmp13_ = NULL;
+       GtkLabel* _tmp14_ = NULL;
+#line 461 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data5_ = _data6_->_data5_;
+#line 461 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self = _data5_->self;
+#line 463 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = _data6_->label;
+#line 463 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = gtk_widget_get_state ((GtkWidget*) _tmp0_);
+#line 463 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       state = _tmp1_;
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp2_ = identity_dialog_logger;
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp3_ = state;
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp4_ = g_enum_get_value (g_type_class_ref (GTK_TYPE_STATE_TYPE), _tmp3_);
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp5_ = g_strconcat ("button_press_callback: Label state=", (_tmp4_ != NULL) ? _tmp4_->value_name : NULL, NULL);
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp6_ = _tmp5_;
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp7_ = g_strconcat (_tmp6_, " setting bg to ", NULL);
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp8_ = _tmp7_;
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp9_ = gdk_color_to_string (&identity_dialog_white);
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp10_ = _tmp9_;
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp11_ = g_strconcat (_tmp8_, _tmp10_, NULL);
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp12_ = _tmp11_;
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       moonshot_logger_trace (_tmp2_, _tmp12_, NULL);
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp12_);
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp10_);
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp8_);
+#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp6_);
+#line 466 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp13_ = self->priv->selected_item;
+#line 466 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp14_ = _data6_->label;
+#line 466 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (_tmp13_ == _tmp14_) {
+#line 2521 "moonshot-identity-dialog.c"
+               GtkLabel* _tmp15_ = NULL;
+               GtkContainer* _tmp16_ = NULL;
+               GtkContainer* _tmp17_ = NULL;
+               GtkStateType _tmp18_ = 0;
+               GdkColor _tmp19_ = {0};
+               GtkButton* _tmp20_ = NULL;
+#line 469 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp15_ = self->priv->selected_item;
+#line 469 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp16_ = gtk_widget_get_parent ((GtkWidget*) _tmp15_);
+#line 469 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp17_ = _tmp16_;
+#line 469 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp18_ = state;
+#line 469 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp19_ = identity_dialog_white;
+#line 469 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_widget_modify_bg ((GtkWidget*) _tmp17_, _tmp18_, &_tmp19_);
+#line 470 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (self->priv->selected_item);
+#line 470 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               self->priv->selected_item = NULL;
+#line 471 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp20_ = _data5_->remove_button;
+#line 471 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) _tmp20_, FALSE);
+#line 2548 "moonshot-identity-dialog.c"
+       } else {
+               GtkLabel* _tmp21_ = NULL;
+               GtkLabel* _tmp27_ = NULL;
+               GtkLabel* _tmp28_ = NULL;
+               GtkLabel* _tmp29_ = NULL;
+               GtkContainer* _tmp30_ = NULL;
+               GtkContainer* _tmp31_ = NULL;
+               GtkStateType _tmp32_ = 0;
+               GdkColor _tmp33_ = {0};
+               GtkButton* _tmp34_ = NULL;
+#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp21_ = self->priv->selected_item;
+#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               if (_tmp21_ != NULL) {
+#line 2563 "moonshot-identity-dialog.c"
+                       GtkLabel* _tmp22_ = NULL;
+                       GtkContainer* _tmp23_ = NULL;
+                       GtkContainer* _tmp24_ = NULL;
+                       GtkStateType _tmp25_ = 0;
+                       GdkColor _tmp26_ = {0};
+#line 478 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp22_ = self->priv->selected_item;
+#line 478 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp23_ = gtk_widget_get_parent ((GtkWidget*) _tmp22_);
+#line 478 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp24_ = _tmp23_;
+#line 478 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp25_ = state;
+#line 478 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp26_ = identity_dialog_white;
+#line 478 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       gtk_widget_modify_bg ((GtkWidget*) _tmp24_, _tmp25_, &_tmp26_);
+#line 479 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_object_unref0 (self->priv->selected_item);
+#line 479 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       self->priv->selected_item = NULL;
+#line 2585 "moonshot-identity-dialog.c"
+               }
+#line 483 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp27_ = _data6_->label;
+#line 483 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp28_ = _g_object_ref0 (_tmp27_);
+#line 483 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (self->priv->selected_item);
+#line 483 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               self->priv->selected_item = _tmp28_;
+#line 484 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp29_ = self->priv->selected_item;
+#line 484 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp30_ = gtk_widget_get_parent ((GtkWidget*) _tmp29_);
+#line 484 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp31_ = _tmp30_;
+#line 484 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp32_ = state;
+#line 484 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp33_ = identity_dialog_selected_color;
+#line 484 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_widget_modify_bg ((GtkWidget*) _tmp31_, _tmp32_, &_tmp33_);
+#line 485 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp34_ = _data5_->remove_button;
+#line 485 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) _tmp34_, TRUE);
+#line 2611 "moonshot-identity-dialog.c"
+       }
+#line 487 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       result = FALSE;
+#line 487 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return result;
+#line 2617 "moonshot-identity-dialog.c"
+}
+
+
+static gboolean _____lambda10__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+       gboolean result;
+       result = ____lambda10_ (self);
+#line 461 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return result;
+#line 2626 "moonshot-identity-dialog.c"
+}
+
+
+static void __lambda11_ (Block5Data* _data5_, GtkButton* remove_button) {
+       IdentityDialog* self;
+       gboolean _result_ = FALSE;
+       const gchar* _tmp0_ = NULL;
+       gchar* _tmp1_ = NULL;
+       gchar* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
+       GtkLabel* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       const gchar* _tmp7_ = NULL;
+       gchar* _tmp8_ = NULL;
+       gchar* _tmp9_ = NULL;
+       const gchar* _tmp10_ = NULL;
+       gchar* _tmp11_ = NULL;
+       gchar* _tmp12_ = NULL;
+       gboolean _tmp13_ = FALSE;
+       gboolean _tmp14_ = FALSE;
+       gboolean _tmp15_ = FALSE;
+#line 494 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self = _data5_->self;
+#line 494 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (remove_button != NULL);
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = _ ("You are about to remove the service\n'%s'.");
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = g_strconcat ("<span font-weight='heavy'>", _tmp0_, NULL);
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp2_ = _tmp1_;
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp3_ = g_strconcat (_tmp2_, "</span>", NULL);
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp4_ = _tmp3_;
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp5_ = self->priv->selected_item;
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp6_ = gtk_label_get_label (_tmp5_);
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp7_ = _tmp6_;
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp8_ = g_markup_printf_escaped (_tmp4_, _tmp7_);
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp9_ = _tmp8_;
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp10_ = _ ("\n\nAre you sure you want to do this?");
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp11_ = g_strconcat (_tmp9_, _tmp10_, NULL);
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp12_ = _tmp11_;
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp13_ = warning_dialog_confirm ((GtkWindow*) self, _tmp12_, "delete_service");
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp14_ = _tmp13_;
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp12_);
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp9_);
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp4_);
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp2_);
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _result_ = _tmp14_;
+#line 505 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp15_ = _result_;
+#line 505 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (_tmp15_) {
+#line 2697 "moonshot-identity-dialog.c"
+               IdCard* _tmp16_ = NULL;
+#line 507 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp16_ = self->priv->card;
+#line 507 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               if (_tmp16_ != NULL) {
+#line 2703 "moonshot-identity-dialog.c"
+                       GeeArrayList* _tmp17_ = NULL;
+                       GtkLabel* _tmp18_ = NULL;
+                       const gchar* _tmp19_ = NULL;
+                       const gchar* _tmp20_ = NULL;
+                       GtkTable* _tmp21_ = NULL;
+                       GtkLabel* _tmp22_ = NULL;
+                       GtkContainer* _tmp23_ = NULL;
+                       GtkContainer* _tmp24_ = NULL;
+                       GtkButton* _tmp25_ = NULL;
+#line 508 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp17_ = self->priv->services;
+#line 508 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp18_ = self->priv->selected_item;
+#line 508 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp19_ = gtk_label_get_label (_tmp18_);
+#line 508 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp20_ = _tmp19_;
+#line 508 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp17_, _tmp20_);
+#line 509 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp21_ = _data5_->services_table;
+#line 509 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp22_ = self->priv->selected_item;
+#line 509 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp23_ = gtk_widget_get_parent ((GtkWidget*) _tmp22_);
+#line 509 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp24_ = _tmp23_;
+#line 509 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       gtk_container_remove ((GtkContainer*) _tmp21_, (GtkWidget*) _tmp24_);
+#line 510 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_object_unref0 (self->priv->selected_item);
+#line 510 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       self->priv->selected_item = NULL;
+#line 511 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp25_ = remove_button;
+#line 511 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       gtk_widget_set_sensitive ((GtkWidget*) _tmp25_, FALSE);
+#line 2741 "moonshot-identity-dialog.c"
+               }
+       }
+}
+
+
+static void ___lambda11__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 494 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       __lambda11_ (self, _sender);
+#line 2750 "moonshot-identity-dialog.c"
+}
+
+
+static GtkVBox* identity_dialog_make_services_vbox (IdentityDialog* self) {
+       GtkVBox* result = NULL;
+       Block5Data* _data5_;
+       MoonshotLogger* _tmp0_ = NULL;
+       GtkAlignment* services_vbox_alignment = NULL;
+       GtkAlignment* _tmp1_ = NULL;
+       GtkScrolledWindow* services_vscroll = NULL;
+       GtkScrolledWindow* _tmp2_ = NULL;
+       GtkScrolledWindow* _tmp3_ = NULL;
+       GtkScrolledWindow* _tmp4_ = NULL;
+       GtkScrolledWindow* _tmp5_ = NULL;
+       GtkScrolledWindow* _tmp6_ = NULL;
+       GtkAlignment* _tmp7_ = NULL;
+       GtkButton* _tmp8_ = NULL;
+       GtkButton* _tmp9_ = NULL;
+       IdCard* _tmp10_ = NULL;
+       GeeArrayList* _tmp11_ = NULL;
+       GeeArrayList* _tmp12_ = NULL;
+       gint _tmp13_ = 0;
+       gint _tmp14_ = 0;
+       GtkTable* _tmp15_ = NULL;
+       GtkTable* _tmp16_ = NULL;
+       GtkTable* _tmp17_ = NULL;
+       GtkTable* _tmp18_ = NULL;
+       GtkHBox* table_button_hbox = NULL;
+       GtkHBox* _tmp19_ = NULL;
+       GtkHBox* _tmp20_ = NULL;
+       GtkScrolledWindow* _tmp21_ = NULL;
+       GtkVBox* fixed_height = NULL;
+       GtkVBox* _tmp22_ = NULL;
+       GtkVBox* _tmp23_ = NULL;
+       GtkButton* _tmp24_ = NULL;
+       GtkHBox* _tmp25_ = NULL;
+       GtkVBox* _tmp26_ = NULL;
+       GtkEventBox* table_bg = NULL;
+       GtkEventBox* _tmp27_ = NULL;
+       GtkEventBox* _tmp28_ = NULL;
+       GtkEventBox* _tmp29_ = NULL;
+       GtkTable* _tmp30_ = NULL;
+       GtkAlignment* _tmp31_ = NULL;
+       GtkEventBox* _tmp32_ = NULL;
+       GtkLabel* services_vbox_title = NULL;
+       const gchar* _tmp33_ = NULL;
+       GtkLabel* _tmp34_ = NULL;
+       GtkLabel* _tmp35_ = NULL;
+       GtkVBox* services_vbox = NULL;
+       GtkVBox* _tmp36_ = NULL;
+       GtkVBox* _tmp37_ = NULL;
+       GtkLabel* _tmp38_ = NULL;
+       GtkVBox* _tmp39_ = NULL;
+       GtkHBox* _tmp40_ = NULL;
+       gint i = 0;
+       GtkButton* _tmp67_ = NULL;
+#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data5_ = g_slice_new0 (Block5Data);
+#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data5_->_ref_count_ = 1;
+#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data5_->self = g_object_ref (self);
+#line 407 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = identity_dialog_logger;
+#line 407 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       moonshot_logger_trace (_tmp0_, "make_services_vbox", NULL);
+#line 409 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = (GtkAlignment*) gtk_alignment_new ((gfloat) 0, (gfloat) 0, (gfloat) 1, (gfloat) 0);
+#line 409 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp1_);
+#line 409 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       services_vbox_alignment = _tmp1_;
+#line 410 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp2_ = (GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL);
+#line 410 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp2_);
+#line 410 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       services_vscroll = _tmp2_;
+#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp3_ = services_vscroll;
+#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_scrolled_window_set_policy (_tmp3_, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+#line 412 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp4_ = services_vscroll;
+#line 412 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_scrolled_window_set_shadow_type (_tmp4_, GTK_SHADOW_IN);
+#line 413 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp5_ = services_vscroll;
+#line 413 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_widget_set_size_request ((GtkWidget*) _tmp5_, 0, 60);
+#line 414 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp6_ = services_vscroll;
+#line 414 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp7_ = services_vbox_alignment;
+#line 414 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_scrolled_window_add_with_viewport (_tmp6_, (GtkWidget*) _tmp7_);
+#line 417 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp8_ = (GtkButton*) gtk_button_new_from_stock (GTK_STOCK_REMOVE);
+#line 417 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp8_);
+#line 417 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data5_->remove_button = _tmp8_;
+#line 421 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp9_ = _data5_->remove_button;
+#line 421 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_widget_set_sensitive ((GtkWidget*) _tmp9_, FALSE);
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp10_ = self->priv->card;
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp11_ = id_card_get_services (_tmp10_);
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp12_ = _tmp11_;
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp13_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp12_);
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp14_ = _tmp13_;
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp15_ = (GtkTable*) gtk_table_new ((guint) _tmp14_, (guint) 1, FALSE);
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp15_);
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data5_->services_table = _tmp15_;
+#line 425 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp16_ = _data5_->services_table;
+#line 425 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_table_set_row_spacings (_tmp16_, (guint) 1);
+#line 426 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp17_ = _data5_->services_table;
+#line 426 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_table_set_col_spacings (_tmp17_, (guint) 0);
+#line 427 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp18_ = _data5_->services_table;
+#line 427 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       set_bg_color ((GtkWidget*) _tmp18_);
+#line 429 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp19_ = (GtkHBox*) gtk_hbox_new (FALSE, 6);
+#line 429 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp19_);
+#line 429 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       table_button_hbox = _tmp19_;
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp20_ = table_button_hbox;
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp21_ = services_vscroll;
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp20_, (GtkWidget*) _tmp21_, TRUE, TRUE, (guint) 4);
+#line 433 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp22_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
+#line 433 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp22_);
+#line 433 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       fixed_height = _tmp22_;
+#line 434 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp23_ = fixed_height;
+#line 434 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp24_ = _data5_->remove_button;
+#line 434 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp23_, (GtkWidget*) _tmp24_, FALSE, FALSE, (guint) 0);
+#line 435 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp25_ = table_button_hbox;
+#line 435 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp26_ = fixed_height;
+#line 435 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp25_, (GtkWidget*) _tmp26_, FALSE, FALSE, (guint) 0);
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp27_ = (GtkEventBox*) gtk_event_box_new ();
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp27_);
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       table_bg = _tmp27_;
+#line 440 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp28_ = table_bg;
+#line 440 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       set_bg_color ((GtkWidget*) _tmp28_);
+#line 441 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp29_ = table_bg;
+#line 441 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp30_ = _data5_->services_table;
+#line 441 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_container_add ((GtkContainer*) _tmp29_, (GtkWidget*) _tmp30_);
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp31_ = services_vbox_alignment;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp32_ = table_bg;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_container_add ((GtkContainer*) _tmp31_, (GtkWidget*) _tmp32_);
+#line 444 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp33_ = _ ("Services:");
+#line 444 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp34_ = (GtkLabel*) gtk_label_new (_tmp33_);
+#line 444 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp34_);
+#line 444 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       services_vbox_title = _tmp34_;
+#line 445 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp35_ = services_vbox_title;
+#line 445 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) _tmp35_, (gfloat) 0, 0.5f);
+#line 447 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp36_ = (GtkVBox*) gtk_vbox_new (FALSE, 6);
+#line 447 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp36_);
+#line 447 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       services_vbox = _tmp36_;
+#line 448 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp37_ = services_vbox;
+#line 448 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp38_ = services_vbox_title;
+#line 448 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp37_, (GtkWidget*) _tmp38_, FALSE, FALSE, (guint) 0);
+#line 449 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp39_ = services_vbox;
+#line 449 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp40_ = table_button_hbox;
+#line 449 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp39_, (GtkWidget*) _tmp40_, TRUE, TRUE, (guint) 0);
+#line 451 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       i = 0;
+#line 2971 "moonshot-identity-dialog.c"
+       {
+               GeeArrayList* _service_list = NULL;
+               GeeArrayList* _tmp41_ = NULL;
+               GeeArrayList* _tmp42_ = NULL;
+               gint _service_size = 0;
+               GeeArrayList* _tmp43_ = NULL;
+               gint _tmp44_ = 0;
+               gint _tmp45_ = 0;
+               gint _service_index = 0;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp41_ = self->priv->services;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp42_ = _g_object_ref0 (_tmp41_);
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _service_list = _tmp42_;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp43_ = _service_list;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp44_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp43_);
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp45_ = _tmp44_;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _service_size = _tmp45_;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _service_index = -1;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               while (TRUE) {
+#line 2999 "moonshot-identity-dialog.c"
+                       Block6Data* _data6_;
+                       gint _tmp46_ = 0;
+                       gint _tmp47_ = 0;
+                       gint _tmp48_ = 0;
+                       gchar* service = NULL;
+                       GeeArrayList* _tmp49_ = NULL;
+                       gint _tmp50_ = 0;
+                       gpointer _tmp51_ = NULL;
+                       const gchar* _tmp52_ = NULL;
+                       GtkLabel* _tmp53_ = NULL;
+                       GtkLabel* _tmp54_ = NULL;
+                       GtkLabel* _tmp55_ = NULL;
+                       GtkEventBox* event_box = NULL;
+                       GtkEventBox* _tmp56_ = NULL;
+                       GtkEventBox* _tmp57_ = NULL;
+                       GdkColor _tmp58_ = {0};
+                       GtkEventBox* _tmp59_ = NULL;
+                       GtkLabel* _tmp60_ = NULL;
+                       GtkEventBox* _tmp61_ = NULL;
+                       GtkTable* _tmp62_ = NULL;
+                       GtkEventBox* _tmp63_ = NULL;
+                       gint _tmp64_ = 0;
+                       gint _tmp65_ = 0;
+                       gint _tmp66_ = 0;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _data6_ = g_slice_new0 (Block6Data);
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _data6_->_ref_count_ = 1;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _data6_->_data5_ = block5_data_ref (_data5_);
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp46_ = _service_index;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _service_index = _tmp46_ + 1;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp47_ = _service_index;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp48_ = _service_size;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       if (!(_tmp47_ < _tmp48_)) {
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                               block6_data_unref (_data6_);
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                               _data6_ = NULL;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                               break;
+#line 3046 "moonshot-identity-dialog.c"
+                       }
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp49_ = _service_list;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp50_ = _service_index;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp51_ = gee_abstract_list_get ((GeeAbstractList*) _tmp49_, _tmp50_);
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       service = (gchar*) _tmp51_;
+#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp52_ = service;
+#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp53_ = (GtkLabel*) gtk_label_new (_tmp52_);
+#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       g_object_ref_sink (_tmp53_);
+#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _data6_->label = _tmp53_;
+#line 455 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp54_ = _data6_->label;
+#line 455 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       gtk_misc_set_alignment ((GtkMisc*) _tmp54_, (gfloat) 0, (gfloat) 0);
+#line 456 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp55_ = _data6_->label;
+#line 456 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       g_object_set ((GtkMisc*) _tmp55_, "xpad", 3, NULL);
+#line 458 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp56_ = (GtkEventBox*) gtk_event_box_new ();
+#line 458 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       g_object_ref_sink (_tmp56_);
+#line 458 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       event_box = _tmp56_;
+#line 459 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp57_ = event_box;
+#line 459 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp58_ = identity_dialog_white;
+#line 459 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       gtk_widget_modify_bg ((GtkWidget*) _tmp57_, GTK_STATE_NORMAL, &_tmp58_);
+#line 460 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp59_ = event_box;
+#line 460 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp60_ = _data6_->label;
+#line 460 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       gtk_container_add ((GtkContainer*) _tmp59_, (GtkWidget*) _tmp60_);
+#line 461 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp61_ = event_box;
+#line 461 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       g_signal_connect_data ((GtkWidget*) _tmp61_, "button-press-event", (GCallback) _____lambda10__gtk_widget_button_press_event, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
+#line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp62_ = _data5_->services_table;
+#line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp63_ = event_box;
+#line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp64_ = i;
+#line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp65_ = i;
+#line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       gtk_table_attach_defaults (_tmp62_, (GtkWidget*) _tmp63_, (guint) 0, (guint) 1, (guint) _tmp64_, (guint) (_tmp65_ + 1));
+#line 491 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp66_ = i;
+#line 491 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       i = _tmp66_ + 1;
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_object_unref0 (event_box);
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (service);
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       block6_data_unref (_data6_);
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _data6_ = NULL;
+#line 3116 "moonshot-identity-dialog.c"
+               }
+#line 452 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (_service_list);
+#line 3120 "moonshot-identity-dialog.c"
+       }
+#line 494 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp67_ = _data5_->remove_button;
+#line 494 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_signal_connect_data (_tmp67_, "clicked", (GCallback) ___lambda11__gtk_button_clicked, block5_data_ref (_data5_), (GClosureNotify) block5_data_unref, 0);
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       result = services_vbox;
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (services_vbox_title);
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (table_bg);
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (fixed_height);
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (table_button_hbox);
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (services_vscroll);
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (services_vbox_alignment);
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       block5_data_unref (_data5_);
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _data5_ = NULL;
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return result;
+#line 3146 "moonshot-identity-dialog.c"
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+       gchar* result = NULL;
+       GError * _inner_error_ = NULL;
+#line 1388 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1388 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (old != NULL, NULL);
+#line 1388 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (replacement != NULL, NULL);
+#line 3159 "moonshot-identity-dialog.c"
+       {
+               GRegex* regex = NULL;
+               const gchar* _tmp0_ = NULL;
+               gchar* _tmp1_ = NULL;
+               gchar* _tmp2_ = NULL;
+               GRegex* _tmp3_ = NULL;
+               GRegex* _tmp4_ = NULL;
+               gchar* _tmp5_ = NULL;
+               GRegex* _tmp6_ = NULL;
+               const gchar* _tmp7_ = NULL;
+               gchar* _tmp8_ = NULL;
+               gchar* _tmp9_ = NULL;
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp0_ = old;
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp2_ = _tmp1_;
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp4_ = _tmp3_;
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _g_free0 (_tmp2_);
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               regex = _tmp4_;
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 3190 "moonshot-identity-dialog.c"
+                               goto __catch10_g_regex_error;
+                       }
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       g_clear_error (&_inner_error_);
+#line 1390 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       return NULL;
+#line 3199 "moonshot-identity-dialog.c"
+               }
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp6_ = regex;
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp7_ = replacement;
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp5_ = _tmp8_;
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       _g_regex_unref0 (regex);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 3215 "moonshot-identity-dialog.c"
+                               goto __catch10_g_regex_error;
+                       }
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       _g_regex_unref0 (regex);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       g_clear_error (&_inner_error_);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                       return NULL;
+#line 3226 "moonshot-identity-dialog.c"
+               }
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp9_ = _tmp5_;
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp5_ = NULL;
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               result = _tmp9_;
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _g_free0 (_tmp5_);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _g_regex_unref0 (regex);
+#line 1391 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return result;
+#line 3240 "moonshot-identity-dialog.c"
+       }
+       goto __finally10;
+       __catch10_g_regex_error:
+       {
+               GError* e = NULL;
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               e = _inner_error_;
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _inner_error_ = NULL;
+#line 1393 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               g_assert_not_reached ();
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _g_error_free0 (e);
+#line 3254 "moonshot-identity-dialog.c"
+       }
+       __finally10:
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               g_clear_error (&_inner_error_);
+#line 1389 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return NULL;
+#line 3265 "moonshot-identity-dialog.c"
+       }
+}
+
+
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+       gchar* result = NULL;
+       glong string_length = 0L;
+       gint _tmp0_ = 0;
+       gint _tmp1_ = 0;
+       glong _tmp2_ = 0L;
+       glong _tmp5_ = 0L;
+       gboolean _tmp8_ = FALSE;
+       glong _tmp9_ = 0L;
+       gboolean _tmp12_ = FALSE;
+       glong _tmp13_ = 0L;
+       glong _tmp16_ = 0L;
+       glong _tmp17_ = 0L;
+       glong _tmp18_ = 0L;
+       glong _tmp19_ = 0L;
+       glong _tmp20_ = 0L;
+       gchar* _tmp21_ = NULL;
+#line 1336 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1337 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp0_ = strlen (self);
+#line 1337 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp1_ = _tmp0_;
+#line 1337 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       string_length = (glong) _tmp1_;
+#line 1338 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp2_ = start;
+#line 1338 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (_tmp2_ < ((glong) 0)) {
+#line 3299 "moonshot-identity-dialog.c"
+               glong _tmp3_ = 0L;
+               glong _tmp4_ = 0L;
+#line 1339 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp3_ = string_length;
+#line 1339 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp4_ = start;
+#line 1339 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               start = _tmp3_ + _tmp4_;
+#line 3308 "moonshot-identity-dialog.c"
+       }
+#line 1341 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp5_ = end;
+#line 1341 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (_tmp5_ < ((glong) 0)) {
+#line 3314 "moonshot-identity-dialog.c"
+               glong _tmp6_ = 0L;
+               glong _tmp7_ = 0L;
+#line 1342 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp6_ = string_length;
+#line 1342 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp7_ = end;
+#line 1342 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               end = _tmp6_ + _tmp7_;
+#line 3323 "moonshot-identity-dialog.c"
+       }
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp9_ = start;
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (_tmp9_ >= ((glong) 0)) {
+#line 3329 "moonshot-identity-dialog.c"
+               glong _tmp10_ = 0L;
+               glong _tmp11_ = 0L;
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp10_ = start;
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp11_ = string_length;
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp8_ = _tmp10_ <= _tmp11_;
+#line 3338 "moonshot-identity-dialog.c"
+       } else {
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp8_ = FALSE;
+#line 3342 "moonshot-identity-dialog.c"
+       }
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (_tmp8_, NULL);
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp13_ = end;
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (_tmp13_ >= ((glong) 0)) {
+#line 3350 "moonshot-identity-dialog.c"
+               glong _tmp14_ = 0L;
+               glong _tmp15_ = 0L;
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp14_ = end;
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp15_ = string_length;
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp12_ = _tmp14_ <= _tmp15_;
+#line 3359 "moonshot-identity-dialog.c"
+       } else {
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp12_ = FALSE;
+#line 3363 "moonshot-identity-dialog.c"
+       }
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (_tmp12_, NULL);
+#line 1346 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp16_ = start;
+#line 1346 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp17_ = end;
+#line 1346 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (_tmp16_ <= _tmp17_, NULL);
+#line 1347 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp18_ = start;
+#line 1347 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp19_ = end;
+#line 1347 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp20_ = start;
+#line 1347 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp21_ = g_strndup (((gchar*) self) + _tmp18_, (gsize) (_tmp19_ - _tmp20_));
+#line 1347 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = _tmp21_;
+#line 1347 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 3385 "moonshot-identity-dialog.c"
+}
+
+
+static guint8* string_get_data (const gchar* self, int* result_length1) {
+       guint8* result;
+       guint8* res = NULL;
+       gint res_length1 = 0;
+       gint _res_size_ = 0;
+       gint _tmp0_ = 0;
+       gint _tmp1_ = 0;
+       gint _tmp2_ = 0;
+       guint8* _tmp3_ = NULL;
+       gint _tmp3__length1 = 0;
+       guint8* _tmp4_ = NULL;
+       gint _tmp4__length1 = 0;
+#line 1406 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1407 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       res = (guint8*) self;
+#line 1407 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       res_length1 = -1;
+#line 1407 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _res_size_ = res_length1;
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp0_ = strlen (self);
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp1_ = _tmp0_;
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       res_length1 = (gint) _tmp1_;
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp2_ = res_length1;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp3_ = res;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp3__length1 = res_length1;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp4_ = _tmp3_;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp4__length1 = _tmp3__length1;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (result_length1) {
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               *result_length1 = _tmp4__length1;
+#line 3429 "moonshot-identity-dialog.c"
+       }
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = _tmp4_;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 3435 "moonshot-identity-dialog.c"
+}
+
+
+static void identity_dialog_export_certificate (IdentityDialog* self, IdCard* id) {
+       GtkFileChooserDialog* dialog = NULL;
+       const gchar* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+       GtkFileChooserDialog* _tmp2_ = NULL;
+       GtkFileChooserDialog* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       gchar* default_filename = NULL;
+       IdCard* _tmp7_ = NULL;
+       const gchar* _tmp8_ = NULL;
+       const gchar* _tmp9_ = NULL;
+       gchar* _tmp10_ = NULL;
+       gchar* _tmp11_ = NULL;
+       gchar* _tmp12_ = NULL;
+       gchar* _tmp13_ = NULL;
+       GtkFileChooserDialog* _tmp14_ = NULL;
+       const gchar* _tmp15_ = NULL;
+       GtkFileChooserDialog* _tmp16_ = NULL;
+       gint _tmp17_ = 0;
+       GtkFileChooserDialog* _tmp62_ = NULL;
+       GError * _inner_error_ = NULL;
+#line 520 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (self != NULL);
+#line 520 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_if_fail (id != NULL);
+#line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = _ ("Cancel");
+#line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = _ ("Save");
+#line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp2_ = (GtkFileChooserDialog*) gtk_file_chooser_dialog_new ("Save File", (GtkWindow*) self, GTK_FILE_CHOOSER_ACTION_SAVE, _tmp0_, GTK_RESPONSE_CANCEL, _tmp1_, GTK_RESPONSE_ACCEPT, NULL, NULL);
+#line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_ref_sink (_tmp2_);
+#line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       dialog = _tmp2_;
+#line 528 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp3_ = dialog;
+#line 528 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_file_chooser_set_do_overwrite_confirmation ((GtkFileChooser*) _tmp3_, TRUE);
+#line 529 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp4_ = export_directory;
+#line 529 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (_tmp4_ != NULL) {
+#line 3482 "moonshot-identity-dialog.c"
+               GtkFileChooserDialog* _tmp5_ = NULL;
+               const gchar* _tmp6_ = NULL;
+#line 530 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp5_ = dialog;
+#line 530 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp6_ = export_directory;
+#line 530 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               gtk_file_chooser_set_current_folder ((GtkFileChooser*) _tmp5_, _tmp6_);
+#line 3491 "moonshot-identity-dialog.c"
+       }
+#line 533 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp7_ = id;
+#line 533 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp8_ = id_card_get_display_name (_tmp7_);
+#line 533 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp9_ = _tmp8_;
+#line 533 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp10_ = g_strconcat (_tmp9_, ".pem", NULL);
+#line 533 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp11_ = _tmp10_;
+#line 533 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp12_ = string_replace (_tmp11_, G_DIR_SEPARATOR_S, "_");
+#line 533 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp13_ = _tmp12_;
+#line 533 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (_tmp11_);
+#line 533 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       default_filename = _tmp13_;
+#line 535 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp14_ = dialog;
+#line 535 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp15_ = default_filename;
+#line 535 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_file_chooser_set_current_name ((GtkFileChooser*) _tmp14_, _tmp15_);
+#line 536 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp16_ = dialog;
+#line 536 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp17_ = gtk_dialog_run ((GtkDialog*) _tmp16_);
+#line 536 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       if (_tmp17_ == ((gint) GTK_RESPONSE_ACCEPT)) {
+#line 540 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               static const char CERT_HEADER[] = "-----BEGIN CERTIFICATE-----\n";
+#line 541 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               static const char CERT_FOOTER[] = "\n-----END CERTIFICATE-----\n";
+#line 3527 "moonshot-identity-dialog.c"
+               gchar* cert = NULL;
+               IdCard* _tmp18_ = NULL;
+               TrustAnchor* _tmp19_ = NULL;
+               TrustAnchor* _tmp20_ = NULL;
+               const gchar* _tmp21_ = NULL;
+               const gchar* _tmp22_ = NULL;
+               gchar* _tmp23_ = NULL;
+               gchar* newcert = NULL;
+               gchar* _tmp24_ = NULL;
+               const gchar* _tmp40_ = NULL;
+               gint _tmp41_ = 0;
+               gint _tmp42_ = 0;
+               const gchar* _tmp46_ = NULL;
+               gchar* _tmp47_ = NULL;
+               gchar* filename = NULL;
+               GtkFileChooserDialog* _tmp48_ = NULL;
+               gchar* _tmp49_ = NULL;
+               GFile* file = NULL;
+               const gchar* _tmp50_ = NULL;
+               GFile* _tmp51_ = NULL;
+               GFileOutputStream* stream = NULL;
+               GFile* _tmp52_ = NULL;
+               GFileOutputStream* _tmp53_ = NULL;
+               GFileOutputStream* _tmp54_ = NULL;
+               const gchar* _tmp55_ = NULL;
+               guint8* _tmp56_ = NULL;
+               gint _tmp56__length1 = 0;
+               guint8* _tmp57_ = NULL;
+               gint _tmp57__length1 = 0;
+               GFile* _tmp58_ = NULL;
+               GFile* _tmp59_ = NULL;
+               GFile* _tmp60_ = NULL;
+               gchar* _tmp61_ = NULL;
+#line 544 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp18_ = id;
+#line 544 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp19_ = id_card_get_trust_anchor (_tmp18_);
+#line 544 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp20_ = _tmp19_;
+#line 544 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp21_ = trust_anchor_get_ca_cert (_tmp20_);
+#line 544 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp22_ = _tmp21_;
+#line 544 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp23_ = string_replace (_tmp22_, "\n", "");
+#line 544 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               cert = _tmp23_;
+#line 547 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp24_ = g_strdup (CERT_HEADER);
+#line 547 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               newcert = _tmp24_;
+#line 548 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               while (TRUE) {
+#line 3581 "moonshot-identity-dialog.c"
+                       const gchar* _tmp25_ = NULL;
+                       gint _tmp26_ = 0;
+                       gint _tmp27_ = 0;
+                       const gchar* _tmp28_ = NULL;
+                       const gchar* _tmp29_ = NULL;
+                       gchar* _tmp30_ = NULL;
+                       gchar* _tmp31_ = NULL;
+                       gchar* _tmp32_ = NULL;
+                       const gchar* _tmp33_ = NULL;
+                       gchar* _tmp34_ = NULL;
+                       const gchar* _tmp35_ = NULL;
+                       const gchar* _tmp36_ = NULL;
+                       gint _tmp37_ = 0;
+                       gint _tmp38_ = 0;
+                       gchar* _tmp39_ = NULL;
+#line 548 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp25_ = cert;
+#line 548 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp26_ = strlen (_tmp25_);
+#line 548 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp27_ = _tmp26_;
+#line 548 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       if (!(_tmp27_ > 63)) {
+#line 548 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                               break;
+#line 3607 "moonshot-identity-dialog.c"
+                       }
+#line 549 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp28_ = newcert;
+#line 549 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp29_ = cert;
+#line 549 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp30_ = string_slice (_tmp29_, (glong) 0, (glong) 64);
+#line 549 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp31_ = _tmp30_;
+#line 549 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp32_ = g_strconcat (_tmp28_, _tmp31_, NULL);
+#line 549 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (newcert);
+#line 549 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       newcert = _tmp32_;
+#line 549 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (_tmp31_);
+#line 550 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp33_ = newcert;
+#line 550 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp34_ = g_strconcat (_tmp33_, "\n", NULL);
+#line 550 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (newcert);
+#line 550 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       newcert = _tmp34_;
+#line 551 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp35_ = cert;
+#line 551 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp36_ = cert;
+#line 551 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp37_ = strlen (_tmp36_);
+#line 551 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp38_ = _tmp37_;
+#line 551 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp39_ = string_slice (_tmp35_, (glong) 64, (glong) _tmp38_);
+#line 551 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (cert);
+#line 551 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       cert = _tmp39_;
+#line 3647 "moonshot-identity-dialog.c"
+               }
+#line 553 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp40_ = cert;
+#line 553 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp41_ = strlen (_tmp40_);
+#line 553 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp42_ = _tmp41_;
+#line 553 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               if (_tmp42_ > 0) {
+#line 3657 "moonshot-identity-dialog.c"
+                       const gchar* _tmp43_ = NULL;
+                       const gchar* _tmp44_ = NULL;
+                       gchar* _tmp45_ = NULL;
+#line 554 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp43_ = newcert;
+#line 554 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp44_ = cert;
+#line 554 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _tmp45_ = g_strconcat (_tmp43_, _tmp44_, NULL);
+#line 554 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (newcert);
+#line 554 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       newcert = _tmp45_;
+#line 3671 "moonshot-identity-dialog.c"
+               }
+#line 556 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp46_ = newcert;
+#line 556 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp47_ = g_strconcat (_tmp46_, CERT_FOOTER, NULL);
+#line 556 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (newcert);
+#line 556 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               newcert = _tmp47_;
+#line 558 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp48_ = dialog;
+#line 558 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp49_ = gtk_file_chooser_get_filename ((GtkFileChooser*) _tmp48_);
+#line 558 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               filename = _tmp49_;
+#line 559 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp50_ = filename;
+#line 559 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp51_ = g_file_new_for_path (_tmp50_);
+#line 559 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               file = _tmp51_;
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp52_ = file;
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp53_ = g_file_replace (_tmp52_, NULL, FALSE, G_FILE_CREATE_PRIVATE, NULL, &_inner_error_);
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               stream = _tmp53_;
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_object_unref0 (file);
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (filename);
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (newcert);
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (cert);
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (default_filename);
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_object_unref0 (dialog);
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       g_clear_error (&_inner_error_);
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       return;
+#line 3719 "moonshot-identity-dialog.c"
+               }
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp54_ = stream;
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp55_ = newcert;
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp56_ = string_get_data (_tmp55_, &_tmp56__length1);
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp57_ = _tmp56_;
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp57__length1 = _tmp56__length1;
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_output_stream_write ((GOutputStream*) _tmp54_, _tmp57_, (gsize) _tmp57__length1, NULL, &_inner_error_);
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_object_unref0 (stream);
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_object_unref0 (file);
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (filename);
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (newcert);
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (cert);
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_free0 (default_filename);
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       _g_object_unref0 (dialog);
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       g_clear_error (&_inner_error_);
+#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+                       return;
+#line 3755 "moonshot-identity-dialog.c"
+               }
+#line 564 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp58_ = file;
+#line 564 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp59_ = g_file_get_parent (_tmp58_);
+#line 564 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp60_ = _tmp59_;
+#line 564 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _tmp61_ = g_file_get_path (_tmp60_);
+#line 564 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (export_directory);
+#line 564 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               export_directory = _tmp61_;
+#line 564 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (_tmp60_);
+#line 536 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (stream);
+#line 536 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_object_unref0 (file);
+#line 536 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (filename);
+#line 536 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (newcert);
+#line 536 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               _g_free0 (cert);
+#line 3781 "moonshot-identity-dialog.c"
+       }
+#line 566 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp62_ = dialog;
+#line 566 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       gtk_object_destroy ((GtkObject*) _tmp62_);
+#line 520 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_free0 (default_filename);
+#line 520 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (dialog);
+#line 3791 "moonshot-identity-dialog.c"
+}
+
+
+const gchar* identity_dialog_get_display_name (IdentityDialog* self) {
+       const gchar* result;
+       GtkEntry* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = self->priv->displayname_entry;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = gtk_entry_get_text (_tmp0_);
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       result = _tmp1_;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return result;
+#line 3809 "moonshot-identity-dialog.c"
+}
+
+
+const gchar* identity_dialog_get_issuer (IdentityDialog* self) {
+       const gchar* result;
+       GtkEntry* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = self->priv->realm_entry;
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = gtk_entry_get_text (_tmp0_);
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       result = _tmp1_;
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return result;
+#line 3827 "moonshot-identity-dialog.c"
+}
+
+
+const gchar* identity_dialog_get_username (IdentityDialog* self) {
+       const gchar* result;
+       GtkEntry* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = self->priv->username_entry;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = gtk_entry_get_text (_tmp0_);
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       result = _tmp1_;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return result;
+#line 3845 "moonshot-identity-dialog.c"
+}
+
+
+const gchar* identity_dialog_get_password (IdentityDialog* self) {
+       const gchar* result;
+       GtkEntry* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = self->priv->password_entry;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = gtk_entry_get_text (_tmp0_);
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       result = _tmp1_;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return result;
+#line 3863 "moonshot-identity-dialog.c"
+}
+
+
+gboolean identity_dialog_get_store_password (IdentityDialog* self) {
+       gboolean result;
+       GtkCheckButton* _tmp0_ = NULL;
+       gboolean _tmp1_ = FALSE;
+       gboolean _tmp2_ = FALSE;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp0_ = self->priv->remember_checkbutton;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp1_ = gtk_toggle_button_get_active ((GtkToggleButton*) _tmp0_);
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp2_ = _tmp1_;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       result = _tmp2_;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       return result;
+#line 3884 "moonshot-identity-dialog.c"
+}
+
+
+static void identity_dialog_class_init (IdentityDialogClass * klass) {
+       GdkColor _tmp0_ = {0};
+       GdkColor _tmp1_ = {0};
+       MoonshotLogger* _tmp2_ = NULL;
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       identity_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_type_class_add_private (klass, sizeof (IdentityDialogPrivate));
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       G_OBJECT_CLASS (klass)->get_property = _vala_identity_dialog_get_property;
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       G_OBJECT_CLASS (klass)->finalize = identity_dialog_finalize;
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_DISPLAY_NAME, g_param_spec_string ("display-name", "display-name", "display-name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_ISSUER, g_param_spec_string ("issuer", "issuer", "issuer", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_USERNAME, g_param_spec_string ("username", "username", "username", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_PASSWORD, g_param_spec_string ("password", "password", "password", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_STORE_PASSWORD, g_param_spec_boolean ("store-password", "store-password", "store-password", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       make_color ((guint16) 65535, (guint16) 65535, (guint16) 65535, &_tmp0_);
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       identity_dialog_white = _tmp0_;
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       make_color ((guint16) (0xd9 << 8), (guint16) (0xf7 << 8), (guint16) 65535, &_tmp1_);
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       identity_dialog_selected_color = _tmp1_;
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _tmp2_ = get_logger ("IdentityDialog");
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       identity_dialog_logger = _tmp2_;
+#line 3922 "moonshot-identity-dialog.c"
+}
+
+
+static void identity_dialog_instance_init (IdentityDialog * self) {
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv = IDENTITY_DIALOG_GET_PRIVATE (self);
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->priv->selected_item = NULL;
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self->clear_trust_anchor = FALSE;
+#line 3933 "moonshot-identity-dialog.c"
+}
+
+
+static void identity_dialog_finalize (GObject* obj) {
+       IdentityDialog * self;
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_IDENTITY_DIALOG, IdentityDialog);
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->displayname_entry);
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->displayname_label);
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->realm_entry);
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->realm_label);
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->username_entry);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->username_label);
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->password_entry);
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->password_label);
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->remember_checkbutton);
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->message_label);
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->card);
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->services);
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       _g_object_unref0 (self->priv->selected_item);
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       G_OBJECT_CLASS (identity_dialog_parent_class)->finalize (obj);
+#line 3969 "moonshot-identity-dialog.c"
+}
+
+
+GType identity_dialog_get_type (void) {
+       static volatile gsize identity_dialog_type_id__volatile = 0;
+       if (g_once_init_enter (&identity_dialog_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (IdentityDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) identity_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (IdentityDialog), 0, (GInstanceInitFunc) identity_dialog_instance_init, NULL };
+               GType identity_dialog_type_id;
+               identity_dialog_type_id = g_type_register_static (GTK_TYPE_DIALOG, "IdentityDialog", &g_define_type_info, 0);
+               g_once_init_leave (&identity_dialog_type_id__volatile, identity_dialog_type_id);
+       }
+       return identity_dialog_type_id__volatile;
+}
+
+
+static void _vala_identity_dialog_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+       IdentityDialog * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_IDENTITY_DIALOG, IdentityDialog);
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+       switch (property_id) {
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               case IDENTITY_DIALOG_DISPLAY_NAME:
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_value_set_string (value, identity_dialog_get_display_name (self));
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               break;
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               case IDENTITY_DIALOG_ISSUER:
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_value_set_string (value, identity_dialog_get_issuer (self));
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               break;
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               case IDENTITY_DIALOG_USERNAME:
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_value_set_string (value, identity_dialog_get_username (self));
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               break;
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               case IDENTITY_DIALOG_PASSWORD:
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_value_set_string (value, identity_dialog_get_password (self));
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               break;
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               case IDENTITY_DIALOG_STORE_PASSWORD:
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               g_value_set_boolean (value, identity_dialog_get_store_password (self));
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               break;
+#line 4020 "moonshot-identity-dialog.c"
+               default:
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-dialog.vala"
+               break;
+#line 4026 "moonshot-identity-dialog.c"
+       }
+}
+
+
+
diff --git a/src/moonshot-identity-dialog.vala b/src/moonshot-identity-dialog.vala
new file mode 100644 (file)
index 0000000..6f59f2f
--- /dev/null
@@ -0,0 +1,568 @@
+/*
+ * Copyright (c) 2016, JANET(UK)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of JANET(UK) nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+*/
+
+using Gee;
+using Gtk;
+
+
+// Defined here as workaround for emacs vala-mode indentation failure.
+#if VALA_0_12
+static const string CANCEL = Stock.CANCEL;
+#else
+static const string CANCEL = STOCK_CANCEL;
+#endif
+
+
+// For use when exporting certificates.
+static string export_directory = null;
+
+class IdentityDialog : Dialog
+{
+    private static Gdk.Color white = make_color(65535, 65535, 65535);
+    private static Gdk.Color selected_color = make_color(0xd9 << 8, 0xf7 << 8, 65535);
+
+    private static MoonshotLogger logger = get_logger("IdentityDialog");
+
+    static const string displayname_labeltext = _("Display Name");
+    static const string realm_labeltext = _("Realm");
+    static const string username_labeltext = _("Username");
+    static const string password_labeltext = _("Password");
+
+    private Entry displayname_entry;
+    private Label displayname_label;
+    private Entry realm_entry;
+    private Label realm_label;
+    private Entry username_entry;
+    private Label username_label;
+    private Entry password_entry;
+    private Label password_label;
+    private CheckButton remember_checkbutton;
+    private Label message_label;
+    public bool complete;
+    private IdCard card;
+    private ArrayList<string> services;
+
+    private Label selected_item = null;
+
+    // Whether to clear the card's TrustAnchor after the user selects OK
+    internal bool clear_trust_anchor = false;
+
+    public string display_name {
+        get { return displayname_entry.get_text(); }
+    }
+
+    public string issuer {
+        get { return realm_entry.get_text(); }
+    }
+
+    public string username {
+        get { return username_entry.get_text(); }
+    }
+
+    public string password {
+        get { return password_entry.get_text(); }
+    }
+
+    public bool store_password {
+        get { return remember_checkbutton.active; }
+    }
+
+    /**
+     * Don't leave passwords in memory longer than necessary.
+     * This may not actually erase the password data bytes, but it seems to be the best we can do.
+     */
+    public void clear_password() {
+        clear_password_entry(password_entry);
+    }
+
+    internal ArrayList<string> get_services()
+    {
+        return services;
+    }
+
+    public IdentityDialog(IdentityManagerView parent)
+    {
+        this.with_idcard(null, _("Add ID Card"), parent);
+    }
+
+    public IdentityDialog.with_idcard(IdCard? a_card, string title, IdentityManagerView parent)
+    {
+        bool is_new_card = false;
+        if (a_card == null)
+        {
+            is_new_card = true;
+        }
+
+        card = a_card ?? new IdCard();
+        this.set_title(title);
+        this.set_modal(true);
+        this.set_transient_for(parent);
+
+        this.add_buttons(CANCEL, ResponseType.CANCEL, _("OK"), ResponseType.OK);
+        Box content_area = (Box) this.get_content_area();
+
+        displayname_label = new Label(@"$displayname_labeltext:");
+        displayname_label.set_alignment(0, (float) 0.5);
+        displayname_entry = new Entry();
+        displayname_entry.set_text(card.display_name);
+        displayname_entry.set_width_chars(40);
+
+        realm_label = new Label(@"$realm_labeltext:");
+        realm_label.set_alignment(0, (float) 0.5);
+        realm_entry = new Entry();
+        realm_entry.set_text(card.issuer);
+        realm_entry.set_width_chars(60);
+
+        username_label = new Label(@"$username_labeltext:");
+        username_label.set_alignment(0, (float) 0.5);
+        username_entry = new Entry();
+        username_entry.set_text(card.username);
+        username_entry.set_width_chars(40);
+
+        password_label = new Label(@"$password_labeltext:");
+        password_label.set_alignment(0, (float) 0.5);
+
+        remember_checkbutton = new CheckButton.with_label(_("Remember password"));
+        remember_checkbutton.active = card.store_password;
+
+        password_entry = new Entry();
+        password_entry.set_invisible_char('*');
+        password_entry.set_visibility(false);
+        password_entry.set_width_chars(40);
+        password_entry.set_text(card.password);
+
+        message_label = new Label("");
+        message_label.set_visible(false);
+
+        set_atk_relation(displayname_label, displayname_entry, Atk.RelationType.LABEL_FOR);
+        set_atk_relation(realm_label, realm_entry, Atk.RelationType.LABEL_FOR);
+        set_atk_relation(username_label, username_entry, Atk.RelationType.LABEL_FOR);
+        set_atk_relation(password_label, password_entry, Atk.RelationType.LABEL_FOR);
+
+        content_area.pack_start(message_label, false, false, 6);
+        add_as_vbox(content_area, displayname_label, displayname_entry);
+        add_as_vbox(content_area, username_label, username_entry);
+        add_as_vbox(content_area, realm_label, realm_entry);
+        add_as_vbox(content_area, password_label, password_entry);
+
+        var remember_hbox = new HBox(false, 40);
+        remember_hbox.pack_start(new HBox(false, 0), false, false, 0);
+        remember_hbox.pack_start(remember_checkbutton, false, false, 0);
+        content_area.pack_start(remember_hbox, false, false, 2);
+
+        this.response.connect(on_response);
+        content_area.set_border_width(6);
+
+        this.services = new ArrayList<string>();
+        this.services.add_all(card.services);
+
+        if (!is_new_card)
+        {
+            Widget trust_anchor_box = make_trust_anchor_box(card);
+            content_area.pack_start(trust_anchor_box, false, false, 15);
+
+            var services_vbox = make_services_vbox();
+            content_area.pack_start(services_vbox);
+            var services_vbox_bottom_spacer = new Alignment(0, 0, 0, 0);
+            services_vbox_bottom_spacer.set_size_request(0, 12);
+            content_area.pack_start(services_vbox_bottom_spacer, false, false, 0);
+        }
+
+        if (card.is_no_identity())
+        {
+            displayname_entry.set_sensitive(false);
+            realm_entry.set_sensitive(false);
+            username_entry.set_sensitive(false);
+            password_entry.set_sensitive(false);
+            remember_checkbutton.set_sensitive(false);
+        }
+
+        this.destroy.connect(() => {
+                logger.trace("Destroying IdentityDialog; clearing its password.");
+                this.clear_password();
+            });
+
+
+        this.set_border_width(6);
+        this.set_resizable(false);
+        set_bg_color(this);
+        this.show_all();
+    }
+
+    private Widget make_trust_anchor_box(IdCard id)
+    {
+
+        int nrows = 7;
+        int ncolumns = 2;
+        string ta_label_prefix = _("Trust anchor: ");
+        string none = _("None");
+
+        HBox trust_anchor_box = new HBox(false, 0);
+
+        Label ta_label = new Label(ta_label_prefix
+                                   + (id.trust_anchor.is_empty() ? none : _("Enterprise provisioned")));
+        ta_label.set_alignment(0, 0.5f);
+
+        if (id.trust_anchor.is_empty()) {
+            trust_anchor_box.pack_start(ta_label, false, false, 0);
+            return trust_anchor_box;
+        }
+
+
+        AttachOptions fill_and_expand = AttachOptions.EXPAND | AttachOptions.FILL;
+        AttachOptions fill = AttachOptions.FILL;
+
+        Table ta_table = new Table(nrows, ncolumns, false);
+        int row = 0;
+
+        var ta_clear_button = new Button.with_label(_("Clear Trust Anchor"));
+        ta_clear_button.clicked.connect((w) => {
+                var result = WarningDialog.confirm(this,
+                                                   Markup.printf_escaped(
+                                                       "<span font-weight='heavy'>" 
+                                                       + _("You are about to clear the trust anchor fingerprint for '%s'.") 
+                                                       + "</span>",
+                                                       id.display_name)
+                                                   + _("\n\nAre you sure you want to do this?"),
+                                                   "clear_trust_anchor");
+
+                if (result)
+                {
+                    clear_trust_anchor = true;
+
+                    // Clearing the trust_anchor_box's children, and then re-packing
+                    // a label into it, doesn't seem to work. Instead, let's clear out
+                    // the table's children, and then re-insert a label into it.
+                    var children = ta_table.get_children();
+                    foreach (var child in children) {
+                        ta_table.remove(child);
+                    }
+
+                    ta_table.resize(1, ncolumns);
+                    ta_label.set_text(ta_label_prefix + none);
+                    ta_table.attach(ta_label, 0, 1, 0, 1, 
+                                    fill_and_expand, fill_and_expand, 0, 0);
+
+                }
+            }
+            );
+
+        ta_table.attach(ta_label, 0, 1, row, row + 1, fill_and_expand, fill_and_expand, 0, 0);
+        ta_table.attach(ta_clear_button, 1, 2, row, row + 1, fill, fill, 0, 0);
+        row++;
+
+        Label added_label = new Label(_("Added: " + id.trust_anchor.datetime_added));
+        added_label.set_alignment(0, 0.5f);
+        ta_table.attach(added_label, 0, 1, row, row + 1, fill_and_expand, fill_and_expand, 20, 5);
+        row++;
+
+        if (id.trust_anchor.get_anchor_type() == TrustAnchor.TrustAnchorType.SERVER_CERT) {
+            Widget fingerprint = make_ta_fingerprint_widget(id.trust_anchor.server_cert);
+            ta_table.attach(fingerprint, 0, 2, row, row + 2, fill_and_expand, fill_and_expand, 5, 5);
+        }
+        else {
+            Label ca_cert_label = new Label(_("CA Certificate:"));
+            ca_cert_label.set_alignment(0, 0.5f);
+            var export_button = new Button.with_label(_("Export Certificate"));
+            export_button.clicked.connect((w) => {export_certificate(id);});
+
+            ta_table.attach(ca_cert_label, 0, 1, row, row + 1, fill_and_expand, fill_and_expand, 20, 0);
+            ta_table.attach(export_button, 1, 2, row, row + 1, fill, fill, 0, 0);
+            row++;
+
+            if (id.trust_anchor.subject != "") {
+                Label subject_label = new Label(_("Subject: ") + id.trust_anchor.subject);
+                subject_label.set_alignment(0, 0.5f);
+                ta_table.attach(subject_label, 0, 1, row, row + 1, fill_and_expand, fill_and_expand, 40, 5);
+                row++;
+            }
+
+            if (id.trust_anchor.subject_alt != "") {
+                Label subject_alt_label = new Label(_("Subject-Alt: ") + id.trust_anchor.subject_alt);
+                subject_alt_label.set_alignment(0, 0.5f);
+                ta_table.attach(subject_alt_label, 0, 1, row, row + 1, fill_and_expand, fill_and_expand, 40, 5);
+                row++;
+            }
+
+            Label expiration_label = new Label(_("Expiration date: ") + id.trust_anchor.get_expiration_date());
+            expiration_label.set_alignment(0, 0.5f);
+            ta_table.attach(expiration_label, 0, 1, row, row + 1, fill_and_expand, fill_and_expand, 40, 5);
+            row++;
+
+            //!!TODO: What goes here?
+            Label constraint_label = new Label(_("Constraint: "));
+            constraint_label.set_alignment(0, 0.5f);
+            ta_table.attach(constraint_label, 0, 1, row, row + 1, fill_and_expand, fill_and_expand, 20, 0);
+            row++;
+        }
+
+        trust_anchor_box.pack_start(ta_table, false, false, 0);
+        return trust_anchor_box;
+    }
+
+    private static void add_as_vbox(Box content_area, Label label, Entry entry)
+    {
+        VBox vbox = new VBox(false, 2);
+
+        vbox.pack_start(label, false, false, 0);
+        vbox.pack_start(entry, false, false, 0);
+
+        // Hack to prevent the text entries from stretching horizontally
+        HBox hbox = new HBox(false, 0);
+        hbox.pack_start(vbox, false, false, 0);
+        content_area.pack_start(hbox, false, false, 6);
+    }
+
+    private static string update_preamble(string preamble)
+    {
+        if (preamble == "")
+            return _("Missing required field: ");
+        return _("Missing required fields: ");
+    }
+
+    private static string update_message(string old_message, string new_item)
+    {
+        string message;
+        if (old_message == "")
+            message = new_item;
+        else
+            message = old_message + ", " + new_item;
+        return message;
+    }
+
+    private static void check_field(string field, Label label, string fieldname, ref string preamble, ref string message)
+    {
+        if (field != "") {
+            label.set_markup(@"$fieldname:");
+            return;
+        }
+        label.set_markup(@"<span foreground=\"red\">$fieldname:</span>");
+        preamble = update_preamble(preamble);
+        message = update_message(message, fieldname);
+    }
+
+    private bool check_fields()
+    {
+        string preamble = "";
+        string message = "";
+        string password_test = store_password ? password : "not required";
+        if (!card.is_no_identity())
+        {
+            check_field(display_name, displayname_label, displayname_labeltext, ref preamble, ref message);
+            check_field(username, username_label, username_labeltext, ref preamble, ref message);
+            check_field(issuer, realm_label, realm_labeltext, ref preamble, ref message);
+            check_field(password_test, password_label, password_labeltext, ref preamble, ref message);
+        }
+        if (message != "") {
+            message_label.set_visible(true);
+            message_label.set_markup(@"<span foreground=\"red\">$preamble$message</span>");
+            return false;
+        }
+        return true;
+    }
+
+    private void on_response(Dialog source, int response_id)
+    {
+        switch (response_id) {
+        case ResponseType.OK:
+            complete = check_fields();
+            break;
+        case ResponseType.CANCEL:
+            complete = true;
+            break;
+        }
+    }
+
+    private VBox make_services_vbox()
+    {
+        logger.trace("make_services_vbox");
+
+        var services_vbox_alignment = new Alignment(0, 0, 1, 0);
+        var services_vscroll = new ScrolledWindow(null, null);
+        services_vscroll.set_policy(PolicyType.NEVER, PolicyType.AUTOMATIC);
+        services_vscroll.set_shadow_type(ShadowType.IN);
+        services_vscroll.set_size_request(0, 60);
+        services_vscroll.add_with_viewport(services_vbox_alignment);
+
+#if VALA_0_12
+        var remove_button = new Button.from_stock(Stock.REMOVE);
+#else
+        var remove_button = new Button.from_stock(STOCK_REMOVE);
+#endif
+        remove_button.set_sensitive(false);
+
+
+        var services_table = new Table(card.services.size, 1, false);
+        services_table.set_row_spacings(1);
+        services_table.set_col_spacings(0);
+        set_bg_color(services_table);
+
+        var table_button_hbox = new HBox(false, 6);
+        table_button_hbox.pack_start(services_vscroll, true, true, 4);
+
+        // Hack to prevent the button from growing vertically
+        VBox fixed_height = new VBox(false, 0);
+        fixed_height.pack_start(remove_button, false, false, 0);
+        table_button_hbox.pack_start(fixed_height, false, false, 0);
+
+        // A table doesn't have a background color, so put it in an EventBox, and
+        // set the EventBox's background color instead.
+        EventBox table_bg = new EventBox();
+        set_bg_color(table_bg);
+        table_bg.add(services_table);
+        services_vbox_alignment.add(table_bg);
+
+        var services_vbox_title = new Label(_("Services:"));
+        services_vbox_title.set_alignment(0, 0.5f);
+
+        var services_vbox = new VBox(false, 6);
+        services_vbox.pack_start(services_vbox_title, false, false, 0);
+        services_vbox.pack_start(table_button_hbox, true, true, 0);
+
+        int i = 0;
+        foreach (string service in services)
+        {
+            var label = new Label(service);
+            label.set_alignment((float) 0, (float) 0);
+            label.xpad = 3;
+
+            EventBox event_box = new EventBox();
+            event_box.modify_bg(StateType.NORMAL, white);
+            event_box.add(label);
+            event_box.button_press_event.connect(() =>
+                {
+                    var state = label.get_state();
+                    logger.trace("button_press_callback: Label state=" + state.to_string() + " setting bg to " + white.to_string());
+
+                    if (selected_item == label)
+                    {
+                        // Deselect
+                        selected_item.parent.modify_bg(state, white);
+                        selected_item = null;
+                        remove_button.set_sensitive(false);
+                    }
+                    else
+                    {
+                        if (selected_item != null)
+                        {
+                            // Deselect
+                            selected_item.parent.modify_bg(state, white);
+                            selected_item = null;
+                        }
+
+                        // Select
+                        selected_item = label;
+                        selected_item.parent.modify_bg(state, selected_color);
+                        remove_button.set_sensitive(true);
+                    }
+                    return false;
+                });
+
+            services_table.attach_defaults(event_box, 0, 1, i, i+1);
+            i++;
+        }
+
+        remove_button.clicked.connect((remove_button) =>
+            {
+                var result = WarningDialog.confirm(this,
+                                                   Markup.printf_escaped(
+                                                       "<span font-weight='heavy'>"
+                                                       + _("You are about to remove the service\n'%s'.") 
+                                                       + "</span>",
+                                                       selected_item.label)
+                                                   + _("\n\nAre you sure you want to do this?"),
+                                                   "delete_service");
+
+                if (result)
+                {
+                    if (card != null) {
+                        services.remove(selected_item.label);
+                        services_table.remove(selected_item.parent);
+                        selected_item = null;
+                        remove_button.set_sensitive(false);
+                    }
+                }
+
+            });
+
+        return services_vbox;
+    }
+
+    private void export_certificate(IdCard id) 
+    {
+        var dialog = new FileChooserDialog("Save File",
+                                           this,
+                                           FileChooserAction.SAVE,
+                                           _("Cancel"),ResponseType.CANCEL,
+                                           _("Save"), ResponseType.ACCEPT,
+                                           null);
+        dialog.set_do_overwrite_confirmation(true);
+        if (export_directory != null) {
+            dialog.set_current_folder(export_directory);
+        }
+        // Remove slashes from the default filename.
+        string default_filename = 
+            (id.display_name + ".pem").replace(Path.DIR_SEPARATOR_S, "_");
+        dialog.set_current_name(default_filename);
+        if (dialog.run() == ResponseType.ACCEPT)
+        {
+            // Export the certificate in PEM format.
+
+            const string CERT_HEADER = "-----BEGIN CERTIFICATE-----\n";
+            const string CERT_FOOTER = "\n-----END CERTIFICATE-----\n";
+
+            // Strip any embedded newlines in the certificate...
+            string cert = id.trust_anchor.ca_cert.replace("\n", "");
+
+            // Re-embed newlines every 64 chars.
+            string newcert = CERT_HEADER;
+            while (cert.length > 63) {
+                newcert += cert[0:64];
+                newcert += "\n";
+                cert = cert[64:cert.length];
+            }
+            if (cert.length > 0) {
+                newcert += cert;
+            }
+            newcert += CERT_FOOTER;
+
+            string filename = dialog.get_filename();
+            var file  = File.new_for_path(filename);
+            var stream = file.replace(null, false, FileCreateFlags.PRIVATE);
+            stream.write(newcert.data);
+
+            // Save the parent directory to use as default for next save
+            export_directory = file.get_parent().get_path();
+        }
+        dialog.destroy();
+    }
+}
index 938b778..efe242b 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-identity-management-view.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-identity-management-view.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-identity-management-view.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 #include <gtk/gtk.h>
 #include <stdlib.h>
 #include <string.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
 #include <gdk/gdk.h>
-#include <gee.h>
 #include <glib/gi18n-lib.h>
-#include <pango/pango.h>
+#include <gee.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
 #include <float.h>
 #include <math.h>
 #include "config.h"
 #include <stdio.h>
 #include <atk/atk.h>
+#include <gio/gio.h>
 
 
 #define TYPE_IDENTITY_MANAGER_VIEW (identity_manager_view_get_type ())
@@ -81,16 +81,6 @@ typedef struct _IdentityManagerAppClass IdentityManagerAppClass;
 typedef struct _IdentityManagerModel IdentityManagerModel;
 typedef struct _IdentityManagerModelClass IdentityManagerModelClass;
 
-#define TYPE_IDENTITY_REQUEST (identity_request_get_type ())
-#define IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_REQUEST, IdentityRequest))
-#define IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
-#define IS_IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_REQUEST))
-#define IS_IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_REQUEST))
-#define IDENTITY_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
-
-typedef struct _IdentityRequest IdentityRequest;
-typedef struct _IdentityRequestClass IdentityRequestClass;
-
 #define TYPE_CUSTOM_VBOX (custom_vbox_get_type ())
 #define CUSTOM_VBOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CUSTOM_VBOX, CustomVBox))
 #define CUSTOM_VBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CUSTOM_VBOX, CustomVBoxClass))
@@ -111,13 +101,32 @@ typedef struct _CustomVBoxClass CustomVBoxClass;
 typedef struct _IdCard IdCard;
 typedef struct _IdCardClass IdCardClass;
 
+#define TYPE_IDENTITY_REQUEST (identity_request_get_type ())
+#define IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_REQUEST, IdentityRequest))
+#define IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
+#define IS_IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_REQUEST))
+#define IS_IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_REQUEST))
+#define IDENTITY_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
+
+typedef struct _IdentityRequest IdentityRequest;
+typedef struct _IdentityRequestClass IdentityRequestClass;
+
 #define IDENTITY_MANAGER_VIEW_TYPE_COLUMNS (identity_manager_view_columns_get_type ())
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
 #define _identity_manager_app_unref0(var) ((var == NULL) ? NULL : (var = (identity_manager_app_unref (var), NULL)))
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 #define __g_queue_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_queue_free__g_object_unref0_ (var), NULL)))
-#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
-typedef struct _IdentityManagerAppPrivate IdentityManagerAppPrivate;
 #define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _IdentityManagerAppPrivate IdentityManagerAppPrivate;
 
 #define TYPE_ID_CARD_WIDGET (id_card_widget_get_type ())
 #define ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD_WIDGET, IdCardWidget))
@@ -129,6 +138,21 @@ typedef struct _IdentityManagerAppPrivate IdentityManagerAppPrivate;
 typedef struct _IdCardWidget IdCardWidget;
 typedef struct _IdCardWidgetClass IdCardWidgetClass;
 
+#define TYPE_IDENTITY_DIALOG (identity_dialog_get_type ())
+#define IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_DIALOG, IdentityDialog))
+#define IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_DIALOG, IdentityDialogClass))
+#define IS_IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_DIALOG))
+#define IS_IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_DIALOG))
+#define IDENTITY_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_DIALOG, IdentityDialogClass))
+
+typedef struct _IdentityDialog IdentityDialog;
+typedef struct _IdentityDialogClass IdentityDialogClass;
+typedef struct _IdentityDialogPrivate IdentityDialogPrivate;
+
+#define ID_CARD_TYPE_DIFF_FLAGS (id_card_diff_flags_get_type ())
+#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
+typedef struct _IdentityRequestPrivate IdentityRequestPrivate;
+
 #define TYPE_ADD_PASSWORD_DIALOG (add_password_dialog_get_type ())
 #define ADD_PASSWORD_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_PASSWORD_DIALOG, AddPasswordDialog))
 #define ADD_PASSWORD_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_PASSWORD_DIALOG, AddPasswordDialogClass))
@@ -138,31 +162,35 @@ typedef struct _IdCardWidgetClass IdCardWidgetClass;
 
 typedef struct _AddPasswordDialog AddPasswordDialog;
 typedef struct _AddPasswordDialogClass AddPasswordDialogClass;
-#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
+typedef struct _Block3Data Block3Data;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
 
-#define TYPE_ADD_IDENTITY_DIALOG (add_identity_dialog_get_type ())
-#define ADD_IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialog))
-#define ADD_IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialogClass))
-#define IS_ADD_IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_IDENTITY_DIALOG))
-#define IS_ADD_IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_IDENTITY_DIALOG))
-#define ADD_IDENTITY_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialogClass))
+#define WEB_PROVISIONING_TYPE_PARSER (web_provisioning_parser_get_type ())
+#define WEB_PROVISIONING_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParser))
+#define WEB_PROVISIONING_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserClass))
+#define WEB_PROVISIONING_IS_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WEB_PROVISIONING_TYPE_PARSER))
+#define WEB_PROVISIONING_IS_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WEB_PROVISIONING_TYPE_PARSER))
+#define WEB_PROVISIONING_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserClass))
 
-typedef struct _AddIdentityDialog AddIdentityDialog;
-typedef struct _AddIdentityDialogClass AddIdentityDialogClass;
+typedef struct _WebProvisioningParser WebProvisioningParser;
+typedef struct _WebProvisioningParserClass WebProvisioningParserClass;
 
-#define ID_CARD_TYPE_DIFF_FLAGS (id_card_diff_flags_get_type ())
-typedef struct _AddIdentityDialogPrivate AddIdentityDialogPrivate;
-typedef struct _IdentityRequestPrivate IdentityRequestPrivate;
-#define __vala_PangoFontDescription_free0(var) ((var == NULL) ? NULL : (var = (_vala_PangoFontDescription_free (var), NULL)))
-#define __g_slist_free__g_free0_0(var) ((var == NULL) ? NULL : (var = (_g_slist_free__g_free0_ (var), NULL)))
-#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define TYPE_TRUST_ANCHOR (trust_anchor_get_type ())
+#define TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR, TrustAnchor))
+#define TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+#define IS_TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRUST_ANCHOR))
+#define IS_TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRUST_ANCHOR))
+#define TRUST_ANCHOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+
+typedef struct _TrustAnchor TrustAnchor;
+typedef struct _TrustAnchorClass TrustAnchorClass;
 
 struct _IdentityManagerView {
        GtkWindow parent_instance;
        IdentityManagerViewPrivate * priv;
        IdentityManagerApp* parent_app;
        IdentityManagerModel* identities_manager;
-       GQueue* request_queue;
+       GtkCheckButton* remember_identity_binding;
 };
 
 struct _IdentityManagerViewClass {
@@ -170,24 +198,20 @@ struct _IdentityManagerViewClass {
 };
 
 struct _IdentityManagerViewPrivate {
+       gboolean use_flat_file_store;
        GtkUIManager* ui_manager;
        GtkEntry* search_entry;
-       GtkVBox* vbox_right;
-       GtkVBox* login_vbox;
-       GtkVBox* services_vbox;
        CustomVBox* custom_vbox;
-       GtkVBox* services_internal_vbox;
-       GtkEntry* issuer_entry;
-       GtkEntry* username_entry;
-       GtkEntry* password_entry;
-       GtkLabel* prompting_service;
-       GtkLabel* no_identity_title;
-       GtkCheckButton* remember_checkbutton;
-       GtkButton* update_password_button;
+       GtkVBox* service_prompt_vbox;
+       GtkButton* edit_button;
+       GtkButton* remove_button;
+       GtkButton* send_button;
        GtkListStore* listmodel;
        GtkTreeModelFilter* filter;
        GSList* candidates;
-       GHashTable* service_button_map;
+       GQueue* request_queue;
+       IdCard* selected_card;
+       gchar* import_directory;
 };
 
 typedef enum  {
@@ -214,6 +238,17 @@ struct _IdentityManagerAppClass {
        void (*finalize) (IdentityManagerApp *self);
 };
 
+struct _IdentityDialog {
+       GtkDialog parent_instance;
+       IdentityDialogPrivate * priv;
+       gboolean complete;
+       gboolean clear_trust_anchor;
+};
+
+struct _IdentityDialogClass {
+       GtkDialogClass parent_class;
+};
+
 typedef enum  {
        ID_CARD_DIFF_FLAGS_DISPLAY_NAME,
        ID_CARD_DIFF_FLAGS_USERNAME,
@@ -224,16 +259,6 @@ typedef enum  {
        ID_CARD_DIFF_FLAGS_TRUST_ANCHOR
 } IdCardDiffFlags;
 
-struct _AddIdentityDialog {
-       GtkDialog parent_instance;
-       AddIdentityDialogPrivate * priv;
-       gboolean complete;
-};
-
-struct _AddIdentityDialogClass {
-       GtkDialogClass parent_class;
-};
-
 struct _IdentityRequest {
        GObject parent_instance;
        IdentityRequestPrivate * priv;
@@ -250,8 +275,20 @@ struct _IdentityRequestClass {
        GObjectClass parent_class;
 };
 
+struct _Block3Data {
+       int _ref_count_;
+       IdentityManagerView* self;
+       GtkAboutDialog* about;
+};
+
 
 static gpointer identity_manager_view_parent_class = NULL;
+static MoonshotLogger* identity_manager_view_logger;
+static MoonshotLogger* identity_manager_view_logger = NULL;
+static gint identity_manager_view_LATEST_EDIT_YEAR;
+static gint identity_manager_view_LATEST_EDIT_YEAR = 2016;
+extern GdkColor identity_manager_view_white;
+GdkColor identity_manager_view_white = {0};
 
 GType identity_manager_view_get_type (void) G_GNUC_CONST;
 gpointer identity_manager_app_ref (gpointer instance);
@@ -262,134 +299,159 @@ void value_take_identity_manager_app (GValue* value, gpointer v_object);
 gpointer value_get_identity_manager_app (const GValue* value);
 GType identity_manager_app_get_type (void) G_GNUC_CONST;
 GType identity_manager_model_get_type (void) G_GNUC_CONST;
-GType identity_request_get_type (void) G_GNUC_CONST;
 GType custom_vbox_get_type (void) G_GNUC_CONST;
 GType id_card_get_type (void) G_GNUC_CONST;
+GType identity_request_get_type (void) G_GNUC_CONST;
 #define IDENTITY_MANAGER_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewPrivate))
 enum  {
        IDENTITY_MANAGER_VIEW_DUMMY_PROPERTY
 };
 static GType identity_manager_view_columns_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* get_logger (const gchar* name);
+void make_color (guint16 red, guint16 green, guint16 blue, GdkColor* result);
 static void _g_object_unref0_ (gpointer var);
 static void _g_queue_free__g_object_unref0_ (GQueue* self);
-#define IDENTITY_MANAGER_VIEW_WINDOW_WIDTH 400
+#define IDENTITY_MANAGER_VIEW_WINDOW_WIDTH 700
 #define IDENTITY_MANAGER_VIEW_WINDOW_HEIGHT 500
-#define IDENTITY_MANAGER_VIEW_layout "<menubar name='MenuBar'>" "        <menu name='FileMenu' action='FileMenuAction'>" "            <menuitem name='AddIdCard' action='AddIdCardAction' />" "            <separator />" "            <menuitem name='Quit' action='QuitAction' />" "        </menu>" "" "        <menu name='HelpMenu' action='HelpMenuAction'>" "             <menuitem name='About' action='AboutAction' />" "        </menu>" "</menubar>"
-IdentityManagerView* identity_manager_view_new (IdentityManagerApp* app);
-IdentityManagerView* identity_manager_view_construct (GType object_type, IdentityManagerApp* app);
-static void _g_free0_ (gpointer var);
+#define IDENTITY_MANAGER_VIEW_menu_layout "<menubar name='MenuBar'>" "        <menu name='HelpMenu' action='HelpMenuAction'>" "             <menuitem name='About' action='AboutAction' />" "        </menu>" "</menubar>"
+IdentityManagerView* identity_manager_view_new (IdentityManagerApp* app, gboolean use_flat_file_store);
+IdentityManagerView* identity_manager_view_construct (GType object_type, IdentityManagerApp* app, gboolean use_flat_file_store);
 static void identity_manager_view_build_ui (IdentityManagerView* self);
 static void identity_manager_view_setup_list_model (IdentityManagerView* self);
 static void identity_manager_view_load_id_cards (IdentityManagerView* self);
 static void identity_manager_view_connect_signals (IdentityManagerView* self);
-void identity_manager_view_on_card_list_changed (IdentityManagerView* self);
+static void identity_manager_view_report_duplicate_nais (IdentityManagerView* self);
+gboolean identity_manager_model_find_duplicate_nai_sets (IdentityManagerModel* self, GeeArrayList** duplicates);
+const gchar* id_card_get_nai (IdCard* self);
+const gchar* id_card_get_display_name (IdCard* self);
+gchar* id_card_get_services_string (IdCard* self, const gchar* sep);
+static void identity_manager_view_on_card_list_changed (IdentityManagerView* self);
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
 static gboolean identity_manager_view_visible_func (IdentityManagerView* self, GtkTreeModel* model, GtkTreeIter* iter);
 const gchar* id_card_get_issuer (IdCard* self);
-const gchar* id_card_get_display_name (IdCard* self);
-gchar** id_card_get_services (IdCard* self, int* result_length1);
+GeeArrayList* id_card_get_services (IdCard* self);
 static gboolean _identity_manager_view_visible_func_gtk_tree_model_filter_visible_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self);
-static void identity_manager_view_search_entry_icon_press_cb (IdentityManagerView* self, GtkEntryIconPosition pos, GdkEvent* event);
 static void identity_manager_view_search_entry_text_changed_cb (IdentityManagerView* self);
 static void identity_manager_view_redraw_id_card_widgets (IdentityManagerView* self);
 static gboolean identity_manager_view_search_entry_key_press_event_cb (IdentityManagerView* self, GdkEventKey* e);
-static void identity_manager_view_update_password_cb (IdentityManagerView* self);
-GType id_card_widget_get_type (void) G_GNUC_CONST;
-IdCardWidget* custom_vbox_get_current_idcard (CustomVBox* self);
-IdCard* id_card_widget_get_id_card (IdCardWidget* self);
-GType add_password_dialog_get_type (void) G_GNUC_CONST;
-AddPasswordDialog* add_password_dialog_new (IdCard* id_card, IdentityRequest* request);
-AddPasswordDialog* add_password_dialog_construct (GType object_type, IdCard* id_card, IdentityRequest* request);
-const gchar* add_password_dialog_get_password (AddPasswordDialog* self);
-void id_card_set_password (IdCard* self, const gchar* value);
-gboolean add_password_dialog_get_remember (AddPasswordDialog* self);
-void id_card_set_store_password (IdCard* self, gboolean value);
-void id_card_set_temporary (IdCard* self, gboolean value);
-IdCard* identity_manager_model_update_card (IdentityManagerModel* self, IdCard* card);
-const gchar* id_card_get_nai (IdCard* self);
-void custom_vbox_set_current_idcard (CustomVBox* self, IdCardWidget* value);
-static void identity_manager_view_remove_id_card_widget (IdentityManagerView* self, IdCardWidget* id_card_widget);
+void custom_vbox_clear (CustomVBox* self);
 GeeLinkedList* identity_manager_model_get_card_list (IdentityManagerModel* self);
 static void identity_manager_view_add_id_card_data (IdentityManagerView* self, IdCard* id_card);
+GType id_card_widget_get_type (void) G_GNUC_CONST;
 static IdCardWidget* identity_manager_view_add_id_card_widget (IdentityManagerView* self, IdCard* id_card);
-static void identity_manager_view_fill_details (IdentityManagerView* self, IdCardWidget* id_card_widget);
-void id_card_widget_expand (IdCardWidget* self);
-#define ID_CARD_NO_IDENTITY "No Identity"
-const gchar* id_card_get_username (IdCard* self);
-const gchar* id_card_get_password (IdCard* self);
-gboolean id_card_get_store_password (IdCard* self);
-static void identity_manager_view_fill_services_vbox (IdentityManagerView* self, IdCard* id_card);
-static void identity_manager_view_show_details (IdentityManagerView* self, IdCard* id_card);
-static void identity_manager_view_details_identity_cb (IdentityManagerView* self, IdCardWidget* id_card_widget);
-GType add_identity_dialog_get_type (void) G_GNUC_CONST;
-static IdCard* identity_manager_view_get_id_card_data (IdentityManagerView* self, AddIdentityDialog* dialog);
-IdCard* id_card_new (void);
-IdCard* id_card_construct (GType object_type);
-const gchar* add_identity_dialog_get_display_name (AddIdentityDialog* self);
+GType identity_dialog_get_type (void) G_GNUC_CONST;
+static IdCard* identity_manager_view_update_id_card_data (IdentityManagerView* self, IdentityDialog* dialog, IdCard* id_card);
+const gchar* identity_dialog_get_display_name (IdentityDialog* self);
 void id_card_set_display_name (IdCard* self, const gchar* value);
-const gchar* add_identity_dialog_get_issuer (AddIdentityDialog* self);
+const gchar* identity_dialog_get_issuer (IdentityDialog* self);
 void id_card_set_issuer (IdCard* self, const gchar* value);
-const gchar* add_identity_dialog_get_username (AddIdentityDialog* self);
+const gchar* identity_dialog_get_username (IdentityDialog* self);
 void id_card_set_username (IdCard* self, const gchar* value);
-const gchar* add_identity_dialog_get_password (AddIdentityDialog* self);
-gboolean add_identity_dialog_get_store_password (AddIdentityDialog* self);
-void id_card_set_services (IdCard* self, gchar** value, int value_length1);
+const gchar* identity_dialog_get_password (IdentityDialog* self);
+void id_card_set_password (IdCard* self, const gchar* value);
+gboolean identity_dialog_get_store_password (IdentityDialog* self);
+void id_card_set_store_password (IdCard* self, gboolean value);
+void id_card_update_services_from_list (IdCard* self, GeeArrayList* services);
+GeeArrayList* identity_dialog_get_services (IdentityDialog* self);
+void id_card_clear_trust_anchor (IdCard* self);
 GdkPixbuf* get_pixbuf (IdCard* id);
-static void identity_manager_view_remove_id_card_data (IdentityManagerView* self, IdCard* id_card);
-IdCardWidget* id_card_widget_new (IdCard* id_card);
-IdCardWidget* id_card_widget_construct (GType object_type, IdCard* id_card);
+const gchar* id_card_get_username (IdCard* self);
+const gchar* id_card_get_password (IdCard* self);
+IdCardWidget* id_card_widget_new (IdCard* id_card, IdentityManagerView* manager_view);
+IdCardWidget* id_card_widget_construct (GType object_type, IdCard* id_card, IdentityManagerView* manager_view);
 void custom_vbox_add_id_card_widget (CustomVBox* self, IdCardWidget* id_card_widget);
-static void _identity_manager_view_details_identity_cb_id_card_widget_details_id (IdCardWidget* _sender, gpointer self);
-static void identity_manager_view_remove_identity_cb (IdentityManagerView* self, IdCardWidget* id_card_widget);
-static void _identity_manager_view_remove_identity_cb_id_card_widget_remove_id (IdCardWidget* _sender, gpointer self);
-static void __lambda6_ (IdentityManagerView* self, IdCardWidget* w);
-void identity_manager_view_send_identity_cb (IdentityManagerView* self, IdCard* id);
-static void ___lambda6__id_card_widget_send_id (IdCardWidget* _sender, gpointer self);
+static void identity_manager_view_widget_selected_cb (IdentityManagerView* self, IdCardWidget* id_card_widget);
+static void _identity_manager_view_widget_selected_cb_id_card_widget_expanded (IdCardWidget* _sender, gpointer self);
+static void identity_manager_view_widget_unselected_cb (IdentityManagerView* self, IdCardWidget* id_card_widget);
+static void _identity_manager_view_widget_unselected_cb_id_card_widget_collapsed (IdCardWidget* _sender, gpointer self);
+void id_card_widget_expand (IdCardWidget* self);
+IdCard* id_card_widget_get_id_card (IdCardWidget* self);
+gboolean id_card_is_no_identity (IdCard* self);
 void custom_vbox_receive_expanded_event (CustomVBox* self, IdCardWidget* id_card_widget);
-static void _custom_vbox_receive_expanded_event_id_card_widget_expanded (IdCardWidget* _sender, gpointer self);
-static void _identity_manager_view_fill_details_id_card_widget_expanded (IdCardWidget* _sender, gpointer self);
-gboolean identity_manager_view_add_identity (IdentityManagerView* self, IdCard* id_card, gboolean force_flat_file_store);
+gboolean identity_manager_view_selection_in_progress (IdentityManagerView* self);
+void custom_vbox_receive_collapsed_event (CustomVBox* self, IdCardWidget* id_card_widget);
+gboolean identity_manager_view_add_identity (IdentityManagerView* self, IdCard* id_card, gboolean force_flat_file_store, GeeArrayList** old_duplicates);
 IdCard* identity_manager_model_find_id_card (IdentityManagerModel* self, const gchar* nai, gboolean force_flat_file_store);
 gint id_card_Compare (IdCard* self, IdCard* other);
 GType id_card_diff_flags_get_type (void) G_GNUC_CONST;
-void identity_manager_model_add_card (IdentityManagerModel* self, IdCard* card, gboolean force_flat_file_store);
-static void identity_manager_view_add_identity_manual_cb (IdentityManagerView* self);
-AddIdentityDialog* add_identity_dialog_new (void);
-AddIdentityDialog* add_identity_dialog_construct (GType object_type);
-void custom_vbox_remove_id_card_widget (CustomVBox* self, IdCardWidget* id_card_widget);
-static void identity_manager_view_remove_identity (IdentityManagerView* self, IdCardWidget* id_card_widget);
+void identity_manager_model_add_card (IdentityManagerModel* self, IdCard* card, gboolean force_flat_file_store, GeeArrayList** old_duplicates);
+static void identity_manager_view_add_identity_cb (IdentityManagerView* self);
+IdentityDialog* identity_dialog_new (IdentityManagerView* parent);
+IdentityDialog* identity_dialog_construct (GType object_type, IdentityManagerView* parent);
+IdCard* id_card_new (void);
+IdCard* id_card_construct (GType object_type);
+static void identity_manager_view_edit_identity_cb (IdentityManagerView* self, IdCard* card);
+IdentityDialog* identity_dialog_new_with_idcard (IdCard* a_card, const gchar* title, IdentityManagerView* parent);
+IdentityDialog* identity_dialog_construct_with_idcard (GType object_type, IdCard* a_card, const gchar* title, IdentityManagerView* parent);
+IdCard* identity_manager_model_update_card (IdentityManagerModel* self, IdCard* card);
+static void identity_manager_view_remove_identity (IdentityManagerView* self, IdCard* id_card);
 gboolean identity_manager_model_remove_card (IdentityManagerModel* self, IdCard* card);
-void identity_manager_view_set_prompting_service (IdentityManagerView* self, const gchar* service);
+static void identity_manager_view_remove_identity_cb (IdentityManagerView* self, IdCard* id_card);
+gboolean warning_dialog_confirm (GtkWindow* parent, const gchar* message, const gchar* dialog_name);
+static void identity_manager_view_set_prompting_service (IdentityManagerView* self, const gchar* service);
+static void identity_manager_view_clear_selection_prompts (IdentityManagerView* self);
 void identity_manager_view_queue_identity_request (IdentityManagerView* self, IdentityRequest* request);
+IdCardWidget* custom_vbox_find_idcard_widget (CustomVBox* self, IdCard* card);
+void identity_manager_view_make_visible (IdentityManagerView* self);
 IdCard* identity_manager_view_check_add_password (IdentityManagerView* self, IdCard* identity, IdentityRequest* request, IdentityManagerModel* model);
-gboolean id_card_IsNoIdentity (IdCard* self);
-void identity_request_return_identity (IdentityRequest* self, IdCard* id_card);
-static void identity_manager_view_label_make_bold (IdentityManagerView* self, GtkLabel* label);
-static void _vala_PangoFontDescription_free (PangoFontDescription* self);
-static void ____lambda5_ (IdentityManagerView* self, GtkButton* remove_button);
-static void _g_slist_free__g_free0_ (GSList* self);
-static void _____lambda5__gtk_button_clicked (GtkButton* _sender, gpointer self);
+GType add_password_dialog_get_type (void) G_GNUC_CONST;
+AddPasswordDialog* add_password_dialog_new (IdCard* id_card, IdentityRequest* request);
+AddPasswordDialog* add_password_dialog_construct (GType object_type, IdCard* id_card, IdentityRequest* request);
+const gchar* add_password_dialog_get_password (AddPasswordDialog* self);
+void add_password_dialog_clear_password (AddPasswordDialog* self);
+gboolean add_password_dialog_get_remember (AddPasswordDialog* self);
+void id_card_set_temporary (IdCard* self, gboolean value);
+static void identity_manager_view_send_identity_cb (IdentityManagerView* self, IdCard* id);
+void identity_request_return_identity (IdentityRequest* self, IdCard* id_card, gboolean update_card);
 static void identity_manager_view_on_about_action (IdentityManagerView* self);
+static Block3Data* block3_data_ref (Block3Data* _data3_);
+static void block3_data_unref (void * _userdata_);
+static void __lambda6_ (Block3Data* _data3_, GtkDialog* a, gint b);
+static void ___lambda6__gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
+void set_bg_color (GtkWidget* w);
 static GtkActionEntry* identity_manager_view_create_actions (IdentityManagerView* self, int* result_length1);
 static void _vala_array_add1 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
-static void _identity_manager_view_add_identity_manual_cb_gtk_action_callback (GtkAction* action, gpointer self);
-static void _vala_array_add2 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
-static void _gtk_main_quit_gtk_action_callback (GtkAction* action, gpointer self);
-static void _vala_array_add3 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
-static void _vala_array_add4 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
 static void _identity_manager_view_on_about_action_gtk_action_callback (GtkAction* action, gpointer self);
-static void _vala_array_add5 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add2 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
 static void identity_manager_view_create_ui_manager (IdentityManagerView* self);
+void moonshot_logger_error (MoonshotLogger* self, const gchar* message, GError* e);
 static void identity_manager_view_set_atk_name_description (IdentityManagerView* self, GtkWidget* widget, const gchar* name, const gchar* description);
 GdkPixbuf* find_icon_sized (const gchar* name, GtkIconSize icon_size);
-static void _identity_manager_view_search_entry_icon_press_cb_gtk_entry_icon_press (GtkEntry* _sender, GtkEntryIconPosition p0, GdkEvent* p1, gpointer self);
 static void _identity_manager_view_search_entry_text_changed_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
 static gboolean _identity_manager_view_search_entry_key_press_event_cb_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
 CustomVBox* custom_vbox_new (IdentityManagerView* window, gboolean homogeneous, gint spacing);
 CustomVBox* custom_vbox_construct (GType object_type, IdentityManagerView* window, gboolean homogeneous, gint spacing);
-static void _identity_manager_view_update_password_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void identity_manager_view_set_atk_relation (GtkWidget* widget, GtkWidget* target_widget, AtkRelationType relationship);
-static void _gtk_main_quit_gtk_object_destroy (GtkObject* _sender, gpointer self);
+static void __lambda7_ (IdentityManagerView* self, GtkButton* w);
+static void ___lambda7__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static GtkWidget* identity_manager_view_make_rigid (GtkButton* button);
+static void __lambda13_ (IdentityManagerView* self, GtkButton* w);
+static void identity_manager_view_import_identities_cb (IdentityManagerView* self);
+static void ___lambda13__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void __lambda14_ (IdentityManagerView* self, GtkButton* w);
+static void ___lambda14__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void __lambda15_ (IdentityManagerView* self, GtkButton* w);
+static void ___lambda15__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void __lambda16_ (IdentityManagerView* self, GtkButton* w);
+static void ___lambda16__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void __lambda17_ (IdentityManagerView* self);
+static void ___lambda17__gtk_object_destroy (GtkObject* _sender, gpointer self);
 static void _identity_manager_view_on_card_list_changed_identity_manager_model_card_list_changed (IdentityManagerModel* _sender, gpointer self);
+static gboolean __lambda18_ (IdentityManagerView* self);
+static gboolean identity_manager_view_confirm_quit (IdentityManagerView* self);
+static gboolean ___lambda18__gtk_widget_delete_event (GtkWidget* _sender, GdkEvent* event, gpointer self);
+GType web_provisioning_parser_get_type (void) G_GNUC_CONST;
+WebProvisioningParser* web_provisioning_parser_new (const gchar* path);
+WebProvisioningParser* web_provisioning_parser_construct (GType object_type, const gchar* path);
+void web_provisioning_parser_parse (WebProvisioningParser* self);
+IdCard** web_provisioning_parser_get_cards (WebProvisioningParser* self, int* result_length1);
+GType trust_anchor_get_type (void) G_GNUC_CONST;
+TrustAnchor* id_card_get_trust_anchor (IdCard* self);
+gboolean trust_anchor_is_empty (TrustAnchor* self);
+gchar* trust_anchor_format_datetime_now (void);
+void trust_anchor_set_datetime_added (TrustAnchor* self, const gchar* datetime);
+const gchar* trust_anchor_get_ca_cert (TrustAnchor* self);
+const gchar* trust_anchor_get_server_cert (TrustAnchor* self);
 static void identity_manager_view_finalize (GObject* obj);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
@@ -409,124 +471,393 @@ static GType identity_manager_view_columns_get_type (void) {
 
 
 static void _g_object_unref0_ (gpointer var) {
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        (var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
-#line 415 "moonshot-identity-management-view.c"
+#line 477 "moonshot-identity-management-view.c"
 }
 
 
 static void _g_queue_free__g_object_unref0_ (GQueue* self) {
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_queue_foreach (self, (GFunc) _g_object_unref0_, NULL);
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_queue_free (self);
-#line 424 "moonshot-identity-management-view.c"
+#line 486 "moonshot-identity-management-view.c"
 }
 
 
 static gpointer _identity_manager_app_ref0 (gpointer self) {
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        return self ? identity_manager_app_ref (self) : NULL;
-#line 431 "moonshot-identity-management-view.c"
+#line 493 "moonshot-identity-management-view.c"
 }
 
 
 static gpointer _g_object_ref0 (gpointer self) {
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        return self ? g_object_ref (self) : NULL;
-#line 438 "moonshot-identity-management-view.c"
-}
-
-
-static void _g_free0_ (gpointer var) {
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       var = (g_free (var), NULL);
-#line 445 "moonshot-identity-management-view.c"
+#line 500 "moonshot-identity-management-view.c"
 }
 
 
-IdentityManagerView* identity_manager_view_construct (GType object_type, IdentityManagerApp* app) {
+IdentityManagerView* identity_manager_view_construct (GType object_type, IdentityManagerApp* app, gboolean use_flat_file_store) {
        IdentityManagerView * self = NULL;
        IdentityManagerApp* _tmp0_ = NULL;
        IdentityManagerApp* _tmp1_ = NULL;
-       IdentityManagerApp* _tmp2_ = NULL;
-       IdentityManagerModel* _tmp3_ = NULL;
+       gboolean _tmp2_ = FALSE;
+       IdentityManagerApp* _tmp3_ = NULL;
        IdentityManagerModel* _tmp4_ = NULL;
-       GQueue* _tmp5_ = NULL;
-       GHashFunc _tmp6_ = NULL;
-       GEqualFunc _tmp7_ = NULL;
-       GHashTable* _tmp8_ = NULL;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       IdentityManagerModel* _tmp5_ = NULL;
+       GQueue* _tmp6_ = NULL;
+       const gchar* _tmp7_ = NULL;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_val_if_fail (app != NULL, NULL);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self = (IdentityManagerView*) g_object_new (object_type, NULL);
 #line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self = (IdentityManagerView*) g_object_new (object_type, NULL);
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp0_ = app;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp1_ = _identity_manager_app_ref0 (_tmp0_);
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _identity_manager_app_unref0 (self->parent_app);
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        self->parent_app = _tmp1_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = self->parent_app;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = _tmp2_->model;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = _g_object_ref0 (_tmp3_);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = use_flat_file_store;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->use_flat_file_store = _tmp2_;
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = self->parent_app;
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = _tmp3_->model;
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_object_unref0 (self->identities_manager);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->identities_manager = _tmp4_;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp5_ = g_queue_new ();
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       __g_queue_free__g_object_unref0_0 (self->request_queue);
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->request_queue = _tmp5_;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp6_ = g_direct_hash;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_ = g_direct_equal;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp8_ = g_hash_table_new_full (_tmp6_, _tmp7_, _g_object_unref0_, _g_free0_);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_hash_table_unref0 (self->priv->service_button_map);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->service_button_map = _tmp8_;
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_window_set_title ((GtkWindow*) self, "Moonshot Identity Selector");
+       self->identities_manager = _tmp5_;
 #line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_window_set_position ((GtkWindow*) self, GTK_WIN_POS_CENTER);
+       _tmp6_ = g_queue_new ();
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       __g_queue_free__g_object_unref0_0 (self->priv->request_queue);
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->request_queue = _tmp6_;
 #line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_window_set_default_size ((GtkWindow*) self, IDENTITY_MANAGER_VIEW_WINDOW_WIDTH, IDENTITY_MANAGER_VIEW_WINDOW_HEIGHT);
+       _tmp7_ = _ ("Moonshot Identity Selector");
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_window_set_title ((GtkWindow*) self, _tmp7_);
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_build_ui (self);
+       gtk_window_set_position ((GtkWindow*) self, GTK_WIN_POS_CENTER);
 #line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_setup_list_model (self);
+       gtk_window_set_default_size ((GtkWindow*) self, IDENTITY_MANAGER_VIEW_WINDOW_WIDTH, IDENTITY_MANAGER_VIEW_WINDOW_HEIGHT);
 #line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_load_id_cards (self);
+       identity_manager_view_build_ui (self);
 #line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_setup_list_model (self);
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_load_id_cards (self);
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        identity_manager_view_connect_signals (self);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_report_duplicate_nais (self);
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        return self;
-#line 514 "moonshot-identity-management-view.c"
+#line 566 "moonshot-identity-management-view.c"
 }
 
 
-IdentityManagerView* identity_manager_view_new (IdentityManagerApp* app) {
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       return identity_manager_view_construct (TYPE_IDENTITY_MANAGER_VIEW, app);
-#line 521 "moonshot-identity-management-view.c"
+IdentityManagerView* identity_manager_view_new (IdentityManagerApp* app, gboolean use_flat_file_store) {
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       return identity_manager_view_construct (TYPE_IDENTITY_MANAGER_VIEW, app, use_flat_file_store);
+#line 573 "moonshot-identity-management-view.c"
 }
 
 
-void identity_manager_view_on_card_list_changed (IdentityManagerView* self) {
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+static void identity_manager_view_report_duplicate_nais (IdentityManagerView* self) {
+       GeeArrayList* duplicates = NULL;
+       IdentityManagerModel* _tmp0_ = NULL;
+       GeeArrayList* _tmp1_ = NULL;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (self != NULL);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = self->identities_manager;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_model_find_duplicate_nai_sets (_tmp0_, &_tmp1_);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (duplicates);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       duplicates = _tmp1_;
+#line 591 "moonshot-identity-management-view.c"
+       {
+               GeeArrayList* _list_list = NULL;
+               GeeArrayList* _tmp2_ = NULL;
+               GeeArrayList* _tmp3_ = NULL;
+               gint _list_size = 0;
+               GeeArrayList* _tmp4_ = NULL;
+               gint _tmp5_ = 0;
+               gint _tmp6_ = 0;
+               gint _list_index = 0;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp2_ = duplicates;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _list_list = _tmp3_;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp4_ = _list_list;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp6_ = _tmp5_;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _list_size = _tmp6_;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _list_index = -1;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               while (TRUE) {
+#line 619 "moonshot-identity-management-view.c"
+                       gint _tmp7_ = 0;
+                       gint _tmp8_ = 0;
+                       gint _tmp9_ = 0;
+                       GeeArrayList* list = NULL;
+                       GeeArrayList* _tmp10_ = NULL;
+                       gint _tmp11_ = 0;
+                       gpointer _tmp12_ = NULL;
+                       gchar* message = NULL;
+                       const gchar* _tmp13_ = NULL;
+                       GeeArrayList* _tmp14_ = NULL;
+                       gpointer _tmp15_ = NULL;
+                       IdCard* _tmp16_ = NULL;
+                       const gchar* _tmp17_ = NULL;
+                       const gchar* _tmp18_ = NULL;
+                       gchar* _tmp19_ = NULL;
+                       gchar* _tmp20_ = NULL;
+                       const gchar* _tmp21_ = NULL;
+                       gchar* _tmp22_ = NULL;
+                       gchar* _tmp23_ = NULL;
+                       const gchar* _tmp24_ = NULL;
+                       gchar* _tmp25_ = NULL;
+                       gchar* _tmp26_ = NULL;
+                       GtkMessageDialog* msg_dialog = NULL;
+                       const gchar* _tmp49_ = NULL;
+                       GtkMessageDialog* _tmp50_ = NULL;
+                       GtkMessageDialog* _tmp51_ = NULL;
+                       GtkMessageDialog* _tmp52_ = NULL;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp7_ = _list_index;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _list_index = _tmp7_ + 1;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp8_ = _list_index;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp9_ = _list_size;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       if (!(_tmp8_ < _tmp9_)) {
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               break;
+#line 659 "moonshot-identity-management-view.c"
+                       }
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp10_ = _list_list;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp11_ = _list_index;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp12_ = gee_abstract_list_get ((GeeAbstractList*) _tmp10_, _tmp11_);
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       list = (GeeArrayList*) _tmp12_;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp13_ = _ ("The following identities use the same Network Access Identifier (NAI)," \
+"\n" \
+"'%s'.");
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp14_ = list;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp15_ = gee_abstract_list_get ((GeeAbstractList*) _tmp14_, 0);
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp16_ = (IdCard*) _tmp15_;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp17_ = id_card_get_nai (_tmp16_);
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp18_ = _tmp17_;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp19_ = g_strdup_printf (_tmp13_, _tmp18_);
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp20_ = _tmp19_;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp21_ = _ ("\n" \
+"\n" \
+"Duplicate NAIs are not allowed. Please remove identities you don't nee" \
+"d, or modify");
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp22_ = g_strconcat (_tmp20_, _tmp21_, NULL);
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp23_ = _tmp22_;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp24_ = _ (" user ID or issuer fields so that they are no longer the same NAI.");
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp25_ = g_strconcat (_tmp23_, _tmp24_, NULL);
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp26_ = _tmp25_;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_free0 (_tmp23_);
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_free0 (_tmp20_);
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (_tmp16_);
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       message = _tmp26_;
+#line 705 "moonshot-identity-management-view.c"
+                       {
+                               GeeArrayList* _card_list = NULL;
+                               GeeArrayList* _tmp27_ = NULL;
+                               GeeArrayList* _tmp28_ = NULL;
+                               gint _card_size = 0;
+                               GeeArrayList* _tmp29_ = NULL;
+                               gint _tmp30_ = 0;
+                               gint _tmp31_ = 0;
+                               gint _card_index = 0;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp27_ = list;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp28_ = _g_object_ref0 (_tmp27_);
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _card_list = _tmp28_;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp29_ = _card_list;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp30_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp29_);
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp31_ = _tmp30_;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _card_size = _tmp31_;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _card_index = -1;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               while (TRUE) {
+#line 733 "moonshot-identity-management-view.c"
+                                       gint _tmp32_ = 0;
+                                       gint _tmp33_ = 0;
+                                       gint _tmp34_ = 0;
+                                       IdCard* card = NULL;
+                                       GeeArrayList* _tmp35_ = NULL;
+                                       gint _tmp36_ = 0;
+                                       gpointer _tmp37_ = NULL;
+                                       const gchar* _tmp38_ = NULL;
+                                       const gchar* _tmp39_ = NULL;
+                                       IdCard* _tmp40_ = NULL;
+                                       const gchar* _tmp41_ = NULL;
+                                       const gchar* _tmp42_ = NULL;
+                                       IdCard* _tmp43_ = NULL;
+                                       gchar* _tmp44_ = NULL;
+                                       gchar* _tmp45_ = NULL;
+                                       gchar* _tmp46_ = NULL;
+                                       gchar* _tmp47_ = NULL;
+                                       gchar* _tmp48_ = NULL;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp32_ = _card_index;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _card_index = _tmp32_ + 1;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp33_ = _card_index;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp34_ = _card_size;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       if (!(_tmp33_ < _tmp34_)) {
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               break;
+#line 764 "moonshot-identity-management-view.c"
+                                       }
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp35_ = _card_list;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp36_ = _card_index;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp37_ = gee_abstract_list_get ((GeeAbstractList*) _tmp35_, _tmp36_);
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       card = (IdCard*) _tmp37_;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp38_ = message;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp39_ = _ ("\n\nDisplay Name: '%s'\nServices:\n     %s");
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp40_ = card;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp41_ = id_card_get_display_name (_tmp40_);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp42_ = _tmp41_;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp43_ = card;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp44_ = id_card_get_services_string (_tmp43_, ",\n     ");
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp45_ = _tmp44_;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp46_ = g_strdup_printf (_tmp39_, _tmp42_, _tmp45_);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp47_ = _tmp46_;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp48_ = g_strconcat (_tmp38_, _tmp47_, NULL);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _g_free0 (message);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       message = _tmp48_;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _g_free0 (_tmp47_);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _g_free0 (_tmp45_);
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _g_object_unref0 (card);
+#line 806 "moonshot-identity-management-view.c"
+                               }
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _g_object_unref0 (_card_list);
+#line 810 "moonshot-identity-management-view.c"
+                       }
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp49_ = message;
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp50_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s", _tmp49_);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       g_object_ref_sink (_tmp50_);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       msg_dialog = _tmp50_;
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp51_ = msg_dialog;
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       gtk_dialog_run ((GtkDialog*) _tmp51_);
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp52_ = msg_dialog;
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       gtk_object_destroy ((GtkObject*) _tmp52_);
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (msg_dialog);
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_free0 (message);
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (list);
+#line 834 "moonshot-identity-management-view.c"
+               }
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (_list_list);
+#line 838 "moonshot-identity-management-view.c"
+       }
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (duplicates);
+#line 842 "moonshot-identity-management-view.c"
+}
+
+
+static void identity_manager_view_on_card_list_changed (IdentityManagerView* self) {
+       MoonshotLogger* _tmp0_ = NULL;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = identity_manager_view_logger;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       moonshot_logger_trace (_tmp0_, "on_card_list_changed", NULL);
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        identity_manager_view_load_id_cards (self);
-#line 530 "moonshot-identity-management-view.c"
+#line 856 "moonshot-identity-management-view.c"
 }
 
 
@@ -534,19 +865,19 @@ static gboolean string_contains (const gchar* self, const gchar* needle) {
        gboolean result = FALSE;
        const gchar* _tmp0_ = NULL;
        gchar* _tmp1_ = NULL;
-#line 1278 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1384 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 1278 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1384 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        g_return_val_if_fail (needle != NULL, FALSE);
-#line 1279 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1385 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp0_ = needle;
-#line 1279 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1385 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
-#line 1279 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1385 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        result = _tmp1_ != NULL;
-#line 1279 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1385 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        return result;
-#line 550 "moonshot-identity-management-view.c"
+#line 876 "moonshot-identity-management-view.c"
 }
 
 
@@ -566,149 +897,149 @@ static gboolean identity_manager_view_visible_func (IdentityManagerView* self, G
        const gchar* _tmp15_ = NULL;
        gchar** _tmp16_ = NULL;
        gchar** _tmp17_ = NULL;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_val_if_fail (model != NULL, FALSE);
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_val_if_fail (iter != NULL, FALSE);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp0_ = model;
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp1_ = *iter;
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        gtk_tree_model_get (_tmp0_, &_tmp1_, IDENTITY_MANAGER_VIEW_COLUMNS_IDCARD_COL, &id_card, -1);
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp2_ = id_card;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        if (_tmp2_ == NULL) {
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                result = FALSE;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _g_object_unref0 (id_card);
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                return result;
-#line 592 "moonshot-identity-management-view.c"
+#line 918 "moonshot-identity-management-view.c"
        }
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp3_ = self->priv->candidates;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        if (_tmp3_ != NULL) {
-#line 598 "moonshot-identity-management-view.c"
+#line 924 "moonshot-identity-management-view.c"
                gboolean is_candidate = FALSE;
                GSList* _tmp4_ = NULL;
                gboolean _tmp8_ = FALSE;
-#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                is_candidate = FALSE;
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp4_ = self->priv->candidates;
-#line 606 "moonshot-identity-management-view.c"
+#line 932 "moonshot-identity-management-view.c"
                {
                        GSList* candidate_collection = NULL;
                        GSList* candidate_it = NULL;
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        candidate_collection = _tmp4_;
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        for (candidate_it = candidate_collection; candidate_it != NULL; candidate_it = candidate_it->next) {
-#line 614 "moonshot-identity-management-view.c"
+#line 940 "moonshot-identity-management-view.c"
                                IdCard* _tmp5_ = NULL;
                                IdCard* candidate = NULL;
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _tmp5_ = _g_object_ref0 ((IdCard*) candidate_it->data);
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                candidate = _tmp5_;
-#line 621 "moonshot-identity-management-view.c"
+#line 947 "moonshot-identity-management-view.c"
                                {
                                        IdCard* _tmp6_ = NULL;
                                        IdCard* _tmp7_ = NULL;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp6_ = candidate;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp7_ = id_card;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        if (_tmp6_ == _tmp7_) {
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                is_candidate = TRUE;
-#line 633 "moonshot-identity-management-view.c"
+#line 959 "moonshot-identity-management-view.c"
                                        }
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _g_object_unref0 (candidate);
-#line 637 "moonshot-identity-management-view.c"
+#line 963 "moonshot-identity-management-view.c"
                                }
                        }
                }
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp8_ = is_candidate;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                if (!_tmp8_) {
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        result = FALSE;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        _g_object_unref0 (id_card);
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        return result;
-#line 651 "moonshot-identity-management-view.c"
+#line 977 "moonshot-identity-management-view.c"
                }
        }
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp9_ = self->priv->search_entry;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp10_ = gtk_entry_get_text (_tmp9_);
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp11_ = g_strdup (_tmp10_);
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        entry_text = _tmp11_;
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp13_ = entry_text;
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        if (_tmp13_ == NULL) {
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp12_ = TRUE;
-#line 668 "moonshot-identity-management-view.c"
+#line 994 "moonshot-identity-management-view.c"
        } else {
                const gchar* _tmp14_ = NULL;
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp14_ = entry_text;
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp12_ = g_strcmp0 (_tmp14_, "") == 0;
-#line 675 "moonshot-identity-management-view.c"
+#line 1001 "moonshot-identity-management-view.c"
        }
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        if (_tmp12_) {
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                result = TRUE;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _g_free0 (entry_text);
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _g_object_unref0 (id_card);
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                return result;
-#line 687 "moonshot-identity-management-view.c"
+#line 1013 "moonshot-identity-management-view.c"
        }
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp15_ = entry_text;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp17_ = _tmp16_ = g_strsplit (_tmp15_, " ", 0);
-#line 693 "moonshot-identity-management-view.c"
+#line 1019 "moonshot-identity-management-view.c"
        {
                gchar** search_text_collection = NULL;
                gint search_text_collection_length1 = 0;
                gint _search_text_collection_size_ = 0;
                gint search_text_it = 0;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                search_text_collection = _tmp17_;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                search_text_collection_length1 = _vala_array_length (_tmp16_);
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                for (search_text_it = 0; search_text_it < _vala_array_length (_tmp16_); search_text_it = search_text_it + 1) {
-#line 705 "moonshot-identity-management-view.c"
+#line 1031 "moonshot-identity-management-view.c"
                        gchar* _tmp18_ = NULL;
                        gchar* search_text = NULL;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        _tmp18_ = g_strdup (search_text_collection[search_text_it]);
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        search_text = _tmp18_;
-#line 712 "moonshot-identity-management-view.c"
+#line 1038 "moonshot-identity-management-view.c"
                        {
                                const gchar* _tmp19_ = NULL;
                                gchar* search_text_casefold = NULL;
@@ -721,35 +1052,35 @@ static gboolean identity_manager_view_visible_func (IdentityManagerView* self, G
                                const gchar* _tmp33_ = NULL;
                                const gchar* _tmp34_ = NULL;
                                IdCard* _tmp42_ = NULL;
-                               gchar** _tmp43_ = NULL;
-                               gint _tmp43__length1 = 0;
-                               gchar** _tmp44_ = NULL;
-                               gint _tmp44__length1 = 0;
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               GeeArrayList* _tmp43_ = NULL;
+                               GeeArrayList* _tmp44_ = NULL;
+                               gint _tmp45_ = 0;
+                               gint _tmp46_ = 0;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _tmp19_ = search_text;
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                if (g_strcmp0 (_tmp19_, "") == 0) {
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _g_free0 (search_text);
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        continue;
-#line 737 "moonshot-identity-management-view.c"
+#line 1063 "moonshot-identity-management-view.c"
                                }
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _tmp20_ = search_text;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp21_ = g_utf8_casefold (_tmp20_, (gssize) (-1));
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp21_ = g_utf8_casefold (_tmp20_, (gssize) -1);
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                search_text_casefold = _tmp21_;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _tmp22_ = id_card;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _tmp23_ = id_card_get_issuer (_tmp22_);
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _tmp24_ = _tmp23_;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                if (_tmp24_ != NULL) {
-#line 753 "moonshot-identity-management-view.c"
+#line 1079 "moonshot-identity-management-view.c"
                                        gchar* issuer_casefold = NULL;
                                        IdCard* _tmp25_ = NULL;
                                        const gchar* _tmp26_ = NULL;
@@ -758,55 +1089,55 @@ static gboolean identity_manager_view_visible_func (IdentityManagerView* self, G
                                        const gchar* _tmp29_ = NULL;
                                        const gchar* _tmp30_ = NULL;
                                        gboolean _tmp31_ = FALSE;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp25_ = id_card;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp26_ = id_card_get_issuer (_tmp25_);
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp27_ = _tmp26_;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp28_ = g_strdup (_tmp27_);
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        issuer_casefold = _tmp28_;
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp29_ = issuer_casefold;
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp30_ = search_text_casefold;
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp31_ = string_contains (_tmp29_, _tmp30_);
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        if (_tmp31_) {
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                result = TRUE;
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                _g_free0 (issuer_casefold);
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                _g_free0 (search_text_casefold);
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                _g_free0 (search_text);
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                search_text_collection = (_vala_array_free (search_text_collection, search_text_collection_length1, (GDestroyNotify) g_free), NULL);
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                _g_free0 (entry_text);
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                _g_object_unref0 (id_card);
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                return result;
-#line 796 "moonshot-identity-management-view.c"
+#line 1122 "moonshot-identity-management-view.c"
                                        }
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _g_free0 (issuer_casefold);
-#line 800 "moonshot-identity-management-view.c"
+#line 1126 "moonshot-identity-management-view.c"
                                }
-#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _tmp32_ = id_card;
-#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _tmp33_ = id_card_get_display_name (_tmp32_);
-#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _tmp34_ = _tmp33_;
-#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                if (_tmp34_ != NULL) {
-#line 810 "moonshot-identity-management-view.c"
+#line 1136 "moonshot-identity-management-view.c"
                                        gchar* display_name_casefold = NULL;
                                        IdCard* _tmp35_ = NULL;
                                        const gchar* _tmp36_ = NULL;
@@ -815,169 +1146,204 @@ static gboolean identity_manager_view_visible_func (IdentityManagerView* self, G
                                        const gchar* _tmp39_ = NULL;
                                        const gchar* _tmp40_ = NULL;
                                        gboolean _tmp41_ = FALSE;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp35_ = id_card;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp36_ = id_card_get_display_name (_tmp35_);
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp37_ = _tmp36_;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp38_ = g_utf8_casefold (_tmp37_, (gssize) (-1));
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp38_ = g_utf8_casefold (_tmp37_, (gssize) -1);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        display_name_casefold = _tmp38_;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp39_ = display_name_casefold;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp40_ = search_text_casefold;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _tmp41_ = string_contains (_tmp39_, _tmp40_);
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        if (_tmp41_) {
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                result = TRUE;
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                _g_free0 (display_name_casefold);
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                _g_free0 (search_text_casefold);
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                _g_free0 (search_text);
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                search_text_collection = (_vala_array_free (search_text_collection, search_text_collection_length1, (GDestroyNotify) g_free), NULL);
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                _g_free0 (entry_text);
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                _g_object_unref0 (id_card);
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                return result;
-#line 853 "moonshot-identity-management-view.c"
+#line 1179 "moonshot-identity-management-view.c"
                                        }
-#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                        _g_free0 (display_name_casefold);
-#line 857 "moonshot-identity-management-view.c"
+#line 1183 "moonshot-identity-management-view.c"
                                }
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _tmp42_ = id_card;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp43_ = id_card_get_services (_tmp42_, &_tmp43__length1);
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp43_ = id_card_get_services (_tmp42_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _tmp44_ = _tmp43_;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp44__length1 = _tmp43__length1;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               if (_tmp44__length1 > 0) {
-#line 869 "moonshot-identity-management-view.c"
-                                       IdCard* _tmp45_ = NULL;
-                                       gchar** _tmp46_ = NULL;
-                                       gint _tmp46__length1 = 0;
-                                       gchar** _tmp47_ = NULL;
-                                       gint _tmp47__length1 = 0;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp45_ = id_card;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp46_ = id_card_get_services (_tmp45_, &_tmp46__length1);
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp47_ = _tmp46_;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp47__length1 = _tmp46__length1;
-#line 883 "moonshot-identity-management-view.c"
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp45_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp44_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp46_ = _tmp45_;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               if (_tmp46_ > 0) {
+#line 1197 "moonshot-identity-management-view.c"
                                        {
-                                               gchar** service_collection = NULL;
-                                               gint service_collection_length1 = 0;
-                                               gint _service_collection_size_ = 0;
-                                               gint service_it = 0;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               service_collection = _tmp47_;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               service_collection_length1 = _tmp47__length1;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               for (service_it = 0; service_it < _tmp47__length1; service_it = service_it + 1) {
-#line 895 "moonshot-identity-management-view.c"
-                                                       gchar* _tmp48_ = NULL;
+                                               GeeArrayList* _service_list = NULL;
+                                               IdCard* _tmp47_ = NULL;
+                                               GeeArrayList* _tmp48_ = NULL;
+                                               GeeArrayList* _tmp49_ = NULL;
+                                               GeeArrayList* _tmp50_ = NULL;
+                                               gint _service_size = 0;
+                                               GeeArrayList* _tmp51_ = NULL;
+                                               gint _tmp52_ = 0;
+                                               gint _tmp53_ = 0;
+                                               gint _service_index = 0;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp47_ = id_card;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp48_ = id_card_get_services (_tmp47_);
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp49_ = _tmp48_;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp50_ = _g_object_ref0 (_tmp49_);
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _service_list = _tmp50_;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp51_ = _service_list;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp52_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp51_);
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp53_ = _tmp52_;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _service_size = _tmp53_;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _service_index = -1;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               while (TRUE) {
+#line 1231 "moonshot-identity-management-view.c"
+                                                       gint _tmp54_ = 0;
+                                                       gint _tmp55_ = 0;
+                                                       gint _tmp56_ = 0;
                                                        gchar* service = NULL;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                       _tmp48_ = g_strdup (service_collection[service_it]);
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                       service = _tmp48_;
-#line 902 "moonshot-identity-management-view.c"
-                                                       {
-                                                               gchar* service_casefold = NULL;
-                                                               const gchar* _tmp49_ = NULL;
-                                                               gchar* _tmp50_ = NULL;
-                                                               const gchar* _tmp51_ = NULL;
-                                                               const gchar* _tmp52_ = NULL;
-                                                               gboolean _tmp53_ = FALSE;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                               _tmp49_ = service;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                               _tmp50_ = g_utf8_casefold (_tmp49_, (gssize) (-1));
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                               service_casefold = _tmp50_;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                               _tmp51_ = service_casefold;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                               _tmp52_ = search_text_casefold;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                               _tmp53_ = string_contains (_tmp51_, _tmp52_);
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                               if (_tmp53_) {
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                                       result = TRUE;
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                                       _g_free0 (service_casefold);
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                                       _g_free0 (service);
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                                       _g_free0 (search_text_casefold);
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                                       _g_free0 (search_text);
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                                       search_text_collection = (_vala_array_free (search_text_collection, search_text_collection_length1, (GDestroyNotify) g_free), NULL);
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                                       _g_free0 (entry_text);
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                                       _g_object_unref0 (id_card);
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                                       return result;
-#line 942 "moonshot-identity-management-view.c"
-                                                               }
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       GeeArrayList* _tmp57_ = NULL;
+                                                       gint _tmp58_ = 0;
+                                                       gpointer _tmp59_ = NULL;
+                                                       gchar* service_casefold = NULL;
+                                                       const gchar* _tmp60_ = NULL;
+                                                       gchar* _tmp61_ = NULL;
+                                                       const gchar* _tmp62_ = NULL;
+                                                       const gchar* _tmp63_ = NULL;
+                                                       gboolean _tmp64_ = FALSE;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _tmp54_ = _service_index;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _service_index = _tmp54_ + 1;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _tmp55_ = _service_index;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _tmp56_ = _service_size;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       if (!(_tmp55_ < _tmp56_)) {
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                               break;
+#line 1257 "moonshot-identity-management-view.c"
+                                                       }
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _tmp57_ = _service_list;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _tmp58_ = _service_index;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _tmp59_ = gee_abstract_list_get ((GeeAbstractList*) _tmp57_, _tmp58_);
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       service = (gchar*) _tmp59_;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _tmp60_ = service;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _tmp61_ = g_utf8_casefold (_tmp60_, (gssize) -1);
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       service_casefold = _tmp61_;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _tmp62_ = service_casefold;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _tmp63_ = search_text_casefold;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _tmp64_ = string_contains (_tmp62_, _tmp63_);
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       if (_tmp64_) {
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                               result = TRUE;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                                _g_free0 (service_casefold);
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                                _g_free0 (service);
-#line 948 "moonshot-identity-management-view.c"
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                               _g_object_unref0 (_service_list);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                               _g_free0 (search_text_casefold);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                               _g_free0 (search_text);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                               search_text_collection = (_vala_array_free (search_text_collection, search_text_collection_length1, (GDestroyNotify) g_free), NULL);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                               _g_free0 (entry_text);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                               _g_object_unref0 (id_card);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                               return result;
+#line 1301 "moonshot-identity-management-view.c"
                                                        }
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _g_free0 (service_casefold);
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                                       _g_free0 (service);
+#line 1307 "moonshot-identity-management-view.c"
                                                }
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _g_object_unref0 (_service_list);
+#line 1311 "moonshot-identity-management-view.c"
                                        }
                                }
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _g_free0 (search_text_casefold);
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _g_free0 (search_text);
-#line 957 "moonshot-identity-management-view.c"
+#line 1318 "moonshot-identity-management-view.c"
                        }
                }
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                search_text_collection = (_vala_array_free (search_text_collection, search_text_collection_length1, (GDestroyNotify) g_free), NULL);
-#line 962 "moonshot-identity-management-view.c"
+#line 1323 "moonshot-identity-management-view.c"
        }
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        result = FALSE;
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_free0 (entry_text);
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_object_unref0 (id_card);
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        return result;
-#line 972 "moonshot-identity-management-view.c"
+#line 1333 "moonshot-identity-management-view.c"
 }
 
 
 static gboolean _identity_manager_view_visible_func_gtk_tree_model_filter_visible_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self) {
        gboolean result;
        result = identity_manager_view_visible_func ((IdentityManagerView*) self, model, iter);
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        return result;
-#line 981 "moonshot-identity-management-view.c"
+#line 1342 "moonshot-identity-management-view.c"
 }
 
 
@@ -986,87 +1352,39 @@ static void identity_manager_view_setup_list_model (IdentityManagerView* self) {
        GtkListStore* _tmp1_ = NULL;
        GtkTreeModelFilter* _tmp2_ = NULL;
        GtkTreeModelFilter* _tmp3_ = NULL;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = gtk_list_store_new ((gint) IDENTITY_MANAGER_VIEW_COLUMNS_N_COLUMNS, TYPE_ID_CARD, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = gtk_list_store_new ((gint) IDENTITY_MANAGER_VIEW_COLUMNS_N_COLUMNS, TYPE_ID_CARD, gdk_pixbuf_get_type (), G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        self->priv->listmodel = _tmp0_;
-#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp1_ = self->priv->listmodel;
-#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp2_ = (GtkTreeModelFilter*) gtk_tree_model_filter_new ((GtkTreeModel*) _tmp1_, NULL);
-#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_object_unref0 (self->priv->filter);
-#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        self->priv->filter = _tmp2_;
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp3_ = self->priv->filter;
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        gtk_tree_model_filter_set_visible_func (_tmp3_, _identity_manager_view_visible_func_gtk_tree_model_filter_visible_func, g_object_ref (self), g_object_unref);
-#line 1008 "moonshot-identity-management-view.c"
-}
-
-
-static void identity_manager_view_search_entry_icon_press_cb (IdentityManagerView* self, GtkEntryIconPosition pos, GdkEvent* event) {
-       GtkEntryIconPosition _tmp0_ = 0;
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (self != NULL);
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (event != NULL);
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = pos;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp0_ == GTK_ENTRY_ICON_PRIMARY) {
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               g_print ("Search entry icon pressed\n");
-#line 1024 "moonshot-identity-management-view.c"
-       } else {
-               GtkEntry* _tmp1_ = NULL;
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp1_ = self->priv->search_entry;
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               gtk_entry_set_text (_tmp1_, "");
-#line 1031 "moonshot-identity-management-view.c"
-       }
+#line 1369 "moonshot-identity-management-view.c"
 }
 
 
 static void identity_manager_view_search_entry_text_changed_cb (IdentityManagerView* self) {
        GtkTreeModelFilter* _tmp0_ = NULL;
-       gboolean has_text = FALSE;
-       GtkEntry* _tmp1_ = NULL;
-       guint16 _tmp2_ = 0U;
-       GtkEntry* _tmp3_ = NULL;
-       GtkEntry* _tmp4_ = NULL;
-       GtkVBox* _tmp5_ = NULL;
-#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp0_ = self->priv->filter;
-#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        gtk_tree_model_filter_refilter (_tmp0_);
-#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        identity_manager_view_redraw_id_card_widgets (self);
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = self->priv->search_entry;
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = gtk_entry_get_text_length (_tmp1_);
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       has_text = ((gint) _tmp2_) > 0;
-#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = self->priv->search_entry;
-#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_entry_set_icon_sensitive (_tmp3_, GTK_ENTRY_ICON_PRIMARY, has_text);
-#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = self->priv->search_entry;
-#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_entry_set_icon_sensitive (_tmp4_, GTK_ENTRY_ICON_SECONDARY, has_text);
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp5_ = self->priv->vbox_right;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_widget_set_visible ((GtkWidget*) _tmp5_, FALSE);
-#line 1070 "moonshot-identity-management-view.c"
+#line 1383 "moonshot-identity-management-view.c"
 }
 
 
@@ -1075,1066 +1393,765 @@ static gboolean identity_manager_view_search_entry_key_press_event_cb (IdentityM
        GdkEventKey _tmp0_ = {0};
        guint _tmp1_ = 0U;
        const gchar* _tmp2_ = NULL;
-#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_val_if_fail (e != NULL, FALSE);
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp0_ = *e;
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp1_ = _tmp0_.keyval;
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp2_ = gdk_keyval_name (_tmp1_);
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        if (g_strcmp0 (_tmp2_, "Escape") == 0) {
-#line 1091 "moonshot-identity-management-view.c"
+#line 1404 "moonshot-identity-management-view.c"
                GtkEntry* _tmp3_ = NULL;
-#line 217 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp3_ = self->priv->search_entry;
-#line 217 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                gtk_entry_set_text (_tmp3_, "");
-#line 1097 "moonshot-identity-management-view.c"
+#line 1410 "moonshot-identity-management-view.c"
        }
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        result = FALSE;
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        return result;
-#line 1103 "moonshot-identity-management-view.c"
+#line 1416 "moonshot-identity-management-view.c"
 }
 
 
-static void identity_manager_view_update_password_cb (IdentityManagerView* self) {
-       CustomVBox* _tmp0_ = NULL;
-       IdCardWidget* _tmp1_ = NULL;
-       IdCardWidget* _tmp2_ = NULL;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+static const gchar* string_to_string (const gchar* self) {
+       const gchar* result = NULL;
+#line 1420 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = self;
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 1428 "moonshot-identity-management-view.c"
+}
+
+
+static void identity_manager_view_load_id_cards (IdentityManagerView* self) {
+       MoonshotLogger* _tmp0_ = NULL;
+       CustomVBox* _tmp1_ = NULL;
+       GtkListStore* _tmp2_ = NULL;
+       GeeLinkedList* card_list = NULL;
+       IdentityManagerModel* _tmp3_ = NULL;
+       GeeLinkedList* _tmp4_ = NULL;
+       GeeLinkedList* _tmp5_ = NULL;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = self->priv->custom_vbox;
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = custom_vbox_get_current_idcard (_tmp0_);
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = _tmp1_;
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp2_ != NULL) {
-#line 1121 "moonshot-identity-management-view.c"
-               IdCard* identity = NULL;
-               CustomVBox* _tmp3_ = NULL;
-               IdCardWidget* _tmp4_ = NULL;
-               IdCardWidget* _tmp5_ = NULL;
-               IdCard* _tmp6_ = NULL;
-               IdCard* _tmp7_ = NULL;
-               IdCard* _tmp8_ = NULL;
-               AddPasswordDialog* dialog = NULL;
-               IdCard* _tmp9_ = NULL;
-               AddPasswordDialog* _tmp10_ = NULL;
-               gint _result_ = 0;
-               AddPasswordDialog* _tmp11_ = NULL;
-               gint _tmp12_ = 0;
-               gint _tmp13_ = 0;
-               AddPasswordDialog* _tmp29_ = NULL;
-#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp3_ = self->priv->custom_vbox;
-#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp4_ = custom_vbox_get_current_idcard (_tmp3_);
-#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp5_ = _tmp4_;
-#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp6_ = id_card_widget_get_id_card (_tmp5_);
-#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp7_ = _tmp6_;
-#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp8_ = _g_object_ref0 (_tmp7_);
-#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               identity = _tmp8_;
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp9_ = identity;
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp10_ = add_password_dialog_new (_tmp9_, NULL);
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               g_object_ref_sink (_tmp10_);
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               dialog = _tmp10_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp11_ = dialog;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp12_ = gtk_dialog_run ((GtkDialog*) _tmp11_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _result_ = _tmp12_;
-#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp13_ = _result_;
-#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               switch (_tmp13_) {
-#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       case GTK_RESPONSE_OK:
-#line 1171 "moonshot-identity-management-view.c"
-                       {
-                               IdCard* _tmp14_ = NULL;
-                               AddPasswordDialog* _tmp15_ = NULL;
-                               const gchar* _tmp16_ = NULL;
-                               const gchar* _tmp17_ = NULL;
-                               IdCard* _tmp18_ = NULL;
-                               AddPasswordDialog* _tmp19_ = NULL;
-                               gboolean _tmp20_ = FALSE;
-                               gboolean _tmp21_ = FALSE;
-                               AddPasswordDialog* _tmp22_ = NULL;
-                               gboolean _tmp23_ = FALSE;
-                               gboolean _tmp24_ = FALSE;
-                               IdentityManagerModel* _tmp26_ = NULL;
-                               IdCard* _tmp27_ = NULL;
-                               IdCard* _tmp28_ = NULL;
-#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp14_ = identity;
 #line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp15_ = dialog;
+       _tmp0_ = identity_manager_view_logger;
 #line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp16_ = add_password_dialog_get_password (_tmp15_);
-#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp17_ = _tmp16_;
-#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               id_card_set_password (_tmp14_, _tmp17_);
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp18_ = identity;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp19_ = dialog;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp20_ = add_password_dialog_get_remember (_tmp19_);
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp21_ = _tmp20_;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               id_card_set_store_password (_tmp18_, _tmp21_);
-#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp22_ = dialog;
-#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp23_ = add_password_dialog_get_remember (_tmp22_);
+       moonshot_logger_trace (_tmp0_, "load_id_cards", NULL);
 #line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp24_ = _tmp23_;
+       _tmp1_ = self->priv->custom_vbox;
 #line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               if (_tmp24_) {
-#line 1215 "moonshot-identity-management-view.c"
-                                       IdCard* _tmp25_ = NULL;
+       custom_vbox_clear (_tmp1_);
 #line 236 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp25_ = identity;
+       _tmp2_ = self->priv->listmodel;
 #line 236 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       id_card_set_temporary (_tmp25_, FALSE);
-#line 1221 "moonshot-identity-management-view.c"
-                               }
-#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp26_ = self->identities_manager;
+       gtk_list_store_clear (_tmp2_);
 #line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp27_ = identity;
+       _tmp3_ = self->identities_manager;
 #line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp28_ = identity_manager_model_update_card (_tmp26_, _tmp27_);
+       _tmp4_ = identity_manager_model_get_card_list (_tmp3_);
 #line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _g_object_unref0 (identity);
-#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               identity = _tmp28_;
+       card_list = _tmp4_;
 #line 238 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp5_ = card_list;
+#line 238 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp5_ == NULL) {
+#line 239 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (card_list);
+#line 239 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               return;
+#line 1468 "moonshot-identity-management-view.c"
+       }
+       {
+               GeeLinkedList* _id_card_list = NULL;
+               GeeLinkedList* _tmp6_ = NULL;
+               GeeLinkedList* _tmp7_ = NULL;
+               gint _id_card_size = 0;
+               GeeLinkedList* _tmp8_ = NULL;
+               gint _tmp9_ = 0;
+               gint _tmp10_ = 0;
+               gint _id_card_index = 0;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp6_ = card_list;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _id_card_list = _tmp7_;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp8_ = _id_card_list;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp9_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp8_);
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp10_ = _tmp9_;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _id_card_size = _tmp10_;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _id_card_index = -1;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               while (TRUE) {
+#line 1497 "moonshot-identity-management-view.c"
+                       gint _tmp11_ = 0;
+                       gint _tmp12_ = 0;
+                       gint _tmp13_ = 0;
+                       IdCard* id_card = NULL;
+                       GeeLinkedList* _tmp14_ = NULL;
+                       gint _tmp15_ = 0;
+                       gpointer _tmp16_ = NULL;
+                       MoonshotLogger* _tmp17_ = NULL;
+                       IdCard* _tmp18_ = NULL;
+                       const gchar* _tmp19_ = NULL;
+                       const gchar* _tmp20_ = NULL;
+                       const gchar* _tmp21_ = NULL;
+                       gchar* _tmp22_ = NULL;
+                       gchar* _tmp23_ = NULL;
+                       IdCard* _tmp24_ = NULL;
+                       IdCard* _tmp25_ = NULL;
+                       IdCardWidget* _tmp26_ = NULL;
+                       IdCardWidget* _tmp27_ = NULL;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp11_ = _id_card_index;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _id_card_index = _tmp11_ + 1;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp12_ = _id_card_index;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp13_ = _id_card_size;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       if (!(_tmp12_ < _tmp13_)) {
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                break;
-#line 1235 "moonshot-identity-management-view.c"
-                       }
-                       default:
-                       {
-#line 240 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               break;
-#line 1241 "moonshot-identity-management-view.c"
+#line 1528 "moonshot-identity-management-view.c"
                        }
-               }
 #line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp29_ = dialog;
+                       _tmp14_ = _id_card_list;
 #line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               gtk_object_destroy ((GtkObject*) _tmp29_);
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _g_object_unref0 (dialog);
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _g_object_unref0 (identity);
-#line 1252 "moonshot-identity-management-view.c"
+                       _tmp15_ = _id_card_index;
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp16_ = gee_abstract_list_get ((GeeAbstractList*) _tmp14_, _tmp15_);
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       id_card = (IdCard*) _tmp16_;
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp17_ = identity_manager_view_logger;
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp18_ = id_card;
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp19_ = id_card_get_display_name (_tmp18_);
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp20_ = _tmp19_;
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp21_ = string_to_string (_tmp20_);
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp22_ = g_strconcat ("load_id_cards: Loading card with display name '", _tmp21_, "'", NULL);
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp23_ = _tmp22_;
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       moonshot_logger_trace (_tmp17_, _tmp23_, NULL);
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_free0 (_tmp23_);
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp24_ = id_card;
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       identity_manager_view_add_id_card_data (self, _tmp24_);
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp25_ = id_card;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp26_ = identity_manager_view_add_id_card_widget (self, _tmp25_);
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp27_ = _tmp26_;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (_tmp27_);
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (id_card);
+#line 1570 "moonshot-identity-management-view.c"
+               }
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (_id_card_list);
+#line 1574 "moonshot-identity-management-view.c"
        }
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (card_list);
+#line 1578 "moonshot-identity-management-view.c"
 }
 
 
-static void identity_manager_view_load_id_cards (IdentityManagerView* self) {
-       gchar* current_idcard_nai = NULL;
-       CustomVBox* _tmp0_ = NULL;
-       IdCardWidget* _tmp1_ = NULL;
-       IdCardWidget* _tmp2_ = NULL;
-       GList* children = NULL;
-       CustomVBox* _tmp12_ = NULL;
-       GList* _tmp13_ = NULL;
-       GList* _tmp14_ = NULL;
-       GtkListStore* _tmp16_ = NULL;
-       GeeLinkedList* card_list = NULL;
-       IdentityManagerModel* _tmp17_ = NULL;
-       GeeLinkedList* _tmp18_ = NULL;
-       GeeLinkedList* _tmp19_ = NULL;
-       CustomVBox* _tmp42_ = NULL;
-       IdCardWidget* _tmp43_ = NULL;
-       IdCardWidget* _tmp44_ = NULL;
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (self != NULL);
-#line 247 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       current_idcard_nai = NULL;
-#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = self->priv->custom_vbox;
-#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = custom_vbox_get_current_idcard (_tmp0_);
-#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = _tmp1_;
-#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp2_ != NULL) {
-#line 1286 "moonshot-identity-management-view.c"
-               CustomVBox* _tmp3_ = NULL;
-               IdCardWidget* _tmp4_ = NULL;
-               IdCardWidget* _tmp5_ = NULL;
-               IdCard* _tmp6_ = NULL;
-               IdCard* _tmp7_ = NULL;
-               const gchar* _tmp8_ = NULL;
-               const gchar* _tmp9_ = NULL;
-               gchar* _tmp10_ = NULL;
-               CustomVBox* _tmp11_ = NULL;
+static IdCard* identity_manager_view_update_id_card_data (IdentityManagerView* self, IdentityDialog* dialog, IdCard* id_card) {
+       IdCard* result = NULL;
+       IdCard* _tmp0_ = NULL;
+       IdentityDialog* _tmp1_ = NULL;
+       const gchar* _tmp2_ = NULL;
+       const gchar* _tmp3_ = NULL;
+       IdCard* _tmp4_ = NULL;
+       IdentityDialog* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       const gchar* _tmp7_ = NULL;
+       IdCard* _tmp8_ = NULL;
+       IdentityDialog* _tmp9_ = NULL;
+       const gchar* _tmp10_ = NULL;
+       const gchar* _tmp11_ = NULL;
+       IdCard* _tmp12_ = NULL;
+       IdentityDialog* _tmp13_ = NULL;
+       const gchar* _tmp14_ = NULL;
+       const gchar* _tmp15_ = NULL;
+       IdCard* _tmp16_ = NULL;
+       IdentityDialog* _tmp17_ = NULL;
+       gboolean _tmp18_ = FALSE;
+       gboolean _tmp19_ = FALSE;
+       IdCard* _tmp20_ = NULL;
+       IdentityDialog* _tmp21_ = NULL;
+       GeeArrayList* _tmp22_ = NULL;
+       GeeArrayList* _tmp23_ = NULL;
+       IdentityDialog* _tmp24_ = NULL;
+       gboolean _tmp25_ = FALSE;
+       IdCard* _tmp27_ = NULL;
+       IdCard* _tmp28_ = NULL;
 #line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp3_ = self->priv->custom_vbox;
+       g_return_val_if_fail (self != NULL, NULL);
 #line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp4_ = custom_vbox_get_current_idcard (_tmp3_);
+       g_return_val_if_fail (dialog != NULL, NULL);
 #line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp5_ = _tmp4_;
-#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp6_ = id_card_widget_get_id_card (_tmp5_);
-#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp7_ = _tmp6_;
-#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp8_ = id_card_get_nai (_tmp7_);
-#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp9_ = _tmp8_;
-#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp10_ = g_strdup (_tmp9_);
-#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _g_free0 (current_idcard_nai);
-#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               current_idcard_nai = _tmp10_;
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp11_ = self->priv->custom_vbox;
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               custom_vbox_set_current_idcard (_tmp11_, NULL);
-#line 1320 "moonshot-identity-management-view.c"
-       }
+       g_return_val_if_fail (id_card != NULL, NULL);
+#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = id_card;
+#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = dialog;
+#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = identity_dialog_get_display_name (_tmp1_);
+#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = _tmp2_;
+#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       id_card_set_display_name (_tmp0_, _tmp3_);
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = id_card;
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp5_ = dialog;
 #line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp12_ = self->priv->custom_vbox;
+       _tmp6_ = identity_dialog_get_issuer (_tmp5_);
 #line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp13_ = gtk_container_get_children ((GtkContainer*) _tmp12_);
+       _tmp7_ = _tmp6_;
 #line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       children = _tmp13_;
+       id_card_set_issuer (_tmp4_, _tmp7_);
 #line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp14_ = children;
-#line 1330 "moonshot-identity-management-view.c"
-       {
-               GList* id_card_widget_collection = NULL;
-               GList* id_card_widget_it = NULL;
+       _tmp8_ = id_card;
 #line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               id_card_widget_collection = _tmp14_;
+       _tmp9_ = dialog;
 #line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               for (id_card_widget_it = id_card_widget_collection; id_card_widget_it != NULL; id_card_widget_it = id_card_widget_it->next) {
-#line 1338 "moonshot-identity-management-view.c"
-                       GtkWidget* id_card_widget = NULL;
+       _tmp10_ = identity_dialog_get_username (_tmp9_);
 #line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       id_card_widget = (GtkWidget*) id_card_widget_it->data;
-#line 1342 "moonshot-identity-management-view.c"
-                       {
-                               GtkWidget* _tmp15_ = NULL;
+       _tmp11_ = _tmp10_;
+#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       id_card_set_username (_tmp8_, _tmp11_);
 #line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp15_ = id_card_widget;
+       _tmp12_ = id_card;
 #line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               identity_manager_view_remove_id_card_widget (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_ID_CARD_WIDGET, IdCardWidget));
-#line 1349 "moonshot-identity-management-view.c"
-                       }
-               }
-       }
-#line 256 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp16_ = self->priv->listmodel;
-#line 256 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_list_store_clear (_tmp16_);
+       _tmp13_ = dialog;
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp14_ = identity_dialog_get_password (_tmp13_);
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp15_ = _tmp14_;
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       id_card_set_password (_tmp12_, _tmp15_);
+#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp16_ = id_card;
+#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp17_ = dialog;
+#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp18_ = identity_dialog_get_store_password (_tmp17_);
+#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp19_ = _tmp18_;
+#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       id_card_set_store_password (_tmp16_, _tmp19_);
 #line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp17_ = self->identities_manager;
+       _tmp20_ = id_card;
 #line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp18_ = identity_manager_model_get_card_list (_tmp17_);
+       _tmp21_ = dialog;
 #line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       card_list = _tmp18_;
-#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp19_ = card_list;
-#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp19_ == NULL) {
-#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _g_object_unref0 (card_list);
+       _tmp22_ = identity_dialog_get_services (_tmp21_);
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp23_ = _tmp22_;
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       id_card_update_services_from_list (_tmp20_, _tmp23_);
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (_tmp23_);
 #line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _g_list_free0 (children);
+       _tmp24_ = dialog;
 #line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _g_free0 (current_idcard_nai);
+       _tmp25_ = _tmp24_->clear_trust_anchor;
 #line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               return;
-#line 1375 "moonshot-identity-management-view.c"
+       if (_tmp25_) {
+#line 1686 "moonshot-identity-management-view.c"
+               IdCard* _tmp26_ = NULL;
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp26_ = id_card;
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               id_card_clear_trust_anchor (_tmp26_);
+#line 1692 "moonshot-identity-management-view.c"
        }
-       {
-               GeeLinkedList* _id_card_list = NULL;
-               GeeLinkedList* _tmp20_ = NULL;
-               GeeLinkedList* _tmp21_ = NULL;
-               gint _id_card_size = 0;
-               GeeLinkedList* _tmp22_ = NULL;
-               gint _tmp23_ = 0;
-               gint _tmp24_ = 0;
-               gint _id_card_index = 0;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp20_ = card_list;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp21_ = _g_object_ref0 (_tmp20_);
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _id_card_list = _tmp21_;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp22_ = _id_card_list;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp23_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp22_);
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp24_ = _tmp23_;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _id_card_size = _tmp24_;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _id_card_index = -1;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               while (TRUE) {
-#line 1404 "moonshot-identity-management-view.c"
-                       gint _tmp25_ = 0;
-                       gint _tmp26_ = 0;
-                       gint _tmp27_ = 0;
-                       IdCard* id_card = NULL;
-                       GeeLinkedList* _tmp28_ = NULL;
-                       gint _tmp29_ = 0;
-                       gpointer _tmp30_ = NULL;
-                       IdCard* _tmp31_ = NULL;
-                       IdCardWidget* id_card_widget = NULL;
-                       IdCard* _tmp32_ = NULL;
-                       IdCardWidget* _tmp33_ = NULL;
-                       IdCardWidget* _tmp34_ = NULL;
-                       IdCard* _tmp35_ = NULL;
-                       IdCard* _tmp36_ = NULL;
-                       const gchar* _tmp37_ = NULL;
-                       const gchar* _tmp38_ = NULL;
-                       const gchar* _tmp39_ = NULL;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp25_ = _id_card_index;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _id_card_index = _tmp25_ + 1;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp26_ = _id_card_index;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp27_ = _id_card_size;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       if (!(_tmp26_ < _tmp27_)) {
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               break;
-#line 1434 "moonshot-identity-management-view.c"
-                       }
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp28_ = _id_card_list;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp29_ = _id_card_index;
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp30_ = gee_abstract_list_get ((GeeAbstractList*) _tmp28_, _tmp29_);
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       id_card = (IdCard*) _tmp30_;
 #line 263 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp31_ = id_card;
+       _tmp27_ = id_card;
 #line 263 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       identity_manager_view_add_id_card_data (self, _tmp31_);
-#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp32_ = id_card;
-#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp33_ = identity_manager_view_add_id_card_widget (self, _tmp32_);
-#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       id_card_widget = _tmp33_;
-#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp34_ = id_card_widget;
-#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp35_ = id_card_widget_get_id_card (_tmp34_);
-#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp36_ = _tmp35_;
-#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp37_ = id_card_get_nai (_tmp36_);
-#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp38_ = _tmp37_;
-#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp39_ = current_idcard_nai;
-#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       if (g_strcmp0 (_tmp38_, _tmp39_) == 0) {
-#line 1468 "moonshot-identity-management-view.c"
-                               IdCardWidget* _tmp40_ = NULL;
-                               IdCardWidget* _tmp41_ = NULL;
+       _tmp28_ = _g_object_ref0 (_tmp27_);
+#line 263 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       result = _tmp28_;
+#line 263 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       return result;
+#line 1702 "moonshot-identity-management-view.c"
+}
+
+
+static void identity_manager_view_add_id_card_data (IdentityManagerView* self, IdCard* id_card) {
+       GtkTreeIter iter = {0};
+       GdkPixbuf* pixbuf = NULL;
+       GtkListStore* _tmp0_ = NULL;
+       GtkTreeIter _tmp1_ = {0};
+       IdCard* _tmp2_ = NULL;
+       GdkPixbuf* _tmp3_ = NULL;
+       GtkListStore* _tmp4_ = NULL;
+       GtkTreeIter _tmp5_ = {0};
+       IdCard* _tmp6_ = NULL;
+       IdCard* _tmp7_ = NULL;
+       const gchar* _tmp8_ = NULL;
+       const gchar* _tmp9_ = NULL;
+       IdCard* _tmp10_ = NULL;
+       const gchar* _tmp11_ = NULL;
+       const gchar* _tmp12_ = NULL;
+       IdCard* _tmp13_ = NULL;
+       const gchar* _tmp14_ = NULL;
+       const gchar* _tmp15_ = NULL;
 #line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp40_ = id_card_widget;
+       g_return_if_fail (self != NULL);
 #line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               identity_manager_view_fill_details (self, _tmp40_);
-#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp41_ = id_card_widget;
-#line 267 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               id_card_widget_expand (_tmp41_);
-#line 1479 "moonshot-identity-management-view.c"
-                       }
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _g_object_unref0 (id_card_widget);
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _g_object_unref0 (id_card);
-#line 1485 "moonshot-identity-management-view.c"
-               }
-#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _g_object_unref0 (_id_card_list);
-#line 1489 "moonshot-identity-management-view.c"
-       }
-#line 270 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp42_ = self->priv->custom_vbox;
+       g_return_if_fail (id_card != NULL);
 #line 270 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp43_ = custom_vbox_get_current_idcard (_tmp42_);
+       _tmp0_ = self->priv->listmodel;
 #line 270 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp44_ = _tmp43_;
+       gtk_list_store_append (_tmp0_, &_tmp1_);
 #line 270 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp44_ == NULL) {
+       iter = _tmp1_;
 #line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               identity_manager_view_fill_details (self, NULL);
-#line 1501 "moonshot-identity-management-view.c"
-       }
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (card_list);
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_list_free0 (children);
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_free0 (current_idcard_nai);
-#line 1509 "moonshot-identity-management-view.c"
+       _tmp2_ = id_card;
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = get_pixbuf (_tmp2_);
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (pixbuf);
+#line 271 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       pixbuf = _tmp3_;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = self->priv->listmodel;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp5_ = iter;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp6_ = id_card;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_ = id_card;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp8_ = id_card_get_issuer (_tmp7_);
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp9_ = _tmp8_;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp10_ = id_card;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp11_ = id_card_get_username (_tmp10_);
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp12_ = _tmp11_;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp13_ = id_card;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp14_ = id_card_get_password (_tmp13_);
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp15_ = _tmp14_;
+#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_list_store_set (_tmp4_, &_tmp5_, IDENTITY_MANAGER_VIEW_COLUMNS_IDCARD_COL, _tmp6_, IDENTITY_MANAGER_VIEW_COLUMNS_LOGO_COL, pixbuf, IDENTITY_MANAGER_VIEW_COLUMNS_ISSUER_COL, _tmp9_, IDENTITY_MANAGER_VIEW_COLUMNS_USERNAME_COL, _tmp12_, IDENTITY_MANAGER_VIEW_COLUMNS_PASSWORD_COL, _tmp15_, -1);
+#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (pixbuf);
+#line 1771 "moonshot-identity-management-view.c"
 }
 
 
-static void identity_manager_view_fill_details (IdentityManagerView* self, IdCardWidget* id_card_widget) {
-       GList* vr_children = NULL;
-       GtkVBox* _tmp0_ = NULL;
-       GList* _tmp1_ = NULL;
-       GList* _tmp2_ = NULL;
-       IdCardWidget* _tmp5_ = NULL;
-#line 274 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (self != NULL);
-#line 276 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = self->priv->vbox_right;
-#line 276 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = gtk_container_get_children ((GtkContainer*) _tmp0_);
-#line 276 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       vr_children = _tmp1_;
-#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = vr_children;
-#line 1529 "moonshot-identity-management-view.c"
-       {
-               GList* vr_child_collection = NULL;
-               GList* vr_child_it = NULL;
-#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               vr_child_collection = _tmp2_;
-#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               for (vr_child_it = vr_child_collection; vr_child_it != NULL; vr_child_it = vr_child_it->next) {
-#line 1537 "moonshot-identity-management-view.c"
-                       GtkWidget* vr_child = NULL;
-#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       vr_child = (GtkWidget*) vr_child_it->data;
-#line 1541 "moonshot-identity-management-view.c"
-                       {
-                               GtkVBox* _tmp3_ = NULL;
-                               GtkWidget* _tmp4_ = NULL;
-#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp3_ = self->priv->vbox_right;
-#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp4_ = vr_child;
-#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               gtk_container_remove ((GtkContainer*) _tmp3_, _tmp4_);
-#line 1551 "moonshot-identity-management-view.c"
-                       }
-               }
-       }
-#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp5_ = id_card_widget;
-#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp5_ != NULL) {
-#line 1559 "moonshot-identity-management-view.c"
-               IdCard* id_card = NULL;
-               IdCardWidget* _tmp6_ = NULL;
-               IdCard* _tmp7_ = NULL;
-               IdCard* _tmp8_ = NULL;
-               IdCard* _tmp9_ = NULL;
-               IdCard* _tmp10_ = NULL;
-               const gchar* _tmp11_ = NULL;
-               const gchar* _tmp12_ = NULL;
-               GtkVBox* _tmp34_ = NULL;
-               GtkVBox* _tmp35_ = NULL;
-               GList* children = NULL;
-               GtkVBox* _tmp36_ = NULL;
-               GList* _tmp37_ = NULL;
-               GList* _tmp38_ = NULL;
-               IdCardWidget* _tmp41_ = NULL;
-               IdCard* _tmp42_ = NULL;
-               IdCard* _tmp43_ = NULL;
-#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp6_ = id_card_widget;
-#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp7_ = id_card_widget_get_id_card (_tmp6_);
-#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp8_ = _tmp7_;
+static void _identity_manager_view_widget_selected_cb_id_card_widget_expanded (IdCardWidget* _sender, gpointer self) {
+#line 294 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_widget_selected_cb ((IdentityManagerView*) self, _sender);
+#line 1778 "moonshot-identity-management-view.c"
+}
+
+
+static void _identity_manager_view_widget_unselected_cb_id_card_widget_collapsed (IdCardWidget* _sender, gpointer self) {
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_widget_unselected_cb ((IdentityManagerView*) self, _sender);
+#line 1785 "moonshot-identity-management-view.c"
+}
+
+
+static IdCardWidget* identity_manager_view_add_id_card_widget (IdentityManagerView* self, IdCard* id_card) {
+       IdCardWidget* result = NULL;
+       IdCard* _tmp0_ = NULL;
+       const gchar* _tmp2_ = NULL;
+       IdCard* _tmp3_ = NULL;
+       MoonshotLogger* _tmp7_ = NULL;
+       IdCard* _tmp8_ = NULL;
+       const gchar* _tmp9_ = NULL;
+       const gchar* _tmp10_ = NULL;
+       gchar* _tmp11_ = NULL;
+       gchar* _tmp12_ = NULL;
+       IdCardWidget* id_card_widget = NULL;
+       IdCard* _tmp13_ = NULL;
+       IdCardWidget* _tmp14_ = NULL;
+       CustomVBox* _tmp15_ = NULL;
+       IdCardWidget* _tmp16_ = NULL;
+       IdCardWidget* _tmp17_ = NULL;
+       IdCardWidget* _tmp18_ = NULL;
+       gboolean _tmp19_ = FALSE;
+       IdCard* _tmp20_ = NULL;
 #line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp9_ = _g_object_ref0 (_tmp8_);
+       g_return_val_if_fail (self != NULL, NULL);
 #line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               id_card = _tmp9_;
-#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp10_ = id_card;
-#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp11_ = id_card_get_display_name (_tmp10_);
-#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp12_ = _tmp11_;
-#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               if (g_strcmp0 (_tmp12_, ID_CARD_NO_IDENTITY) == 0) {
-#line 1595 "moonshot-identity-management-view.c"
-                       GtkVBox* _tmp13_ = NULL;
-                       GtkLabel* _tmp14_ = NULL;
-#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp13_ = self->priv->vbox_right;
+       g_return_val_if_fail (id_card != NULL, NULL);
 #line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp14_ = self->priv->no_identity_title;
+       _tmp0_ = id_card;
 #line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       gtk_box_pack_start ((GtkBox*) _tmp13_, (GtkWidget*) _tmp14_, FALSE, TRUE, (guint) 0);
-#line 1604 "moonshot-identity-management-view.c"
-               } else {
-                       GtkEntry* _tmp15_ = NULL;
-                       IdCard* _tmp16_ = NULL;
-                       const gchar* _tmp17_ = NULL;
-                       const gchar* _tmp18_ = NULL;
-                       GtkEntry* _tmp19_ = NULL;
-                       IdCard* _tmp20_ = NULL;
-                       const gchar* _tmp21_ = NULL;
-                       const gchar* _tmp22_ = NULL;
-                       const gchar* _tmp23_ = NULL;
-                       IdCard* _tmp24_ = NULL;
-                       const gchar* _tmp25_ = NULL;
-                       const gchar* _tmp26_ = NULL;
-                       GtkEntry* _tmp27_ = NULL;
-                       GtkVBox* _tmp28_ = NULL;
-                       GtkVBox* _tmp29_ = NULL;
-                       GtkCheckButton* _tmp30_ = NULL;
-                       IdCard* _tmp31_ = NULL;
-                       gboolean _tmp32_ = FALSE;
-                       gboolean _tmp33_ = FALSE;
-#line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp15_ = self->priv->issuer_entry;
-#line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp16_ = id_card;
-#line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp17_ = id_card_get_issuer (_tmp16_);
+       if (_tmp0_ == NULL) {
+#line 1817 "moonshot-identity-management-view.c"
+               MoonshotLogger* _tmp1_ = NULL;
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp1_ = identity_manager_view_logger;
+#line 283 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               moonshot_logger_trace (_tmp1_, "add_id_card_widget: id_card == null; returning.", NULL);
 #line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp18_ = _tmp17_;
+               result = NULL;
 #line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       gtk_entry_set_text (_tmp15_, _tmp18_);
-#line 285 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp19_ = self->priv->username_entry;
-#line 285 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp20_ = id_card;
-#line 285 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp21_ = id_card_get_username (_tmp20_);
-#line 285 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp22_ = _tmp21_;
-#line 285 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       gtk_entry_set_text (_tmp19_, _tmp22_);
-#line 286 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp24_ = id_card;
-#line 286 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp25_ = id_card_get_password (_tmp24_);
-#line 286 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp26_ = _tmp25_;
-#line 286 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp23_ = _tmp26_;
-#line 286 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       if (_tmp23_ == NULL) {
-#line 286 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp23_ = "";
-#line 1657 "moonshot-identity-management-view.c"
-                       }
-#line 286 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp27_ = self->priv->password_entry;
-#line 286 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       gtk_entry_set_text (_tmp27_, _tmp23_);
+               return result;
+#line 1827 "moonshot-identity-management-view.c"
+       }
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = self->priv->selected_card;
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp3_ == NULL) {
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp2_ = "[null selection]";
+#line 1835 "moonshot-identity-management-view.c"
+       } else {
+               IdCard* _tmp4_ = NULL;
+               const gchar* _tmp5_ = NULL;
+               const gchar* _tmp6_ = NULL;
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp4_ = self->priv->selected_card;
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp5_ = id_card_get_nai (_tmp4_);
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp6_ = _tmp5_;
+#line 289 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp2_ = _tmp6_;
+#line 1848 "moonshot-identity-management-view.c"
+       }
 #line 287 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp28_ = self->priv->vbox_right;
+       _tmp7_ = identity_manager_view_logger;
 #line 287 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp29_ = self->priv->login_vbox;
+       _tmp8_ = id_card;
 #line 287 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       gtk_box_pack_start ((GtkBox*) _tmp28_, (GtkWidget*) _tmp29_, FALSE, TRUE, (guint) 0);
-#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp30_ = self->priv->remember_checkbutton;
-#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp31_ = id_card;
-#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp32_ = id_card_get_store_password (_tmp31_);
-#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp33_ = _tmp32_;
-#line 288 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       gtk_toggle_button_set_active ((GtkToggleButton*) _tmp30_, _tmp33_);
-#line 1679 "moonshot-identity-management-view.c"
-               }
-#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp34_ = self->priv->vbox_right;
-#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp35_ = self->priv->services_vbox;
-#line 290 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               gtk_box_pack_start ((GtkBox*) _tmp34_, (GtkWidget*) _tmp35_, FALSE, TRUE, (guint) 0);
+       _tmp9_ = id_card_get_nai (_tmp8_);
+#line 287 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp10_ = _tmp9_;
+#line 287 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp11_ = g_strdup_printf ("add_id_card_widget: id_card.nai='%s'; selected nai='%s'", _tmp10_, _tmp2_);
+#line 287 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp12_ = _tmp11_;
+#line 287 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       moonshot_logger_trace (_tmp7_, _tmp12_, NULL);
+#line 287 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp12_);
 #line 292 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp36_ = self->priv->services_internal_vbox;
+       _tmp13_ = id_card;
 #line 292 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp37_ = gtk_container_get_children ((GtkContainer*) _tmp36_);
+       _tmp14_ = id_card_widget_new (_tmp13_, self);
 #line 292 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               children = _tmp37_;
-#line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp38_ = children;
-#line 1695 "moonshot-identity-management-view.c"
-               {
-                       GList* hbox_collection = NULL;
-                       GList* hbox_it = NULL;
+       g_object_ref_sink (_tmp14_);
+#line 292 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       id_card_widget = _tmp14_;
 #line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       hbox_collection = _tmp38_;
+       _tmp15_ = self->priv->custom_vbox;
 #line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       for (hbox_it = hbox_collection; hbox_it != NULL; hbox_it = hbox_it->next) {
-#line 1703 "moonshot-identity-management-view.c"
-                               GtkWidget* hbox = NULL;
+       _tmp16_ = id_card_widget;
 #line 293 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               hbox = (GtkWidget*) hbox_it->data;
-#line 1707 "moonshot-identity-management-view.c"
-                               {
-                                       GtkVBox* _tmp39_ = NULL;
-                                       GtkWidget* _tmp40_ = NULL;
-#line 294 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp39_ = self->priv->services_internal_vbox;
+       custom_vbox_add_id_card_widget (_tmp15_, _tmp16_);
 #line 294 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp40_ = hbox;
+       _tmp17_ = id_card_widget;
 #line 294 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       gtk_container_remove ((GtkContainer*) _tmp39_, _tmp40_);
-#line 1717 "moonshot-identity-management-view.c"
-                               }
-                       }
-               }
-#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp41_ = id_card_widget;
+       g_signal_connect_object (_tmp17_, "expanded", (GCallback) _identity_manager_view_widget_selected_cb_id_card_widget_expanded, self, 0);
 #line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp42_ = id_card_widget_get_id_card (_tmp41_);
+       _tmp18_ = id_card_widget;
 #line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp43_ = _tmp42_;
-#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               identity_manager_view_fill_services_vbox (self, _tmp43_);
-#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _g_list_free0 (children);
-#line 279 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _g_object_unref0 (id_card);
-#line 1733 "moonshot-identity-management-view.c"
+       g_signal_connect_object (_tmp18_, "collapsed", (GCallback) _identity_manager_view_widget_unselected_cb_id_card_widget_collapsed, self, 0);
+#line 297 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp20_ = self->priv->selected_card;
+#line 297 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp20_ != NULL) {
+#line 1892 "moonshot-identity-management-view.c"
+               IdCard* _tmp21_ = NULL;
+               const gchar* _tmp22_ = NULL;
+               const gchar* _tmp23_ = NULL;
+               IdCard* _tmp24_ = NULL;
+               const gchar* _tmp25_ = NULL;
+               const gchar* _tmp26_ = NULL;
+#line 297 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp21_ = self->priv->selected_card;
+#line 297 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp22_ = id_card_get_nai (_tmp21_);
+#line 297 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp23_ = _tmp22_;
+#line 297 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp24_ = id_card;
+#line 297 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp25_ = id_card_get_nai (_tmp24_);
+#line 297 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp26_ = _tmp25_;
+#line 297 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp19_ = g_strcmp0 (_tmp23_, _tmp26_) == 0;
+#line 1913 "moonshot-identity-management-view.c"
+       } else {
+#line 297 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp19_ = FALSE;
+#line 1917 "moonshot-identity-management-view.c"
        }
-#line 274 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_list_free0 (vr_children);
-#line 1737 "moonshot-identity-management-view.c"
-}
-
-
-static void identity_manager_view_show_details (IdentityManagerView* self, IdCard* id_card) {
-       GtkVBox* _tmp0_ = NULL;
-       GtkVBox* _tmp1_ = NULL;
-       gboolean _tmp2_ = FALSE;
-       GtkVBox* _tmp3_ = NULL;
-       gboolean _tmp4_ = FALSE;
+#line 297 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp19_) {
+#line 1921 "moonshot-identity-management-view.c"
+               MoonshotLogger* _tmp27_ = NULL;
+               IdCardWidget* _tmp28_ = NULL;
+               IdCard* _tmp29_ = NULL;
+               IdCard* _tmp30_ = NULL;
+#line 298 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp27_ = identity_manager_view_logger;
+#line 298 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               moonshot_logger_trace (_tmp27_, "add_id_card_widget: Expanding selected idcard widget", NULL);
 #line 299 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (self != NULL);
+               _tmp28_ = id_card_widget;
 #line 299 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (id_card != NULL);
-#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = self->priv->vbox_right;
-#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = self->priv->vbox_right;
-#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = gtk_widget_get_visible ((GtkWidget*) _tmp1_);
-#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_widget_set_visible ((GtkWidget*) _tmp0_, !_tmp2_);
-#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = self->priv->vbox_right;
-#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = gtk_widget_get_visible ((GtkWidget*) _tmp3_);
-#line 303 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp4_ == FALSE) {
-#line 305 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               gtk_window_resize ((GtkWindow*) self, IDENTITY_MANAGER_VIEW_WINDOW_WIDTH, IDENTITY_MANAGER_VIEW_WINDOW_HEIGHT);
-#line 1767 "moonshot-identity-management-view.c"
+               id_card_widget_expand (_tmp28_);
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp29_ = id_card;
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp30_ = _g_object_ref0 (_tmp29_);
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (self->priv->selected_card);
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               self->priv->selected_card = _tmp30_;
+#line 1942 "moonshot-identity-management-view.c"
        }
+#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       result = id_card_widget;
+#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       return result;
+#line 1948 "moonshot-identity-management-view.c"
 }
 
 
-static void identity_manager_view_details_identity_cb (IdentityManagerView* self, IdCardWidget* id_card_widget) {
-       IdCardWidget* _tmp0_ = NULL;
+static void identity_manager_view_widget_selected_cb (IdentityManagerView* self, IdCardWidget* id_card_widget) {
+       MoonshotLogger* _tmp0_ = NULL;
        IdCardWidget* _tmp1_ = NULL;
        IdCard* _tmp2_ = NULL;
        IdCard* _tmp3_ = NULL;
-#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       const gchar* _tmp4_ = NULL;
+       const gchar* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       gchar* _tmp7_ = NULL;
+       gchar* _tmp8_ = NULL;
+       IdCardWidget* _tmp9_ = NULL;
+       IdCard* _tmp10_ = NULL;
+       IdCard* _tmp11_ = NULL;
+       IdCard* _tmp12_ = NULL;
+       gboolean allow_removes = FALSE;
+       IdCardWidget* _tmp13_ = NULL;
+       IdCard* _tmp14_ = NULL;
+       IdCard* _tmp15_ = NULL;
+       gboolean _tmp16_ = FALSE;
+       GtkButton* _tmp17_ = NULL;
+       gboolean _tmp18_ = FALSE;
+       GtkButton* _tmp19_ = NULL;
+       CustomVBox* _tmp20_ = NULL;
+       IdCardWidget* _tmp21_ = NULL;
+       gboolean _tmp22_ = FALSE;
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (id_card_widget != NULL);
-#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = id_card_widget;
-#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_fill_details (self, _tmp0_);
-#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = identity_manager_view_logger;
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp1_ = id_card_widget;
-#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp2_ = id_card_widget_get_id_card (_tmp1_);
-#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp3_ = _tmp2_;
-#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_show_details (self, _tmp3_);
-#line 1793 "moonshot-identity-management-view.c"
-}
-
-
-static IdCard* identity_manager_view_get_id_card_data (IdentityManagerView* self, AddIdentityDialog* dialog) {
-       IdCard* result = NULL;
-       IdCard* id_card = NULL;
-       IdCard* _tmp0_ = NULL;
-       AddIdentityDialog* _tmp1_ = NULL;
-       const gchar* _tmp2_ = NULL;
-       const gchar* _tmp3_ = NULL;
-       AddIdentityDialog* _tmp4_ = NULL;
-       const gchar* _tmp5_ = NULL;
-       const gchar* _tmp6_ = NULL;
-       AddIdentityDialog* _tmp7_ = NULL;
-       const gchar* _tmp8_ = NULL;
-       const gchar* _tmp9_ = NULL;
-       AddIdentityDialog* _tmp10_ = NULL;
-       const gchar* _tmp11_ = NULL;
-       const gchar* _tmp12_ = NULL;
-       AddIdentityDialog* _tmp13_ = NULL;
-       gboolean _tmp14_ = FALSE;
-       gboolean _tmp15_ = FALSE;
-       gchar** _tmp16_ = NULL;
-       gchar** _tmp17_ = NULL;
-       gint _tmp17__length1 = 0;
-#line 315 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 315 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_val_if_fail (dialog != NULL, NULL);
-#line 317 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = id_card_new ();
-#line 317 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       id_card = _tmp0_;
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = id_card_get_display_name (_tmp3_);
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp5_ = _tmp4_;
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp6_ = string_to_string (_tmp5_);
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_ = g_strconcat ("widget_selected_cb: id_card_widget.id_card.display_name='", _tmp6_, "'", NULL);
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp8_ = _tmp7_;
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       moonshot_logger_trace (_tmp0_, _tmp8_, NULL);
+#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp8_);
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp9_ = id_card_widget;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp10_ = id_card_widget_get_id_card (_tmp9_);
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp11_ = _tmp10_;
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp12_ = _g_object_ref0 (_tmp11_);
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->priv->selected_card);
+#line 318 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->selected_card = _tmp12_;
 #line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = dialog;
+       _tmp13_ = id_card_widget;
 #line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = add_identity_dialog_get_display_name (_tmp1_);
+       _tmp14_ = id_card_widget_get_id_card (_tmp13_);
 #line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = _tmp2_;
+       _tmp15_ = _tmp14_;
 #line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       id_card_set_display_name (id_card, _tmp3_);
-#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = dialog;
+       _tmp16_ = id_card_is_no_identity (_tmp15_);
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       allow_removes = !_tmp16_;
 #line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp5_ = add_identity_dialog_get_issuer (_tmp4_);
+       _tmp17_ = self->priv->remove_button;
 #line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp6_ = _tmp5_;
+       _tmp18_ = allow_removes;
 #line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       id_card_set_issuer (id_card, _tmp6_);
-#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_ = dialog;
-#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp8_ = add_identity_dialog_get_username (_tmp7_);
+       gtk_widget_set_sensitive ((GtkWidget*) _tmp17_, _tmp18_);
 #line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp9_ = _tmp8_;
+       _tmp19_ = self->priv->edit_button;
 #line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       id_card_set_username (id_card, _tmp9_);
-#line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_ = dialog;
+       gtk_widget_set_sensitive ((GtkWidget*) _tmp19_, TRUE);
 #line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp11_ = add_identity_dialog_get_password (_tmp10_);
+       _tmp20_ = self->priv->custom_vbox;
 #line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp12_ = _tmp11_;
+       _tmp21_ = id_card_widget;
 #line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       id_card_set_password (id_card, _tmp12_);
-#line 323 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp13_ = dialog;
-#line 323 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp14_ = add_identity_dialog_get_store_password (_tmp13_);
-#line 323 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp15_ = _tmp14_;
-#line 323 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       id_card_set_store_password (id_card, _tmp15_);
-#line 324 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp16_ = g_new0 (gchar*, 0 + 1);
-#line 324 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp17_ = _tmp16_;
+       custom_vbox_receive_expanded_event (_tmp20_, _tmp21_);
 #line 324 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp17__length1 = 0;
+       _tmp22_ = identity_manager_view_selection_in_progress (self);
 #line 324 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       id_card_set_services (id_card, _tmp17_, 0);
-#line 324 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp17_ = (_vala_array_free (_tmp17_, _tmp17__length1, (GDestroyNotify) g_free), NULL);
-#line 326 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       result = id_card;
-#line 326 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       return result;
-#line 1881 "moonshot-identity-management-view.c"
+       if (_tmp22_) {
+#line 2045 "moonshot-identity-management-view.c"
+               GtkButton* _tmp23_ = NULL;
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp23_ = self->priv->send_button;
+#line 325 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) _tmp23_, TRUE);
+#line 2051 "moonshot-identity-management-view.c"
+       }
 }
 
 
-static void identity_manager_view_add_id_card_data (IdentityManagerView* self, IdCard* id_card) {
-       GtkTreeIter iter = {0};
-       GdkPixbuf* pixbuf = NULL;
-       GtkListStore* _tmp0_ = NULL;
-       GtkTreeIter _tmp1_ = {0};
+static void identity_manager_view_widget_unselected_cb (IdentityManagerView* self, IdCardWidget* id_card_widget) {
+       MoonshotLogger* _tmp0_ = NULL;
+       IdCardWidget* _tmp1_ = NULL;
        IdCard* _tmp2_ = NULL;
-       GdkPixbuf* _tmp3_ = NULL;
-       GtkListStore* _tmp4_ = NULL;
-       GtkTreeIter _tmp5_ = {0};
-       IdCard* _tmp6_ = NULL;
-       IdCard* _tmp7_ = NULL;
-       const gchar* _tmp8_ = NULL;
-       const gchar* _tmp9_ = NULL;
-       IdCard* _tmp10_ = NULL;
-       const gchar* _tmp11_ = NULL;
-       const gchar* _tmp12_ = NULL;
-       IdCard* _tmp13_ = NULL;
-       const gchar* _tmp14_ = NULL;
-       const gchar* _tmp15_ = NULL;
-#line 329 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       IdCard* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       const gchar* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       gchar* _tmp7_ = NULL;
+       gchar* _tmp8_ = NULL;
+       GtkButton* _tmp9_ = NULL;
+       GtkButton* _tmp10_ = NULL;
+       CustomVBox* _tmp11_ = NULL;
+       IdCardWidget* _tmp12_ = NULL;
+       GtkButton* _tmp13_ = NULL;
+#line 328 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 329 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (id_card != NULL);
-#line 333 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = self->priv->listmodel;
+#line 328 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (id_card_widget != NULL);
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = identity_manager_view_logger;
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = id_card_widget;
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = id_card_widget_get_id_card (_tmp1_);
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = _tmp2_;
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = id_card_get_display_name (_tmp3_);
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp5_ = _tmp4_;
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp6_ = string_to_string (_tmp5_);
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_ = g_strconcat ("widget_unselected_cb: id_card_widget.id_card.display_name='", _tmp6_, "'", NULL);
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp8_ = _tmp7_;
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       moonshot_logger_trace (_tmp0_, _tmp8_, NULL);
+#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp8_);
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->priv->selected_card);
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->selected_card = NULL;
 #line 333 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_list_store_append (_tmp0_, &_tmp1_);
+       _tmp9_ = self->priv->remove_button;
 #line 333 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       iter = _tmp1_;
-#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = id_card;
+       gtk_widget_set_sensitive ((GtkWidget*) _tmp9_, FALSE);
 #line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = get_pixbuf (_tmp2_);
-#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (pixbuf);
+       _tmp10_ = self->priv->edit_button;
 #line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       pixbuf = _tmp3_;
-#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = self->priv->listmodel;
-#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp5_ = iter;
-#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp6_ = id_card;
-#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_ = id_card;
-#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp8_ = id_card_get_issuer (_tmp7_);
-#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp9_ = _tmp8_;
-#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_ = id_card;
-#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp11_ = id_card_get_username (_tmp10_);
+       gtk_widget_set_sensitive ((GtkWidget*) _tmp10_, FALSE);
 #line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp12_ = _tmp11_;
-#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp13_ = id_card;
-#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp14_ = id_card_get_password (_tmp13_);
+       _tmp11_ = self->priv->custom_vbox;
 #line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp15_ = _tmp14_;
+       _tmp12_ = id_card_widget;
 #line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_list_store_set (_tmp4_, &_tmp5_, IDENTITY_MANAGER_VIEW_COLUMNS_IDCARD_COL, _tmp6_, IDENTITY_MANAGER_VIEW_COLUMNS_LOGO_COL, pixbuf, IDENTITY_MANAGER_VIEW_COLUMNS_ISSUER_COL, _tmp9_, IDENTITY_MANAGER_VIEW_COLUMNS_USERNAME_COL, _tmp12_, IDENTITY_MANAGER_VIEW_COLUMNS_PASSWORD_COL, _tmp15_, -1);
-#line 329 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (pixbuf);
-#line 1950 "moonshot-identity-management-view.c"
+       custom_vbox_receive_collapsed_event (_tmp11_, _tmp12_);
+#line 337 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp13_ = self->priv->send_button;
+#line 337 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_widget_set_sensitive ((GtkWidget*) _tmp13_, FALSE);
+#line 2119 "moonshot-identity-management-view.c"
 }
 
 
-static void identity_manager_view_remove_id_card_data (IdentityManagerView* self, IdCard* id_card) {
-       GtkTreeIter iter = {0};
-       gchar* issuer = NULL;
-       GtkListStore* _tmp0_ = NULL;
-       GtkTreeIter _tmp1_ = {0};
-       gboolean _tmp2_ = FALSE;
-#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (self != NULL);
-#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (id_card != NULL);
-#line 348 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = self->priv->listmodel;
-#line 348 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _tmp0_, &_tmp1_);
-#line 348 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       iter = _tmp1_;
-#line 348 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp2_) {
-#line 1972 "moonshot-identity-management-view.c"
-               {
-                       gboolean _tmp3_ = FALSE;
-#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp3_ = TRUE;
-#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       while (TRUE) {
-#line 1979 "moonshot-identity-management-view.c"
-                               GtkListStore* _tmp6_ = NULL;
-                               GtkTreeIter _tmp7_ = {0};
-                               IdCard* _tmp8_ = NULL;
-                               const gchar* _tmp9_ = NULL;
-                               const gchar* _tmp10_ = NULL;
-                               const gchar* _tmp11_ = NULL;
-#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               if (!_tmp3_) {
-#line 1988 "moonshot-identity-management-view.c"
-                                       GtkListStore* _tmp4_ = NULL;
-                                       gboolean _tmp5_ = FALSE;
-#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp4_ = self->priv->listmodel;
-#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp5_ = gtk_tree_model_iter_next ((GtkTreeModel*) _tmp4_, &iter);
-#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       if (!_tmp5_) {
-#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               break;
-#line 1999 "moonshot-identity-management-view.c"
-                                       }
-                               }
-#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp3_ = FALSE;
-#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp6_ = self->priv->listmodel;
-#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp7_ = iter;
-#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               gtk_tree_model_get ((GtkTreeModel*) _tmp6_, &_tmp7_, IDENTITY_MANAGER_VIEW_COLUMNS_ISSUER_COL, &issuer, -1);
-#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp8_ = id_card;
-#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp9_ = id_card_get_issuer (_tmp8_);
-#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp10_ = _tmp9_;
-#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp11_ = issuer;
-#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               if (g_strcmp0 (_tmp10_, _tmp11_) == 0) {
-#line 2020 "moonshot-identity-management-view.c"
-                                       GtkListStore* _tmp12_ = NULL;
-                                       GtkTreeIter _tmp13_ = {0};
-#line 357 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp12_ = self->priv->listmodel;
-#line 357 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp13_ = iter;
-#line 357 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       gtk_list_store_remove (_tmp12_, &_tmp13_);
-#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       break;
-#line 2031 "moonshot-identity-management-view.c"
-                               }
-                       }
-               }
+static gchar* bool_to_string (gboolean self) {
+       gchar* result = NULL;
+#line 37 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (self) {
+#line 2127 "moonshot-identity-management-view.c"
+               gchar* _tmp0_ = NULL;
+#line 38 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp0_ = g_strdup ("true");
+#line 38 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               result = _tmp0_;
+#line 38 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return result;
+#line 2135 "moonshot-identity-management-view.c"
+       } else {
+               gchar* _tmp1_ = NULL;
+#line 40 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp1_ = g_strdup ("false");
+#line 40 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               result = _tmp1_;
+#line 40 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return result;
+#line 2144 "moonshot-identity-management-view.c"
        }
-#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_free0 (issuer);
-#line 2038 "moonshot-identity-management-view.c"
-}
-
-
-static void _identity_manager_view_details_identity_cb_id_card_widget_details_id (IdCardWidget* _sender, gpointer self) {
-#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_details_identity_cb ((IdentityManagerView*) self, _sender);
-#line 2045 "moonshot-identity-management-view.c"
-}
-
-
-static void _identity_manager_view_remove_identity_cb_id_card_widget_remove_id (IdCardWidget* _sender, gpointer self) {
-#line 370 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_remove_identity_cb ((IdentityManagerView*) self, _sender);
-#line 2052 "moonshot-identity-management-view.c"
-}
-
-
-static void __lambda6_ (IdentityManagerView* self, IdCardWidget* w) {
-       IdCardWidget* _tmp0_ = NULL;
-       IdCard* _tmp1_ = NULL;
-       IdCard* _tmp2_ = NULL;
-#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (w != NULL);
-#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = w;
-#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = id_card_widget_get_id_card (_tmp0_);
-#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = _tmp1_;
-#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_send_identity_cb (self, _tmp2_);
-#line 2070 "moonshot-identity-management-view.c"
-}
-
-
-static void ___lambda6__id_card_widget_send_id (IdCardWidget* _sender, gpointer self) {
-#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       __lambda6_ ((IdentityManagerView*) self, _sender);
-#line 2077 "moonshot-identity-management-view.c"
-}
-
-
-static void _custom_vbox_receive_expanded_event_id_card_widget_expanded (IdCardWidget* _sender, gpointer self) {
-#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       custom_vbox_receive_expanded_event ((CustomVBox*) self, _sender);
-#line 2084 "moonshot-identity-management-view.c"
-}
-
-
-static void _identity_manager_view_fill_details_id_card_widget_expanded (IdCardWidget* _sender, gpointer self) {
-#line 373 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_fill_details ((IdentityManagerView*) self, _sender);
-#line 2091 "moonshot-identity-management-view.c"
-}
-
-
-static IdCardWidget* identity_manager_view_add_id_card_widget (IdentityManagerView* self, IdCard* id_card) {
-       IdCardWidget* result = NULL;
-       IdCardWidget* id_card_widget = NULL;
-       IdCard* _tmp0_ = NULL;
-       IdCardWidget* _tmp1_ = NULL;
-       CustomVBox* _tmp2_ = NULL;
-       CustomVBox* _tmp3_ = NULL;
-#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_val_if_fail (id_card != NULL, NULL);
-#line 367 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = id_card;
-#line 367 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = id_card_widget_new (_tmp0_);
-#line 367 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp1_);
-#line 367 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       id_card_widget = _tmp1_;
-#line 368 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = self->priv->custom_vbox;
-#line 368 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       custom_vbox_add_id_card_widget (_tmp2_, id_card_widget);
-#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_signal_connect_object (id_card_widget, "details-id", (GCallback) _identity_manager_view_details_identity_cb_id_card_widget_details_id, self, 0);
-#line 370 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_signal_connect_object (id_card_widget, "remove-id", (GCallback) _identity_manager_view_remove_identity_cb_id_card_widget_remove_id, self, 0);
-#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_signal_connect_object (id_card_widget, "send-id", (GCallback) ___lambda6__id_card_widget_send_id, self, 0);
-#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = self->priv->custom_vbox;
-#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_signal_connect_object (id_card_widget, "expanded", (GCallback) _custom_vbox_receive_expanded_event_id_card_widget_expanded, _tmp3_, 0);
-#line 373 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_signal_connect_object (id_card_widget, "expanded", (GCallback) _identity_manager_view_fill_details_id_card_widget_expanded, self, 0);
-#line 374 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       result = id_card_widget;
-#line 374 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       return result;
-#line 2134 "moonshot-identity-management-view.c"
 }
 
 
-gboolean identity_manager_view_add_identity (IdentityManagerView* self, IdCard* id_card, gboolean force_flat_file_store) {
+gboolean identity_manager_view_add_identity (IdentityManagerView* self, IdCard* id_card, gboolean force_flat_file_store, GeeArrayList** old_duplicates) {
+       GeeArrayList* _vala_old_duplicates = NULL;
        gboolean result = FALSE;
        GtkMessageDialog* dialog = NULL;
        IdCard* prev_id = NULL;
@@ -2144,1665 +2161,1552 @@ gboolean identity_manager_view_add_identity (IdentityManagerView* self, IdCard*
        const gchar* _tmp3_ = NULL;
        gboolean _tmp4_ = FALSE;
        IdCard* _tmp5_ = NULL;
-       IdCard* _tmp6_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       IdCard* _tmp7_ = NULL;
+       MoonshotLogger* _tmp11_ = NULL;
+       gboolean _tmp12_ = FALSE;
+       gchar* _tmp13_ = NULL;
+       gchar* _tmp14_ = NULL;
+       IdCard* _tmp15_ = NULL;
+       const gchar* _tmp16_ = NULL;
+       const gchar* _tmp17_ = NULL;
+       gchar* _tmp18_ = NULL;
+       gchar* _tmp19_ = NULL;
+       IdCard* _tmp20_ = NULL;
        gint ret = 0;
-       GtkMessageDialog* _tmp36_ = NULL;
-       gint _tmp37_ = 0;
-       GtkMessageDialog* _tmp38_ = NULL;
-       gint _tmp39_ = 0;
-#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       GtkMessageDialog* _tmp57_ = NULL;
+       gint _tmp58_ = 0;
+       GtkMessageDialog* _tmp59_ = NULL;
+       gint _tmp60_ = 0;
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_val_if_fail (id_card != NULL, FALSE);
-#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp0_ = self->identities_manager;
-#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp1_ = id_card;
-#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp2_ = id_card_get_nai (_tmp1_);
-#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp3_ = _tmp2_;
-#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp4_ = force_flat_file_store;
-#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp5_ = identity_manager_model_find_id_card (_tmp0_, _tmp3_, _tmp4_);
-#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 350 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        prev_id = _tmp5_;
-#line 388 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp6_ = prev_id;
-#line 388 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp6_ != NULL) {
-#line 2176 "moonshot-identity-management-view.c"
-               gint flags = 0;
-               IdCard* _tmp7_ = NULL;
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_ = prev_id;
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp7_ != NULL) {
+#line 2199 "moonshot-identity-management-view.c"
                IdCard* _tmp8_ = NULL;
-               gint _tmp9_ = 0;
-               gint _tmp10_ = 0;
-#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp7_ = prev_id;
-#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp8_ = id_card;
-#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp9_ = id_card_Compare (_tmp7_, _tmp8_);
-#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               flags = _tmp9_;
-#line 390 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp10_ = flags;
-#line 390 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               if (_tmp10_ == 0) {
-#line 391 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               const gchar* _tmp9_ = NULL;
+               const gchar* _tmp10_ = NULL;
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp8_ = prev_id;
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp9_ = id_card_get_display_name (_tmp8_);
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp10_ = _tmp9_;
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp6_ = _tmp10_;
+#line 2211 "moonshot-identity-management-view.c"
+       } else {
+#line 352 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp6_ = "null";
+#line 2215 "moonshot-identity-management-view.c"
+       }
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp11_ = identity_manager_view_logger;
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp12_ = force_flat_file_store;
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp13_ = bool_to_string (_tmp12_);
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp14_ = _tmp13_;
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp15_ = id_card;
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp16_ = id_card_get_display_name (_tmp15_);
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp17_ = _tmp16_;
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp18_ = g_strdup_printf ("add_identity(flat=%s, card='%s'): find_id_card returned %s", _tmp14_, _tmp17_, _tmp6_);
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp19_ = _tmp18_;
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       moonshot_logger_trace (_tmp11_, _tmp19_, NULL);
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp19_);
+#line 351 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp14_);
+#line 353 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp20_ = prev_id;
+#line 353 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp20_ != NULL) {
+#line 2245 "moonshot-identity-management-view.c"
+               gint flags = 0;
+               IdCard* _tmp21_ = NULL;
+               IdCard* _tmp22_ = NULL;
+               gint _tmp23_ = 0;
+               MoonshotLogger* _tmp24_ = NULL;
+               gint _tmp25_ = 0;
+               gchar* _tmp26_ = NULL;
+               gchar* _tmp27_ = NULL;
+               gchar* _tmp28_ = NULL;
+               gchar* _tmp29_ = NULL;
+               gint _tmp30_ = 0;
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp21_ = prev_id;
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp22_ = id_card;
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp23_ = id_card_Compare (_tmp21_, _tmp22_);
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               flags = _tmp23_;
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp24_ = identity_manager_view_logger;
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp25_ = flags;
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp26_ = g_strdup_printf ("%i", _tmp25_);
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp27_ = _tmp26_;
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp28_ = g_strconcat ("add_identity: compare returned ", _tmp27_, NULL);
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp29_ = _tmp28_;
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               moonshot_logger_trace (_tmp24_, _tmp29_, NULL);
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_free0 (_tmp29_);
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_free0 (_tmp27_);
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp30_ = flags;
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               if (_tmp30_ == 0) {
+#line 357 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       if ((&_vala_old_duplicates) != NULL) {
+#line 2289 "moonshot-identity-management-view.c"
+                               GeeArrayList* _tmp31_ = NULL;
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp31_ = gee_array_list_new (TYPE_ID_CARD, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _g_object_unref0 (_vala_old_duplicates);
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _vala_old_duplicates = _tmp31_;
+#line 2297 "moonshot-identity-management-view.c"
+                       }
+#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        result = FALSE;
-#line 391 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        _g_object_unref0 (prev_id);
-#line 391 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        _g_object_unref0 (dialog);
-#line 391 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       if (old_duplicates) {
+#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               *old_duplicates = _vala_old_duplicates;
+#line 2309 "moonshot-identity-management-view.c"
+                       } else {
+#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _g_object_unref0 (_vala_old_duplicates);
+#line 2313 "moonshot-identity-management-view.c"
+                       }
+#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        return result;
-#line 2202 "moonshot-identity-management-view.c"
+#line 2317 "moonshot-identity-management-view.c"
                } else {
-                       gint _tmp11_ = 0;
-#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp11_ = flags;
-#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       if ((_tmp11_ & (1 << ID_CARD_DIFF_FLAGS_DISPLAY_NAME)) != 0) {
-#line 2209 "moonshot-identity-management-view.c"
-                               const gchar* _tmp12_ = NULL;
-                               IdCard* _tmp13_ = NULL;
-                               const gchar* _tmp14_ = NULL;
-                               const gchar* _tmp15_ = NULL;
-                               IdCard* _tmp16_ = NULL;
-                               const gchar* _tmp17_ = NULL;
-                               const gchar* _tmp18_ = NULL;
-                               IdCard* _tmp19_ = NULL;
-                               const gchar* _tmp20_ = NULL;
-                               const gchar* _tmp21_ = NULL;
-                               GtkMessageDialog* _tmp22_ = NULL;
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp12_ = _ ("Would you like to replace ID Card '%s' using nai '%s' with the new ID " \
+                       gint _tmp32_ = 0;
+#line 362 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp32_ = flags;
+#line 362 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       if ((_tmp32_ & (1 << ID_CARD_DIFF_FLAGS_DISPLAY_NAME)) != 0) {
+#line 2324 "moonshot-identity-management-view.c"
+                               const gchar* _tmp33_ = NULL;
+                               IdCard* _tmp34_ = NULL;
+                               const gchar* _tmp35_ = NULL;
+                               const gchar* _tmp36_ = NULL;
+                               IdCard* _tmp37_ = NULL;
+                               const gchar* _tmp38_ = NULL;
+                               const gchar* _tmp39_ = NULL;
+                               IdCard* _tmp40_ = NULL;
+                               const gchar* _tmp41_ = NULL;
+                               const gchar* _tmp42_ = NULL;
+                               GtkMessageDialog* _tmp43_ = NULL;
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp33_ = _ ("Would you like to replace ID Card '%s' using nai '%s' with the new ID " \
 "Card '%s'?");
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp13_ = prev_id;
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp14_ = id_card_get_display_name (_tmp13_);
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp15_ = _tmp14_;
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp16_ = prev_id;
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp17_ = id_card_get_nai (_tmp16_);
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp18_ = _tmp17_;
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp19_ = id_card;
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp20_ = id_card_get_display_name (_tmp19_);
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp21_ = _tmp20_;
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp22_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _tmp12_, _tmp15_, _tmp18_, _tmp21_);
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               g_object_ref_sink (_tmp22_);
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp34_ = prev_id;
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp35_ = id_card_get_display_name (_tmp34_);
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp36_ = _tmp35_;
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp37_ = prev_id;
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp38_ = id_card_get_nai (_tmp37_);
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp39_ = _tmp38_;
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp40_ = id_card;
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp41_ = id_card_get_display_name (_tmp40_);
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp42_ = _tmp41_;
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp43_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _tmp33_, _tmp36_, _tmp39_, _tmp42_);
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               g_object_ref_sink (_tmp43_);
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _g_object_unref0 (dialog);
-#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               dialog = _tmp22_;
-#line 2249 "moonshot-identity-management-view.c"
+#line 363 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               dialog = _tmp43_;
+#line 2364 "moonshot-identity-management-view.c"
                        } else {
-                               const gchar* _tmp23_ = NULL;
-                               IdCard* _tmp24_ = NULL;
-                               const gchar* _tmp25_ = NULL;
-                               const gchar* _tmp26_ = NULL;
-                               IdCard* _tmp27_ = NULL;
-                               const gchar* _tmp28_ = NULL;
-                               const gchar* _tmp29_ = NULL;
-                               GtkMessageDialog* _tmp30_ = NULL;
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp23_ = _ ("Would you like to update ID Card '%s' using nai '%s'?");
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp24_ = id_card;
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp25_ = id_card_get_display_name (_tmp24_);
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp26_ = _tmp25_;
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp27_ = id_card;
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp28_ = id_card_get_nai (_tmp27_);
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp29_ = _tmp28_;
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp30_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _tmp23_, _tmp26_, _tmp29_);
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               g_object_ref_sink (_tmp30_);
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               const gchar* _tmp44_ = NULL;
+                               IdCard* _tmp45_ = NULL;
+                               const gchar* _tmp46_ = NULL;
+                               const gchar* _tmp47_ = NULL;
+                               IdCard* _tmp48_ = NULL;
+                               const gchar* _tmp49_ = NULL;
+                               const gchar* _tmp50_ = NULL;
+                               GtkMessageDialog* _tmp51_ = NULL;
+#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp44_ = _ ("Would you like to update ID Card '%s' using nai '%s'?");
+#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp45_ = id_card;
+#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp46_ = id_card_get_display_name (_tmp45_);
+#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp47_ = _tmp46_;
+#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp48_ = id_card;
+#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp49_ = id_card_get_nai (_tmp48_);
+#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp50_ = _tmp49_;
+#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp51_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _tmp44_, _tmp47_, _tmp50_);
+#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               g_object_ref_sink (_tmp51_);
+#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                _g_object_unref0 (dialog);
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               dialog = _tmp30_;
-#line 2281 "moonshot-identity-management-view.c"
+#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               dialog = _tmp51_;
+#line 2396 "moonshot-identity-management-view.c"
                        }
                }
        } else {
-               const gchar* _tmp31_ = NULL;
-               IdCard* _tmp32_ = NULL;
-               const gchar* _tmp33_ = NULL;
-               const gchar* _tmp34_ = NULL;
-               GtkMessageDialog* _tmp35_ = NULL;
-#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp31_ = _ ("Would you like to add '%s' ID Card to the ID Card Organizer?");
-#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp32_ = id_card;
-#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp33_ = id_card_get_display_name (_tmp32_);
-#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp34_ = _tmp33_;
-#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp35_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _tmp31_, _tmp34_);
-#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               g_object_ref_sink (_tmp35_);
-#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               const gchar* _tmp52_ = NULL;
+               IdCard* _tmp53_ = NULL;
+               const gchar* _tmp54_ = NULL;
+               const gchar* _tmp55_ = NULL;
+               GtkMessageDialog* _tmp56_ = NULL;
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp52_ = _ ("Would you like to add '%s' ID Card to the ID Card Organizer?");
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp53_ = id_card;
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp54_ = id_card_get_display_name (_tmp53_);
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp55_ = _tmp54_;
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp56_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _tmp52_, _tmp55_);
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               g_object_ref_sink (_tmp56_);
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _g_object_unref0 (dialog);
-#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               dialog = _tmp35_;
-#line 2306 "moonshot-identity-management-view.c"
+#line 381 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               dialog = _tmp56_;
+#line 2421 "moonshot-identity-management-view.c"
        }
-#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp36_ = dialog;
-#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp37_ = gtk_dialog_run ((GtkDialog*) _tmp36_);
-#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       ret = _tmp37_;
-#line 419 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp38_ = dialog;
-#line 419 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_object_destroy ((GtkObject*) _tmp38_);
-#line 422 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp39_ = ret;
-#line 422 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp39_ == ((gint) GTK_RESPONSE_YES)) {
-#line 2322 "moonshot-identity-management-view.c"
-               IdentityManagerModel* _tmp40_ = NULL;
-               IdCard* _tmp41_ = NULL;
-               gboolean _tmp42_ = FALSE;
-#line 423 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp40_ = self->identities_manager;
-#line 423 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp41_ = id_card;
-#line 423 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp42_ = force_flat_file_store;
-#line 423 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               identity_manager_model_add_card (_tmp40_, _tmp41_, _tmp42_);
-#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 388 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp57_ = dialog;
+#line 388 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp58_ = gtk_dialog_run ((GtkDialog*) _tmp57_);
+#line 388 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       ret = _tmp58_;
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp59_ = dialog;
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_object_destroy ((GtkObject*) _tmp59_);
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp60_ = ret;
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp60_ == ((gint) GTK_RESPONSE_YES)) {
+#line 2437 "moonshot-identity-management-view.c"
+               IdentityManagerModel* _tmp61_ = NULL;
+               IdCard* _tmp62_ = NULL;
+               gboolean _tmp63_ = FALSE;
+               GeeArrayList* _tmp64_ = NULL;
+#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp61_ = self->identities_manager;
+#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp62_ = id_card;
+#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp63_ = force_flat_file_store;
+#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               identity_manager_model_add_card (_tmp61_, _tmp62_, _tmp63_, &_tmp64_);
+#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (_vala_old_duplicates);
+#line 393 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _vala_old_duplicates = _tmp64_;
+#line 394 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                result = TRUE;
-#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 394 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _g_object_unref0 (prev_id);
-#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 394 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _g_object_unref0 (dialog);
-#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 394 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               if (old_duplicates) {
+#line 394 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       *old_duplicates = _vala_old_duplicates;
+#line 2464 "moonshot-identity-management-view.c"
+               } else {
+#line 394 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (_vala_old_duplicates);
+#line 2468 "moonshot-identity-management-view.c"
+               }
+#line 394 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               return result;
+#line 2472 "moonshot-identity-management-view.c"
+       } else {
+#line 397 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               if ((&_vala_old_duplicates) != NULL) {
+#line 2476 "moonshot-identity-management-view.c"
+                       GeeArrayList* _tmp65_ = NULL;
+#line 398 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp65_ = gee_array_list_new (TYPE_ID_CARD, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 398 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (_vala_old_duplicates);
+#line 398 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _vala_old_duplicates = _tmp65_;
+#line 2484 "moonshot-identity-management-view.c"
+               }
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               result = FALSE;
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (prev_id);
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (dialog);
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               if (old_duplicates) {
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       *old_duplicates = _vala_old_duplicates;
+#line 2496 "moonshot-identity-management-view.c"
+               } else {
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (_vala_old_duplicates);
+#line 2500 "moonshot-identity-management-view.c"
+               }
+#line 400 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                return result;
-#line 2342 "moonshot-identity-management-view.c"
+#line 2504 "moonshot-identity-management-view.c"
        }
-#line 427 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       result = FALSE;
-#line 427 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_object_unref0 (prev_id);
-#line 427 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_object_unref0 (dialog);
-#line 427 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       return result;
-#line 2352 "moonshot-identity-management-view.c"
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (old_duplicates) {
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               *old_duplicates = _vala_old_duplicates;
+#line 2514 "moonshot-identity-management-view.c"
+       } else {
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (_vala_old_duplicates);
+#line 2518 "moonshot-identity-management-view.c"
+       }
 }
 
 
-static void identity_manager_view_add_identity_manual_cb (IdentityManagerView* self) {
-       AddIdentityDialog* dialog = NULL;
-       AddIdentityDialog* _tmp0_ = NULL;
+static void identity_manager_view_add_identity_cb (IdentityManagerView* self) {
+       IdentityDialog* dialog = NULL;
+       IdentityDialog* _tmp0_ = NULL;
        gint _result_ = 0;
        gint _tmp5_ = 0;
-       AddIdentityDialog* _tmp10_ = NULL;
-#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       IdentityDialog* _tmp12_ = NULL;
+#line 404 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 432 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = add_identity_dialog_new ();
-#line 432 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 406 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = identity_dialog_new (self);
+#line 406 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_object_ref_sink (_tmp0_);
-#line 432 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 406 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        dialog = _tmp0_;
-#line 433 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 407 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _result_ = (gint) GTK_RESPONSE_CANCEL;
-#line 434 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 408 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        while (TRUE) {
-#line 2374 "moonshot-identity-management-view.c"
-               AddIdentityDialog* _tmp1_ = NULL;
+#line 2541 "moonshot-identity-management-view.c"
+               IdentityDialog* _tmp1_ = NULL;
                gboolean _tmp2_ = FALSE;
-               AddIdentityDialog* _tmp3_ = NULL;
+               IdentityDialog* _tmp3_ = NULL;
                gint _tmp4_ = 0;
-#line 434 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 408 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp1_ = dialog;
-#line 434 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 408 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp2_ = _tmp1_->complete;
-#line 434 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 408 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                if (!(!_tmp2_)) {
-#line 434 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 408 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        break;
-#line 2387 "moonshot-identity-management-view.c"
+#line 2554 "moonshot-identity-management-view.c"
                }
-#line 435 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 409 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp3_ = dialog;
-#line 435 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 409 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp4_ = gtk_dialog_run ((GtkDialog*) _tmp3_);
-#line 435 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 409 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _result_ = _tmp4_;
-#line 2395 "moonshot-identity-management-view.c"
+#line 2562 "moonshot-identity-management-view.c"
        }
-#line 437 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp5_ = _result_;
-#line 437 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        switch (_tmp5_) {
-#line 437 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                case GTK_RESPONSE_OK:
-#line 2403 "moonshot-identity-management-view.c"
+#line 2570 "moonshot-identity-management-view.c"
                {
                        IdentityManagerModel* _tmp6_ = NULL;
-                       AddIdentityDialog* _tmp7_ = NULL;
+                       IdentityDialog* _tmp7_ = NULL;
                        IdCard* _tmp8_ = NULL;
                        IdCard* _tmp9_ = NULL;
-#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       IdCard* _tmp10_ = NULL;
+                       IdCard* _tmp11_ = NULL;
+#line 413 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        _tmp6_ = self->identities_manager;
-#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 413 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        _tmp7_ = dialog;
-#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp8_ = identity_manager_view_get_id_card_data (self, _tmp7_);
-#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 413 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp8_ = id_card_new ();
+#line 413 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        _tmp9_ = _tmp8_;
-#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       identity_manager_model_add_card (_tmp6_, _tmp9_, FALSE);
-#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 413 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp10_ = identity_manager_view_update_id_card_data (self, _tmp7_, _tmp9_);
+#line 413 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp11_ = _tmp10_;
+#line 413 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       identity_manager_model_add_card (_tmp6_, _tmp11_, FALSE, NULL);
+#line 413 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (_tmp11_);
+#line 413 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        _g_object_unref0 (_tmp9_);
-#line 440 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 414 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        break;
-#line 2423 "moonshot-identity-management-view.c"
+#line 2598 "moonshot-identity-management-view.c"
                }
                default:
                {
-#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 416 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                        break;
-#line 2429 "moonshot-identity-management-view.c"
+#line 2604 "moonshot-identity-management-view.c"
                }
        }
-#line 444 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_ = dialog;
-#line 444 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_object_destroy ((GtkObject*) _tmp10_);
-#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp12_ = dialog;
+#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_object_destroy ((GtkObject*) _tmp12_);
+#line 404 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_object_unref0 (dialog);
-#line 2438 "moonshot-identity-management-view.c"
+#line 2613 "moonshot-identity-management-view.c"
 }
 
 
-static void identity_manager_view_remove_id_card_widget (IdentityManagerView* self, IdCardWidget* id_card_widget) {
-       CustomVBox* _tmp0_ = NULL;
-       IdCardWidget* _tmp1_ = NULL;
-#line 447 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+static void identity_manager_view_edit_identity_cb (IdentityManagerView* self, IdCard* card) {
+       IdentityDialog* dialog = NULL;
+       IdCard* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+       IdentityDialog* _tmp2_ = NULL;
+       gint _result_ = 0;
+       gint _tmp7_ = 0;
+       IdentityDialog* _tmp15_ = NULL;
+#line 421 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 447 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (id_card_widget != NULL);
-#line 448 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = self->priv->custom_vbox;
-#line 448 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = id_card_widget;
-#line 448 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       custom_vbox_remove_id_card_widget (_tmp0_, _tmp1_);
-#line 2455 "moonshot-identity-management-view.c"
+#line 421 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (card != NULL);
+#line 423 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = card;
+#line 423 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = _ ("Edit Identity");
+#line 423 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = identity_dialog_new_with_idcard (_tmp0_, _tmp1_, self);
+#line 423 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp2_);
+#line 423 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       dialog = _tmp2_;
+#line 424 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _result_ = (gint) GTK_RESPONSE_CANCEL;
+#line 425 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       while (TRUE) {
+#line 2643 "moonshot-identity-management-view.c"
+               IdentityDialog* _tmp3_ = NULL;
+               gboolean _tmp4_ = FALSE;
+               IdentityDialog* _tmp5_ = NULL;
+               gint _tmp6_ = 0;
+#line 425 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp3_ = dialog;
+#line 425 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp4_ = _tmp3_->complete;
+#line 425 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               if (!(!_tmp4_)) {
+#line 425 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       break;
+#line 2656 "moonshot-identity-management-view.c"
+               }
+#line 426 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp5_ = dialog;
+#line 426 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp6_ = gtk_dialog_run ((GtkDialog*) _tmp5_);
+#line 426 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _result_ = _tmp6_;
+#line 2664 "moonshot-identity-management-view.c"
+       }
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_ = _result_;
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       switch (_tmp7_) {
+#line 428 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               case GTK_RESPONSE_OK:
+#line 2672 "moonshot-identity-management-view.c"
+               {
+                       IdentityManagerModel* _tmp8_ = NULL;
+                       IdentityDialog* _tmp9_ = NULL;
+                       IdCard* _tmp10_ = NULL;
+                       IdCard* _tmp11_ = NULL;
+                       IdCard* _tmp12_ = NULL;
+                       IdCard* _tmp13_ = NULL;
+                       IdCard* _tmp14_ = NULL;
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp8_ = self->identities_manager;
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp9_ = dialog;
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp10_ = card;
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp11_ = identity_manager_view_update_id_card_data (self, _tmp9_, _tmp10_);
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp12_ = _tmp11_;
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp13_ = identity_manager_model_update_card (_tmp8_, _tmp12_);
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp14_ = _tmp13_;
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (_tmp14_);
+#line 430 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (_tmp12_);
+#line 433 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       identity_manager_view_report_duplicate_nais (self);
+#line 434 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       break;
+#line 2703 "moonshot-identity-management-view.c"
+               }
+               default:
+               {
+#line 436 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       break;
+#line 2709 "moonshot-identity-management-view.c"
+               }
+       }
+#line 438 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp15_ = dialog;
+#line 438 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_object_destroy ((GtkObject*) _tmp15_);
+#line 421 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (dialog);
+#line 2718 "moonshot-identity-management-view.c"
 }
 
 
-static void identity_manager_view_remove_identity (IdentityManagerView* self, IdCardWidget* id_card_widget) {
-       IdCard* id_card = NULL;
-       IdCardWidget* _tmp0_ = NULL;
+static void identity_manager_view_remove_identity (IdentityManagerView* self, IdCard* id_card) {
+       MoonshotLogger* _tmp0_ = NULL;
        IdCard* _tmp1_ = NULL;
-       IdCard* _tmp2_ = NULL;
-       IdCard* _tmp3_ = NULL;
-       IdCardWidget* _tmp4_ = NULL;
-       IdentityManagerModel* _tmp5_ = NULL;
-#line 451 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       const gchar* _tmp2_ = NULL;
+       const gchar* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       gchar* _tmp5_ = NULL;
+       gchar* _tmp6_ = NULL;
+       IdentityManagerModel* _tmp7_ = NULL;
+       IdCard* _tmp8_ = NULL;
+       GtkButton* _tmp9_ = NULL;
+       GtkButton* _tmp10_ = NULL;
+       GtkButton* _tmp11_ = NULL;
+#line 441 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
+#line 441 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (id_card != NULL);
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = identity_manager_view_logger;
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = id_card;
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = id_card_get_display_name (_tmp1_);
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = _tmp2_;
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = string_to_string (_tmp3_);
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp5_ = g_strconcat ("remove_identity: id_card.display_name='", _tmp4_, "'", NULL);
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp6_ = _tmp5_;
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       moonshot_logger_trace (_tmp0_, _tmp6_, NULL);
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp6_);
+#line 445 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->priv->selected_card);
+#line 445 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->selected_card = NULL;
+#line 446 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_ = self->identities_manager;
+#line 446 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp8_ = id_card;
+#line 446 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_model_remove_card (_tmp7_, _tmp8_);
+#line 449 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp9_ = self->priv->edit_button;
+#line 449 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_widget_set_sensitive ((GtkWidget*) _tmp9_, FALSE);
+#line 450 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp10_ = self->priv->remove_button;
+#line 450 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_widget_set_sensitive ((GtkWidget*) _tmp10_, FALSE);
 #line 451 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (id_card_widget != NULL);
-#line 453 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = id_card_widget;
-#line 453 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = id_card_widget_get_id_card (_tmp0_);
-#line 453 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = _tmp1_;
-#line 453 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = _g_object_ref0 (_tmp2_);
-#line 453 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       id_card = _tmp3_;
-#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = id_card_widget;
-#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_remove_id_card_widget (self, _tmp4_);
-#line 456 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp5_ = self->identities_manager;
-#line 456 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_model_remove_card (_tmp5_, id_card);
+       _tmp11_ = self->priv->send_button;
 #line 451 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (id_card);
-#line 2491 "moonshot-identity-management-view.c"
+       gtk_widget_set_sensitive ((GtkWidget*) _tmp11_, FALSE);
+#line 2779 "moonshot-identity-management-view.c"
 }
 
 
 static void identity_manager_view_redraw_id_card_widgets (IdentityManagerView* self) {
        GtkTreeIter iter = {0};
        IdCard* id_card = NULL;
-       GList* children = NULL;
        CustomVBox* _tmp0_ = NULL;
-       GList* _tmp1_ = NULL;
-       GList* _tmp2_ = NULL;
-       GtkTreeModelFilter* _tmp4_ = NULL;
-       GtkTreeIter _tmp5_ = {0};
-       gboolean _tmp6_ = FALSE;
-#line 459 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       GtkTreeModelFilter* _tmp1_ = NULL;
+       GtkTreeIter _tmp2_ = {0};
+       gboolean _tmp3_ = FALSE;
+#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 459 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp0_ = self->priv->custom_vbox;
-#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = gtk_container_get_children ((GtkContainer*) _tmp0_);
-#line 464 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       children = _tmp1_;
-#line 465 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = children;
-#line 2515 "moonshot-identity-management-view.c"
-       {
-               GList* id_card_widget_collection = NULL;
-               GList* id_card_widget_it = NULL;
-#line 465 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               id_card_widget_collection = _tmp2_;
-#line 465 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               for (id_card_widget_it = id_card_widget_collection; id_card_widget_it != NULL; id_card_widget_it = id_card_widget_it->next) {
-#line 2523 "moonshot-identity-management-view.c"
-                       GtkWidget* id_card_widget = NULL;
-#line 465 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       id_card_widget = (GtkWidget*) id_card_widget_it->data;
-#line 2527 "moonshot-identity-management-view.c"
-                       {
-                               GtkWidget* _tmp3_ = NULL;
-#line 466 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp3_ = id_card_widget;
-#line 466 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               identity_manager_view_remove_id_card_widget (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_ID_CARD_WIDGET, IdCardWidget));
-#line 2534 "moonshot-identity-management-view.c"
-                       }
-               }
-       }
-#line 468 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = self->priv->filter;
-#line 468 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp6_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _tmp4_, &_tmp5_);
-#line 468 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       iter = _tmp5_;
-#line 468 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp6_) {
-#line 2546 "moonshot-identity-management-view.c"
+#line 459 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       custom_vbox_clear (_tmp0_);
+#line 461 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = self->priv->filter;
+#line 461 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _tmp1_, &_tmp2_);
+#line 461 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       iter = _tmp2_;
+#line 461 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp3_) {
+#line 2804 "moonshot-identity-management-view.c"
                {
-                       gboolean _tmp7_ = FALSE;
+                       gboolean _tmp4_ = FALSE;
+#line 463 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp4_ = TRUE;
+#line 463 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       while (TRUE) {
+#line 2811 "moonshot-identity-management-view.c"
+                               GtkTreeModelFilter* _tmp7_ = NULL;
+                               GtkTreeIter _tmp8_ = {0};
+                               IdCard* _tmp9_ = NULL;
+                               IdCardWidget* _tmp10_ = NULL;
+                               IdCardWidget* _tmp11_ = NULL;
+#line 463 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               if (!_tmp4_) {
+#line 2819 "moonshot-identity-management-view.c"
+                                       GtkTreeModelFilter* _tmp5_ = NULL;
+                                       gboolean _tmp6_ = FALSE;
 #line 470 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp7_ = TRUE;
+                                       _tmp5_ = self->priv->filter;
 #line 470 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       while (TRUE) {
-#line 2553 "moonshot-identity-management-view.c"
-                               GtkTreeModelFilter* _tmp10_ = NULL;
-                               GtkTreeIter _tmp11_ = {0};
-                               IdCard* _tmp12_ = NULL;
-                               IdCardWidget* _tmp13_ = NULL;
-                               IdCardWidget* _tmp14_ = NULL;
+                                       _tmp6_ = gtk_tree_model_iter_next ((GtkTreeModel*) _tmp5_, &iter);
+#line 470 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       if (!_tmp6_) {
 #line 470 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               if (!_tmp7_) {
-#line 2561 "moonshot-identity-management-view.c"
-                                       GtkTreeModelFilter* _tmp8_ = NULL;
-                                       gboolean _tmp9_ = FALSE;
-#line 477 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp8_ = self->priv->filter;
-#line 477 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp9_ = gtk_tree_model_iter_next ((GtkTreeModel*) _tmp8_, &iter);
-#line 477 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       if (!_tmp9_) {
-#line 477 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                                                break;
-#line 2572 "moonshot-identity-management-view.c"
+#line 2830 "moonshot-identity-management-view.c"
                                        }
                                }
-#line 470 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp7_ = FALSE;
-#line 472 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp10_ = self->priv->filter;
-#line 472 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp11_ = iter;
-#line 472 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               gtk_tree_model_get ((GtkTreeModel*) _tmp10_, &_tmp11_, IDENTITY_MANAGER_VIEW_COLUMNS_IDCARD_COL, &id_card, -1);
-#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp12_ = id_card;
-#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp13_ = identity_manager_view_add_id_card_widget (self, _tmp12_);
-#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp14_ = _tmp13_;
-#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _g_object_unref0 (_tmp14_);
-#line 2591 "moonshot-identity-management-view.c"
+#line 463 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp4_ = FALSE;
+#line 465 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp7_ = self->priv->filter;
+#line 465 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp8_ = iter;
+#line 465 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               gtk_tree_model_get ((GtkTreeModel*) _tmp7_, &_tmp8_, IDENTITY_MANAGER_VIEW_COLUMNS_IDCARD_COL, &id_card, -1);
+#line 468 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp9_ = id_card;
+#line 468 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp10_ = identity_manager_view_add_id_card_widget (self, _tmp9_);
+#line 468 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp11_ = _tmp10_;
+#line 468 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _g_object_unref0 (_tmp11_);
+#line 2849 "moonshot-identity-management-view.c"
                        }
                }
        }
-#line 459 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_list_free0 (children);
-#line 459 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_object_unref0 (id_card);
-#line 2599 "moonshot-identity-management-view.c"
+#line 2855 "moonshot-identity-management-view.c"
 }
 
 
-static void identity_manager_view_remove_identity_cb (IdentityManagerView* self, IdCardWidget* id_card_widget) {
-       IdCard* id_card = NULL;
-       IdCardWidget* _tmp0_ = NULL;
-       IdCard* _tmp1_ = NULL;
-       IdCard* _tmp2_ = NULL;
-       IdCard* _tmp3_ = NULL;
-       GtkMessageDialog* dialog = NULL;
-       const gchar* _tmp4_ = NULL;
+static void identity_manager_view_remove_identity_cb (IdentityManagerView* self, IdCard* id_card) {
+       gboolean remove = FALSE;
+       const gchar* _tmp0_ = NULL;
+       gchar* _tmp1_ = NULL;
+       gchar* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
        IdCard* _tmp5_ = NULL;
        const gchar* _tmp6_ = NULL;
        const gchar* _tmp7_ = NULL;
-       GtkMessageDialog* _tmp8_ = NULL;
-       gint _result_ = 0;
-       GtkMessageDialog* _tmp9_ = NULL;
-       gint _tmp10_ = 0;
-       gint _tmp11_ = 0;
-       GtkMessageDialog* _tmp13_ = NULL;
-#line 481 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gchar* _tmp8_ = NULL;
+       gchar* _tmp9_ = NULL;
+       gchar* _tmp10_ = NULL;
+       gchar* _tmp11_ = NULL;
+       const gchar* _tmp12_ = NULL;
+       gchar* _tmp13_ = NULL;
+       gchar* _tmp14_ = NULL;
+       gboolean _tmp15_ = FALSE;
+       gboolean _tmp16_ = FALSE;
+       gboolean _tmp17_ = FALSE;
+#line 474 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 481 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (id_card_widget != NULL);
-#line 483 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = id_card_widget;
-#line 483 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = id_card_widget_get_id_card (_tmp0_);
-#line 483 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 474 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (id_card != NULL);
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = _ ("You are about to remove the identity '%s'.");
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = g_strconcat ("<span font-weight='heavy'>", _tmp0_, NULL);
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp2_ = _tmp1_;
-#line 483 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = _g_object_ref0 (_tmp2_);
-#line 483 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       id_card = _tmp3_;
-#line 485 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = _ ("Are you sure you want to delete %s ID Card?");
-#line 485 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = g_strconcat (_tmp2_, "</span>", NULL);
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = _tmp3_;
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp5_ = id_card;
-#line 485 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp6_ = id_card_get_issuer (_tmp5_);
-#line 485 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp6_ = id_card_get_display_name (_tmp5_);
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp7_ = _tmp6_;
-#line 485 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp8_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _tmp4_, _tmp7_);
-#line 485 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp8_);
-#line 485 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       dialog = _tmp8_;
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp8_ = g_markup_printf_escaped (_tmp4_, _tmp7_);
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp9_ = _tmp8_;
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp10_ = g_strconcat (_tmp9_, "\n\n", NULL);
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp11_ = _tmp10_;
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp12_ = _ ("Are you sure you want to do this?");
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp13_ = g_strconcat (_tmp11_, _tmp12_, NULL);
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp14_ = _tmp13_;
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp15_ = warning_dialog_confirm ((GtkWindow*) self, _tmp14_, "delete_idcard");
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp16_ = _tmp15_;
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp14_);
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp11_);
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp9_);
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp4_);
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp2_);
+#line 476 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       remove = _tmp16_;
+#line 482 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp17_ = remove;
+#line 482 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp17_) {
+#line 2933 "moonshot-identity-management-view.c"
+               IdCard* _tmp18_ = NULL;
+#line 483 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp18_ = id_card;
+#line 483 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               identity_manager_view_remove_identity (self, _tmp18_);
+#line 2939 "moonshot-identity-management-view.c"
+       }
+}
+
+
+static void identity_manager_view_set_prompting_service (IdentityManagerView* self, const gchar* service) {
+       GtkLabel* prompting_service = NULL;
+       const gchar* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+       gchar* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       GtkLabel* _tmp4_ = NULL;
+       GtkLabel* _tmp5_ = NULL;
+       GtkLabel* selection_prompt = NULL;
+       const gchar* _tmp6_ = NULL;
+       GtkLabel* _tmp7_ = NULL;
+       GtkVBox* _tmp8_ = NULL;
+       GtkVBox* _tmp9_ = NULL;
+       GtkVBox* _tmp10_ = NULL;
+#line 486 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (self != NULL);
+#line 486 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (service != NULL);
+#line 488 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_clear_selection_prompts (self);
 #line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp9_ = dialog;
+       _tmp0_ = _ ("Identity requested for service:\n%s");
 #line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_ = gtk_dialog_run ((GtkDialog*) _tmp9_);
+       _tmp1_ = service;
 #line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _result_ = _tmp10_;
-#line 491 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp11_ = _result_;
-#line 491 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       switch (_tmp11_) {
+       _tmp2_ = g_strdup_printf (_tmp0_, _tmp1_);
+#line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = _tmp2_;
+#line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = (GtkLabel*) gtk_label_new (_tmp3_);
+#line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp4_);
+#line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp5_ = _tmp4_;
+#line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp3_);
+#line 490 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       prompting_service = _tmp5_;
 #line 491 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               case GTK_RESPONSE_YES:
-#line 2660 "moonshot-identity-management-view.c"
-               {
-                       IdCardWidget* _tmp12_ = NULL;
-#line 493 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp12_ = id_card_widget;
-#line 493 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       identity_manager_view_remove_identity (self, _tmp12_);
+       gtk_label_set_line_wrap (prompting_service, TRUE);
 #line 494 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       break;
-#line 2669 "moonshot-identity-management-view.c"
-               }
-               default:
-               {
+       gtk_misc_set_alignment ((GtkMisc*) prompting_service, (gfloat) 0, (gfloat) 0.5);
 #line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       break;
-#line 2675 "moonshot-identity-management-view.c"
-               }
-       }
-#line 498 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp13_ = dialog;
-#line 498 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_object_destroy ((GtkObject*) _tmp13_);
-#line 481 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (dialog);
-#line 481 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (id_card);
-#line 2686 "moonshot-identity-management-view.c"
+       _tmp6_ = _ ("Select your identity:");
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_ = (GtkLabel*) gtk_label_new (_tmp6_);
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp7_);
+#line 496 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       selection_prompt = _tmp7_;
+#line 497 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_misc_set_alignment ((GtkMisc*) selection_prompt, (gfloat) 0, (gfloat) 1);
+#line 499 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp8_ = self->priv->service_prompt_vbox;
+#line 499 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp8_, (GtkWidget*) prompting_service, FALSE, FALSE, (guint) 12);
+#line 500 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp9_ = self->priv->service_prompt_vbox;
+#line 500 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp9_, (GtkWidget*) selection_prompt, FALSE, FALSE, (guint) 2);
+#line 501 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp10_ = self->priv->service_prompt_vbox;
+#line 501 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_widget_show_all ((GtkWidget*) _tmp10_);
+#line 486 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (selection_prompt);
+#line 486 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (prompting_service);
+#line 3012 "moonshot-identity-management-view.c"
 }
 
 
-void identity_manager_view_set_prompting_service (IdentityManagerView* self, const gchar* service) {
-       GtkLabel* _tmp0_ = NULL;
-       const gchar* _tmp1_ = NULL;
-       const gchar* _tmp2_ = NULL;
-       gchar* _tmp3_ = NULL;
-       gchar* _tmp4_ = NULL;
-#line 501 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+static void identity_manager_view_clear_selection_prompts (IdentityManagerView* self) {
+       GList* list = NULL;
+       GtkVBox* _tmp0_ = NULL;
+       GList* _tmp1_ = NULL;
+       GList* _tmp2_ = NULL;
+#line 504 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 501 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (service != NULL);
-#line 503 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = self->priv->prompting_service;
-#line 503 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = _ ("Identity requested for service: %s");
-#line 503 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = service;
-#line 503 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = g_strdup_printf (_tmp1_, _tmp2_);
-#line 503 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = _tmp3_;
-#line 503 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_label_set_label (_tmp0_, _tmp4_);
-#line 503 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_free0 (_tmp4_);
-#line 2714 "moonshot-identity-management-view.c"
+#line 506 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = self->priv->service_prompt_vbox;
+#line 506 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = gtk_container_get_children ((GtkContainer*) _tmp0_);
+#line 506 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       list = _tmp1_;
+#line 507 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = list;
+#line 3031 "moonshot-identity-management-view.c"
+       {
+               GList* w_collection = NULL;
+               GList* w_it = NULL;
+#line 507 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               w_collection = _tmp2_;
+#line 507 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               for (w_it = w_collection; w_it != NULL; w_it = w_it->next) {
+#line 3039 "moonshot-identity-management-view.c"
+                       GtkWidget* _tmp3_ = NULL;
+                       GtkWidget* w = NULL;
+#line 507 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp3_ = _g_object_ref0 ((GtkWidget*) w_it->data);
+#line 507 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       w = _tmp3_;
+#line 3046 "moonshot-identity-management-view.c"
+                       {
+                               GtkVBox* _tmp4_ = NULL;
+                               GtkWidget* _tmp5_ = NULL;
+#line 509 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp4_ = self->priv->service_prompt_vbox;
+#line 509 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp5_ = w;
+#line 509 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               gtk_container_remove ((GtkContainer*) _tmp4_, _tmp5_);
+#line 507 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _g_object_unref0 (w);
+#line 3058 "moonshot-identity-management-view.c"
+                       }
+               }
+       }
+#line 504 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_list_free0 (list);
+#line 3064 "moonshot-identity-management-view.c"
 }
 
 
 void identity_manager_view_queue_identity_request (IdentityManagerView* self, IdentityRequest* request) {
-       GQueue* _tmp0_ = NULL;
-       gboolean _tmp1_ = FALSE;
-       GQueue* _tmp7_ = NULL;
-       IdentityRequest* _tmp8_ = NULL;
-       IdentityRequest* _tmp9_ = NULL;
-#line 506 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gboolean queue_was_empty = FALSE;
+       gboolean _tmp0_ = FALSE;
+       GQueue* _tmp1_ = NULL;
+       IdentityRequest* _tmp2_ = NULL;
+       IdentityRequest* _tmp3_ = NULL;
+       gboolean _tmp4_ = FALSE;
+#line 514 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 506 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (request != NULL);
-#line 508 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = self->request_queue;
-#line 508 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = g_queue_is_empty (_tmp0_);
-#line 508 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp1_) {
-#line 2734 "moonshot-identity-management-view.c"
-               IdentityRequest* _tmp2_ = NULL;
-               GSList* _tmp3_ = NULL;
-               GtkTreeModelFilter* _tmp4_ = NULL;
-               IdentityRequest* _tmp5_ = NULL;
-               const gchar* _tmp6_ = NULL;
-#line 510 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp2_ = request;
-#line 510 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp3_ = _tmp2_->candidates;
-#line 510 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               self->priv->candidates = _tmp3_;
-#line 511 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp4_ = self->priv->filter;
-#line 511 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               gtk_tree_model_filter_refilter (_tmp4_);
-#line 512 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               identity_manager_view_redraw_id_card_widgets (self);
-#line 513 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp5_ = request;
-#line 513 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp6_ = _tmp5_->service;
-#line 513 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               identity_manager_view_set_prompting_service (self, _tmp6_);
 #line 514 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               gtk_widget_show ((GtkWidget*) self);
-#line 2760 "moonshot-identity-management-view.c"
-       }
-#line 516 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_ = self->request_queue;
-#line 516 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp8_ = request;
+       g_return_if_fail (request != NULL);
 #line 516 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp9_ = _g_object_ref0 (_tmp8_);
+       _tmp0_ = identity_manager_view_selection_in_progress (self);
 #line 516 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_queue_push_tail (_tmp7_, _tmp9_);
-#line 2770 "moonshot-identity-management-view.c"
-}
-
-
-IdCard* identity_manager_view_check_add_password (IdentityManagerView* self, IdCard* identity, IdentityRequest* request, IdentityManagerModel* model) {
-       IdCard* result = NULL;
-       IdCard* retval = NULL;
-       IdCard* _tmp0_ = NULL;
-       IdCard* _tmp1_ = NULL;
-       gboolean _tmp2_ = FALSE;
-       IdCard* _tmp3_ = NULL;
-       const gchar* _tmp4_ = NULL;
-       const gchar* _tmp5_ = NULL;
-       gboolean idcard_has_pw = FALSE;
-       gboolean _tmp9_ = FALSE;
-       IdentityRequest* _tmp10_ = NULL;
-       const gchar* _tmp11_ = NULL;
-       gboolean request_has_pw = FALSE;
-       gboolean _tmp14_ = FALSE;
-       gboolean _tmp15_ = FALSE;
-#line 519 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_val_if_fail (self != NULL, NULL);
-#line 519 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_val_if_fail (identity != NULL, NULL);
+       queue_was_empty = !_tmp0_;
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = self->priv->request_queue;
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = request;
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 517 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_queue_push_tail (_tmp1_, _tmp3_);
 #line 519 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_val_if_fail (request != NULL, NULL);
+       _tmp4_ = queue_was_empty;
 #line 519 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_val_if_fail (model != NULL, NULL);
+       if (_tmp4_) {
+#line 3095 "moonshot-identity-management-view.c"
+               IdentityRequest* _tmp5_ = NULL;
+               GSList* _tmp6_ = NULL;
+               GtkTreeModelFilter* _tmp7_ = NULL;
+               IdentityRequest* _tmp8_ = NULL;
+               const gchar* _tmp9_ = NULL;
+               GtkCheckButton* _tmp10_ = NULL;
+               CustomVBox* _tmp11_ = NULL;
+               IdCard* _tmp12_ = NULL;
+               IdCardWidget* _tmp13_ = NULL;
+               IdCardWidget* _tmp14_ = NULL;
+               gboolean _tmp15_ = FALSE;
 #line 521 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = identity;
+               _tmp5_ = request;
 #line 521 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = _g_object_ref0 (_tmp0_);
+               _tmp6_ = _tmp5_->candidates;
 #line 521 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       retval = _tmp1_;
-#line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = identity;
+               self->priv->candidates = _tmp6_;
 #line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = id_card_get_password (_tmp3_);
-#line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp5_ = _tmp4_;
-#line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp5_ != NULL) {
-#line 2812 "moonshot-identity-management-view.c"
-               IdCard* _tmp6_ = NULL;
-               const gchar* _tmp7_ = NULL;
-               const gchar* _tmp8_ = NULL;
-#line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp6_ = identity;
-#line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp7_ = id_card_get_password (_tmp6_);
-#line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp8_ = _tmp7_;
-#line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp2_ = g_strcmp0 (_tmp8_, "") != 0;
-#line 2824 "moonshot-identity-management-view.c"
-       } else {
-#line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp2_ = FALSE;
-#line 2828 "moonshot-identity-management-view.c"
-       }
+               _tmp7_ = self->priv->filter;
 #line 522 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       idcard_has_pw = _tmp2_;
+               gtk_tree_model_filter_refilter (_tmp7_);
 #line 523 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_ = request;
-#line 523 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp11_ = _tmp10_->password;
-#line 523 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp11_ != NULL) {
-#line 2838 "moonshot-identity-management-view.c"
-               IdentityRequest* _tmp12_ = NULL;
-               const gchar* _tmp13_ = NULL;
-#line 523 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp12_ = request;
-#line 523 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp13_ = _tmp12_->password;
-#line 523 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp9_ = g_strcmp0 (_tmp13_, "") != 0;
-#line 2847 "moonshot-identity-management-view.c"
-       } else {
-#line 523 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp9_ = FALSE;
-#line 2851 "moonshot-identity-management-view.c"
-       }
-#line 523 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       request_has_pw = _tmp9_;
-#line 524 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp15_ = idcard_has_pw;
-#line 524 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (!_tmp15_) {
-#line 2859 "moonshot-identity-management-view.c"
-               IdCard* _tmp16_ = NULL;
-               gboolean _tmp17_ = FALSE;
-#line 524 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp16_ = identity;
-#line 524 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp17_ = id_card_IsNoIdentity (_tmp16_);
+               identity_manager_view_redraw_id_card_widgets (self);
 #line 524 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp14_ = !_tmp17_;
-#line 2868 "moonshot-identity-management-view.c"
-       } else {
+               _tmp8_ = request;
 #line 524 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp14_ = FALSE;
-#line 2872 "moonshot-identity-management-view.c"
-       }
+               _tmp9_ = _tmp8_->service;
 #line 524 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp14_) {
-#line 2876 "moonshot-identity-management-view.c"
-               gboolean _tmp18_ = FALSE;
+               identity_manager_view_set_prompting_service (self, _tmp9_);
 #line 525 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp18_ = request_has_pw;
+               _tmp10_ = self->remember_identity_binding;
 #line 525 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               if (_tmp18_) {
-#line 2882 "moonshot-identity-management-view.c"
-                       IdCard* _tmp19_ = NULL;
-                       IdentityRequest* _tmp20_ = NULL;
-                       const gchar* _tmp21_ = NULL;
-                       IdentityManagerModel* _tmp22_ = NULL;
-                       IdCard* _tmp23_ = NULL;
-                       IdCard* _tmp24_ = NULL;
-#line 526 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp19_ = identity;
-#line 526 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp20_ = request;
-#line 526 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp21_ = _tmp20_->password;
-#line 526 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       id_card_set_password (_tmp19_, _tmp21_);
+               gtk_widget_show ((GtkWidget*) _tmp10_);
 #line 527 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp22_ = model;
+               _tmp11_ = self->priv->custom_vbox;
 #line 527 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp23_ = identity;
+               _tmp12_ = self->priv->selected_card;
 #line 527 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp24_ = identity_manager_model_update_card (_tmp22_, _tmp23_);
+               _tmp13_ = custom_vbox_find_idcard_widget (_tmp11_, _tmp12_);
 #line 527 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _g_object_unref0 (retval);
+               _tmp14_ = _tmp13_;
 #line 527 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       retval = _tmp24_;
-#line 2907 "moonshot-identity-management-view.c"
-               } else {
-                       AddPasswordDialog* dialog = NULL;
-                       IdCard* _tmp25_ = NULL;
-                       IdentityRequest* _tmp26_ = NULL;
-                       AddPasswordDialog* _tmp27_ = NULL;
-                       gint _result_ = 0;
-                       AddPasswordDialog* _tmp28_ = NULL;
-                       gint _tmp29_ = 0;
-                       gint _tmp30_ = 0;
-                       AddPasswordDialog* _tmp46_ = NULL;
-#line 529 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp25_ = identity;
-#line 529 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp26_ = request;
-#line 529 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp27_ = add_password_dialog_new (_tmp25_, _tmp26_);
+               _tmp15_ = _tmp14_ != NULL;
+#line 527 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (_tmp14_);
+#line 527 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               if (_tmp15_) {
+#line 3143 "moonshot-identity-management-view.c"
+                       GtkButton* _tmp16_ = NULL;
 #line 529 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       g_object_ref_sink (_tmp27_);
+                       _tmp16_ = self->priv->send_button;
 #line 529 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       dialog = _tmp27_;
-#line 530 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp28_ = dialog;
-#line 530 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp29_ = gtk_dialog_run ((GtkDialog*) _tmp28_);
-#line 530 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _result_ = _tmp29_;
-#line 532 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp30_ = _result_;
-#line 532 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       switch (_tmp30_) {
-#line 532 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               case GTK_RESPONSE_OK:
-#line 2940 "moonshot-identity-management-view.c"
-                               {
-                                       IdCard* _tmp31_ = NULL;
-                                       AddPasswordDialog* _tmp32_ = NULL;
-                                       const gchar* _tmp33_ = NULL;
-                                       const gchar* _tmp34_ = NULL;
-                                       IdCard* _tmp35_ = NULL;
-                                       AddPasswordDialog* _tmp36_ = NULL;
-                                       gboolean _tmp37_ = FALSE;
-                                       gboolean _tmp38_ = FALSE;
-                                       AddPasswordDialog* _tmp39_ = NULL;
-                                       gboolean _tmp40_ = FALSE;
-                                       gboolean _tmp41_ = FALSE;
-                                       IdentityManagerModel* _tmp43_ = NULL;
-                                       IdCard* _tmp44_ = NULL;
-                                       IdCard* _tmp45_ = NULL;
-#line 534 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp31_ = identity;
-#line 534 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp32_ = dialog;
-#line 534 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp33_ = add_password_dialog_get_password (_tmp32_);
-#line 534 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp34_ = _tmp33_;
-#line 534 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       id_card_set_password (_tmp31_, _tmp34_);
-#line 535 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp35_ = identity;
-#line 535 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp36_ = dialog;
-#line 535 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp37_ = add_password_dialog_get_remember (_tmp36_);
-#line 535 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp38_ = _tmp37_;
-#line 535 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       id_card_set_store_password (_tmp35_, _tmp38_);
-#line 536 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp39_ = dialog;
-#line 536 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp40_ = add_password_dialog_get_remember (_tmp39_);
-#line 536 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp41_ = _tmp40_;
-#line 536 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       if (_tmp41_) {
-#line 2984 "moonshot-identity-management-view.c"
-                                               IdCard* _tmp42_ = NULL;
-#line 537 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp42_ = identity;
-#line 537 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               id_card_set_temporary (_tmp42_, FALSE);
-#line 2990 "moonshot-identity-management-view.c"
-                                       }
-#line 538 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp43_ = model;
-#line 538 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp44_ = identity;
-#line 538 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp45_ = identity_manager_model_update_card (_tmp43_, _tmp44_);
-#line 538 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _g_object_unref0 (retval);
-#line 538 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       retval = _tmp45_;
-#line 539 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       break;
-#line 3004 "moonshot-identity-management-view.c"
-                               }
-                               default:
-                               {
-#line 541 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       identity = NULL;
-#line 542 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       break;
-#line 3012 "moonshot-identity-management-view.c"
-                               }
-                       }
-#line 544 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp46_ = dialog;
-#line 544 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       gtk_object_destroy ((GtkObject*) _tmp46_);
-#line 525 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _g_object_unref0 (dialog);
-#line 3021 "moonshot-identity-management-view.c"
+                       gtk_widget_set_sensitive ((GtkWidget*) _tmp16_, TRUE);
+#line 3149 "moonshot-identity-management-view.c"
                }
+#line 532 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               identity_manager_view_make_visible (self);
+#line 3153 "moonshot-identity-management-view.c"
        }
+}
+
+
+/** Makes the window visible, or at least, notifies the user that the window
+     * wants to be visible.
+     *
+     * This differs from show() in that show() does not guarantee that the 
+     * window will be moved to the foreground. Actually, neither does this
+     * method, because the user's settings and window manager may affect the
+     * behavior significantly.
+     */
+void identity_manager_view_make_visible (IdentityManagerView* self) {
+#line 545 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (self != NULL);
 #line 547 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       result = retval;
-#line 547 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       return result;
-#line 3028 "moonshot-identity-management-view.c"
+       gtk_window_set_urgency_hint ((GtkWindow*) self, TRUE);
+#line 548 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_window_present ((GtkWindow*) self);
+#line 3173 "moonshot-identity-management-view.c"
 }
 
 
-void identity_manager_view_send_identity_cb (IdentityManagerView* self, IdCard* id) {
-       IdCard* identity = NULL;
-       IdCard* _tmp0_ = NULL;
+IdCard* identity_manager_view_check_add_password (IdentityManagerView* self, IdCard* identity, IdentityRequest* request, IdentityManagerModel* model) {
+       IdCard* result = NULL;
+       MoonshotLogger* _tmp0_ = NULL;
+       IdCard* retval = NULL;
        IdCard* _tmp1_ = NULL;
-       GQueue* _tmp2_ = NULL;
-       guint _tmp3_ = 0U;
-       IdentityRequest* request = NULL;
-       GQueue* _tmp4_ = NULL;
-       gpointer _tmp5_ = NULL;
-       IdCard* _tmp6_ = NULL;
-       IdentityRequest* _tmp7_ = NULL;
-       IdentityManagerModel* _tmp8_ = NULL;
-       IdCard* _tmp9_ = NULL;
-       GQueue* _tmp10_ = NULL;
-       gboolean _tmp11_ = FALSE;
-       GtkTreeModelFilter* _tmp23_ = NULL;
-       gboolean _tmp24_ = FALSE;
-       IdCard* _tmp25_ = NULL;
-       IdentityRequest* _tmp31_ = NULL;
-       IdCard* _tmp32_ = NULL;
-#line 550 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (self != NULL);
-#line 550 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (id != NULL);
-#line 552 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = id;
-#line 552 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = _g_object_ref0 (_tmp0_);
-#line 552 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity = _tmp1_;
-#line 553 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = self->request_queue;
+       IdCard* _tmp2_ = NULL;
+       gboolean _tmp3_ = FALSE;
+       IdCard* _tmp4_ = NULL;
+       const gchar* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       gboolean idcard_has_pw = FALSE;
+       gboolean _tmp10_ = FALSE;
+       IdentityRequest* _tmp11_ = NULL;
+       const gchar* _tmp12_ = NULL;
+       gboolean request_has_pw = FALSE;
+       gboolean _tmp15_ = FALSE;
+       gboolean _tmp16_ = FALSE;
+#line 551 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 551 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_val_if_fail (identity != NULL, NULL);
+#line 551 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_val_if_fail (request != NULL, NULL);
+#line 551 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_val_if_fail (model != NULL, NULL);
 #line 553 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = _tmp2_->length;
+       _tmp0_ = identity_manager_view_logger;
 #line 553 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (_tmp3_ > ((guint) 0));
+       moonshot_logger_trace (_tmp0_, "check_add_password", NULL);
+#line 554 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = identity;
+#line 554 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 554 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       retval = _tmp2_;
 #line 555 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->candidates = NULL;
+       _tmp4_ = identity;
+#line 555 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp5_ = id_card_get_password (_tmp4_);
+#line 555 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp6_ = _tmp5_;
+#line 555 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp6_ != NULL) {
+#line 3220 "moonshot-identity-management-view.c"
+               IdCard* _tmp7_ = NULL;
+               const gchar* _tmp8_ = NULL;
+               const gchar* _tmp9_ = NULL;
+#line 555 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp7_ = identity;
+#line 555 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp8_ = id_card_get_password (_tmp7_);
+#line 555 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp9_ = _tmp8_;
+#line 555 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp3_ = g_strcmp0 (_tmp9_, "") != 0;
+#line 3232 "moonshot-identity-management-view.c"
+       } else {
+#line 555 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp3_ = FALSE;
+#line 3236 "moonshot-identity-management-view.c"
+       }
+#line 555 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       idcard_has_pw = _tmp3_;
+#line 556 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp11_ = request;
+#line 556 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp12_ = _tmp11_->password;
+#line 556 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp12_ != NULL) {
+#line 3246 "moonshot-identity-management-view.c"
+               IdentityRequest* _tmp13_ = NULL;
+               const gchar* _tmp14_ = NULL;
+#line 556 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp13_ = request;
 #line 556 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = self->request_queue;
+               _tmp14_ = _tmp13_->password;
 #line 556 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp5_ = g_queue_pop_head (_tmp4_);
+               _tmp10_ = g_strcmp0 (_tmp14_, "") != 0;
+#line 3255 "moonshot-identity-management-view.c"
+       } else {
+#line 556 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp10_ = FALSE;
+#line 3259 "moonshot-identity-management-view.c"
+       }
 #line 556 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       request = (IdentityRequest*) _tmp5_;
+       request_has_pw = _tmp10_;
 #line 557 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp6_ = identity;
+       _tmp16_ = idcard_has_pw;
 #line 557 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_ = request;
+       if (!_tmp16_) {
+#line 3267 "moonshot-identity-management-view.c"
+               IdCard* _tmp17_ = NULL;
+               gboolean _tmp18_ = FALSE;
 #line 557 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp8_ = self->identities_manager;
+               _tmp17_ = identity;
 #line 557 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp9_ = identity_manager_view_check_add_password (self, _tmp6_, _tmp7_, _tmp8_);
+               _tmp18_ = id_card_is_no_identity (_tmp17_);
 #line 557 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (identity);
+               _tmp15_ = !_tmp18_;
+#line 3276 "moonshot-identity-management-view.c"
+       } else {
 #line 557 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity = _tmp9_;
-#line 558 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_ = self->request_queue;
+               _tmp15_ = FALSE;
+#line 3280 "moonshot-identity-management-view.c"
+       }
+#line 557 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp15_) {
+#line 3284 "moonshot-identity-management-view.c"
+               gboolean _tmp19_ = FALSE;
 #line 558 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp11_ = g_queue_is_empty (_tmp10_);
+               _tmp19_ = request_has_pw;
 #line 558 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp11_) {
-#line 3094 "moonshot-identity-management-view.c"
-               GtkLabel* _tmp12_ = NULL;
-               const gchar* _tmp13_ = NULL;
-               IdentityManagerApp* _tmp14_ = NULL;
-               gboolean _tmp15_ = FALSE;
+               if (_tmp19_) {
+#line 3290 "moonshot-identity-management-view.c"
+                       IdCard* _tmp20_ = NULL;
+                       IdentityRequest* _tmp21_ = NULL;
+                       const gchar* _tmp22_ = NULL;
+                       IdentityManagerModel* _tmp23_ = NULL;
+                       IdCard* _tmp24_ = NULL;
+                       IdCard* _tmp25_ = NULL;
+#line 559 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp20_ = identity;
+#line 559 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp21_ = request;
+#line 559 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp22_ = _tmp21_->password;
+#line 559 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       id_card_set_password (_tmp20_, _tmp22_);
 #line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               self->priv->candidates = NULL;
-#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp12_ = self->priv->prompting_service;
-#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp13_ = _ ("");
-#line 561 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               gtk_label_set_label (_tmp12_, _tmp13_);
+                       _tmp23_ = model;
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp24_ = identity;
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp25_ = identity_manager_model_update_card (_tmp23_, _tmp24_);
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (retval);
+#line 560 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       retval = _tmp25_;
+#line 3315 "moonshot-identity-management-view.c"
+               } else {
+                       AddPasswordDialog* dialog = NULL;
+                       IdCard* _tmp26_ = NULL;
+                       IdentityRequest* _tmp27_ = NULL;
+                       AddPasswordDialog* _tmp28_ = NULL;
+                       gint _result_ = 0;
+                       AddPasswordDialog* _tmp29_ = NULL;
+                       gint _tmp30_ = 0;
+                       gint _tmp31_ = 0;
+                       AddPasswordDialog* _tmp48_ = NULL;
+                       AddPasswordDialog* _tmp49_ = NULL;
+#line 562 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp26_ = identity;
+#line 562 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp27_ = request;
 #line 562 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp14_ = self->parent_app;
+                       _tmp28_ = add_password_dialog_new (_tmp26_, _tmp27_);
 #line 562 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp15_ = _tmp14_->explicitly_launched;
+                       g_object_ref_sink (_tmp28_);
 #line 562 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               if (!_tmp15_) {
+                       dialog = _tmp28_;
+#line 563 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp29_ = dialog;
+#line 563 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp30_ = gtk_dialog_run ((GtkDialog*) _tmp29_);
+#line 563 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _result_ = _tmp30_;
+#line 565 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp31_ = _result_;
+#line 565 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       switch (_tmp31_) {
+#line 565 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               case GTK_RESPONSE_OK:
+#line 3349 "moonshot-identity-management-view.c"
+                               {
+                                       IdCard* _tmp32_ = NULL;
+                                       AddPasswordDialog* _tmp33_ = NULL;
+                                       const gchar* _tmp34_ = NULL;
+                                       const gchar* _tmp35_ = NULL;
+                                       AddPasswordDialog* _tmp36_ = NULL;
+                                       IdCard* _tmp37_ = NULL;
+                                       AddPasswordDialog* _tmp38_ = NULL;
+                                       gboolean _tmp39_ = FALSE;
+                                       gboolean _tmp40_ = FALSE;
+                                       AddPasswordDialog* _tmp41_ = NULL;
+                                       gboolean _tmp42_ = FALSE;
+                                       gboolean _tmp43_ = FALSE;
+                                       IdentityManagerModel* _tmp45_ = NULL;
+                                       IdCard* _tmp46_ = NULL;
+                                       IdCard* _tmp47_ = NULL;
 #line 567 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       gtk_widget_hide ((GtkWidget*) self);
-#line 3115 "moonshot-identity-management-view.c"
-               }
-       } else {
-               IdentityRequest* next = NULL;
-               GQueue* _tmp16_ = NULL;
-               gconstpointer _tmp17_ = NULL;
-               IdentityRequest* _tmp18_ = NULL;
-               IdentityRequest* _tmp19_ = NULL;
-               GSList* _tmp20_ = NULL;
-               IdentityRequest* _tmp21_ = NULL;
-               const gchar* _tmp22_ = NULL;
-#line 570 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp16_ = self->request_queue;
-#line 570 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp17_ = g_queue_peek_head (_tmp16_);
-#line 570 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp18_ = _g_object_ref0 ((IdentityRequest*) _tmp17_);
-#line 570 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               next = _tmp18_;
-#line 571 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp19_ = next;
-#line 571 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp20_ = _tmp19_->candidates;
-#line 571 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               self->priv->candidates = _tmp20_;
-#line 572 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp21_ = next;
-#line 572 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp22_ = _tmp21_->service;
-#line 572 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               identity_manager_view_set_prompting_service (self, _tmp22_);
-#line 558 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _g_object_unref0 (next);
-#line 3148 "moonshot-identity-management-view.c"
-       }
-#line 574 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp23_ = self->priv->filter;
-#line 574 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_tree_model_filter_refilter (_tmp23_);
-#line 575 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_redraw_id_card_widgets (self);
-#line 577 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp25_ = identity;
-#line 577 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp25_ != NULL) {
-#line 3160 "moonshot-identity-management-view.c"
-               IdCard* _tmp26_ = NULL;
-               gboolean _tmp27_ = FALSE;
-#line 577 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp26_ = identity;
-#line 577 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp27_ = id_card_IsNoIdentity (_tmp26_);
-#line 577 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp24_ = !_tmp27_;
-#line 3169 "moonshot-identity-management-view.c"
-       } else {
-#line 577 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp24_ = FALSE;
-#line 3173 "moonshot-identity-management-view.c"
-       }
-#line 577 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp24_) {
-#line 3177 "moonshot-identity-management-view.c"
-               IdentityManagerApp* _tmp28_ = NULL;
-               IdCard* _tmp29_ = NULL;
-               IdCard* _tmp30_ = NULL;
-#line 578 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp28_ = self->parent_app;
-#line 578 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp29_ = identity;
-#line 578 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp30_ = _g_object_ref0 (_tmp29_);
-#line 578 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _g_object_unref0 (_tmp28_->default_id_card);
-#line 578 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp28_->default_id_card = _tmp30_;
-#line 3191 "moonshot-identity-management-view.c"
-       }
-#line 580 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp31_ = request;
-#line 580 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp32_ = identity;
-#line 580 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_request_return_identity (_tmp31_, _tmp32_);
-#line 550 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (request);
-#line 550 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (identity);
-#line 3203 "moonshot-identity-management-view.c"
-}
-
-
-static void _vala_PangoFontDescription_free (PangoFontDescription* self) {
-#line 583 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_boxed_free (pango_font_description_get_type (), self);
-#line 3210 "moonshot-identity-management-view.c"
-}
-
-
-static void identity_manager_view_label_make_bold (IdentityManagerView* self, GtkLabel* label) {
-       PangoFontDescription* font_desc = NULL;
-       PangoFontDescription* _tmp0_ = NULL;
-       GtkLabel* _tmp1_ = NULL;
-#line 583 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (self != NULL);
-#line 583 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (label != NULL);
-#line 585 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = pango_font_description_new ();
-#line 585 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       font_desc = _tmp0_;
-#line 587 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
-#line 594 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = label;
-#line 594 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_widget_modify_font ((GtkWidget*) _tmp1_, font_desc);
-#line 583 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       __vala_PangoFontDescription_free0 (font_desc);
-#line 3234 "moonshot-identity-management-view.c"
-}
-
-
-static void _g_slist_free__g_free0_ (GSList* self) {
-#line 640 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_slist_foreach (self, (GFunc) _g_free0_, NULL);
-#line 640 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_slist_free (self);
-#line 3243 "moonshot-identity-management-view.c"
-}
-
-
-static void ____lambda5_ (IdentityManagerView* self, GtkButton* remove_button) {
-       gchar* candidate = NULL;
-       GHashTable* _tmp0_ = NULL;
-       GtkButton* _tmp1_ = NULL;
-       gconstpointer _tmp2_ = NULL;
-       gchar* _tmp3_ = NULL;
-       const gchar* _tmp4_ = NULL;
-       GtkMessageDialog* dialog = NULL;
-       const gchar* _tmp5_ = NULL;
-       CustomVBox* _tmp6_ = NULL;
-       IdCardWidget* _tmp7_ = NULL;
-       IdCardWidget* _tmp8_ = NULL;
-       IdCard* _tmp9_ = NULL;
-       IdCard* _tmp10_ = NULL;
-       const gchar* _tmp11_ = NULL;
-       const gchar* _tmp12_ = NULL;
-       const gchar* _tmp13_ = NULL;
-       GtkMessageDialog* _tmp14_ = NULL;
-       gint ret = 0;
-       GtkMessageDialog* _tmp15_ = NULL;
-       gint _tmp16_ = 0;
-       GtkMessageDialog* _tmp17_ = NULL;
-       gint _tmp18_ = 0;
-#line 622 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (remove_button != NULL);
-#line 624 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = self->priv->service_button_map;
-#line 624 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = remove_button;
-#line 624 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = g_hash_table_lookup (_tmp0_, _tmp1_);
-#line 624 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = g_strdup ((const gchar*) _tmp2_);
-#line 624 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       candidate = _tmp3_;
-#line 625 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = candidate;
-#line 625 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp4_ == NULL) {
-#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _g_free0 (candidate);
-#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               return;
-#line 3290 "moonshot-identity-management-view.c"
-       }
-#line 627 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp5_ = _ ("Are you sure you want to stop '%s' ID Card from being used with %s?");
-#line 627 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp6_ = self->priv->custom_vbox;
-#line 627 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_ = custom_vbox_get_current_idcard (_tmp6_);
-#line 627 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp8_ = _tmp7_;
-#line 627 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp9_ = id_card_widget_get_id_card (_tmp8_);
-#line 627 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_ = _tmp9_;
-#line 627 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp11_ = id_card_get_display_name (_tmp10_);
-#line 627 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp12_ = _tmp11_;
-#line 627 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp13_ = candidate;
-#line 627 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp14_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _tmp5_, _tmp12_, _tmp13_);
-#line 627 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp14_);
-#line 627 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       dialog = _tmp14_;
-#line 634 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp15_ = dialog;
-#line 634 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp16_ = gtk_dialog_run ((GtkDialog*) _tmp15_);
-#line 634 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       ret = _tmp16_;
-#line 635 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp17_ = dialog;
-#line 635 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_widget_hide ((GtkWidget*) _tmp17_);
-#line 637 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp18_ = ret;
-#line 637 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if (_tmp18_ == ((gint) GTK_RESPONSE_YES)) {
-#line 3330 "moonshot-identity-management-view.c"
-               IdCard* idcard = NULL;
-               CustomVBox* _tmp19_ = NULL;
-               IdCardWidget* _tmp20_ = NULL;
-               IdCardWidget* _tmp21_ = NULL;
-               IdCard* _tmp22_ = NULL;
-               IdCard* _tmp23_ = NULL;
-               IdCard* _tmp24_ = NULL;
-               IdCard* _tmp25_ = NULL;
-#line 639 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp19_ = self->priv->custom_vbox;
-#line 639 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp20_ = custom_vbox_get_current_idcard (_tmp19_);
-#line 639 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp21_ = _tmp20_;
-#line 639 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp22_ = id_card_widget_get_id_card (_tmp21_);
-#line 639 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp23_ = _tmp22_;
-#line 639 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp24_ = _g_object_ref0 (_tmp23_);
-#line 639 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               idcard = _tmp24_;
-#line 640 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _tmp25_ = idcard;
-#line 640 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               if (_tmp25_ != NULL) {
-#line 3357 "moonshot-identity-management-view.c"
-                       GSList* services = NULL;
-                       IdCard* _tmp26_ = NULL;
-                       gchar** _tmp27_ = NULL;
-                       gint _tmp27__length1 = 0;
-                       gchar** _tmp28_ = NULL;
-                       gint _tmp28__length1 = 0;
-                       IdCard* _tmp34_ = NULL;
-                       GSList* _tmp35_ = NULL;
-                       guint _tmp36_ = 0U;
-                       gchar** _tmp37_ = NULL;
-                       gchar** _tmp38_ = NULL;
-                       gint _tmp38__length1 = 0;
-                       IdentityManagerModel* _tmp54_ = NULL;
-                       IdCard* _tmp55_ = NULL;
-                       IdCard* _tmp56_ = NULL;
-                       IdCard* _tmp57_ = NULL;
-#line 641 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       services = NULL;
-#line 643 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp26_ = idcard;
-#line 643 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp27_ = id_card_get_services (_tmp26_, &_tmp27__length1);
-#line 643 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp28_ = _tmp27_;
-#line 643 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp28__length1 = _tmp27__length1;
-#line 3384 "moonshot-identity-management-view.c"
-                       {
-                               gchar** srv_collection = NULL;
-                               gint srv_collection_length1 = 0;
-                               gint _srv_collection_size_ = 0;
-                               gint srv_it = 0;
-#line 643 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               srv_collection = _tmp28_;
-#line 643 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               srv_collection_length1 = _tmp28__length1;
-#line 643 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               for (srv_it = 0; srv_it < _tmp28__length1; srv_it = srv_it + 1) {
-#line 3396 "moonshot-identity-management-view.c"
-                                       gchar* _tmp29_ = NULL;
-                                       gchar* srv = NULL;
-#line 643 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp29_ = g_strdup (srv_collection[srv_it]);
-#line 643 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       srv = _tmp29_;
-#line 3403 "moonshot-identity-management-view.c"
-                                       {
-                                               const gchar* _tmp30_ = NULL;
-                                               const gchar* _tmp31_ = NULL;
-                                               const gchar* _tmp32_ = NULL;
-                                               gchar* _tmp33_ = NULL;
-#line 645 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp30_ = srv;
-#line 645 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp31_ = candidate;
-#line 645 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               if (g_strcmp0 (_tmp30_, _tmp31_) == 0) {
-#line 646 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                       _g_free0 (srv);
-#line 646 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                       continue;
-#line 3419 "moonshot-identity-management-view.c"
-                                               }
-#line 647 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp32_ = srv;
-#line 647 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp33_ = g_strdup (_tmp32_);
-#line 647 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               services = g_slist_append (services, _tmp33_);
-#line 643 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _g_free0 (srv);
-#line 3429 "moonshot-identity-management-view.c"
+                                       _tmp32_ = identity;
+#line 567 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp33_ = dialog;
+#line 567 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp34_ = add_password_dialog_get_password (_tmp33_);
+#line 567 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp35_ = _tmp34_;
+#line 567 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       id_card_set_password (_tmp32_, _tmp35_);
+#line 570 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp36_ = dialog;
+#line 570 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       add_password_dialog_clear_password (_tmp36_);
+#line 571 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp37_ = identity;
+#line 571 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp38_ = dialog;
+#line 571 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp39_ = add_password_dialog_get_remember (_tmp38_);
+#line 571 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp40_ = _tmp39_;
+#line 571 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       id_card_set_store_password (_tmp37_, _tmp40_);
+#line 572 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp41_ = dialog;
+#line 572 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp42_ = add_password_dialog_get_remember (_tmp41_);
+#line 572 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp43_ = _tmp42_;
+#line 572 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       if (_tmp43_) {
+#line 3398 "moonshot-identity-management-view.c"
+                                               IdCard* _tmp44_ = NULL;
+#line 573 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp44_ = identity;
+#line 573 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               id_card_set_temporary (_tmp44_, FALSE);
+#line 3404 "moonshot-identity-management-view.c"
                                        }
+#line 574 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp45_ = model;
+#line 574 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp46_ = identity;
+#line 574 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp47_ = identity_manager_model_update_card (_tmp45_, _tmp46_);
+#line 574 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _g_object_unref0 (retval);
+#line 574 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       retval = _tmp47_;
+#line 575 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       break;
+#line 3418 "moonshot-identity-management-view.c"
                                }
-                       }
-#line 650 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp34_ = idcard;
-#line 650 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp35_ = services;
-#line 650 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp36_ = g_slist_length (_tmp35_);
-#line 650 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp37_ = g_new0 (gchar*, _tmp36_ + 1);
-#line 650 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp38_ = _tmp37_;
-#line 650 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp38__length1 = _tmp36_;
-#line 650 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       id_card_set_services (_tmp34_, _tmp38_, _tmp36_);
-#line 650 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp38_ = (_vala_array_free (_tmp38_, _tmp38__length1, (GDestroyNotify) g_free), NULL);
-#line 3449 "moonshot-identity-management-view.c"
-                       {
-                               gint j = 0;
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               j = 0;
-#line 3454 "moonshot-identity-management-view.c"
+                               default:
                                {
-                                       gboolean _tmp39_ = FALSE;
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       _tmp39_ = TRUE;
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                       while (TRUE) {
-#line 3461 "moonshot-identity-management-view.c"
-                                               gint _tmp41_ = 0;
-                                               IdCard* _tmp42_ = NULL;
-                                               gchar** _tmp43_ = NULL;
-                                               gint _tmp43__length1 = 0;
-                                               gchar** _tmp44_ = NULL;
-                                               gint _tmp44__length1 = 0;
-                                               IdCard* _tmp45_ = NULL;
-                                               gchar** _tmp46_ = NULL;
-                                               gint _tmp46__length1 = 0;
-                                               gchar** _tmp47_ = NULL;
-                                               gint _tmp47__length1 = 0;
-                                               gint _tmp48_ = 0;
-                                               GSList* _tmp49_ = NULL;
-                                               gint _tmp50_ = 0;
-                                               gconstpointer _tmp51_ = NULL;
-                                               gchar* _tmp52_ = NULL;
-                                               gchar* _tmp53_ = NULL;
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               if (!_tmp39_) {
-#line 3481 "moonshot-identity-management-view.c"
-                                                       gint _tmp40_ = 0;
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                       _tmp40_ = j;
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                       j = _tmp40_ + 1;
-#line 3487 "moonshot-identity-management-view.c"
-                                               }
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp39_ = FALSE;
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp41_ = j;
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp42_ = idcard;
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp43_ = id_card_get_services (_tmp42_, &_tmp43__length1);
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp44_ = _tmp43_;
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp44__length1 = _tmp43__length1;
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               if (!(_tmp41_ < _tmp44__length1)) {
-#line 651 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                                       break;
-#line 3505 "moonshot-identity-management-view.c"
-                                               }
-#line 653 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp45_ = idcard;
-#line 653 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp46_ = id_card_get_services (_tmp45_, &_tmp46__length1);
-#line 653 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp47_ = _tmp46_;
-#line 653 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp47__length1 = _tmp46__length1;
-#line 653 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp48_ = j;
-#line 653 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp49_ = services;
-#line 653 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp50_ = j;
-#line 653 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp51_ = g_slist_nth_data (_tmp49_, (guint) _tmp50_);
-#line 653 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp52_ = g_strdup ((const gchar*) _tmp51_);
-#line 653 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _g_free0 (_tmp47_[_tmp48_]);
-#line 653 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp47_[_tmp48_] = _tmp52_;
-#line 653 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                                               _tmp53_ = _tmp47_[_tmp48_];
-#line 3531 "moonshot-identity-management-view.c"
-                                       }
+#line 577 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       identity = NULL;
+#line 578 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       break;
+#line 3426 "moonshot-identity-management-view.c"
                                }
                        }
-#line 656 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp54_ = self->identities_manager;
-#line 656 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp55_ = idcard;
-#line 656 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp56_ = identity_manager_model_update_card (_tmp54_, _tmp55_);
-#line 656 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp57_ = _tmp56_;
-#line 656 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _g_object_unref0 (_tmp57_);
-#line 640 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       __g_slist_free__g_free0_0 (services);
-#line 3547 "moonshot-identity-management-view.c"
+#line 581 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp48_ = dialog;
+#line 581 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       add_password_dialog_clear_password (_tmp48_);
+#line 582 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp49_ = dialog;
+#line 582 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       gtk_object_destroy ((GtkObject*) _tmp49_);
+#line 558 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (dialog);
+#line 3439 "moonshot-identity-management-view.c"
                }
-#line 637 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               _g_object_unref0 (idcard);
-#line 3551 "moonshot-identity-management-view.c"
        }
-#line 622 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (dialog);
-#line 622 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_free0 (candidate);
-#line 3557 "moonshot-identity-management-view.c"
-}
-
-
-static void _____lambda5__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-#line 622 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       ____lambda5_ ((IdentityManagerView*) self, _sender);
-#line 3564 "moonshot-identity-management-view.c"
+#line 585 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       result = retval;
+#line 585 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       return result;
+#line 3446 "moonshot-identity-management-view.c"
 }
 
 
-static void identity_manager_view_fill_services_vbox (IdentityManagerView* self, IdCard* id_card) {
-       gint i = 0;
-       gint n_columns = 0;
-       IdCard* _tmp0_ = NULL;
-       gchar** _tmp1_ = NULL;
-       gint _tmp1__length1 = 0;
-       gchar** _tmp2_ = NULL;
-       gint _tmp2__length1 = 0;
-       GtkTable* services_table = NULL;
-       gint _tmp3_ = 0;
-       GtkTable* _tmp4_ = NULL;
-       GtkTable* _tmp5_ = NULL;
-       GtkTable* _tmp6_ = NULL;
-       GtkVBox* _tmp7_ = NULL;
-       GtkTable* _tmp8_ = NULL;
-       GHashTable* _tmp9_ = NULL;
-       IdCard* _tmp10_ = NULL;
-       gchar** _tmp11_ = NULL;
-       gint _tmp11__length1 = 0;
-       gchar** _tmp12_ = NULL;
-       gint _tmp12__length1 = 0;
-       GtkVBox* _tmp33_ = NULL;
-#line 597 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+static void identity_manager_view_send_identity_cb (IdentityManagerView* self, IdCard* id) {
+       gboolean _tmp0_ = FALSE;
+       IdentityRequest* request = NULL;
+       GQueue* _tmp1_ = NULL;
+       gpointer _tmp2_ = NULL;
+       IdCard* identity = NULL;
+       IdCard* _tmp3_ = NULL;
+       IdentityRequest* _tmp4_ = NULL;
+       IdentityManagerModel* _tmp5_ = NULL;
+       IdCard* _tmp6_ = NULL;
+       GtkButton* _tmp7_ = NULL;
+       gboolean _tmp8_ = FALSE;
+       GtkTreeModelFilter* _tmp18_ = NULL;
+       gboolean _tmp19_ = FALSE;
+       IdCard* _tmp20_ = NULL;
+       IdentityRequest* _tmp26_ = NULL;
+       IdCard* _tmp27_ = NULL;
+       GtkCheckButton* _tmp28_ = NULL;
+       gboolean _tmp29_ = FALSE;
+       gboolean _tmp30_ = FALSE;
+       GtkCheckButton* _tmp31_ = NULL;
+       GtkCheckButton* _tmp32_ = NULL;
+#line 588 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 597 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (id_card != NULL);
-#line 599 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       i = 0;
-#line 600 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = id_card;
-#line 600 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = id_card_get_services (_tmp0_, &_tmp1__length1);
-#line 600 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = _tmp1_;
-#line 600 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2__length1 = _tmp1__length1;
+#line 588 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (id != NULL);
+#line 590 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = identity_manager_view_selection_in_progress (self);
+#line 590 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (_tmp0_);
+#line 592 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = self->priv->request_queue;
+#line 592 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = g_queue_pop_head (_tmp1_);
+#line 592 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       request = (IdentityRequest*) _tmp2_;
+#line 593 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = id;
+#line 593 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = request;
+#line 593 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp5_ = self->identities_manager;
+#line 593 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp6_ = identity_manager_view_check_add_password (self, _tmp3_, _tmp4_, _tmp5_);
+#line 593 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity = _tmp6_;
+#line 594 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_ = self->priv->send_button;
+#line 594 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_widget_set_sensitive ((GtkWidget*) _tmp7_, FALSE);
+#line 596 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->candidates = NULL;
+#line 598 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp8_ = identity_manager_view_selection_in_progress (self);
+#line 598 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (!_tmp8_) {
+#line 3506 "moonshot-identity-management-view.c"
+               IdentityManagerApp* _tmp9_ = NULL;
+               gboolean _tmp10_ = FALSE;
 #line 600 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       n_columns = _tmp2__length1;
-#line 602 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = n_columns;
+               self->priv->candidates = NULL;
+#line 601 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               identity_manager_view_clear_selection_prompts (self);
 #line 602 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = (GtkTable*) gtk_table_new ((guint) _tmp3_, (guint) 2, FALSE);
+               _tmp9_ = self->parent_app;
 #line 602 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp4_);
+               _tmp10_ = _tmp9_->explicitly_launched;
 #line 602 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       services_table = _tmp4_;
-#line 603 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp5_ = services_table;
-#line 603 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_table_set_col_spacings (_tmp5_, (guint) 10);
-#line 604 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp6_ = services_table;
-#line 604 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_table_set_row_spacings (_tmp6_, (guint) 10);
-#line 605 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_ = self->priv->services_internal_vbox;
-#line 605 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp8_ = services_table;
-#line 605 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_container_add ((GtkContainer*) _tmp7_, (GtkWidget*) _tmp8_);
+               if (!_tmp10_) {
 #line 607 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp9_ = self->priv->service_button_map;
-#line 607 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_hash_table_remove_all (_tmp9_);
-#line 609 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_ = id_card;
-#line 609 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp11_ = id_card_get_services (_tmp10_, &_tmp11__length1);
-#line 609 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp12_ = _tmp11_;
-#line 609 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp12__length1 = _tmp11__length1;
-#line 3640 "moonshot-identity-management-view.c"
-       {
-               gchar** service_collection = NULL;
-               gint service_collection_length1 = 0;
-               gint _service_collection_size_ = 0;
-               gint service_it = 0;
-#line 609 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               service_collection = _tmp12_;
-#line 609 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               service_collection_length1 = _tmp12__length1;
-#line 609 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               for (service_it = 0; service_it < _tmp12__length1; service_it = service_it + 1) {
-#line 3652 "moonshot-identity-management-view.c"
-                       gchar* _tmp13_ = NULL;
-                       gchar* service = NULL;
-#line 609 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       _tmp13_ = g_strdup (service_collection[service_it]);
-#line 609 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                       service = _tmp13_;
-#line 3659 "moonshot-identity-management-view.c"
-                       {
-                               GtkLabel* label = NULL;
-                               const gchar* _tmp14_ = NULL;
-                               GtkLabel* _tmp15_ = NULL;
-                               GtkLabel* _tmp16_ = NULL;
-                               GtkButton* remove_button = NULL;
-                               GtkButton* _tmp17_ = NULL;
-                               GHashTable* _tmp18_ = NULL;
-                               GtkButton* _tmp19_ = NULL;
-                               GtkButton* _tmp20_ = NULL;
-                               const gchar* _tmp21_ = NULL;
-                               gchar* _tmp22_ = NULL;
-                               GtkButton* _tmp23_ = NULL;
-                               GtkTable* _tmp24_ = NULL;
-                               GtkLabel* _tmp25_ = NULL;
-                               gint _tmp26_ = 0;
-                               gint _tmp27_ = 0;
-                               GtkTable* _tmp28_ = NULL;
-                               GtkButton* _tmp29_ = NULL;
-                               gint _tmp30_ = 0;
-                               gint _tmp31_ = 0;
-                               gint _tmp32_ = 0;
-#line 611 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp14_ = service;
+                       gtk_widget_hide ((GtkWidget*) self);
+#line 3521 "moonshot-identity-management-view.c"
+               }
+       } else {
+               IdentityRequest* next = NULL;
+               GQueue* _tmp11_ = NULL;
+               gconstpointer _tmp12_ = NULL;
+               IdentityRequest* _tmp13_ = NULL;
+               IdentityRequest* _tmp14_ = NULL;
+               GSList* _tmp15_ = NULL;
+               IdentityRequest* _tmp16_ = NULL;
+               const gchar* _tmp17_ = NULL;
+#line 610 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp11_ = self->priv->request_queue;
+#line 610 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp12_ = g_queue_peek_head (_tmp11_);
+#line 610 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp13_ = _g_object_ref0 ((IdentityRequest*) _tmp12_);
+#line 610 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               next = _tmp13_;
 #line 611 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp15_ = (GtkLabel*) gtk_label_new (_tmp14_);
+               _tmp14_ = next;
 #line 611 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               g_object_ref_sink (_tmp15_);
+               _tmp15_ = _tmp14_->candidates;
 #line 611 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               label = _tmp15_;
+               self->priv->candidates = _tmp15_;
 #line 612 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp16_ = label;
+               _tmp16_ = next;
 #line 612 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               gtk_misc_set_alignment ((GtkMisc*) _tmp16_, (gfloat) 0, (gfloat) 0.5);
-#line 614 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp17_ = (GtkButton*) gtk_button_new_from_stock (GTK_STOCK_REMOVE);
+               _tmp17_ = _tmp16_->service;
+#line 612 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               identity_manager_view_set_prompting_service (self, _tmp17_);
+#line 598 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (next);
+#line 3554 "moonshot-identity-management-view.c"
+       }
 #line 614 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               g_object_ref_sink (_tmp17_);
+       _tmp18_ = self->priv->filter;
 #line 614 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               remove_button = _tmp17_;
+       gtk_tree_model_filter_refilter (_tmp18_);
+#line 615 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_redraw_id_card_widgets (self);
+#line 617 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp20_ = identity;
+#line 617 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp20_ != NULL) {
+#line 3566 "moonshot-identity-management-view.c"
+               IdCard* _tmp21_ = NULL;
+               gboolean _tmp22_ = FALSE;
+#line 617 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp21_ = identity;
+#line 617 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp22_ = id_card_is_no_identity (_tmp21_);
+#line 617 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp19_ = !_tmp22_;
+#line 3575 "moonshot-identity-management-view.c"
+       } else {
+#line 617 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp19_ = FALSE;
+#line 3579 "moonshot-identity-management-view.c"
+       }
+#line 617 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp19_) {
+#line 3583 "moonshot-identity-management-view.c"
+               IdentityManagerApp* _tmp23_ = NULL;
+               IdCard* _tmp24_ = NULL;
+               IdCard* _tmp25_ = NULL;
+#line 618 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp23_ = self->parent_app;
+#line 618 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp24_ = identity;
+#line 618 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp25_ = _g_object_ref0 (_tmp24_);
+#line 618 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (_tmp23_->default_id_card);
+#line 618 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp23_->default_id_card = _tmp25_;
+#line 3597 "moonshot-identity-management-view.c"
+       }
 #line 620 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp18_ = self->priv->service_button_map;
+       _tmp26_ = request;
 #line 620 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp19_ = remove_button;
+       _tmp27_ = identity;
 #line 620 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp20_ = _g_object_ref0 (_tmp19_);
+       _tmp28_ = self->remember_identity_binding;
 #line 620 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp21_ = service;
+       _tmp29_ = gtk_toggle_button_get_active ((GtkToggleButton*) _tmp28_);
 #line 620 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp22_ = g_strdup (_tmp21_);
+       _tmp30_ = _tmp29_;
 #line 620 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               g_hash_table_insert (_tmp18_, _tmp20_, _tmp22_);
+       identity_request_return_identity (_tmp26_, _tmp27_, _tmp30_);
 #line 622 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp23_ = remove_button;
+       _tmp31_ = self->remember_identity_binding;
 #line 622 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               g_signal_connect_object (_tmp23_, "clicked", (GCallback) _____lambda5__gtk_button_clicked, self, 0);
-#line 661 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp24_ = services_table;
-#line 661 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp25_ = label;
-#line 661 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp26_ = i;
-#line 661 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp27_ = i;
-#line 661 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               gtk_table_attach_defaults (_tmp24_, (GtkWidget*) _tmp25_, (guint) 0, (guint) 1, (guint) _tmp26_, (guint) (_tmp27_ + 1));
-#line 662 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp28_ = services_table;
-#line 662 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp29_ = remove_button;
-#line 662 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp30_ = i;
-#line 662 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp31_ = i;
-#line 662 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               gtk_table_attach_defaults (_tmp28_, (GtkWidget*) _tmp29_, (guint) 1, (guint) 2, (guint) _tmp30_, (guint) (_tmp31_ + 1));
-#line 663 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _tmp32_ = i;
-#line 663 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               i = _tmp32_ + 1;
-#line 609 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _g_object_unref0 (remove_button);
-#line 609 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _g_object_unref0 (label);
-#line 609 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-                               _g_free0 (service);
-#line 3746 "moonshot-identity-management-view.c"
-                       }
-               }
+       gtk_toggle_button_set_active ((GtkToggleButton*) _tmp31_, TRUE);
+#line 623 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp32_ = self->remember_identity_binding;
+#line 623 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_widget_hide ((GtkWidget*) _tmp32_);
+#line 588 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (identity);
+#line 588 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (request);
+#line 3623 "moonshot-identity-management-view.c"
+}
+
+
+static Block3Data* block3_data_ref (Block3Data* _data3_) {
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_atomic_int_inc (&_data3_->_ref_count_);
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       return _data3_;
+#line 3632 "moonshot-identity-management-view.c"
+}
+
+
+static void block3_data_unref (void * _userdata_) {
+       Block3Data* _data3_;
+       _data3_ = (Block3Data*) _userdata_;
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
+#line 3641 "moonshot-identity-management-view.c"
+               IdentityManagerView* self;
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               self = _data3_->self;
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (_data3_->about);
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (self);
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               g_slice_free (Block3Data, _data3_);
+#line 3651 "moonshot-identity-management-view.c"
        }
-#line 665 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp33_ = self->priv->services_internal_vbox;
-#line 665 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_widget_show_all ((GtkWidget*) _tmp33_);
-#line 597 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (services_table);
-#line 3756 "moonshot-identity-management-view.c"
+}
+
+
+static void __lambda6_ (Block3Data* _data3_, GtkDialog* a, gint b) {
+       IdentityManagerView* self;
+#line 675 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self = _data3_->self;
+#line 675 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (a != NULL);
+#line 675 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_object_destroy ((GtkObject*) _data3_->about);
+#line 3664 "moonshot-identity-management-view.c"
+}
+
+
+static void ___lambda6__gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) {
+#line 675 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       __lambda6_ (self, _sender, response_id);
+#line 3671 "moonshot-identity-management-view.c"
 }
 
 
 static void identity_manager_view_on_about_action (IdentityManagerView* self) {
-       gchar** authors = NULL;
-       gchar* _tmp0_ = NULL;
-       gchar* _tmp1_ = NULL;
-       gchar* _tmp2_ = NULL;
-       gchar** _tmp3_ = NULL;
-       gint authors_length1 = 0;
-       gint _authors_size_ = 0;
+       Block3Data* _data3_;
        gchar* copyright = NULL;
-       gchar* _tmp4_ = NULL;
+       gint _tmp0_ = 0;
+       gchar* _tmp1_ = NULL;
        gchar* license = NULL;
-       gchar* _tmp5_ = NULL;
+       gint _tmp2_ = 0;
+       gchar* _tmp3_ = NULL;
+       GtkAboutDialog* _tmp4_ = NULL;
+       const gchar* _tmp5_ = NULL;
        const gchar* _tmp6_ = NULL;
-       const gchar* _tmp7_ = NULL;
-       const gchar* _tmp8_ = NULL;
-#line 668 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 670 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = g_strdup ("Javier Jardón <jjardon@codethink.co.uk>");
-#line 670 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = g_strdup ("Sam Thursfield <samthursfield@codethink.co.uk>");
-#line 670 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = g_strdup ("Alberto Ruiz <alberto.ruiz@codethink.co.uk>");
-#line 670 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = g_new0 (gchar*, 4 + 1);
-#line 670 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_[0] = _tmp0_;
-#line 670 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_[1] = _tmp1_;
-#line 670 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_[2] = _tmp2_;
-#line 670 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_[3] = NULL;
-#line 670 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       authors = _tmp3_;
-#line 670 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       authors_length1 = 4;
-#line 670 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _authors_size_ = authors_length1;
-#line 677 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = g_strdup ("Copyright 2011 JANET");
-#line 677 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       copyright = _tmp4_;
-#line 679 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp5_ = g_strdup ("\n" \
-"Copyright (c) 2011, JANET(UK)\n" \
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _data3_ = g_slice_new0 (Block3Data);
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _data3_->_ref_count_ = 1;
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _data3_->self = g_object_ref (self);
+#line 628 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = identity_manager_view_LATEST_EDIT_YEAR;
+#line 628 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = g_strdup_printf ("Copyright (c) 2011, %d JANET", _tmp0_);
+#line 628 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       copyright = _tmp1_;
+#line 630 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = identity_manager_view_LATEST_EDIT_YEAR;
+#line 630 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = g_strdup_printf ("\n" \
+"Copyright (c) 2011, %d JANET(UK)\n" \
 "All rights reserved.\n" \
 "\n" \
 "Redistribution and use in source and binary forms, with or without\n" \
@@ -3842,120 +3746,87 @@ static void identity_manager_view_on_about_action (IdentityManagerView* self) {
 "WAY\n" \
 "OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF" \
 "\n" \
-"SUCH DAMAGE.\n");
-#line 679 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       license = _tmp5_;
-#line 712 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp6_ = _ ("Moonshot project UI");
-#line 712 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_ = _ ("Visit the Moonshot project web site");
-#line 712 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp8_ = _ ("translator-credits");
-#line 712 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_show_about_dialog ((GtkWindow*) self, "comments", _tmp6_, "copyright", copyright, "website", PACKAGE_URL, "version", PACKAGE_VERSION, "license", license, "website-label", _tmp7_, "authors", authors, "translator-credits", _tmp8_, NULL, NULL);
+"SUCH DAMAGE.\n", _tmp2_);
+#line 630 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       license = _tmp3_;
+#line 663 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = (GtkAboutDialog*) gtk_about_dialog_new ();
+#line 663 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp4_);
+#line 663 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _data3_->about = _tmp4_;
+#line 665 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp5_ = _ ("Moonshot project UI");
+#line 665 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_about_dialog_set_comments (_data3_->about, _tmp5_);
+#line 666 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_about_dialog_set_copyright (_data3_->about, copyright);
+#line 667 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_about_dialog_set_website (_data3_->about, PACKAGE_URL);
 #line 668 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_free0 (license);
+       _tmp6_ = _ ("Visit the Moonshot project web site");
 #line 668 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_about_dialog_set_website_label (_data3_->about, _tmp6_);
+#line 671 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_about_dialog_set_version (_data3_->about, PACKAGE_VERSION);
+#line 672 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_about_dialog_set_license (_data3_->about, license);
+#line 673 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_window_set_modal ((GtkWindow*) _data3_->about, TRUE);
+#line 674 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_window_set_transient_for ((GtkWindow*) _data3_->about, (GtkWindow*) self);
+#line 675 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_signal_connect_data ((GtkDialog*) _data3_->about, "response", (GCallback) ___lambda6__gtk_dialog_response, block3_data_ref (_data3_), (GClosureNotify) block3_data_unref, 0);
+#line 676 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       set_bg_color ((GtkWidget*) _data3_->about);
+#line 678 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_dialog_run ((GtkDialog*) _data3_->about);
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (license);
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_free0 (copyright);
-#line 668 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       authors = (_vala_array_free (authors, authors_length1, (GDestroyNotify) g_free), NULL);
-#line 3821 "moonshot-identity-management-view.c"
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       block3_data_unref (_data3_);
+#line 626 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _data3_ = NULL;
+#line 3746 "moonshot-identity-management-view.c"
 }
 
 
 static void _vala_array_add1 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
-#line 732 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if ((*length) == (*size)) {
-#line 732 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               *size = (*size) ? (2 * (*size)) : 4;
-#line 732 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               *array = g_renew (GtkActionEntry, *array, *size);
-#line 3832 "moonshot-identity-management-view.c"
-       }
-#line 732 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       (*array)[(*length)++] = *value;
-#line 3836 "moonshot-identity-management-view.c"
-}
-
-
-static void _identity_manager_view_add_identity_manual_cb_gtk_action_callback (GtkAction* action, gpointer self) {
-#line 733 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_add_identity_manual_cb ((IdentityManagerView*) self);
-#line 3843 "moonshot-identity-management-view.c"
-}
-
-
-static void _vala_array_add2 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
-#line 743 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if ((*length) == (*size)) {
-#line 743 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               *size = (*size) ? (2 * (*size)) : 4;
-#line 743 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               *array = g_renew (GtkActionEntry, *array, *size);
-#line 3854 "moonshot-identity-management-view.c"
-       }
-#line 743 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       (*array)[(*length)++] = *value;
-#line 3858 "moonshot-identity-management-view.c"
-}
-
-
-static void _gtk_main_quit_gtk_action_callback (GtkAction* action, gpointer self) {
-#line 744 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_main_quit ();
-#line 3865 "moonshot-identity-management-view.c"
-}
-
-
-static void _vala_array_add3 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
-#line 754 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       if ((*length) == (*size)) {
-#line 754 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               *size = (*size) ? (2 * (*size)) : 4;
-#line 754 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               *array = g_renew (GtkActionEntry, *array, *size);
-#line 3876 "moonshot-identity-management-view.c"
-       }
-#line 754 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       (*array)[(*length)++] = *value;
-#line 3880 "moonshot-identity-management-view.c"
-}
-
-
-static void _vala_array_add4 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
-#line 760 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 691 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        if ((*length) == (*size)) {
-#line 760 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 691 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                *size = (*size) ? (2 * (*size)) : 4;
-#line 760 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 691 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                *array = g_renew (GtkActionEntry, *array, *size);
-#line 3891 "moonshot-identity-management-view.c"
+#line 3757 "moonshot-identity-management-view.c"
        }
-#line 760 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 691 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        (*array)[(*length)++] = *value;
-#line 3895 "moonshot-identity-management-view.c"
+#line 3761 "moonshot-identity-management-view.c"
 }
 
 
 static void _identity_manager_view_on_about_action_gtk_action_callback (GtkAction* action, gpointer self) {
-#line 761 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 693 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        identity_manager_view_on_about_action ((IdentityManagerView*) self);
-#line 3902 "moonshot-identity-management-view.c"
+#line 3768 "moonshot-identity-management-view.c"
 }
 
 
-static void _vala_array_add5 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
-#line 771 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+static void _vala_array_add2 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 705 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        if ((*length) == (*size)) {
-#line 771 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 705 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                *size = (*size) ? (2 * (*size)) : 4;
-#line 771 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 705 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                *array = g_renew (GtkActionEntry, *array, *size);
-#line 3913 "moonshot-identity-management-view.c"
+#line 3779 "moonshot-identity-management-view.c"
        }
-#line 771 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 705 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        (*array)[(*length)++] = *value;
-#line 3917 "moonshot-identity-management-view.c"
+#line 3783 "moonshot-identity-management-view.c"
 }
 
 
@@ -3965,168 +3836,109 @@ static GtkActionEntry* identity_manager_view_create_actions (IdentityManagerView
        GtkActionEntry* _tmp0_ = NULL;
        gint actions_length1 = 0;
        gint _actions_size_ = 0;
-       GtkActionEntry filemenu = {0};
+       GtkActionEntry helpmenu = {0};
        GtkActionEntry _tmp1_ = {0};
-       GtkActionEntry* _tmp2_ = NULL;
-       gint _tmp2__length1 = 0;
-       GtkActionEntry _tmp3_ = {0};
-       GtkActionEntry add = {0};
-       GtkActionEntry _tmp4_ = {0};
+       GtkActionEntry _tmp2_ = {0};
+       const gchar* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
        GtkActionEntry* _tmp5_ = NULL;
        gint _tmp5__length1 = 0;
        GtkActionEntry _tmp6_ = {0};
-       GtkActionEntry quit = {0};
+       GtkActionEntry about = {0};
        GtkActionEntry _tmp7_ = {0};
-       GtkActionEntry* _tmp8_ = NULL;
-       gint _tmp8__length1 = 0;
-       GtkActionEntry _tmp9_ = {0};
-       GtkActionEntry helpmenu = {0};
-       GtkActionEntry _tmp10_ = {0};
+       GtkActionEntry _tmp8_ = {0};
+       const gchar* _tmp9_ = NULL;
+       const gchar* _tmp10_ = NULL;
        GtkActionEntry* _tmp11_ = NULL;
        gint _tmp11__length1 = 0;
        GtkActionEntry _tmp12_ = {0};
-       GtkActionEntry about = {0};
-       GtkActionEntry _tmp13_ = {0};
-       GtkActionEntry* _tmp14_ = NULL;
-       gint _tmp14__length1 = 0;
-       GtkActionEntry _tmp15_ = {0};
-       GtkActionEntry* _tmp16_ = NULL;
-       gint _tmp16__length1 = 0;
-#line 725 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       GtkActionEntry* _tmp13_ = NULL;
+       gint _tmp13__length1 = 0;
+#line 681 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_val_if_fail (self != NULL, NULL);
-#line 726 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 682 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp0_ = g_new0 (GtkActionEntry, 0);
-#line 726 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 682 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        actions = _tmp0_;
-#line 726 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 682 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        actions_length1 = 0;
-#line 726 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 682 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _actions_size_ = actions_length1;
-#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_.name = "FileMenuAction";
-#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 684 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_.name = "HelpMenuAction";
+#line 684 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp1_.stock_id = NULL;
-#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_.label = "_File";
-#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 684 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_.label = "_Help";
+#line 684 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp1_.accelerator = NULL;
-#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 684 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp1_.tooltip = NULL;
-#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 684 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp1_.callback = (GCallback) NULL;
-#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       filemenu = _tmp1_;
-#line 732 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = actions;
-#line 732 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2__length1 = actions_length1;
-#line 732 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = filemenu;
-#line 732 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _vala_array_add1 (&actions, &actions_length1, &_actions_size_, &_tmp3_);
-#line 733 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_.name = "AddIdCardAction";
-#line 733 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_.stock_id = GTK_STOCK_ADD;
-#line 733 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_.label = "Add ID Card";
-#line 733 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_.accelerator = NULL;
-#line 733 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_.tooltip = "Add a new ID Card";
-#line 733 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_.callback = (GCallback) _identity_manager_view_add_identity_manual_cb_gtk_action_callback;
-#line 733 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       add = _tmp4_;
-#line 743 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 684 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       helpmenu = _tmp1_;
+#line 690 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = helpmenu;
+#line 690 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = _tmp2_.label;
+#line 690 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = g_dgettext (NULL, _tmp3_);
+#line 690 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       helpmenu.label = _tmp4_;
+#line 691 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp5_ = actions;
-#line 743 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 691 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp5__length1 = actions_length1;
-#line 743 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp6_ = add;
-#line 743 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _vala_array_add2 (&actions, &actions_length1, &_actions_size_, &_tmp6_);
-#line 744 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_.name = "QuitAction";
-#line 744 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_.stock_id = GTK_STOCK_QUIT;
-#line 744 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_.label = "Quit";
-#line 744 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_.accelerator = "<control>Q";
-#line 744 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_.tooltip = "Quit the application";
-#line 744 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_.callback = (GCallback) _gtk_main_quit_gtk_action_callback;
-#line 744 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       quit = _tmp7_;
-#line 754 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp8_ = actions;
-#line 754 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp8__length1 = actions_length1;
-#line 754 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp9_ = quit;
-#line 754 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _vala_array_add3 (&actions, &actions_length1, &_actions_size_, &_tmp9_);
-#line 756 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_.name = "HelpMenuAction";
-#line 756 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_.stock_id = NULL;
-#line 756 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_.label = "_Help";
-#line 756 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_.accelerator = NULL;
-#line 756 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_.tooltip = NULL;
-#line 756 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_.callback = (GCallback) NULL;
-#line 756 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       helpmenu = _tmp10_;
-#line 760 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 691 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp6_ = helpmenu;
+#line 691 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _vala_array_add1 (&actions, &actions_length1, &_actions_size_, &_tmp6_);
+#line 693 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_.name = "AboutAction";
+#line 693 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_.stock_id = GTK_STOCK_ABOUT;
+#line 693 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_.label = "About";
+#line 693 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_.accelerator = NULL;
+#line 693 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_.tooltip = "About this application";
+#line 693 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_.callback = (GCallback) _identity_manager_view_on_about_action_gtk_action_callback;
+#line 693 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       about = _tmp7_;
+#line 704 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp8_ = about;
+#line 704 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp9_ = _tmp8_.label;
+#line 704 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp10_ = g_dgettext (NULL, _tmp9_);
+#line 704 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       about.label = _tmp10_;
+#line 705 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp11_ = actions;
-#line 760 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 705 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp11__length1 = actions_length1;
-#line 760 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp12_ = helpmenu;
-#line 760 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _vala_array_add4 (&actions, &actions_length1, &_actions_size_, &_tmp12_);
-#line 761 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp13_.name = "AboutAction";
-#line 761 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp13_.stock_id = GTK_STOCK_ABOUT;
-#line 761 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp13_.label = "About";
-#line 761 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp13_.accelerator = NULL;
-#line 761 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp13_.tooltip = "About this application";
-#line 761 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp13_.callback = (GCallback) _identity_manager_view_on_about_action_gtk_action_callback;
-#line 761 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       about = _tmp13_;
-#line 771 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp14_ = actions;
-#line 771 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp14__length1 = actions_length1;
-#line 771 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp15_ = about;
-#line 771 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _vala_array_add5 (&actions, &actions_length1, &_actions_size_, &_tmp15_);
-#line 773 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp16_ = actions;
-#line 773 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp16__length1 = actions_length1;
-#line 773 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 705 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp12_ = about;
+#line 705 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _vala_array_add2 (&actions, &actions_length1, &_actions_size_, &_tmp12_);
+#line 707 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp13_ = actions;
+#line 707 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp13__length1 = actions_length1;
+#line 707 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        if (result_length1) {
-#line 773 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               *result_length1 = _tmp16__length1;
-#line 4082 "moonshot-identity-management-view.c"
+#line 707 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               *result_length1 = _tmp13__length1;
+#line 3889 "moonshot-identity-management-view.c"
        }
-#line 773 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       result = _tmp16_;
-#line 773 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 707 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       result = _tmp13_;
+#line 707 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        return result;
-#line 4088 "moonshot-identity-management-view.c"
+#line 3895 "moonshot-identity-management-view.c"
 }
 
 
@@ -4138,710 +3950,1025 @@ static void identity_manager_view_create_ui_manager (IdentityManagerView* self)
        GtkActionEntry* _tmp3_ = NULL;
        gint _tmp3__length1 = 0;
        GtkUIManager* _tmp4_ = NULL;
-       GtkUIManager* _tmp9_ = NULL;
+       GtkUIManager* _tmp14_ = NULL;
        GError * _inner_error_ = NULL;
-#line 777 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 711 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 779 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 713 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp0_ = gtk_action_group_new ("GeneralActionGroup");
-#line 779 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 713 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        action_group = _tmp0_;
-#line 780 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 714 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp2_ = identity_manager_view_create_actions (self, &_tmp1_);
-#line 780 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 714 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp3_ = _tmp2_;
-#line 780 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 714 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp3__length1 = _tmp1_;
-#line 780 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 714 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        gtk_action_group_add_actions (action_group, _tmp3_, _tmp1_, self);
-#line 780 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 714 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp3_ = (g_free (_tmp3_), NULL);
-#line 781 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 715 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp4_ = self->priv->ui_manager;
-#line 781 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 715 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        gtk_ui_manager_insert_action_group (_tmp4_, action_group, 0);
-#line 4122 "moonshot-identity-management-view.c"
+#line 3929 "moonshot-identity-management-view.c"
        {
                GtkUIManager* _tmp5_ = NULL;
-#line 784 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 718 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp5_ = self->priv->ui_manager;
-#line 784 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-               gtk_ui_manager_add_ui_from_string (_tmp5_, IDENTITY_MANAGER_VIEW_layout, (gssize) (-1), &_inner_error_);
-#line 784 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 718 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               gtk_ui_manager_add_ui_from_string (_tmp5_, IDENTITY_MANAGER_VIEW_menu_layout, (gssize) -1, &_inner_error_);
+#line 718 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 4131 "moonshot-identity-management-view.c"
-                       goto __catch4_g_error;
+#line 3938 "moonshot-identity-management-view.c"
+                       goto __catch5_g_error;
                }
        }
-       goto __finally4;
-       __catch4_g_error:
+       goto __finally5;
+       __catch5_g_error:
        {
                GError* e = NULL;
                FILE* _tmp6_ = NULL;
                GError* _tmp7_ = NULL;
                const gchar* _tmp8_ = NULL;
-#line 782 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               MoonshotLogger* _tmp9_ = NULL;
+               GError* _tmp10_ = NULL;
+               const gchar* _tmp11_ = NULL;
+               gchar* _tmp12_ = NULL;
+               gchar* _tmp13_ = NULL;
+#line 716 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                e = _inner_error_;
-#line 782 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 716 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _inner_error_ = NULL;
-#line 788 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 722 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp6_ = stderr;
-#line 788 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 722 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp7_ = e;
-#line 788 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 722 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _tmp8_ = _tmp7_->message;
-#line 788 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 722 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                fprintf (_tmp6_, "%s\n", _tmp8_);
-#line 782 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 723 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp9_ = identity_manager_view_logger;
+#line 723 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp10_ = e;
+#line 723 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp11_ = _tmp10_->message;
+#line 723 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp12_ = g_strconcat ("create_ui_manager: Caught error: ", _tmp11_, NULL);
+#line 723 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp13_ = _tmp12_;
+#line 723 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               moonshot_logger_error (_tmp9_, _tmp13_, NULL);
+#line 723 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_free0 (_tmp13_);
+#line 716 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _g_error_free0 (e);
-#line 4156 "moonshot-identity-management-view.c"
+#line 3982 "moonshot-identity-management-view.c"
        }
-       __finally4:
-#line 782 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       __finally5:
+#line 716 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 782 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 716 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                _g_object_unref0 (action_group);
-#line 782 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 716 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 782 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 716 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                g_clear_error (&_inner_error_);
-#line 782 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 716 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
                return;
-#line 4169 "moonshot-identity-management-view.c"
+#line 3995 "moonshot-identity-management-view.c"
        }
-#line 790 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp9_ = self->priv->ui_manager;
-#line 790 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_ui_manager_ensure_update (_tmp9_);
-#line 777 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 725 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp14_ = self->priv->ui_manager;
+#line 725 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_ui_manager_ensure_update (_tmp14_);
+#line 711 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_object_unref0 (action_group);
-#line 4177 "moonshot-identity-management-view.c"
-}
-
-
-static void _identity_manager_view_search_entry_icon_press_cb_gtk_entry_icon_press (GtkEntry* _sender, GtkEntryIconPosition p0, GdkEvent* p1, gpointer self) {
-#line 815 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_search_entry_icon_press_cb ((IdentityManagerView*) self, p0, p1);
-#line 4184 "moonshot-identity-management-view.c"
+#line 4003 "moonshot-identity-management-view.c"
 }
 
 
 static void _identity_manager_view_search_entry_text_changed_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
-#line 816 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 762 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        identity_manager_view_search_entry_text_changed_cb ((IdentityManagerView*) self);
-#line 4191 "moonshot-identity-management-view.c"
+#line 4010 "moonshot-identity-management-view.c"
 }
 
 
 static gboolean _identity_manager_view_search_entry_key_press_event_cb_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
        gboolean result;
        result = identity_manager_view_search_entry_key_press_event_cb ((IdentityManagerView*) self, event);
-#line 817 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 763 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        return result;
-#line 4200 "moonshot-identity-management-view.c"
+#line 4019 "moonshot-identity-management-view.c"
+}
+
+
+static void __lambda7_ (IdentityManagerView* self, GtkButton* w) {
+#line 800 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (w != NULL);
+#line 800 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_add_identity_cb (self);
+#line 4028 "moonshot-identity-management-view.c"
+}
+
+
+static void ___lambda7__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 800 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       __lambda7_ ((IdentityManagerView*) self, _sender);
+#line 4035 "moonshot-identity-management-view.c"
+}
+
+
+static void __lambda13_ (IdentityManagerView* self, GtkButton* w) {
+#line 805 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (w != NULL);
+#line 805 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_import_identities_cb (self);
+#line 4044 "moonshot-identity-management-view.c"
+}
+
+
+static void ___lambda13__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 805 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       __lambda13_ ((IdentityManagerView*) self, _sender);
+#line 4051 "moonshot-identity-management-view.c"
+}
+
+
+static void __lambda14_ (IdentityManagerView* self, GtkButton* w) {
+       IdCard* _tmp0_ = NULL;
+#line 810 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (w != NULL);
+#line 810 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = self->priv->selected_card;
+#line 810 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_edit_identity_cb (self, _tmp0_);
+#line 4063 "moonshot-identity-management-view.c"
+}
+
+
+static void ___lambda14__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 810 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       __lambda14_ ((IdentityManagerView*) self, _sender);
+#line 4070 "moonshot-identity-management-view.c"
+}
+
+
+static void __lambda15_ (IdentityManagerView* self, GtkButton* w) {
+       IdCard* _tmp0_ = NULL;
+#line 816 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (w != NULL);
+#line 816 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = self->priv->selected_card;
+#line 816 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_remove_identity_cb (self, _tmp0_);
+#line 4082 "moonshot-identity-management-view.c"
+}
+
+
+static void ___lambda15__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 816 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       __lambda15_ ((IdentityManagerView*) self, _sender);
+#line 4089 "moonshot-identity-management-view.c"
+}
+
+
+static void __lambda16_ (IdentityManagerView* self, GtkButton* w) {
+       IdCard* _tmp0_ = NULL;
+#line 824 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (w != NULL);
+#line 824 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = self->priv->selected_card;
+#line 824 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_send_identity_cb (self, _tmp0_);
+#line 4101 "moonshot-identity-management-view.c"
 }
 
 
-static void _identity_manager_view_update_password_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
-#line 864 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_update_password_cb ((IdentityManagerView*) self);
-#line 4207 "moonshot-identity-management-view.c"
+static void ___lambda16__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 824 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       __lambda16_ ((IdentityManagerView*) self, _sender);
+#line 4108 "moonshot-identity-management-view.c"
 }
 
 
 static void identity_manager_view_build_ui (IdentityManagerView* self) {
-       GtkEntry* _tmp0_ = NULL;
-       GtkEntry* _tmp1_ = NULL;
-       const gchar* _tmp2_ = NULL;
-       const gchar* _tmp3_ = NULL;
-       GtkEntry* _tmp4_ = NULL;
-       GdkPixbuf* _tmp5_ = NULL;
-       GdkPixbuf* _tmp6_ = NULL;
-       GtkEntry* _tmp7_ = NULL;
-       const gchar* _tmp8_ = NULL;
-       GtkEntry* _tmp9_ = NULL;
-       GtkEntry* _tmp10_ = NULL;
-       GdkPixbuf* _tmp11_ = NULL;
-       GdkPixbuf* _tmp12_ = NULL;
+       gint num_rows = 0;
+       gint num_cols = 0;
+       gint button_width = 0;
+       GtkTable* top_table = NULL;
+       gint _tmp0_ = 0;
+       GtkTable* _tmp1_ = NULL;
+       GtkTable* _tmp2_ = NULL;
+       GtkAttachOptions fill_and_expand = 0;
+       GtkAttachOptions fill = 0;
+       gint row = 0;
+       GtkVBox* _tmp3_ = NULL;
+       GtkTable* _tmp4_ = NULL;
+       GtkVBox* _tmp5_ = NULL;
+       gint _tmp6_ = 0;
+       gint _tmp7_ = 0;
+       GtkAttachOptions _tmp8_ = 0;
+       GtkAttachOptions _tmp9_ = 0;
+       gint _tmp10_ = 0;
+       gchar* search_tooltip_text = NULL;
+       const gchar* _tmp11_ = NULL;
+       gchar* _tmp12_ = NULL;
        GtkEntry* _tmp13_ = NULL;
-       const gchar* _tmp14_ = NULL;
-       GtkEntry* _tmp15_ = NULL;
-       GtkEntry* _tmp16_ = NULL;
+       GtkEntry* _tmp14_ = NULL;
+       const gchar* _tmp15_ = NULL;
+       const gchar* _tmp16_ = NULL;
        GtkEntry* _tmp17_ = NULL;
-       GtkEntry* _tmp18_ = NULL;
-       CustomVBox* _tmp19_ = NULL;
-       GtkViewport* viewport = NULL;
-       GtkViewport* _tmp20_ = NULL;
-       CustomVBox* _tmp21_ = NULL;
-       GtkScrolledWindow* scroll = NULL;
-       GtkScrolledWindow* _tmp22_ = NULL;
+       GdkPixbuf* _tmp18_ = NULL;
+       GdkPixbuf* _tmp19_ = NULL;
+       GtkEntry* _tmp20_ = NULL;
+       const gchar* _tmp21_ = NULL;
+       GtkEntry* _tmp22_ = NULL;
        const gchar* _tmp23_ = NULL;
-       GtkLabel* _tmp24_ = NULL;
-       GtkLabel* _tmp25_ = NULL;
-       GtkVBox* vbox_left = NULL;
-       GtkVBox* _tmp26_ = NULL;
+       GtkEntry* _tmp24_ = NULL;
+       GtkEntry* _tmp25_ = NULL;
+       GtkEntry* _tmp26_ = NULL;
        GtkEntry* _tmp27_ = NULL;
-       GtkLabel* _tmp28_ = NULL;
-       const gchar* _tmp29_ = NULL;
-       GtkLabel* _tmp30_ = NULL;
-       GtkLabel* _tmp31_ = NULL;
-       GtkLabel* _tmp32_ = NULL;
+       gchar* search_label_markup = NULL;
+       const gchar* _tmp28_ = NULL;
+       gchar* _tmp29_ = NULL;
+       gchar* _tmp30_ = NULL;
+       gchar* _tmp31_ = NULL;
+       gchar* _tmp32_ = NULL;
+       GtkLabel* full_search_label = NULL;
        GtkLabel* _tmp33_ = NULL;
-       GtkLabel* login_vbox_title = NULL;
-       const gchar* _tmp34_ = NULL;
-       GtkLabel* _tmp35_ = NULL;
-       GtkLabel* issuer_label = NULL;
-       const gchar* _tmp36_ = NULL;
-       GtkLabel* _tmp37_ = NULL;
-       GtkEntry* _tmp38_ = NULL;
+       GtkLabel* _tmp34_ = NULL;
+       const gchar* _tmp35_ = NULL;
+       GtkLabel* _tmp36_ = NULL;
+       GtkVBox* search_vbox = NULL;
+       GtkVBox* _tmp37_ = NULL;
+       GtkVBox* _tmp38_ = NULL;
        GtkEntry* _tmp39_ = NULL;
-       GtkLabel* username_label = NULL;
-       const gchar* _tmp40_ = NULL;
-       GtkLabel* _tmp41_ = NULL;
-       GtkEntry* _tmp42_ = NULL;
-       GtkEntry* _tmp43_ = NULL;
-       GtkLabel* password_label = NULL;
-       const gchar* _tmp44_ = NULL;
+       GtkAlignment* search_spacer = NULL;
+       GtkAlignment* _tmp40_ = NULL;
+       GtkAlignment* _tmp41_ = NULL;
+       GtkVBox* _tmp42_ = NULL;
+       GtkAlignment* _tmp43_ = NULL;
+       GtkVBox* _tmp44_ = NULL;
        GtkLabel* _tmp45_ = NULL;
-       GtkEntry* _tmp46_ = NULL;
-       GtkEntry* _tmp47_ = NULL;
-       GtkEntry* _tmp48_ = NULL;
-       GtkEntry* _tmp49_ = NULL;
-       const gchar* _tmp50_ = NULL;
-       GtkCheckButton* _tmp51_ = NULL;
-       GtkCheckButton* _tmp52_ = NULL;
-       const gchar* _tmp53_ = NULL;
-       GtkButton* _tmp54_ = NULL;
-       GtkButton* _tmp55_ = NULL;
-       GtkEntry* _tmp56_ = NULL;
-       GtkEntry* _tmp57_ = NULL;
-       GtkEntry* _tmp58_ = NULL;
-       GtkEntry* _tmp59_ = NULL;
-       GtkTable* login_table = NULL;
-       GtkTable* _tmp60_ = NULL;
-       GtkEntry* _tmp61_ = NULL;
-       GtkEntry* _tmp62_ = NULL;
-       GtkEntry* _tmp63_ = NULL;
-       GtkCheckButton* _tmp64_ = NULL;
-       GtkButton* _tmp65_ = NULL;
-       GtkAlignment* login_vbox_alignment = NULL;
-       GtkAlignment* _tmp66_ = NULL;
-       GtkVBox* _tmp67_ = NULL;
-       GtkVBox* _tmp68_ = NULL;
-       GtkVBox* _tmp69_ = NULL;
-       GtkLabel* services_vbox_title = NULL;
-       const gchar* _tmp70_ = NULL;
-       GtkLabel* _tmp71_ = NULL;
-       GtkAlignment* services_vbox_alignment = NULL;
-       GtkAlignment* _tmp72_ = NULL;
-       GtkVBox* _tmp73_ = NULL;
-       GtkVBox* _tmp74_ = NULL;
-       GtkVBox* _tmp75_ = NULL;
-       GtkVBox* _tmp76_ = NULL;
-       GtkVBox* _tmp77_ = NULL;
-       GtkVBox* _tmp78_ = NULL;
-       GtkVBox* _tmp79_ = NULL;
-       GtkVBox* _tmp80_ = NULL;
-       GtkVBox* _tmp81_ = NULL;
-       GtkVBox* _tmp82_ = NULL;
-       GtkHBox* hbox = NULL;
-       GtkHBox* _tmp83_ = NULL;
-       GtkVBox* _tmp84_ = NULL;
+       GtkTable* _tmp46_ = NULL;
+       GtkVBox* _tmp47_ = NULL;
+       gint _tmp48_ = 0;
+       gint _tmp49_ = 0;
+       gint _tmp50_ = 0;
+       gint _tmp51_ = 0;
+       GtkAttachOptions _tmp52_ = 0;
+       GtkAttachOptions _tmp53_ = 0;
+       gint _tmp54_ = 0;
+       CustomVBox* _tmp55_ = NULL;
+       GtkViewport* viewport = NULL;
+       GtkViewport* _tmp56_ = NULL;
+       GtkViewport* _tmp57_ = NULL;
+       GtkViewport* _tmp58_ = NULL;
+       GtkViewport* _tmp59_ = NULL;
+       CustomVBox* _tmp60_ = NULL;
+       GtkScrolledWindow* id_scrollwin = NULL;
+       GtkScrolledWindow* _tmp61_ = NULL;
+       GtkScrolledWindow* _tmp62_ = NULL;
+       GtkScrolledWindow* _tmp63_ = NULL;
+       GtkScrolledWindow* _tmp64_ = NULL;
+       GtkViewport* _tmp65_ = NULL;
+       GtkTable* _tmp66_ = NULL;
+       GtkScrolledWindow* _tmp67_ = NULL;
+       gint _tmp68_ = 0;
+       gint _tmp69_ = 0;
+       gint _tmp70_ = 0;
+       GtkAttachOptions _tmp71_ = 0;
+       GtkAttachOptions _tmp72_ = 0;
+       const gchar* _tmp73_ = NULL;
+       GtkCheckButton* _tmp74_ = NULL;
+       GtkCheckButton* _tmp75_ = NULL;
+       GtkTable* _tmp76_ = NULL;
+       GtkCheckButton* _tmp77_ = NULL;
+       gint _tmp78_ = 0;
+       gint _tmp79_ = 0;
+       gint _tmp80_ = 0;
+       GtkAttachOptions _tmp81_ = 0;
+       GtkAttachOptions _tmp82_ = 0;
+       GtkButton* add_button = NULL;
+       const gchar* _tmp83_ = NULL;
+       GtkButton* _tmp84_ = NULL;
+       GtkButton* _tmp85_ = NULL;
+       GtkTable* _tmp86_ = NULL;
+       GtkButton* _tmp87_ = NULL;
+       GtkWidget* _tmp88_ = NULL;
+       GtkWidget* _tmp89_ = NULL;
+       gint _tmp90_ = 0;
+       gint _tmp91_ = 0;
+       gint _tmp92_ = 0;
+       gint _tmp93_ = 0;
+       gint _tmp94_ = 0;
+       GtkAttachOptions _tmp95_ = 0;
+       GtkAttachOptions _tmp96_ = 0;
+       gint _tmp97_ = 0;
+       GtkButton* import_button = NULL;
+       const gchar* _tmp98_ = NULL;
+       GtkButton* _tmp99_ = NULL;
+       GtkButton* _tmp100_ = NULL;
+       GtkTable* _tmp101_ = NULL;
+       GtkButton* _tmp102_ = NULL;
+       GtkWidget* _tmp103_ = NULL;
+       GtkWidget* _tmp104_ = NULL;
+       gint _tmp105_ = 0;
+       gint _tmp106_ = 0;
+       gint _tmp107_ = 0;
+       gint _tmp108_ = 0;
+       gint _tmp109_ = 0;
+       GtkAttachOptions _tmp110_ = 0;
+       GtkAttachOptions _tmp111_ = 0;
+       gint _tmp112_ = 0;
+       const gchar* _tmp113_ = NULL;
+       GtkButton* _tmp114_ = NULL;
+       GtkButton* _tmp115_ = NULL;
+       GtkButton* _tmp116_ = NULL;
+       GtkTable* _tmp117_ = NULL;
+       GtkButton* _tmp118_ = NULL;
+       GtkWidget* _tmp119_ = NULL;
+       GtkWidget* _tmp120_ = NULL;
+       gint _tmp121_ = 0;
+       gint _tmp122_ = 0;
+       gint _tmp123_ = 0;
+       gint _tmp124_ = 0;
+       gint _tmp125_ = 0;
+       GtkAttachOptions _tmp126_ = 0;
+       GtkAttachOptions _tmp127_ = 0;
+       gint _tmp128_ = 0;
+       const gchar* _tmp129_ = NULL;
+       GtkButton* _tmp130_ = NULL;
+       GtkButton* _tmp131_ = NULL;
+       GtkButton* _tmp132_ = NULL;
+       GtkTable* _tmp133_ = NULL;
+       GtkButton* _tmp134_ = NULL;
+       GtkWidget* _tmp135_ = NULL;
+       GtkWidget* _tmp136_ = NULL;
+       gint _tmp137_ = 0;
+       gint _tmp138_ = 0;
+       gint _tmp139_ = 0;
+       gint _tmp140_ = 0;
+       gint _tmp141_ = 0;
+       GtkAttachOptions _tmp142_ = 0;
+       GtkAttachOptions _tmp143_ = 0;
+       gint _tmp144_ = 0;
+       gint _tmp145_ = 0;
+       const gchar* _tmp146_ = NULL;
+       GtkButton* _tmp147_ = NULL;
+       GtkButton* _tmp148_ = NULL;
+       GtkButton* _tmp149_ = NULL;
+       GtkTable* _tmp150_ = NULL;
+       GtkButton* _tmp151_ = NULL;
+       GtkWidget* _tmp152_ = NULL;
+       GtkWidget* _tmp153_ = NULL;
+       gint _tmp154_ = 0;
+       gint _tmp155_ = 0;
+       gint _tmp156_ = 0;
+       gint _tmp157_ = 0;
+       gint _tmp158_ = 0;
+       GtkAttachOptions _tmp159_ = 0;
+       GtkAttachOptions _tmp160_ = 0;
+       gint _tmp161_ = 0;
        GtkVBox* main_vbox = NULL;
-       GtkVBox* _tmp85_ = NULL;
+       GtkVBox* _tmp162_ = NULL;
        GtkWidget* menubar = NULL;
-       GtkUIManager* _tmp86_ = NULL;
-       GtkWidget* _tmp87_ = NULL;
-       GtkWidget* _tmp88_ = NULL;
-       GtkVBox* _tmp89_ = NULL;
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       GtkUIManager* _tmp163_ = NULL;
+       GtkWidget* _tmp164_ = NULL;
+       GtkWidget* _tmp165_ = NULL;
+       GtkVBox* _tmp166_ = NULL;
+       GtkWidget* _tmp167_ = NULL;
+       GtkWidget* _tmp168_ = NULL;
+       GtkVBox* _tmp169_ = NULL;
+       GtkTable* _tmp170_ = NULL;
+       GtkVBox* _tmp171_ = NULL;
+       GtkVBox* _tmp172_ = NULL;
+       gboolean _tmp173_ = FALSE;
+#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 795 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 730 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       set_bg_color ((GtkWidget*) self);
+#line 732 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        identity_manager_view_create_ui_manager (self);
+#line 734 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       num_rows = 18;
+#line 735 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       num_cols = 8;
+#line 736 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       button_width = 1;
+#line 738 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = num_rows;
+#line 738 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = (GtkTable*) gtk_table_new ((guint) _tmp0_, (guint) 10, FALSE);
+#line 738 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp1_);
+#line 738 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       top_table = _tmp1_;
+#line 739 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = top_table;
+#line 739 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_container_set_border_width ((GtkContainer*) _tmp2_, (guint) 12);
+#line 741 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       fill_and_expand = GTK_EXPAND | GTK_FILL;
+#line 742 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       fill = GTK_FILL;
+#line 743 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       row = 0;
+#line 745 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
+#line 745 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp3_);
+#line 745 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->priv->service_prompt_vbox);
+#line 745 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->service_prompt_vbox = _tmp3_;
+#line 746 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = top_table;
+#line 746 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp5_ = self->priv->service_prompt_vbox;
+#line 746 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp6_ = row;
+#line 746 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_ = row;
+#line 746 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp8_ = fill_and_expand;
+#line 746 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp9_ = fill_and_expand;
+#line 746 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_table_attach (_tmp4_, (GtkWidget*) _tmp5_, (guint) 0, (guint) 1, (guint) _tmp6_, (guint) (_tmp7_ + 1), _tmp8_, _tmp9_, (guint) 12, (guint) 0);
+#line 747 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp10_ = row;
+#line 747 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       row = _tmp10_ + 1;
+#line 749 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp11_ = _ ("Search for an identity or service");
+#line 749 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp12_ = g_strdup (_tmp11_);
+#line 749 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       search_tooltip_text = _tmp12_;
+#line 750 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp13_ = (GtkEntry*) gtk_entry_new ();
+#line 750 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp13_);
+#line 750 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->priv->search_entry);
+#line 750 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->search_entry = _tmp13_;
+#line 752 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp14_ = self->priv->search_entry;
+#line 752 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp15_ = _ ("Search entry");
+#line 752 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp16_ = _ ("Search for a specific ID Card");
+#line 752 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_set_atk_name_description (self, (GtkWidget*) _tmp14_, _tmp15_, _tmp16_);
+#line 753 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp17_ = self->priv->search_entry;
+#line 753 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp18_ = find_icon_sized ("edit-find", GTK_ICON_SIZE_MENU);
+#line 753 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp19_ = _tmp18_;
+#line 753 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_entry_set_icon_from_pixbuf (_tmp17_, GTK_ENTRY_ICON_SECONDARY, _tmp19_);
+#line 753 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (_tmp19_);
+#line 755 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp20_ = self->priv->search_entry;
+#line 755 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp21_ = search_tooltip_text;
+#line 755 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_entry_set_icon_tooltip_text (_tmp20_, GTK_ENTRY_ICON_SECONDARY, _tmp21_);
+#line 758 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp22_ = self->priv->search_entry;
+#line 758 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp23_ = search_tooltip_text;
+#line 758 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_widget_set_tooltip_text ((GtkWidget*) _tmp22_, _tmp23_);
+#line 760 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp24_ = self->priv->search_entry;
+#line 760 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_entry_set_icon_sensitive (_tmp24_, GTK_ENTRY_ICON_SECONDARY, FALSE);
+#line 762 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp25_ = self->priv->search_entry;
+#line 762 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_signal_connect_object ((GObject*) _tmp25_, "notify::text", (GCallback) _identity_manager_view_search_entry_text_changed_cb_g_object_notify, self, 0);
+#line 763 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp26_ = self->priv->search_entry;
+#line 763 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_signal_connect_object ((GtkWidget*) _tmp26_, "key-press-event", (GCallback) _identity_manager_view_search_entry_key_press_event_cb_gtk_widget_key_press_event, self, 0);
+#line 764 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp27_ = self->priv->search_entry;
+#line 764 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_entry_set_width_chars (_tmp27_, 24);
+#line 766 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp28_ = search_tooltip_text;
+#line 766 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp29_ = g_strconcat ("<small>", _tmp28_, NULL);
+#line 766 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp30_ = _tmp29_;
+#line 766 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp31_ = g_strconcat (_tmp30_, "</small>", NULL);
+#line 766 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp32_ = _tmp31_;
+#line 766 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp30_);
+#line 766 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       search_label_markup = _tmp32_;
+#line 767 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp33_ = (GtkLabel*) gtk_label_new (NULL);
+#line 767 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp33_);
+#line 767 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       full_search_label = _tmp33_;
+#line 768 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp34_ = full_search_label;
+#line 768 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp35_ = search_label_markup;
+#line 768 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_label_set_markup (_tmp34_, _tmp35_);
+#line 769 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp36_ = full_search_label;
+#line 769 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_misc_set_alignment ((GtkMisc*) _tmp36_, (gfloat) 1, (gfloat) 0);
+#line 771 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp37_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
+#line 771 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp37_);
+#line 771 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       search_vbox = _tmp37_;
+#line 772 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp38_ = search_vbox;
+#line 772 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp39_ = self->priv->search_entry;
+#line 772 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp38_, (GtkWidget*) _tmp39_, FALSE, FALSE, (guint) 0);
+#line 773 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp40_ = (GtkAlignment*) gtk_alignment_new ((gfloat) 0, (gfloat) 0, (gfloat) 0, (gfloat) 0);
+#line 773 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp40_);
+#line 773 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       search_spacer = _tmp40_;
+#line 774 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp41_ = search_spacer;
+#line 774 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_widget_set_size_request ((GtkWidget*) _tmp41_, 0, 2);
+#line 775 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp42_ = search_vbox;
+#line 775 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp43_ = search_spacer;
+#line 775 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp42_, (GtkWidget*) _tmp43_, FALSE, FALSE, (guint) 0);
+#line 776 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp44_ = search_vbox;
+#line 776 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp45_ = full_search_label;
+#line 776 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp44_, (GtkWidget*) _tmp45_, FALSE, FALSE, (guint) 0);
+#line 779 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp46_ = top_table;
+#line 779 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp47_ = search_vbox;
+#line 779 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp48_ = num_cols;
+#line 779 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp49_ = button_width;
+#line 779 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp50_ = row;
+#line 779 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp51_ = row;
+#line 779 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp52_ = fill_and_expand;
+#line 779 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp53_ = fill;
+#line 779 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_table_attach (_tmp46_, (GtkWidget*) _tmp47_, (guint) 5, (guint) (_tmp48_ - _tmp49_), (guint) (_tmp50_ - 1), (guint) (_tmp51_ + 1), _tmp52_, _tmp53_, (guint) 0, (guint) 12);
+#line 780 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp54_ = row;
+#line 780 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       row = _tmp54_ + 1;
+#line 782 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp55_ = custom_vbox_new (self, FALSE, 2);
+#line 782 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp55_);
+#line 782 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->priv->custom_vbox);
+#line 782 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->custom_vbox = _tmp55_;
+#line 784 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp56_ = (GtkViewport*) gtk_viewport_new (NULL, NULL);
+#line 784 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp56_);
+#line 784 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       viewport = _tmp56_;
+#line 785 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp57_ = viewport;
+#line 785 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_container_set_border_width ((GtkContainer*) _tmp57_, (guint) 2);
+#line 786 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp58_ = viewport;
+#line 786 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_viewport_set_shadow_type (_tmp58_, GTK_SHADOW_NONE);
+#line 787 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp59_ = viewport;
+#line 787 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp60_ = self->priv->custom_vbox;
+#line 787 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_container_add ((GtkContainer*) _tmp59_, (GtkWidget*) _tmp60_);
+#line 788 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp61_ = (GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL);
+#line 788 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp61_);
+#line 788 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       id_scrollwin = _tmp61_;
+#line 789 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp62_ = id_scrollwin;
+#line 789 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_scrolled_window_set_policy (_tmp62_, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+#line 790 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp63_ = id_scrollwin;
+#line 790 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_scrolled_window_set_shadow_type (_tmp63_, GTK_SHADOW_IN);
+#line 791 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp64_ = id_scrollwin;
+#line 791 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp65_ = viewport;
+#line 791 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_scrolled_window_add_with_viewport (_tmp64_, (GtkWidget*) _tmp65_);
+#line 792 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp66_ = top_table;
+#line 792 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp67_ = id_scrollwin;
+#line 792 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp68_ = num_cols;
+#line 792 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp69_ = row;
+#line 792 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp70_ = num_rows;
+#line 792 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp71_ = fill_and_expand;
+#line 792 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp72_ = fill_and_expand;
+#line 792 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_table_attach (_tmp66_, (GtkWidget*) _tmp67_, (guint) 0, (guint) (_tmp68_ - 1), (guint) _tmp69_, (guint) (_tmp70_ - 1), _tmp71_, _tmp72_, (guint) 6, (guint) 0);
+#line 795 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp73_ = _ ("Remember my identity choice for this service");
+#line 795 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp74_ = (GtkCheckButton*) gtk_check_button_new_with_label (_tmp73_);
+#line 795 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp74_);
+#line 795 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->remember_identity_binding);
+#line 795 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->remember_identity_binding = _tmp74_;
+#line 796 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp75_ = self->remember_identity_binding;
+#line 796 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_toggle_button_set_active ((GtkToggleButton*) _tmp75_, TRUE);
 #line 797 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = (GtkEntry*) gtk_entry_new ();
+       _tmp76_ = top_table;
 #line 797 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp0_);
+       _tmp77_ = self->remember_identity_binding;
 #line 797 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->search_entry);
+       _tmp78_ = num_cols;
+#line 797 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp79_ = num_rows;
 #line 797 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->search_entry = _tmp0_;
+       _tmp80_ = num_rows;
+#line 797 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp81_ = fill_and_expand;
+#line 797 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp82_ = fill_and_expand;
+#line 797 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_table_attach (_tmp76_, (GtkWidget*) _tmp77_, (guint) 0, (guint) (_tmp78_ / 2), (guint) (_tmp79_ - 1), (guint) _tmp80_, _tmp81_, _tmp82_, (guint) 3, (guint) 0);
 #line 799 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = self->priv->search_entry;
+       _tmp83_ = _ ("Add");
 #line 799 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = _ ("Search entry");
+       _tmp84_ = (GtkButton*) gtk_button_new_with_label (_tmp83_);
 #line 799 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = _ ("Search for a specific ID Card");
+       g_object_ref_sink (_tmp84_);
 #line 799 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_set_atk_name_description (self, (GtkWidget*) _tmp1_, _tmp2_, _tmp3_);
-#line 800 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = self->priv->search_entry;
+       add_button = _tmp84_;
 #line 800 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp5_ = find_icon_sized ("edit-find", GTK_ICON_SIZE_MENU);
+       _tmp85_ = add_button;
 #line 800 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp6_ = _tmp5_;
-#line 800 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_entry_set_icon_from_pixbuf (_tmp4_, GTK_ENTRY_ICON_PRIMARY, _tmp6_);
-#line 800 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (_tmp6_);
-#line 803 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp7_ = self->priv->search_entry;
-#line 803 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp8_ = _ ("Search identity or service");
-#line 803 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_entry_set_icon_tooltip_text (_tmp7_, GTK_ENTRY_ICON_PRIMARY, _tmp8_);
+       g_signal_connect_object (_tmp85_, "clicked", (GCallback) ___lambda7__gtk_button_clicked, self, 0);
+#line 801 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp86_ = top_table;
+#line 801 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp87_ = add_button;
+#line 801 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp88_ = identity_manager_view_make_rigid (_tmp87_);
+#line 801 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp89_ = _tmp88_;
+#line 801 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp90_ = num_cols;
+#line 801 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp91_ = button_width;
+#line 801 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp92_ = num_cols;
+#line 801 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp93_ = row;
+#line 801 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp94_ = row;
+#line 801 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp95_ = fill;
+#line 801 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp96_ = fill;
+#line 801 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_table_attach (_tmp86_, _tmp89_, (guint) (_tmp90_ - _tmp91_), (guint) _tmp92_, (guint) _tmp93_, (guint) (_tmp94_ + 1), _tmp95_, _tmp96_, (guint) 0, (guint) 0);
+#line 801 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (_tmp89_);
+#line 802 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp97_ = row;
+#line 802 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       row = _tmp97_ + 1;
+#line 804 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp98_ = _ ("Import");
+#line 804 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp99_ = (GtkButton*) gtk_button_new_with_label (_tmp98_);
+#line 804 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp99_);
+#line 804 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       import_button = _tmp99_;
 #line 805 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp9_ = self->priv->search_entry;
+       _tmp100_ = import_button;
 #line 805 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_entry_set_icon_sensitive (_tmp9_, GTK_ENTRY_ICON_PRIMARY, FALSE);
+       g_signal_connect_object (_tmp100_, "clicked", (GCallback) ___lambda13__gtk_button_clicked, self, 0);
+#line 806 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp101_ = top_table;
+#line 806 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp102_ = import_button;
+#line 806 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp103_ = identity_manager_view_make_rigid (_tmp102_);
+#line 806 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp104_ = _tmp103_;
+#line 806 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp105_ = num_cols;
+#line 806 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp106_ = button_width;
+#line 806 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp107_ = num_cols;
+#line 806 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp108_ = row;
+#line 806 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp109_ = row;
+#line 806 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp110_ = fill;
+#line 806 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp111_ = fill;
+#line 806 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_table_attach (_tmp101_, _tmp104_, (guint) (_tmp105_ - _tmp106_), (guint) _tmp107_, (guint) _tmp108_, (guint) (_tmp109_ + 1), _tmp110_, _tmp111_, (guint) 0, (guint) 0);
+#line 806 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (_tmp104_);
 #line 807 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp10_ = self->priv->search_entry;
+       _tmp112_ = row;
 #line 807 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp11_ = find_icon_sized ("process-stop", GTK_ICON_SIZE_MENU);
-#line 807 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp12_ = _tmp11_;
-#line 807 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_entry_set_icon_from_pixbuf (_tmp10_, GTK_ENTRY_ICON_SECONDARY, _tmp12_);
-#line 807 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (_tmp12_);
+       row = _tmp112_ + 1;
+#line 809 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp113_ = _ ("Edit");
+#line 809 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp114_ = (GtkButton*) gtk_button_new_with_label (_tmp113_);
+#line 809 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp114_);
+#line 809 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->priv->edit_button);
+#line 809 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->edit_button = _tmp114_;
 #line 810 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp13_ = self->priv->search_entry;
+       _tmp115_ = self->priv->edit_button;
 #line 810 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp14_ = _ ("Clear the current search");
-#line 810 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_entry_set_icon_tooltip_text (_tmp13_, GTK_ENTRY_ICON_SECONDARY, _tmp14_);
+       g_signal_connect_object (_tmp115_, "clicked", (GCallback) ___lambda14__gtk_button_clicked, self, 0);
+#line 811 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp116_ = self->priv->edit_button;
+#line 811 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_widget_set_sensitive ((GtkWidget*) _tmp116_, FALSE);
+#line 812 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp117_ = top_table;
+#line 812 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp118_ = self->priv->edit_button;
+#line 812 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp119_ = identity_manager_view_make_rigid (_tmp118_);
+#line 812 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp120_ = _tmp119_;
+#line 812 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp121_ = num_cols;
+#line 812 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp122_ = button_width;
+#line 812 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp123_ = num_cols;
+#line 812 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp124_ = row;
+#line 812 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp125_ = row;
+#line 812 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp126_ = fill;
+#line 812 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp127_ = fill;
 #line 812 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp15_ = self->priv->search_entry;
+       gtk_table_attach (_tmp117_, _tmp120_, (guint) (_tmp121_ - _tmp122_), (guint) _tmp123_, (guint) _tmp124_, (guint) (_tmp125_ + 1), _tmp126_, _tmp127_, (guint) 0, (guint) 0);
 #line 812 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_entry_set_icon_sensitive (_tmp15_, GTK_ENTRY_ICON_SECONDARY, FALSE);
+       _g_object_unref0 (_tmp120_);
+#line 813 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp128_ = row;
+#line 813 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       row = _tmp128_ + 1;
 #line 815 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp16_ = self->priv->search_entry;
+       _tmp129_ = _ ("Remove");
 #line 815 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_signal_connect_object (_tmp16_, "icon-press", (GCallback) _identity_manager_view_search_entry_icon_press_cb_gtk_entry_icon_press, self, 0);
+       _tmp130_ = (GtkButton*) gtk_button_new_with_label (_tmp129_);
+#line 815 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp130_);
+#line 815 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->priv->remove_button);
+#line 815 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->remove_button = _tmp130_;
 #line 816 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp17_ = self->priv->search_entry;
+       _tmp131_ = self->priv->remove_button;
 #line 816 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_signal_connect_object ((GObject*) _tmp17_, "notify::text", (GCallback) _identity_manager_view_search_entry_text_changed_cb_g_object_notify, self, 0);
+       g_signal_connect_object (_tmp131_, "clicked", (GCallback) ___lambda15__gtk_button_clicked, self, 0);
 #line 817 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp18_ = self->priv->search_entry;
+       _tmp132_ = self->priv->remove_button;
 #line 817 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_signal_connect_object ((GtkWidget*) _tmp18_, "key-press-event", (GCallback) _identity_manager_view_search_entry_key_press_event_cb_gtk_widget_key_press_event, self, 0);
+       gtk_widget_set_sensitive ((GtkWidget*) _tmp132_, FALSE);
+#line 818 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp133_ = top_table;
+#line 818 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp134_ = self->priv->remove_button;
+#line 818 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp135_ = identity_manager_view_make_rigid (_tmp134_);
+#line 818 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp136_ = _tmp135_;
+#line 818 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp137_ = num_cols;
+#line 818 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp138_ = button_width;
+#line 818 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp139_ = num_cols;
+#line 818 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp140_ = row;
+#line 818 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp141_ = row;
+#line 818 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp142_ = fill;
+#line 818 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp143_ = fill;
+#line 818 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_table_attach (_tmp133_, _tmp136_, (guint) (_tmp137_ - _tmp138_), (guint) _tmp139_, (guint) _tmp140_, (guint) (_tmp141_ + 1), _tmp142_, _tmp143_, (guint) 0, (guint) 0);
+#line 818 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (_tmp136_);
 #line 819 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp19_ = custom_vbox_new (self, FALSE, 6);
+       _tmp144_ = row;
 #line 819 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp19_);
-#line 819 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->custom_vbox);
-#line 819 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->custom_vbox = _tmp19_;
-#line 821 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp20_ = (GtkViewport*) gtk_viewport_new (NULL, NULL);
-#line 821 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp20_);
-#line 821 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       viewport = _tmp20_;
+       row = _tmp144_ + 1;
+#line 822 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp145_ = row;
 #line 822 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_container_set_border_width ((GtkContainer*) viewport, (guint) 6);
+       row = _tmp145_ + 1;
 #line 823 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_viewport_set_shadow_type (viewport, GTK_SHADOW_NONE);
+       _tmp146_ = _ ("Send");
+#line 823 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp147_ = (GtkButton*) gtk_button_new_with_label (_tmp146_);
+#line 823 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp147_);
+#line 823 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->priv->send_button);
+#line 823 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->send_button = _tmp147_;
 #line 824 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp21_ = self->priv->custom_vbox;
+       _tmp148_ = self->priv->send_button;
 #line 824 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_container_add ((GtkContainer*) viewport, (GtkWidget*) _tmp21_);
-#line 825 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp22_ = (GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL);
-#line 825 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp22_);
-#line 825 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       scroll = _tmp22_;
+       g_signal_connect_object (_tmp148_, "clicked", (GCallback) ___lambda16__gtk_button_clicked, self, 0);
 #line 826 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_scrolled_window_set_policy (scroll, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+       _tmp149_ = self->priv->send_button;
+#line 826 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_widget_set_sensitive ((GtkWidget*) _tmp149_, FALSE);
+#line 827 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp150_ = top_table;
+#line 827 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp151_ = self->priv->send_button;
+#line 827 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp152_ = identity_manager_view_make_rigid (_tmp151_);
 #line 827 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_scrolled_window_set_shadow_type (scroll, GTK_SHADOW_IN);
+       _tmp153_ = _tmp152_;
+#line 827 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp154_ = num_cols;
+#line 827 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp155_ = button_width;
+#line 827 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp156_ = num_cols;
+#line 827 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp157_ = row;
+#line 827 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp158_ = row;
+#line 827 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp159_ = fill;
+#line 827 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp160_ = fill;
+#line 827 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_table_attach (_tmp150_, _tmp153_, (guint) (_tmp154_ - _tmp155_), (guint) _tmp156_, (guint) _tmp157_, (guint) (_tmp158_ + 1), _tmp159_, _tmp160_, (guint) 0, (guint) 0);
+#line 827 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (_tmp153_);
 #line 828 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_scrolled_window_add_with_viewport (scroll, (GtkWidget*) viewport);
-#line 829 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp23_ = _ ("");
-#line 829 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp24_ = (GtkLabel*) gtk_label_new (_tmp23_);
-#line 829 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp24_);
-#line 829 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->prompting_service);
-#line 829 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->prompting_service = _tmp24_;
-#line 831 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp25_ = self->priv->prompting_service;
-#line 831 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_misc_set_alignment ((GtkMisc*) _tmp25_, (gfloat) 0, (gfloat) 0.5);
-#line 833 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp26_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
-#line 833 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp26_);
-#line 833 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       vbox_left = _tmp26_;
-#line 834 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp27_ = self->priv->search_entry;
-#line 834 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_box_pack_start ((GtkBox*) vbox_left, (GtkWidget*) _tmp27_, FALSE, FALSE, (guint) 6);
-#line 835 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_box_pack_start ((GtkBox*) vbox_left, (GtkWidget*) scroll, TRUE, TRUE, (guint) 0);
-#line 836 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp28_ = self->priv->prompting_service;
-#line 836 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_box_pack_start ((GtkBox*) vbox_left, (GtkWidget*) _tmp28_, FALSE, FALSE, (guint) 6);
-#line 837 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_widget_set_size_request ((GtkWidget*) vbox_left, IDENTITY_MANAGER_VIEW_WINDOW_WIDTH, 0);
-#line 839 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp29_ = _ ("No Identity: Send this identity to services which should not use Moons" \
-"hot");
-#line 839 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp30_ = (GtkLabel*) gtk_label_new (_tmp29_);
-#line 839 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp30_);
-#line 839 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->no_identity_title);
-#line 839 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->no_identity_title = _tmp30_;
-#line 840 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp31_ = self->priv->no_identity_title;
-#line 840 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_misc_set_alignment ((GtkMisc*) _tmp31_, (gfloat) 0, (gfloat) 0.5);
-#line 841 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp32_ = self->priv->no_identity_title;
-#line 841 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_label_set_line_wrap (_tmp32_, TRUE);
-#line 842 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp33_ = self->priv->no_identity_title;
-#line 842 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_widget_show ((GtkWidget*) _tmp33_);
+       _tmp161_ = row;
+#line 828 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       row = _tmp161_ + 1;
+#line 830 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp162_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
+#line 830 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp162_);
+#line 830 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       main_vbox = _tmp162_;
 #line 844 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp34_ = _ ("Login: ");
+       _tmp163_ = self->priv->ui_manager;
 #line 844 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp35_ = (GtkLabel*) gtk_label_new (_tmp34_);
+       _tmp164_ = gtk_ui_manager_get_widget (_tmp163_, "/MenuBar");
 #line 844 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp35_);
+       _tmp165_ = _g_object_ref0 (_tmp164_);
 #line 844 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       login_vbox_title = _tmp35_;
+       menubar = _tmp165_;
+#line 845 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp166_ = main_vbox;
 #line 845 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_label_make_bold (self, login_vbox_title);
+       _tmp167_ = menubar;
+#line 845 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp166_, _tmp167_, FALSE, FALSE, (guint) 0);
 #line 846 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_misc_set_alignment ((GtkMisc*) login_vbox_title, (gfloat) 0, (gfloat) 0.5);
-#line 847 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp36_ = _ ("Issuer:");
-#line 847 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp37_ = (GtkLabel*) gtk_label_new (_tmp36_);
-#line 847 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp37_);
-#line 847 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       issuer_label = _tmp37_;
+       _tmp168_ = menubar;
+#line 846 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       set_bg_color (_tmp168_);
+#line 848 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp169_ = main_vbox;
 #line 848 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_misc_set_alignment ((GtkMisc*) issuer_label, (gfloat) 1, (gfloat) 0.5);
-#line 849 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp38_ = (GtkEntry*) gtk_entry_new ();
-#line 849 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp38_);
-#line 849 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->issuer_entry);
-#line 849 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->issuer_entry = _tmp38_;
+       _tmp170_ = top_table;
+#line 848 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_box_pack_start ((GtkBox*) _tmp169_, (GtkWidget*) _tmp170_, TRUE, TRUE, (guint) 6);
 #line 850 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp39_ = self->priv->issuer_entry;
+       _tmp171_ = main_vbox;
 #line 850 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_widget_set_can_focus ((GtkWidget*) _tmp39_, FALSE);
-#line 851 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp40_ = _ ("Username:");
+       gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp171_);
 #line 851 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp41_ = (GtkLabel*) gtk_label_new (_tmp40_);
+       _tmp172_ = main_vbox;
 #line 851 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp41_);
-#line 851 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       username_label = _tmp41_;
-#line 852 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_misc_set_alignment ((GtkMisc*) username_label, (gfloat) 1, (gfloat) 0.5);
-#line 853 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp42_ = (GtkEntry*) gtk_entry_new ();
+       gtk_widget_show_all ((GtkWidget*) _tmp172_);
 #line 853 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp42_);
+       _tmp173_ = identity_manager_view_selection_in_progress (self);
 #line 853 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->username_entry);
-#line 853 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->username_entry = _tmp42_;
+       if (!_tmp173_) {
+#line 4875 "moonshot-identity-management-view.c"
+               GtkCheckButton* _tmp174_ = NULL;
 #line 854 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp43_ = self->priv->username_entry;
+               _tmp174_ = self->remember_identity_binding;
 #line 854 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_widget_set_can_focus ((GtkWidget*) _tmp43_, FALSE);
-#line 855 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp44_ = _ ("Password:");
-#line 855 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp45_ = (GtkLabel*) gtk_label_new (_tmp44_);
-#line 855 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp45_);
-#line 855 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       password_label = _tmp45_;
-#line 856 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_misc_set_alignment ((GtkMisc*) password_label, (gfloat) 1, (gfloat) 0.5);
-#line 857 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp46_ = (GtkEntry*) gtk_entry_new ();
-#line 857 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp46_);
-#line 857 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->password_entry);
-#line 857 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->password_entry = _tmp46_;
-#line 858 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp47_ = self->priv->password_entry;
-#line 858 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_entry_set_invisible_char (_tmp47_, (gunichar) '*');
-#line 859 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp48_ = self->priv->password_entry;
-#line 859 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_entry_set_visibility (_tmp48_, FALSE);
-#line 860 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp49_ = self->priv->password_entry;
-#line 860 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_widget_set_sensitive ((GtkWidget*) _tmp49_, FALSE);
-#line 861 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp50_ = _ ("Remember password");
-#line 861 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp51_ = (GtkCheckButton*) gtk_check_button_new_with_label (_tmp50_);
-#line 861 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp51_);
-#line 861 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->remember_checkbutton);
-#line 861 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->remember_checkbutton = _tmp51_;
-#line 862 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp52_ = self->priv->remember_checkbutton;
-#line 862 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_widget_set_sensitive ((GtkWidget*) _tmp52_, FALSE);
-#line 863 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp53_ = _ ("Update Password");
-#line 863 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp54_ = (GtkButton*) gtk_button_new_with_label (_tmp53_);
-#line 863 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp54_);
-#line 863 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->update_password_button);
-#line 863 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->update_password_button = _tmp54_;
-#line 864 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp55_ = self->priv->update_password_button;
-#line 864 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_signal_connect_object (_tmp55_, "clicked", (GCallback) _identity_manager_view_update_password_cb_gtk_button_clicked, self, 0);
-#line 866 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp56_ = self->priv->issuer_entry;
-#line 866 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_set_atk_relation ((GtkWidget*) issuer_label, (GtkWidget*) _tmp56_, ATK_RELATION_LABEL_FOR);
-#line 867 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp57_ = self->priv->username_entry;
-#line 867 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_set_atk_relation ((GtkWidget*) username_label, (GtkWidget*) _tmp57_, ATK_RELATION_LABEL_FOR);
-#line 868 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp58_ = self->priv->password_entry;
-#line 868 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp59_ = self->priv->password_entry;
-#line 868 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_set_atk_relation ((GtkWidget*) _tmp58_, (GtkWidget*) _tmp59_, ATK_RELATION_LABEL_FOR);
-#line 870 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp60_ = (GtkTable*) gtk_table_new ((guint) 5, (guint) 2, FALSE);
-#line 870 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp60_);
-#line 870 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       login_table = _tmp60_;
-#line 871 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_table_set_col_spacings (login_table, (guint) 10);
-#line 872 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_table_set_row_spacings (login_table, (guint) 10);
-#line 873 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_table_attach_defaults (login_table, (GtkWidget*) issuer_label, (guint) 0, (guint) 1, (guint) 0, (guint) 1);
-#line 874 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp61_ = self->priv->issuer_entry;
-#line 874 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_table_attach_defaults (login_table, (GtkWidget*) _tmp61_, (guint) 1, (guint) 2, (guint) 0, (guint) 1);
-#line 875 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_table_attach_defaults (login_table, (GtkWidget*) username_label, (guint) 0, (guint) 1, (guint) 1, (guint) 2);
-#line 876 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp62_ = self->priv->username_entry;
-#line 876 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_table_attach_defaults (login_table, (GtkWidget*) _tmp62_, (guint) 1, (guint) 2, (guint) 1, (guint) 2);
-#line 877 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_table_attach_defaults (login_table, (GtkWidget*) password_label, (guint) 0, (guint) 1, (guint) 2, (guint) 3);
-#line 878 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp63_ = self->priv->password_entry;
-#line 878 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_table_attach_defaults (login_table, (GtkWidget*) _tmp63_, (guint) 1, (guint) 2, (guint) 2, (guint) 3);
-#line 879 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp64_ = self->priv->remember_checkbutton;
-#line 879 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_table_attach_defaults (login_table, (GtkWidget*) _tmp64_, (guint) 1, (guint) 2, (guint) 3, (guint) 4);
-#line 880 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp65_ = self->priv->update_password_button;
-#line 880 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_table_attach_defaults (login_table, (GtkWidget*) _tmp65_, (guint) 0, (guint) 1, (guint) 4, (guint) 5);
-#line 881 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp66_ = (GtkAlignment*) gtk_alignment_new ((gfloat) 0, (gfloat) 0, (gfloat) 0, (gfloat) 0);
-#line 881 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp66_);
-#line 881 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       login_vbox_alignment = _tmp66_;
-#line 882 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_alignment_set_padding (login_vbox_alignment, (guint) 0, (guint) 0, (guint) 12, (guint) 0);
-#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_container_add ((GtkContainer*) login_vbox_alignment, (GtkWidget*) login_table);
-#line 884 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp67_ = (GtkVBox*) gtk_vbox_new (FALSE, 6);
-#line 884 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp67_);
-#line 884 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->login_vbox);
-#line 884 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->login_vbox = _tmp67_;
-#line 885 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp68_ = self->priv->login_vbox;
-#line 885 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_box_pack_start ((GtkBox*) _tmp68_, (GtkWidget*) login_vbox_title, FALSE, TRUE, (guint) 0);
-#line 886 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp69_ = self->priv->login_vbox;
-#line 886 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_box_pack_start ((GtkBox*) _tmp69_, (GtkWidget*) login_vbox_alignment, FALSE, TRUE, (guint) 0);
-#line 888 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp70_ = _ ("Services:");
-#line 888 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp71_ = (GtkLabel*) gtk_label_new (_tmp70_);
-#line 888 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp71_);
-#line 888 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       services_vbox_title = _tmp71_;
-#line 889 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       identity_manager_view_label_make_bold (self, services_vbox_title);
-#line 890 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_misc_set_alignment ((GtkMisc*) services_vbox_title, (gfloat) 0, (gfloat) 0.5);
-#line 891 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp72_ = (GtkAlignment*) gtk_alignment_new ((gfloat) 0, (gfloat) 0, (gfloat) 0, (gfloat) 0);
-#line 891 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp72_);
-#line 891 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       services_vbox_alignment = _tmp72_;
-#line 892 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_alignment_set_padding (services_vbox_alignment, (guint) 0, (guint) 0, (guint) 12, (guint) 0);
-#line 893 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp73_ = (GtkVBox*) gtk_vbox_new (TRUE, 6);
-#line 893 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp73_);
-#line 893 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->services_internal_vbox);
-#line 893 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->services_internal_vbox = _tmp73_;
-#line 894 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp74_ = self->priv->services_internal_vbox;
-#line 894 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_container_add ((GtkContainer*) services_vbox_alignment, (GtkWidget*) _tmp74_);
-#line 895 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp75_ = (GtkVBox*) gtk_vbox_new (FALSE, 6);
-#line 895 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp75_);
-#line 895 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->services_vbox);
-#line 895 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->services_vbox = _tmp75_;
-#line 896 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp76_ = self->priv->services_vbox;
-#line 896 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_box_pack_start ((GtkBox*) _tmp76_, (GtkWidget*) services_vbox_title, FALSE, TRUE, (guint) 0);
-#line 897 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp77_ = self->priv->services_vbox;
-#line 897 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_box_pack_start ((GtkBox*) _tmp77_, (GtkWidget*) services_vbox_alignment, FALSE, TRUE, (guint) 0);
-#line 899 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp78_ = (GtkVBox*) gtk_vbox_new (FALSE, 18);
-#line 899 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp78_);
-#line 899 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->vbox_right);
-#line 899 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       self->priv->vbox_right = _tmp78_;
-#line 900 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp79_ = self->priv->vbox_right;
-#line 900 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp80_ = self->priv->login_vbox;
-#line 900 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_box_pack_start ((GtkBox*) _tmp79_, (GtkWidget*) _tmp80_, FALSE, TRUE, (guint) 0);
-#line 901 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp81_ = self->priv->vbox_right;
-#line 901 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp82_ = self->priv->services_vbox;
-#line 901 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_box_pack_start ((GtkBox*) _tmp81_, (GtkWidget*) _tmp82_, FALSE, TRUE, (guint) 0);
-#line 903 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp83_ = (GtkHBox*) gtk_hbox_new (FALSE, 12);
-#line 903 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp83_);
-#line 903 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       hbox = _tmp83_;
-#line 904 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox_left, FALSE, FALSE, (guint) 0);
-#line 905 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp84_ = self->priv->vbox_right;
-#line 905 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) _tmp84_, TRUE, TRUE, (guint) 0);
-#line 907 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp85_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
-#line 907 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_object_ref_sink (_tmp85_);
-#line 907 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       main_vbox = _tmp85_;
-#line 908 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_container_set_border_width ((GtkContainer*) main_vbox, (guint) 12);
-#line 921 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp86_ = self->priv->ui_manager;
-#line 921 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp87_ = gtk_ui_manager_get_widget (_tmp86_, "/MenuBar");
-#line 921 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp88_ = _g_object_ref0 (_tmp87_);
-#line 921 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       menubar = _tmp88_;
-#line 922 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_box_pack_start ((GtkBox*) main_vbox, menubar, FALSE, FALSE, (guint) 0);
-#line 924 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_box_pack_start ((GtkBox*) main_vbox, (GtkWidget*) hbox, TRUE, TRUE, (guint) 0);
-#line 925 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_container_add ((GtkContainer*) self, (GtkWidget*) main_vbox);
-#line 926 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_widget_show_all ((GtkWidget*) main_vbox);
-#line 927 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp89_ = self->priv->vbox_right;
-#line 927 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       gtk_widget_hide ((GtkWidget*) _tmp89_);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               gtk_widget_hide ((GtkWidget*) _tmp174_);
+#line 4881 "moonshot-identity-management-view.c"
+       }
+#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_object_unref0 (menubar);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_object_unref0 (main_vbox);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (hbox);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (services_vbox_alignment);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (services_vbox_title);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (login_vbox_alignment);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (login_table);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (password_label);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (username_label);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (issuer_label);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (login_vbox_title);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (vbox_left);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (scroll);
-#line 793 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (import_button);
+#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (add_button);
+#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (id_scrollwin);
+#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_object_unref0 (viewport);
-#line 4802 "moonshot-identity-management-view.c"
+#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (search_spacer);
+#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (search_vbox);
+#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (full_search_label);
+#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (search_label_markup);
+#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (search_tooltip_text);
+#line 728 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (top_table);
+#line 4907 "moonshot-identity-management-view.c"
+}
+
+
+gboolean identity_manager_view_selection_in_progress (IdentityManagerView* self) {
+       gboolean result = FALSE;
+       GQueue* _tmp0_ = NULL;
+       gboolean _tmp1_ = FALSE;
+#line 857 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 858 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = self->priv->request_queue;
+#line 858 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = g_queue_is_empty (_tmp0_);
+#line 858 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       result = !_tmp1_;
+#line 858 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       return result;
+#line 4925 "moonshot-identity-management-view.c"
 }
 
 
@@ -4852,174 +4979,735 @@ static void identity_manager_view_set_atk_name_description (IdentityManagerView*
        AtkObject* _tmp2_ = NULL;
        const gchar* _tmp3_ = NULL;
        const gchar* _tmp4_ = NULL;
-#line 930 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 861 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 930 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 861 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (widget != NULL);
-#line 930 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 861 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (name != NULL);
-#line 930 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 861 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (description != NULL);
-#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 863 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp0_ = widget;
-#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 863 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp1_ = gtk_widget_get_accessible (_tmp0_);
-#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 863 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp2_ = _g_object_ref0 (_tmp1_);
-#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 863 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        atk_widget = _tmp2_;
-#line 934 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 865 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp3_ = name;
-#line 934 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 865 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        atk_object_set_name (atk_widget, _tmp3_);
-#line 935 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 866 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp4_ = description;
-#line 935 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 866 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        atk_object_set_description (atk_widget, _tmp4_);
-#line 930 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 861 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_object_unref0 (atk_widget);
-#line 4839 "moonshot-identity-management-view.c"
+#line 4962 "moonshot-identity-management-view.c"
 }
 
 
-static void _gtk_main_quit_gtk_object_destroy (GtkObject* _sender, gpointer self) {
-#line 940 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+static void __lambda17_ (IdentityManagerView* self) {
+       MoonshotLogger* _tmp0_ = NULL;
+#line 872 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = identity_manager_view_logger;
+#line 872 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       moonshot_logger_trace (_tmp0_, "Destroy event; calling Gtk.main_quit()", NULL);
+#line 873 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        gtk_main_quit ();
-#line 4846 "moonshot-identity-management-view.c"
+#line 4974 "moonshot-identity-management-view.c"
+}
+
+
+static void ___lambda17__gtk_object_destroy (GtkObject* _sender, gpointer self) {
+#line 871 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       __lambda17_ ((IdentityManagerView*) self);
+#line 4981 "moonshot-identity-management-view.c"
 }
 
 
 static void _identity_manager_view_on_card_list_changed_identity_manager_model_card_list_changed (IdentityManagerModel* _sender, gpointer self) {
-#line 941 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 875 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        identity_manager_view_on_card_list_changed ((IdentityManagerView*) self);
-#line 4853 "moonshot-identity-management-view.c"
+#line 4988 "moonshot-identity-management-view.c"
+}
+
+
+static gboolean __lambda18_ (IdentityManagerView* self) {
+       gboolean result = FALSE;
+       gboolean _tmp0_ = FALSE;
+#line 876 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = identity_manager_view_confirm_quit (self);
+#line 876 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       result = _tmp0_;
+#line 876 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       return result;
+#line 5001 "moonshot-identity-management-view.c"
+}
+
+
+static gboolean ___lambda18__gtk_widget_delete_event (GtkWidget* _sender, GdkEvent* event, gpointer self) {
+       gboolean result;
+       result = __lambda18_ ((IdentityManagerView*) self);
+#line 876 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       return result;
+#line 5010 "moonshot-identity-management-view.c"
 }
 
 
 static void identity_manager_view_connect_signals (IdentityManagerView* self) {
        IdentityManagerModel* _tmp0_ = NULL;
-#line 938 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 869 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_return_if_fail (self != NULL);
-#line 940 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_signal_connect ((GtkObject*) self, "destroy", (GCallback) _gtk_main_quit_gtk_object_destroy, NULL);
-#line 941 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 871 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_signal_connect_object ((GtkObject*) self, "destroy", (GCallback) ___lambda17__gtk_object_destroy, self, 0);
+#line 875 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp0_ = self->identities_manager;
-#line 941 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 875 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_signal_connect_object (_tmp0_, "card-list-changed", (GCallback) _identity_manager_view_on_card_list_changed_identity_manager_model_card_list_changed, self, 0);
-#line 4867 "moonshot-identity-management-view.c"
+#line 876 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_signal_connect_object ((GtkWidget*) self, "delete-event", (GCallback) ___lambda18__gtk_widget_delete_event, self, 0);
+#line 5026 "moonshot-identity-management-view.c"
 }
 
 
-static void identity_manager_view_set_atk_relation (GtkWidget* widget, GtkWidget* target_widget, AtkRelationType relationship) {
-       AtkObject* atk_widget = NULL;
-       GtkWidget* _tmp0_ = NULL;
-       AtkObject* _tmp1_ = NULL;
-       AtkObject* _tmp2_ = NULL;
-       AtkObject* atk_target_widget = NULL;
-       GtkWidget* _tmp3_ = NULL;
-       AtkObject* _tmp4_ = NULL;
-       AtkObject* _tmp5_ = NULL;
-       AtkRelationType _tmp6_ = 0;
+static gboolean identity_manager_view_confirm_quit (IdentityManagerView* self) {
+       gboolean result = FALSE;
+       MoonshotLogger* _tmp0_ = NULL;
+       gboolean _tmp1_ = FALSE;
+       gchar* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
+       gchar* _tmp5_ = NULL;
+       gboolean _tmp6_ = FALSE;
+#line 879 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 880 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = identity_manager_view_logger;
+#line 880 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = identity_manager_view_selection_in_progress (self);
+#line 880 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = bool_to_string (_tmp1_);
+#line 880 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = _tmp2_;
+#line 880 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = g_strconcat ("delete_event intercepted; selection_in_progress()=", _tmp3_, NULL);
+#line 880 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp5_ = _tmp4_;
+#line 880 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       moonshot_logger_trace (_tmp0_, _tmp5_, NULL);
+#line 880 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp5_);
+#line 880 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (_tmp3_);
+#line 882 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp6_ = identity_manager_view_selection_in_progress (self);
+#line 882 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp6_) {
+#line 5063 "moonshot-identity-management-view.c"
+               gboolean _result_ = FALSE;
+               const gchar* _tmp7_ = NULL;
+               gchar* _tmp8_ = NULL;
+               gchar* _tmp9_ = NULL;
+               gchar* _tmp10_ = NULL;
+               gchar* _tmp11_ = NULL;
+               GQueue* _tmp12_ = NULL;
+               gconstpointer _tmp13_ = NULL;
+               const gchar* _tmp14_ = NULL;
+               gchar* _tmp15_ = NULL;
+               gchar* _tmp16_ = NULL;
+               gchar* _tmp17_ = NULL;
+               gchar* _tmp18_ = NULL;
+               const gchar* _tmp19_ = NULL;
+               gchar* _tmp20_ = NULL;
+               gchar* _tmp21_ = NULL;
+               gboolean _tmp22_ = FALSE;
+               gboolean _tmp23_ = FALSE;
+               gboolean _tmp24_ = FALSE;
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp7_ = _ ("Do you wish to use the %s service?");
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp8_ = g_strconcat ("<span font-weight='heavy'>", _tmp7_, NULL);
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp9_ = _tmp8_;
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp10_ = g_strconcat (_tmp9_, "</span>", NULL);
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp11_ = _tmp10_;
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp12_ = self->priv->request_queue;
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp13_ = g_queue_peek_head (_tmp12_);
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp14_ = ((IdentityRequest*) _tmp13_)->service;
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp15_ = g_markup_printf_escaped (_tmp11_, _tmp14_);
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp16_ = _tmp15_;
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp17_ = g_strconcat (_tmp16_, "\n\n", NULL);
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp18_ = _tmp17_;
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp19_ = _ ("Select Yes to select an ID for this service, or No to cancel");
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp20_ = g_strconcat (_tmp18_, _tmp19_, NULL);
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp21_ = _tmp20_;
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp22_ = warning_dialog_confirm ((GtkWindow*) self, _tmp21_, "close_moonshot_window");
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp23_ = _tmp22_;
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_free0 (_tmp21_);
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_free0 (_tmp18_);
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_free0 (_tmp16_);
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_free0 (_tmp11_);
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_free0 (_tmp9_);
+#line 883 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _result_ = _tmp23_;
+#line 889 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp24_ = _result_;
+#line 889 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               if (_tmp24_) {
+#line 891 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       result = TRUE;
+#line 891 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       return result;
+#line 5137 "moonshot-identity-management-view.c"
+               }
+       }
+#line 896 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       result = FALSE;
+#line 896 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       return result;
+#line 5144 "moonshot-identity-management-view.c"
+}
+
+
+static GtkWidget* identity_manager_view_make_rigid (GtkButton* button) {
+       GtkWidget* result = NULL;
+       GtkVBox* fixed_height = NULL;
+       GtkVBox* _tmp0_ = NULL;
+       GtkButton* _tmp1_ = NULL;
+#line 899 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_val_if_fail (button != NULL, NULL);
+#line 902 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
+#line 902 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp0_);
+#line 902 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       fixed_height = _tmp0_;
+#line 903 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = button;
+#line 903 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_box_pack_start ((GtkBox*) fixed_height, (GtkWidget*) _tmp1_, FALSE, FALSE, (guint) 0);
+#line 905 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       result = (GtkWidget*) fixed_height;
+#line 905 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       return result;
+#line 5169 "moonshot-identity-management-view.c"
+}
+
+
+static void identity_manager_view_import_identities_cb (IdentityManagerView* self) {
+       GtkFileChooserDialog* dialog = NULL;
+       const gchar* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+       const gchar* _tmp2_ = NULL;
+       GtkFileChooserDialog* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       GtkFileChooserDialog* _tmp7_ = NULL;
+       gint _tmp8_ = 0;
+       GtkFileChooserDialog* _tmp85_ = NULL;
+#line 908 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_return_if_fail (self != NULL);
+#line 909 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = _ ("Import File");
+#line 909 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp1_ = _ ("Cancel");
+#line 909 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp2_ = _ ("Open");
+#line 909 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp3_ = (GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_tmp0_, (GtkWindow*) self, GTK_FILE_CHOOSER_ACTION_OPEN, _tmp1_, GTK_RESPONSE_CANCEL, _tmp2_, GTK_RESPONSE_ACCEPT, NULL, NULL);
+#line 909 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       g_object_ref_sink (_tmp3_);
+#line 909 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       dialog = _tmp3_;
+#line 916 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp4_ = self->priv->import_directory;
+#line 916 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp4_ != NULL) {
+#line 5201 "moonshot-identity-management-view.c"
+               GtkFileChooserDialog* _tmp5_ = NULL;
+               const gchar* _tmp6_ = NULL;
+#line 917 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp5_ = dialog;
+#line 917 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp6_ = self->priv->import_directory;
+#line 917 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               gtk_file_chooser_set_current_folder ((GtkFileChooser*) _tmp5_, _tmp6_);
+#line 5210 "moonshot-identity-management-view.c"
+       }
+#line 920 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp7_ = dialog;
+#line 920 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp8_ = gtk_dialog_run ((GtkDialog*) _tmp7_);
+#line 920 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       if (_tmp8_ == ((gint) GTK_RESPONSE_ACCEPT)) {
+#line 5218 "moonshot-identity-management-view.c"
+               gchar* filename = NULL;
+               GtkFileChooserDialog* _tmp9_ = NULL;
+               gchar* _tmp10_ = NULL;
+               GFile* file = NULL;
+               const gchar* _tmp11_ = NULL;
+               GFile* _tmp12_ = NULL;
+               GFile* _tmp13_ = NULL;
+               GFile* _tmp14_ = NULL;
+               GFile* _tmp15_ = NULL;
+               gchar* _tmp16_ = NULL;
+               gint import_count = 0;
+               WebProvisioningParser* webp = NULL;
+               const gchar* _tmp17_ = NULL;
+               WebProvisioningParser* _tmp18_ = NULL;
+               GtkFileChooserDialog* _tmp19_ = NULL;
+               WebProvisioningParser* _tmp20_ = NULL;
+               MoonshotLogger* _tmp21_ = NULL;
+               WebProvisioningParser* _tmp22_ = NULL;
+               IdCard** _tmp23_ = NULL;
+               gint _tmp23__length1 = 0;
+               IdCard** _tmp24_ = NULL;
+               gint _tmp24__length1 = 0;
+               gchar* _tmp25_ = NULL;
+               gchar* _tmp26_ = NULL;
+               gchar* _tmp27_ = NULL;
+               gchar* _tmp28_ = NULL;
+               WebProvisioningParser* _tmp29_ = NULL;
+               IdCard** _tmp30_ = NULL;
+               gint _tmp30__length1 = 0;
+               IdCard** _tmp31_ = NULL;
+               gint _tmp31__length1 = 0;
+               gint _tmp80_ = 0;
+#line 923 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp9_ = dialog;
+#line 923 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp10_ = gtk_file_chooser_get_filename ((GtkFileChooser*) _tmp9_);
+#line 923 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               filename = _tmp10_;
+#line 924 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp11_ = filename;
+#line 924 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp12_ = g_file_new_for_path (_tmp11_);
+#line 924 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               file = _tmp12_;
+#line 925 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp13_ = file;
+#line 925 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp14_ = g_file_get_parent (_tmp13_);
+#line 925 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp15_ = _tmp14_;
+#line 925 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp16_ = g_file_get_path (_tmp15_);
+#line 925 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_free0 (self->priv->import_directory);
+#line 925 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               self->priv->import_directory = _tmp16_;
+#line 925 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (_tmp15_);
+#line 927 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               import_count = 0;
+#line 929 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp17_ = filename;
+#line 929 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp18_ = web_provisioning_parser_new (_tmp17_);
+#line 929 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               webp = _tmp18_;
+#line 930 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp19_ = dialog;
+#line 930 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               gtk_object_destroy ((GtkObject*) _tmp19_);
+#line 931 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp20_ = webp;
+#line 931 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               web_provisioning_parser_parse (_tmp20_);
+#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp21_ = identity_manager_view_logger;
+#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp22_ = webp;
+#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp23_ = web_provisioning_parser_get_cards (_tmp22_, &_tmp23__length1);
+#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp24_ = _tmp23_;
+#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp24__length1 = _tmp23__length1;
+#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp25_ = g_strdup_printf ("%i", _tmp24__length1);
+#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp26_ = _tmp25_;
+#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp27_ = g_strconcat ("import_identities_cb: Have ", _tmp26_, " IdCards", NULL);
+#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp28_ = _tmp27_;
+#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               moonshot_logger_trace (_tmp21_, _tmp28_, NULL);
+#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_free0 (_tmp28_);
+#line 932 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_free0 (_tmp26_);
+#line 933 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp29_ = webp;
+#line 933 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp30_ = web_provisioning_parser_get_cards (_tmp29_, &_tmp30__length1);
+#line 933 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp31_ = _tmp30_;
+#line 933 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp31__length1 = _tmp30__length1;
+#line 5325 "moonshot-identity-management-view.c"
+               {
+                       IdCard** card_collection = NULL;
+                       gint card_collection_length1 = 0;
+                       gint _card_collection_size_ = 0;
+                       gint card_it = 0;
+#line 933 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       card_collection = _tmp31_;
+#line 933 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       card_collection_length1 = _tmp31__length1;
+#line 933 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       for (card_it = 0; card_it < _tmp31__length1; card_it = card_it + 1) {
+#line 5337 "moonshot-identity-management-view.c"
+                               IdCard* _tmp32_ = NULL;
+                               IdCard* card = NULL;
+#line 933 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               _tmp32_ = _g_object_ref0 (card_collection[card_it]);
+#line 933 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                               card = _tmp32_;
+#line 5344 "moonshot-identity-management-view.c"
+                               {
+                                       IdCard* _tmp33_ = NULL;
+                                       IdCard* _tmp35_ = NULL;
+                                       TrustAnchor* _tmp36_ = NULL;
+                                       TrustAnchor* _tmp37_ = NULL;
+                                       gboolean _tmp38_ = FALSE;
+                                       gboolean _result_ = FALSE;
+                                       IdCard* _tmp61_ = NULL;
+                                       gboolean _tmp62_ = FALSE;
+                                       gboolean _tmp63_ = FALSE;
+                                       gboolean _tmp64_ = FALSE;
+#line 936 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp33_ = card;
+#line 936 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       if (_tmp33_ == NULL) {
+#line 5360 "moonshot-identity-management-view.c"
+                                               MoonshotLogger* _tmp34_ = NULL;
+#line 937 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp34_ = identity_manager_view_logger;
+#line 937 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               moonshot_logger_trace (_tmp34_, "import_identities_cb: Skipping null IdCard", NULL);
+#line 938 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _g_object_unref0 (card);
+#line 938 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               continue;
+#line 5370 "moonshot-identity-management-view.c"
+                                       }
+#line 941 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp35_ = card;
+#line 941 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp36_ = id_card_get_trust_anchor (_tmp35_);
+#line 941 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp37_ = _tmp36_;
+#line 941 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp38_ = trust_anchor_is_empty (_tmp37_);
+#line 941 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       if (!_tmp38_) {
+#line 5382 "moonshot-identity-management-view.c"
+                                               gchar* ta_datetime_added = NULL;
+                                               gchar* _tmp39_ = NULL;
+                                               IdCard* _tmp40_ = NULL;
+                                               TrustAnchor* _tmp41_ = NULL;
+                                               TrustAnchor* _tmp42_ = NULL;
+                                               const gchar* _tmp43_ = NULL;
+                                               MoonshotLogger* _tmp44_ = NULL;
+                                               IdCard* _tmp45_ = NULL;
+                                               const gchar* _tmp46_ = NULL;
+                                               const gchar* _tmp47_ = NULL;
+                                               const gchar* _tmp48_ = NULL;
+                                               IdCard* _tmp49_ = NULL;
+                                               TrustAnchor* _tmp50_ = NULL;
+                                               TrustAnchor* _tmp51_ = NULL;
+                                               const gchar* _tmp52_ = NULL;
+                                               const gchar* _tmp53_ = NULL;
+                                               IdCard* _tmp54_ = NULL;
+                                               TrustAnchor* _tmp55_ = NULL;
+                                               TrustAnchor* _tmp56_ = NULL;
+                                               const gchar* _tmp57_ = NULL;
+                                               const gchar* _tmp58_ = NULL;
+                                               gchar* _tmp59_ = NULL;
+                                               gchar* _tmp60_ = NULL;
+#line 942 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp39_ = trust_anchor_format_datetime_now ();
+#line 942 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               ta_datetime_added = _tmp39_;
+#line 943 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp40_ = card;
+#line 943 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp41_ = id_card_get_trust_anchor (_tmp40_);
+#line 943 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp42_ = _tmp41_;
+#line 943 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp43_ = ta_datetime_added;
+#line 943 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               trust_anchor_set_datetime_added (_tmp42_, _tmp43_);
 #line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (widget != NULL);
+                                               _tmp44_ = identity_manager_view_logger;
 #line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       g_return_if_fail (target_widget != NULL);
-#line 946 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp0_ = widget;
-#line 946 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp1_ = gtk_widget_get_accessible (_tmp0_);
-#line 946 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp2_ = _g_object_ref0 (_tmp1_);
-#line 946 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       atk_widget = _tmp2_;
-#line 947 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp3_ = target_widget;
-#line 947 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp4_ = gtk_widget_get_accessible (_tmp3_);
-#line 947 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp5_ = _g_object_ref0 (_tmp4_);
-#line 947 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       atk_target_widget = _tmp5_;
-#line 949 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _tmp6_ = relationship;
-#line 949 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       atk_object_add_relationship (atk_widget, _tmp6_, atk_target_widget);
+                                               _tmp45_ = card;
 #line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (atk_target_widget);
+                                               _tmp46_ = id_card_get_display_name (_tmp45_);
 #line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (atk_widget);
-#line 4909 "moonshot-identity-management-view.c"
+                                               _tmp47_ = _tmp46_;
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp48_ = ta_datetime_added;
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp49_ = card;
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp50_ = id_card_get_trust_anchor (_tmp49_);
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp51_ = _tmp50_;
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp52_ = trust_anchor_get_ca_cert (_tmp51_);
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp53_ = _tmp52_;
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp54_ = card;
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp55_ = id_card_get_trust_anchor (_tmp54_);
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp56_ = _tmp55_;
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp57_ = trust_anchor_get_server_cert (_tmp56_);
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp58_ = _tmp57_;
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp59_ = g_strdup_printf ("import_identities_cb : Set ta_datetime_added for '%s' to '%s'; ca_cert" \
+"='%s'; server_cert='%s'", _tmp47_, _tmp48_, _tmp53_, _tmp58_);
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp60_ = _tmp59_;
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               moonshot_logger_trace (_tmp44_, _tmp60_, NULL);
+#line 944 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _g_free0 (_tmp60_);
+#line 941 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _g_free0 (ta_datetime_added);
+#line 5460 "moonshot-identity-management-view.c"
+                                       }
+#line 949 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp61_ = card;
+#line 949 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp62_ = self->priv->use_flat_file_store;
+#line 949 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp63_ = identity_manager_view_add_identity (self, _tmp61_, _tmp62_, NULL);
+#line 949 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _result_ = _tmp63_;
+#line 950 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _tmp64_ = _result_;
+#line 950 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       if (_tmp64_) {
+#line 5474 "moonshot-identity-management-view.c"
+                                               MoonshotLogger* _tmp65_ = NULL;
+                                               IdCard* _tmp66_ = NULL;
+                                               const gchar* _tmp67_ = NULL;
+                                               const gchar* _tmp68_ = NULL;
+                                               const gchar* _tmp69_ = NULL;
+                                               gchar* _tmp70_ = NULL;
+                                               gchar* _tmp71_ = NULL;
+                                               gint _tmp72_ = 0;
+#line 951 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp65_ = identity_manager_view_logger;
+#line 951 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp66_ = card;
+#line 951 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp67_ = id_card_get_display_name (_tmp66_);
+#line 951 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp68_ = _tmp67_;
+#line 951 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp69_ = string_to_string (_tmp68_);
+#line 951 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp70_ = g_strconcat ("import_identities_cb: Added or updated '", _tmp69_, "'", NULL);
+#line 951 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp71_ = _tmp70_;
+#line 951 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               moonshot_logger_trace (_tmp65_, _tmp71_, NULL);
+#line 951 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _g_free0 (_tmp71_);
+#line 952 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp72_ = import_count;
+#line 952 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               import_count = _tmp72_ + 1;
+#line 5505 "moonshot-identity-management-view.c"
+                                       } else {
+                                               MoonshotLogger* _tmp73_ = NULL;
+                                               IdCard* _tmp74_ = NULL;
+                                               const gchar* _tmp75_ = NULL;
+                                               const gchar* _tmp76_ = NULL;
+                                               const gchar* _tmp77_ = NULL;
+                                               gchar* _tmp78_ = NULL;
+                                               gchar* _tmp79_ = NULL;
+#line 955 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp73_ = identity_manager_view_logger;
+#line 955 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp74_ = card;
+#line 955 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp75_ = id_card_get_display_name (_tmp74_);
+#line 955 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp76_ = _tmp75_;
+#line 955 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp77_ = string_to_string (_tmp76_);
+#line 955 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp78_ = g_strconcat ("import_identities_cb: Did not add or update '", _tmp77_, "'", NULL);
+#line 955 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _tmp79_ = _tmp78_;
+#line 955 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               moonshot_logger_trace (_tmp73_, _tmp79_, NULL);
+#line 955 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                               _g_free0 (_tmp79_);
+#line 5532 "moonshot-identity-management-view.c"
+                                       }
+#line 933 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                                       _g_object_unref0 (card);
+#line 5536 "moonshot-identity-management-view.c"
+                               }
+                       }
+               }
+#line 958 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _tmp80_ = import_count;
+#line 958 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               if (_tmp80_ == 0) {
+#line 5544 "moonshot-identity-management-view.c"
+                       GtkMessageDialog* msg_dialog = NULL;
+                       const gchar* _tmp81_ = NULL;
+                       GtkMessageDialog* _tmp82_ = NULL;
+                       GtkMessageDialog* _tmp83_ = NULL;
+                       GtkMessageDialog* _tmp84_ = NULL;
+#line 959 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp81_ = _ ("Import completed. No identities were added or updated.");
+#line 959 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp82_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s", _tmp81_);
+#line 959 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       g_object_ref_sink (_tmp82_);
+#line 959 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       msg_dialog = _tmp82_;
+#line 965 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp83_ = msg_dialog;
+#line 965 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       gtk_dialog_run ((GtkDialog*) _tmp83_);
+#line 966 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _tmp84_ = msg_dialog;
+#line 966 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       gtk_object_destroy ((GtkObject*) _tmp84_);
+#line 958 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+                       _g_object_unref0 (msg_dialog);
+#line 5568 "moonshot-identity-management-view.c"
+               }
+#line 920 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (webp);
+#line 920 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_object_unref0 (file);
+#line 920 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+               _g_free0 (filename);
+#line 5576 "moonshot-identity-management-view.c"
+       }
+#line 969 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp85_ = dialog;
+#line 969 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       gtk_object_destroy ((GtkObject*) _tmp85_);
+#line 908 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (dialog);
+#line 5584 "moonshot-identity-management-view.c"
 }
 
 
 static void identity_manager_view_class_init (IdentityManagerViewClass * klass) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       MoonshotLogger* _tmp0_ = NULL;
+       GdkColor _tmp1_ = {0};
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        identity_manager_view_parent_class = g_type_class_peek_parent (klass);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        g_type_class_add_private (klass, sizeof (IdentityManagerViewPrivate));
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        G_OBJECT_CLASS (klass)->finalize = identity_manager_view_finalize;
-#line 4920 "moonshot-identity-management-view.c"
+#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _tmp0_ = get_logger ("IdentityManagerView");
+#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_logger = _tmp0_;
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       make_color ((guint16) 65535, (guint16) 65535, (guint16) 65535, &_tmp1_);
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       identity_manager_view_white = _tmp1_;
+#line 5605 "moonshot-identity-management-view.c"
 }
 
 
 static void identity_manager_view_instance_init (IdentityManagerView * self) {
        GtkUIManager* _tmp0_ = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        self->priv = IDENTITY_MANAGER_VIEW_GET_PRIVATE (self);
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->use_flat_file_store = FALSE;
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _tmp0_ = gtk_ui_manager_new ();
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        self->priv->ui_manager = _tmp0_;
-#line 4932 "moonshot-identity-management-view.c"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->remember_identity_binding = NULL;
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->selected_card = NULL;
+#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       self->priv->import_directory = NULL;
+#line 5625 "moonshot-identity-management-view.c"
 }
 
 
 static void identity_manager_view_finalize (GObject* obj) {
        IdentityManagerView * self;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerView);
-#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _identity_manager_app_unref0 (self->parent_app);
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->ui_manager);
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->search_entry);
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->vbox_right);
-#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->login_vbox);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->services_vbox);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->custom_vbox);
 #line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->services_internal_vbox);
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->issuer_entry);
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->username_entry);
+       _identity_manager_app_unref0 (self->parent_app);
 #line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->password_entry);
+       _g_object_unref0 (self->priv->ui_manager);
 #line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->prompting_service);
+       _g_object_unref0 (self->priv->search_entry);
 #line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->no_identity_title);
+       _g_object_unref0 (self->priv->custom_vbox);
 #line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->remember_checkbutton);
+       _g_object_unref0 (self->priv->service_prompt_vbox);
 #line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->priv->update_password_button);
+       _g_object_unref0 (self->priv->edit_button);
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->priv->remove_button);
 #line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->priv->send_button);
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        _g_object_unref0 (self->priv->filter);
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_object_unref0 (self->identities_manager);
 #line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       __g_queue_free__g_object_unref0_0 (self->request_queue);
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
-       _g_hash_table_unref0 (self->priv->service_button_map);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->identities_manager);
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       __g_queue_free__g_object_unref0_0 (self->priv->request_queue);
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->remember_identity_binding);
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_object_unref0 (self->priv->selected_card);
+#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
+       _g_free0 (self->priv->import_directory);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-management-view.vala"
        G_OBJECT_CLASS (identity_manager_view_parent_class)->finalize (obj);
-#line 4980 "moonshot-identity-management-view.c"
+#line 5663 "moonshot-identity-management-view.c"
 }
 
 
index d9d7c5a..f46ba26 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 */
 using Gee;
 using Gtk;
+using WebProvisioning;
 
 public class IdentityManagerView : Window {
-    private const int WINDOW_WIDTH = 400;
+    static MoonshotLogger logger = get_logger("IdentityManagerView");
+
+    bool use_flat_file_store = false;
+
+    // The latest year in which Moonshot sources were modified.
+    private static int LATEST_EDIT_YEAR = 2016;
+
+    public static Gdk.Color white = make_color(65535, 65535, 65535);
+
+    private const int WINDOW_WIDTH = 700;
     private const int WINDOW_HEIGHT = 500;
     protected IdentityManagerApp parent_app;
-#if OS_MACOS
-       public OSXApplication osxApp;
-#endif
+    #if OS_MACOS
+        public OSXApplication osxApp;
+    #endif
     private UIManager ui_manager = new UIManager();
     private Entry search_entry;
-    private VBox vbox_right;
-    private VBox login_vbox;
-    private VBox services_vbox;
     private CustomVBox custom_vbox;
-    private VBox services_internal_vbox;
-
-    private Entry issuer_entry;
-    private Entry username_entry;
-    private Entry password_entry;
-    private Label prompting_service;
-    private Label no_identity_title;
-    private CheckButton remember_checkbutton;
-    private Button update_password_button;
+    private VBox service_prompt_vbox;
+    private Button edit_button;
+    private Button remove_button;
 
+    private Button send_button;
+    
     private Gtk.ListStore* listmodel;
     private TreeModelFilter filter;
 
-    public IdentityManagerModel identities_manager;
+    internal IdentityManagerModel identities_manager;
     private unowned SList<IdCard>    candidates;
 
-    public GLib.Queue<IdentityRequest> request_queue;
+    private GLib.Queue<IdentityRequest> request_queue;
+
+    internal CheckButton remember_identity_binding = null;
+
+    private IdCard selected_card = null;
 
-    private HashTable<Gtk.Button, string> service_button_map;
+    private string import_directory = null;
 
     private enum Columns
     {
@@ -75,46 +82,65 @@ public class IdentityManagerView : Window {
         N_COLUMNS
     }
 
-    private const string layout =
-"<menubar name='MenuBar'>" +
-"        <menu name='FileMenu' action='FileMenuAction'>" +
-"            <menuitem name='AddIdCard' action='AddIdCardAction' />" +
-"            <separator />" +
-"            <menuitem name='Quit' action='QuitAction' />" +
-"        </menu>" +
-"" +
-"        <menu name='HelpMenu' action='HelpMenuAction'>" +
-"             <menuitem name='About' action='AboutAction' />" +
-"        </menu>" +
-"</menubar>";
-
-    public IdentityManagerView(IdentityManagerApp app) {
-       parent_app = app;
-#if OS_MACOS
-               osxApp = OSXApplication.get_instance();
-#endif
-          identities_manager = parent_app.model;
-       request_queue = new GLib.Queue<IdentityRequest>();
-       service_button_map = new HashTable<Gtk.Button, string> (direct_hash, direct_equal);
-       this.title = "Moonshot Identity Selector";
-       this.set_position (WindowPosition.CENTER);
-       set_default_size (WINDOW_WIDTH, WINDOW_HEIGHT);
-       build_ui();
-       setup_list_model(); 
-       load_id_cards(); 
-       connect_signals();
+    private const string menu_layout =
+    "<menubar name='MenuBar'>" +
+    "        <menu name='HelpMenu' action='HelpMenuAction'>" +
+    "             <menuitem name='About' action='AboutAction' />" +
+    "        </menu>" +
+    "</menubar>";
+
+    public IdentityManagerView(IdentityManagerApp app, bool use_flat_file_store) {
+        parent_app = app;
+        this.use_flat_file_store = use_flat_file_store;
+
+        #if OS_MACOS
+            osxApp = OSXApplication.get_instance();
+        #endif
+        identities_manager = parent_app.model;
+        request_queue = new GLib.Queue<IdentityRequest>();
+        this.title = _("Moonshot Identity Selector");
+        this.set_position(WindowPosition.CENTER);
+        set_default_size(WINDOW_WIDTH, WINDOW_HEIGHT);
+        build_ui();
+        setup_list_model(); 
+        load_id_cards();
+        connect_signals();
+        report_duplicate_nais(); 
     }
     
-    public void on_card_list_changed () {
+    private void report_duplicate_nais() {
+        ArrayList<ArrayList<IdCard>> duplicates;
+        identities_manager.find_duplicate_nai_sets(out duplicates);
+        foreach (ArrayList<IdCard> list in duplicates) {
+            string message = _("The following identities use the same Network Access Identifier (NAI),\n'%s'.").printf(list.get(0).nai)
+                + _("\n\nDuplicate NAIs are not allowed. Please remove identities you don't need, or modify") 
+                + _(" user ID or issuer fields so that they are no longer the same NAI.");
+
+            foreach (var card in list) {
+                message += _("\n\nDisplay Name: '%s'\nServices:\n     %s").printf(card.display_name, card.get_services_string(",\n     "));
+            }
+            var msg_dialog = new Gtk.MessageDialog(this,
+                                                   Gtk.DialogFlags.DESTROY_WITH_PARENT,
+                                                   Gtk.MessageType.INFO,
+                                                   Gtk.ButtonsType.OK,
+                                                   "%s",
+                                                   message);
+            msg_dialog.run();
+            msg_dialog.destroy();
+        }
+    }
+
+    private void on_card_list_changed() {
+        logger.trace("on_card_list_changed");
         load_id_cards();
     }
     
-    private bool visible_func (TreeModel model, TreeIter iter)
+    private bool visible_func(TreeModel model, TreeIter iter)
     {
         IdCard id_card;
 
-        model.get (iter,
-                   Columns.IDCARD_COL, out id_card);
+        model.get(iter,
+                  Columns.IDCARD_COL, out id_card);
 
         if (id_card == null)
             return false;
@@ -131,7 +157,7 @@ public class IdentityManagerView : Window {
                 return false;
         }
         
-        string entry_text = search_entry.get_text ();
+        string entry_text = search_entry.get_text();
         if (entry_text == null || entry_text == "")
         {
             return true;
@@ -143,31 +169,31 @@ public class IdentityManagerView : Window {
                 continue;
          
 
-            string search_text_casefold = search_text.casefold ();
+            string search_text_casefold = search_text.casefold();
 
             if (id_card.issuer != null)
             {
-              string issuer_casefold = id_card.issuer;
+                string issuer_casefold = id_card.issuer;
 
-              if (issuer_casefold.contains (search_text_casefold))
-                  return true;
+                if (issuer_casefold.contains(search_text_casefold))
+                    return true;
             }
 
             if (id_card.display_name != null)
             {
-                string display_name_casefold = id_card.display_name.casefold ();
+                string display_name_casefold = id_card.display_name.casefold();
               
-                if (display_name_casefold.contains (search_text_casefold))
+                if (display_name_casefold.contains(search_text_casefold))
                     return true;
             }
             
-            if (id_card.services.length > 0)
+            if (id_card.services.size > 0)
             {
                 foreach (string service in id_card.services)
                 {
-                    string service_casefold = service.casefold ();
+                    string service_casefold = service.casefold();
 
-                    if (service_casefold.contains (search_text_casefold))
+                    if (service_casefold.contains(search_text_casefold))
                         return true;
                 }
             }
@@ -175,84 +201,38 @@ public class IdentityManagerView : Window {
         return false;
     }
 
-    private void setup_list_model ()
+    private void setup_list_model()
     {
-      this.listmodel = new Gtk.ListStore (Columns.N_COLUMNS, typeof (IdCard),
-                                                          typeof (Gdk.Pixbuf),
-                                                          typeof (string),
-                                                          typeof (string),
-                                                          typeof (string));
-      this.filter = new TreeModelFilter (listmodel, null);
+        this.listmodel = new Gtk.ListStore(Columns.N_COLUMNS, typeof(IdCard),
+                                           typeof(Gdk.Pixbuf),
+                                           typeof(string),
+                                           typeof(string),
+                                           typeof(string));
+        this.filter = new TreeModelFilter(listmodel, null);
 
-      filter.set_visible_func (visible_func);
+        filter.set_visible_func(visible_func);
     }
 
-    private void search_entry_icon_press_cb (EntryIconPosition pos, Gdk.Event event)
+    private void search_entry_text_changed_cb()
     {
-        if (pos == EntryIconPosition.PRIMARY)
-        {
-            print ("Search entry icon pressed\n");
-        }
-        else
-        {
-            this.search_entry.set_text ("");
-        }
+        this.filter.refilter();
+        redraw_id_card_widgets();
     }
 
-    private void search_entry_text_changed_cb ()
-    {
-        this.filter.refilter ();
-        redraw_id_card_widgets ();
-
-        var has_text = this.search_entry.get_text_length () > 0;
-        this.search_entry.set_icon_sensitive (EntryIconPosition.PRIMARY, has_text);
-        this.search_entry.set_icon_sensitive (EntryIconPosition.SECONDARY, has_text);
-
-        this.vbox_right.set_visible (false);
-    }
-
-    private bool search_entry_key_press_event_cb (Gdk.EventKey e)
+    private bool search_entry_key_press_event_cb(Gdk.EventKey e)
     {
         if(Gdk.keyval_name(e.keyval) == "Escape")
-           this.search_entry.set_text("");
+            this.search_entry.set_text("");
 
         // Continue processing this event, since the
         // text entry functionality needs to see it too.
         return false;
     }
 
-    private void update_password_cb()
-    {
-        if (this.custom_vbox.current_idcard != null) {
-            var identity = this.custom_vbox.current_idcard.id_card;
-            var dialog = new AddPasswordDialog(identity, null);
-            var result = dialog.run ();
-
-            switch (result) {
-            case ResponseType.OK:
-                identity.password = dialog.password;
-                identity.store_password = dialog.remember;
-                if (dialog.remember)
-                    identity.temporary = false;
-                identity = identities_manager.update_card(identity);
-                break;
-            default:
-                break;
-            }
-            dialog.destroy ();
-        }
-    }
+    private void load_id_cards() {
+        logger.trace("load_id_cards");
 
-    private void load_id_cards () {
-        string current_idcard_nai = null;
-        if (this.custom_vbox.current_idcard != null) {
-            current_idcard_nai = custom_vbox.current_idcard.id_card.nai;
-            custom_vbox.current_idcard = null;
-        }
-        var children = this.custom_vbox.get_children ();
-        foreach (var id_card_widget in children) {
-        remove_id_card_widget((IdCardWidget)id_card_widget);
-        }   
+        custom_vbox.clear();
         this.listmodel->clear();
         LinkedList<IdCard> card_list = identities_manager.get_card_list() ;
         if (card_list == null) {
@@ -260,79 +240,36 @@ public class IdentityManagerView : Window {
         }
 
         foreach (IdCard id_card in card_list) {
-            add_id_card_data (id_card);
-            IdCardWidget id_card_widget = add_id_card_widget (id_card);
-            if (id_card_widget.id_card.nai == current_idcard_nai) {
-                fill_details(id_card_widget);
-                id_card_widget.expand();
-            }
+            logger.trace(@"load_id_cards: Loading card with display name '$(id_card.display_name)'");
+            add_id_card_data(id_card);
+            add_id_card_widget(id_card);
         }
-        if (custom_vbox.current_idcard == null)
-            fill_details(null);
     }
     
-    private void fill_details (IdCardWidget? id_card_widget)
-    {
-        var vr_children = this.vbox_right.get_children();
-        foreach (var vr_child in vr_children)
-            this.vbox_right.remove(vr_child);
-        if (id_card_widget != null) {
-            var id_card = id_card_widget.id_card;
-            if (id_card.display_name == IdCard.NO_IDENTITY) {
-               this.vbox_right.pack_start(no_identity_title, false, true, 0);
-            } else {
-                this.issuer_entry.set_text (id_card.issuer);
-               this.username_entry.set_text (id_card.username);
-               this.password_entry.set_text (id_card.password ?? "");
-               this.vbox_right.pack_start(login_vbox, false, true, 0);
-               this.remember_checkbutton.active = id_card.store_password;
-            }
-            this.vbox_right.pack_start (services_vbox, false, true, 0);
-
-            var children = this.services_internal_vbox.get_children ();
-            foreach (var hbox in children)
-               services_internal_vbox.remove(hbox);
-            fill_services_vbox (id_card_widget.id_card);
-        }
-    }
-
-    private void show_details (IdCard id_card)
-    {
-       this.vbox_right.set_visible (!vbox_right.get_visible ());
-
-       if (this.vbox_right.get_visible () == false)
-       {
-           this.resize (WINDOW_WIDTH, WINDOW_HEIGHT);
-       }
-    }
-
-    private void details_identity_cb (IdCardWidget id_card_widget)
-    {
-       fill_details (id_card_widget);
-       show_details (id_card_widget.id_card);
-    }
-
-    private IdCard get_id_card_data (AddIdentityDialog dialog)
+    private IdCard update_id_card_data(IdentityDialog dialog, IdCard id_card)
     {
-        var id_card = new IdCard ();
-
         id_card.display_name = dialog.display_name;
         id_card.issuer = dialog.issuer;
         id_card.username = dialog.username;
         id_card.password = dialog.password;
         id_card.store_password = dialog.store_password;
-        id_card.services = {};
+
+        id_card.update_services_from_list(dialog.get_services());
+
+        if (dialog.clear_trust_anchor) {
+            id_card.clear_trust_anchor();
+        }
 
         return id_card;
     }
 
-    private void add_id_card_data (IdCard id_card)
+    private void add_id_card_data(IdCard id_card)
     {
         TreeIter   iter;
         Gdk.Pixbuf pixbuf;
-        this.listmodel->append (out iter);
+        this.listmodel->append(out iter);
         pixbuf = get_pixbuf(id_card);
-        listmodel->set (iter,
+        listmodel->set(iter,
                        Columns.IDCARD_COL, id_card,
                        Columns.LOGO_COL, pixbuf,
                        Columns.ISSUER_COL, id_card.issuer,
@@ -340,198 +277,297 @@ public class IdentityManagerView : Window {
                        Columns.PASSWORD_COL, id_card.password);
     }
 
-    private void remove_id_card_data (IdCard id_card)
+    private IdCardWidget add_id_card_widget(IdCard id_card)
     {
-        TreeIter iter;
-        string issuer;
-
-        if (listmodel->get_iter_first (out iter))
-        {
-            do
-            {
-                listmodel->get (iter,
-                               Columns.ISSUER_COL, out issuer);
+        if (id_card == null) {
+            logger.trace("add_id_card_widget: id_card == null; returning.");
+            return null;
+        }
 
-                if (id_card.issuer == issuer)
-                {
-                    listmodel->remove (iter);
-                    break;
-                }
-            }
-            while (listmodel->iter_next (ref iter));
+        logger.trace("add_id_card_widget: id_card.nai='%s'; selected nai='%s'"
+                     .printf(id_card.nai, 
+                             this.selected_card == null ? "[null selection]" : this.selected_card.nai));
+
+
+        var id_card_widget = new IdCardWidget(id_card, this);
+        this.custom_vbox.add_id_card_widget(id_card_widget);
+        id_card_widget.expanded.connect(this.widget_selected_cb);
+        id_card_widget.collapsed.connect(this.widget_unselected_cb);
+
+        if (this.selected_card != null && this.selected_card.nai == id_card.nai) {
+            logger.trace(@"add_id_card_widget: Expanding selected idcard widget");
+            id_card_widget.expand();
+
+            // After a card is added, modified, or deleted, we reload all the cards.
+            // (I'm not sure why, or if it's necessary to do this.) This means that the
+            // selected_card may now point to a card instance that's not in the current list.
+            // Hence the only way to carry the selection across reloads is to identify
+            // the selected card by its NAI. And hence we need to reset what our idea of the
+            // "selected card" is.
+            // There should be a better way to do this, especially since we're not great
+            // at preventing duplicate NAIs.
+            this.selected_card = id_card;
         }
+        return id_card_widget;
     }
 
-    private IdCardWidget add_id_card_widget (IdCard id_card)
+    private void widget_selected_cb(IdCardWidget id_card_widget)
     {
-        var id_card_widget = new IdCardWidget (id_card);
-        this.custom_vbox.add_id_card_widget (id_card_widget);
-        id_card_widget.details_id.connect (details_identity_cb);
-        id_card_widget.remove_id.connect (remove_identity_cb);
-        id_card_widget.send_id.connect ((w) => send_identity_cb (w.id_card));
-        id_card_widget.expanded.connect (this.custom_vbox.receive_expanded_event);
-        id_card_widget.expanded.connect (fill_details);
-        return id_card_widget;
+        logger.trace(@"widget_selected_cb: id_card_widget.id_card.display_name='$(id_card_widget.id_card.display_name)'");
+
+        this.selected_card = id_card_widget.id_card;
+        bool allow_removes = !id_card_widget.id_card.is_no_identity();
+        this.remove_button.set_sensitive(allow_removes);
+        this.edit_button.set_sensitive(true);
+        this.custom_vbox.receive_expanded_event(id_card_widget);
+
+        if (this.selection_in_progress())
+             this.send_button.set_sensitive(true);
     }
 
-    public bool add_identity (IdCard id_card, bool force_flat_file_store)
+    private void widget_unselected_cb(IdCardWidget id_card_widget)
     {
-#if OS_MACOS
+        logger.trace(@"widget_unselected_cb: id_card_widget.id_card.display_name='$(id_card_widget.id_card.display_name)'");
+
+        this.selected_card = null;
+        this.remove_button.set_sensitive(false);
+        this.edit_button.set_sensitive(false);
+        this.custom_vbox.receive_collapsed_event(id_card_widget);
+
+        this.send_button.set_sensitive(false);
+    }
+
+    public bool add_identity(IdCard id_card, bool force_flat_file_store, out ArrayList<IdCard>? old_duplicates=null)
+    {
+        #if OS_MACOS
         /* 
          * TODO: We should have a confirmation dialog, but currently it will crash on Mac OS
          * so for now we will install silently
          */
         var ret = Gtk.ResponseType.YES;
-#else
+        #else
         Gtk.MessageDialog dialog;
         IdCard? prev_id = identities_manager.find_id_card(id_card.nai, force_flat_file_store);
+        logger.trace("add_identity(flat=%s, card='%s'): find_id_card returned %s"
+                     .printf(force_flat_file_store.to_string(), id_card.display_name, (prev_id != null ? prev_id.display_name : "null")));
         if (prev_id!=null) {
             int flags = prev_id.Compare(id_card);
+            logger.trace("add_identity: compare returned " + flags.to_string());
             if (flags == 0) {
+                if (&old_duplicates != null) {
+                    old_duplicates = new ArrayList<IdCard>();
+                }
+
                 return false; // no changes, no need to update
-            } else if ((flags & (1<<IdCard.DiffFlags.DISPLAY_NAME)) != 0) {
-                dialog = new Gtk.MessageDialog (this,
-                                            Gtk.DialogFlags.DESTROY_WITH_PARENT,
-                                            Gtk.MessageType.QUESTION,
-                                            Gtk.ButtonsType.YES_NO,
-                                            _("Would you like to replace ID Card '%s' using nai '%s' with the new ID Card '%s'?"),
-                                            prev_id.display_name,
-                                            prev_id.nai,
-                                            id_card.display_name);
+            } else if ((flags & (1 << IdCard.DiffFlags.DISPLAY_NAME)) != 0) {
+                dialog = new Gtk.MessageDialog(this,
+                                               Gtk.DialogFlags.DESTROY_WITH_PARENT,
+                                               Gtk.MessageType.QUESTION,
+                                               Gtk.ButtonsType.YES_NO,
+                                               _("Would you like to replace ID Card '%s' using nai '%s' with the new ID Card '%s'?"),
+                                               prev_id.display_name,
+                                               prev_id.nai,
+                                               id_card.display_name);
             } else {
-                dialog = new Gtk.MessageDialog (this,
-                                            Gtk.DialogFlags.DESTROY_WITH_PARENT,
-                                            Gtk.MessageType.QUESTION,
-                                            Gtk.ButtonsType.YES_NO,
-                                            _("Would you like to update ID Card '%s' using nai '%s'?"),
-                                            id_card.display_name,
-                                            id_card.nai);
+                dialog = new Gtk.MessageDialog(this,
+                                               Gtk.DialogFlags.DESTROY_WITH_PARENT,
+                                               Gtk.MessageType.QUESTION,
+                                               Gtk.ButtonsType.YES_NO,
+                                               _("Would you like to update ID Card '%s' using nai '%s'?"),
+                                               id_card.display_name,
+                                               id_card.nai);
             }
         } else {
-            dialog = new Gtk.MessageDialog (this,
-                                            Gtk.DialogFlags.DESTROY_WITH_PARENT,
-                                            Gtk.MessageType.QUESTION,
-                                            Gtk.ButtonsType.YES_NO,
-                                            _("Would you like to add '%s' ID Card to the ID Card Organizer?"),
-                                            id_card.display_name);
+            dialog = new Gtk.MessageDialog(this,
+                                           Gtk.DialogFlags.DESTROY_WITH_PARENT,
+                                           Gtk.MessageType.QUESTION,
+                                           Gtk.ButtonsType.YES_NO,
+                                           _("Would you like to add '%s' ID Card to the ID Card Organizer?"),
+                                           id_card.display_name);
         }
-        var ret = dialog.run ();
-        dialog.destroy ();
-#endif
+        var ret = dialog.run();
+        dialog.destroy();
+        #endif
 
         if (ret == Gtk.ResponseType.YES) {
-            this.identities_manager.add_card (id_card, force_flat_file_store);
+            this.identities_manager.add_card(id_card, force_flat_file_store, out old_duplicates);
             return true;
         }
-
-        return false;
+        else {
+            if (&old_duplicates != null) {
+                old_duplicates = new ArrayList<IdCard>();
+            }
+            return false;
+        }
     }
 
-    private void add_identity_manual_cb ()
+    private void add_identity_cb()
     {
-        var dialog = new AddIdentityDialog ();
+        var dialog = new IdentityDialog(this);
         int result = ResponseType.CANCEL;
         while (!dialog.complete)
-            result = dialog.run ();
+            result = dialog.run();
 
         switch (result) {
         case ResponseType.OK:
-            this.identities_manager.add_card (get_id_card_data (dialog), false);
+            this.identities_manager.add_card(update_id_card_data(dialog, new IdCard()), false);
             break;
         default:
             break;
         }
-        dialog.destroy ();
+        dialog.destroy();
     }
 
-    private void remove_id_card_widget (IdCardWidget id_card_widget) {
-       this.custom_vbox.remove_id_card_widget (id_card_widget);
+    private void edit_identity_cb(IdCard card)
+    {
+        var dialog = new IdentityDialog.with_idcard(card, _("Edit Identity"), this);
+        int result = ResponseType.CANCEL;
+        while (!dialog.complete)
+            result = dialog.run();
+
+        switch (result) {
+        case ResponseType.OK:
+            this.identities_manager.update_card(update_id_card_data(dialog, card));
+
+            // Make sure we haven't created a duplicate NAI via this update.
+            report_duplicate_nais();
+            break;
+        default:
+            break;
+        }
+        dialog.destroy();
     }
 
-    private void remove_identity (IdCardWidget id_card_widget)
+    private void remove_identity(IdCard id_card)
     {
-        var id_card = id_card_widget.id_card;
-        remove_id_card_widget (id_card_widget);
+        logger.trace(@"remove_identity: id_card.display_name='$(id_card.display_name)'");
 
+        this.selected_card = null;
         this.identities_manager.remove_card(id_card);
+
+        // Nothing is selected, so disable buttons
+        this.edit_button.set_sensitive(false);
+        this.remove_button.set_sensitive(false);
+        this.send_button.set_sensitive(false);
     }
 
-    private void redraw_id_card_widgets ()
+    private void redraw_id_card_widgets()
     {
         TreeIter iter;
         IdCard id_card;
 
-        var children = this.custom_vbox.get_children ();
-        foreach (var id_card_widget in children)
-            remove_id_card_widget((IdCardWidget )id_card_widget); //id_card_widget.destroy();
+        this.custom_vbox.clear();
 
-        if (filter.get_iter_first (out iter))
+        if (filter.get_iter_first(out iter))
         {
             do
             {
-                filter.get (iter,
-                            Columns.IDCARD_COL, out id_card);
+                filter.get(iter,
+                           Columns.IDCARD_COL, out id_card);
 
-                add_id_card_widget (id_card);
+                add_id_card_widget(id_card);
             }
-            while (filter.iter_next (ref iter));
+            while (filter.iter_next(ref iter));
         }
     }
 
-    private void remove_identity_cb (IdCardWidget id_card_widget)
+    private void remove_identity_cb(IdCard id_card)
     {
-        var id_card = id_card_widget.id_card;
-
-        var dialog = new MessageDialog (this,
-                                        DialogFlags.DESTROY_WITH_PARENT,
-                                        MessageType.QUESTION,
-                                        Gtk.ButtonsType.YES_NO,
-                                        _("Are you sure you want to delete %s ID Card?"), id_card.issuer);
-        var result = dialog.run ();
-        switch (result) {
-        case ResponseType.YES:
-            remove_identity (id_card_widget);
-            break;
-        default:
-            break;
-        }
-        dialog.destroy ();
+        bool remove = WarningDialog.confirm(this, 
+                                            Markup.printf_escaped(
+                                                "<span font-weight='heavy'>" + _("You are about to remove the identity '%s'.") + "</span>",
+                                                id_card.display_name)
+                                            + "\n\n" + _("Are you sure you want to do this?"),
+                                            "delete_idcard");
+        if (remove) 
+            remove_identity(id_card);
     }
 
-    public void set_prompting_service(string service)
+    private void set_prompting_service(string service)
     {
-        prompting_service.set_label( _("Identity requested for service: %s").printf(service) );
+        clear_selection_prompts();
+
+        var prompting_service = new Label(_("Identity requested for service:\n%s").printf(service));
+        prompting_service.set_line_wrap(true);
+
+        // left-align
+        prompting_service.set_alignment(0, (float )0.5);
+
+        var selection_prompt = new Label(_("Select your identity:"));
+        selection_prompt.set_alignment(0, 1);
+
+        this.service_prompt_vbox.pack_start(prompting_service, false, false, 12);
+        this.service_prompt_vbox.pack_start(selection_prompt, false, false, 2);
+        this.service_prompt_vbox.show_all();
     }
 
+    private void clear_selection_prompts()
+    {
+        var list = service_prompt_vbox.get_children();
+        foreach (Widget w in list)
+        {
+            service_prompt_vbox.remove(w);
+        }
+    }
+
+
     public void queue_identity_request(IdentityRequest request)
     {
-        if (this.request_queue.is_empty())
+        bool queue_was_empty = !this.selection_in_progress();
+        this.request_queue.push_tail(request);
+
+        if (queue_was_empty)
         { /* setup widgets */
             candidates = request.candidates;
             filter.refilter();
-            redraw_id_card_widgets ();
+            redraw_id_card_widgets();
             set_prompting_service(request.service);
-            show ();
+            remember_identity_binding.show();
+
+            if (this.custom_vbox.find_idcard_widget(this.selected_card) != null) {
+                // A widget is already selected, and has not been filtered out of the display via search
+                send_button.set_sensitive(true);
+            }
+
+            make_visible();
         }
-        this.request_queue.push_tail (request);
+    }
+
+
+    /** Makes the window visible, or at least, notifies the user that the window
+     * wants to be visible.
+     *
+     * This differs from show() in that show() does not guarantee that the 
+     * window will be moved to the foreground. Actually, neither does this
+     * method, because the user's settings and window manager may affect the
+     * behavior significantly.
+     */
+    public void make_visible()
+    {
+        set_urgency_hint(true);
+        present();
     }
 
     public IdCard check_add_password(IdCard identity, IdentityRequest request, IdentityManagerModel model)
     {
+        logger.trace(@"check_add_password");
         IdCard retval = identity;
         bool idcard_has_pw = (identity.password != null) && (identity.password != "");
         bool request_has_pw = (request.password != null) && (request.password != "");
-        if ((!idcard_has_pw) && (!identity.IsNoIdentity())) {
+        if ((!idcard_has_pw) && (!identity.is_no_identity())) {
             if (request_has_pw) {
                 identity.password = request.password;
                 retval = model.update_card(identity);
             } else {
-                var dialog = new AddPasswordDialog (identity, request);
-                var result = dialog.run ();
+                var dialog = new AddPasswordDialog(identity, request);
+                var result = dialog.run();
 
                 switch (result) {
                 case ResponseType.OK:
                     identity.password = dialog.password;
+                    // Don't leave passwords in memory longer than necessary.
+                    // (This may not actually clear the data, but it's the best we can do.)
+                    dialog.clear_password();
                     identity.store_password = dialog.remember;
                     if (dialog.remember)
                         identity.temporary = false;
@@ -541,28 +577,32 @@ public class IdentityManagerView : Window {
                     identity = null;
                     break;
                 }
-                dialog.destroy ();
+                // Do this again, in case OK button wasn't selected.
+                dialog.clear_password();
+                dialog.destroy();
             }
         }
         return retval;
     }
 
-    public void send_identity_cb (IdCard id)
+    private void send_identity_cb(IdCard id)
     {
-        IdCard identity = id;
-        return_if_fail (request_queue.length > 0);
+        return_if_fail(this.selection_in_progress());
+
+        var request = this.request_queue.pop_head();
+        var identity = check_add_password(id, request, identities_manager);
+        send_button.set_sensitive(false);
 
-       candidates = null;
-        var request = this.request_queue.pop_head ();
-        identity = check_add_password(identity, request, identities_manager);
-        if (this.request_queue.is_empty())
+        candidates = null;
+      
+        if (!this.selection_in_progress())
         {
             candidates = null;
-            prompting_service.set_label(_(""));
+            clear_selection_prompts();
             if (!parent_app.explicitly_launched) {
 // The following occasionally causes the app to exit without sending the dbus
 // reply, so for now we just don't exit
-//                Gtk.main_quit ();
+//                Gtk.main_quit();
 // just hide instead
                 this.hide();
             }
@@ -572,113 +612,24 @@ public class IdentityManagerView : Window {
             set_prompting_service(next.service);
         }
         filter.refilter();
-        redraw_id_card_widgets ();
+        redraw_id_card_widgets();
 
-        if ((identity != null) && (!identity.IsNoIdentity()))
+        if ((identity != null) && (!identity.is_no_identity()))
             parent_app.default_id_card = identity;
 
-        request.return_identity (identity);
-    }
-
-    private void label_make_bold (Label label)
-    {
-        var font_desc = new Pango.FontDescription ();
-
-        font_desc.set_weight (Pango.Weight.BOLD);
-
-        /* This will only affect the weight of the font, the rest is
-         * from the current state of the widget, which comes from the
-         * theme or user prefs, since the font desc only has the
-         * weight flag turned on.
-         */
-        label.modify_font (font_desc);
-    }
-
-    private void fill_services_vbox (IdCard id_card)
-    {
-        int i = 0;
-        var n_columns = id_card.services.length;
-
-        var services_table = new Table (n_columns, 2, false);
-        services_table.set_col_spacings (10);
-        services_table.set_row_spacings (10);
-        this.services_internal_vbox.add (services_table);
-        
-        service_button_map.remove_all ();
-
-        foreach (string service in id_card.services)
-        {
-            var label = new Label (service);
-            label.set_alignment (0, (float) 0.5);
-#if VALA_0_12
-            var remove_button = new Button.from_stock (Stock.REMOVE);
-#else
-            var remove_button = new Button.from_stock (STOCK_REMOVE);
-#endif
-
+        request.return_identity(identity, remember_identity_binding.active);
 
-            service_button_map.insert (remove_button, service);
-            
-            remove_button.clicked.connect ((remove_button) =>
-            {
-              var candidate = service_button_map.lookup (remove_button);
-              if (candidate == null)
-                return;
-              var dialog = new Gtk.MessageDialog (this,
-                                      Gtk.DialogFlags.DESTROY_WITH_PARENT,
-                                      Gtk.MessageType.QUESTION,
-                                      Gtk.ButtonsType.YES_NO,
-                                      _("Are you sure you want to stop '%s' ID Card from being used with %s?"),
-                                      custom_vbox.current_idcard.id_card.display_name,
-                                      candidate);
-              var ret = dialog.run();
-              dialog.hide();
-              
-              if (ret == Gtk.ResponseType.YES)
-              {
-                IdCard idcard = custom_vbox.current_idcard.id_card;
-                if (idcard != null) {
-                  SList<string> services = new SList<string>();
-                
-                  foreach (string srv in idcard.services)
-                  {
-                    if (srv == candidate)
-                      continue;
-                    services.append (srv);
-                  }
-                
-                  idcard.services = new string[services.length()];
-                  for (int j=0; j<idcard.services.length; j++)
-                  {
-                    idcard.services[j] = services.nth_data(j);
-                  }
-                
-                  identities_manager.update_card(idcard);
-                }
-              }
-              
-            });
-            services_table.attach_defaults (label, 0, 1, i, i+1);
-            services_table.attach_defaults (remove_button, 1, 2, i, i+1);
-            i++;
-        }
-        this.services_internal_vbox.show_all ();
+        remember_identity_binding.active = true;
+        remember_identity_binding.hide();
     }
 
-    private void on_about_action ()
+    private void on_about_action()
     {
-        string[] authors = {
-            "Javier Jardón <jjardon@codethink.co.uk>",
-            "Sam Thursfield <samthursfield@codethink.co.uk>",
-            "Alberto Ruiz <alberto.ruiz@codethink.co.uk>",
-            null
-        };
-
-        string copyright = "Copyright 2011 JANET";
+        string copyright = "Copyright (c) 2011, %d JANET".printf(LATEST_EDIT_YEAR);
 
         string license =
-"""
-Copyright (c) 2011, JANET(UK)
+        """
+Copyright (c) 2011, %d JANET(UK)
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -707,247 +658,315 @@ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 SUCH DAMAGE.
-""";
-
-        Gtk.show_about_dialog (this,
-            "comments", _("Moonshot project UI"),
-            "copyright", copyright,
-            "website", Config.PACKAGE_URL,
-            "version", Config.PACKAGE_VERSION,
-            "license", license,
-            "website-label", _("Visit the Moonshot project web site"),
-            "authors", authors,
-            "translator-credits", _("translator-credits"),
-            null
-        );
+""".printf(LATEST_EDIT_YEAR);
+
+        AboutDialog about = new AboutDialog();
+
+        about.set_comments(_("Moonshot project UI"));
+        about.set_copyright(copyright);
+        about.set_website(Config.PACKAGE_URL);
+        about.set_website_label(_("Visit the Moonshot project web site"));
+
+        // Note: The package version is configured at the top of moonshot/ui/configure.ac
+        about.set_version(Config.PACKAGE_VERSION);
+        about.set_license(license);
+        about.set_modal(true);
+        about.set_transient_for(this);
+        about.response.connect((a, b) => {about.destroy();});
+        set_bg_color(about);
+        
+        about.run();
     }
 
     private Gtk.ActionEntry[] create_actions() {
         Gtk.ActionEntry[] actions = new Gtk.ActionEntry[0];
 
-        Gtk.ActionEntry filemenu = { "FileMenuAction",
-                                     null,
-                                     N_("_File"),
-                                     null, null, null };
-        actions += filemenu;
-        Gtk.ActionEntry add = { "AddIdCardAction",
-#if VALA_0_12
-                                Stock.ADD,
-#else
-                                STOCK_ADD,
-#endif
-                                N_("Add ID Card"),
-                                null,
-                                N_("Add a new ID Card"),
-                                add_identity_manual_cb };
-        actions += add;
-        Gtk.ActionEntry quit = { "QuitAction",
-#if VALA_0_12
-                                 Stock.QUIT,
-#else
-                                 STOCK_QUIT,
-#endif
-                                 N_("Quit"),
-                                 "<control>Q",
-                                 N_("Quit the application"),
-                                 Gtk.main_quit };
-        actions += quit;
-
         Gtk.ActionEntry helpmenu = { "HelpMenuAction",
                                      null,
                                      N_("_Help"),
                                      null, null, null };
+
+        // Pick up the translated version of the name, if any
+        helpmenu.label = dgettext(null, helpmenu.label);
         actions += helpmenu;
+
         Gtk.ActionEntry about = { "AboutAction",
-#if VALA_0_12
+                                  #if VALA_0_12
                                   Stock.ABOUT,
-#else
+                                  #else
                                   STOCK_ABOUT,
-#endif
+                                  #endif
                                   N_("About"),
                                   null,
                                   N_("About this application"),
                                   on_about_action };
+
+        about.label = dgettext(null, about.label);
         actions += about;
 
         return actions;
     }
 
 
-    private void create_ui_manager ()
+    private void create_ui_manager()
     {
-        Gtk.ActionGroup action_group = new Gtk.ActionGroup ("GeneralActionGroup");
-        action_group.add_actions (create_actions (), this);
-        ui_manager.insert_action_group (action_group, 0);
+        Gtk.ActionGroup action_group = new Gtk.ActionGroup("GeneralActionGroup");
+        action_group.add_actions(create_actions(), this);
+        ui_manager.insert_action_group(action_group, 0);
         try
         {
-            ui_manager.add_ui_from_string (layout, -1);
+            ui_manager.add_ui_from_string(menu_layout, -1);
         }
         catch (Error e)
         {
-            stderr.printf ("%s\n", e.message);
+            stderr.printf("%s\n", e.message);
+            logger.error("create_ui_manager: Caught error: " + e.message);
         }
-        ui_manager.ensure_update ();
+        ui_manager.ensure_update();
     }
 
     private void build_ui()
     {
-        create_ui_manager ();
+        set_bg_color(this);
+
+        create_ui_manager();
 
+        int num_rows = 18;
+        int num_cols = 8;
+        int button_width = 1;
+
+        Table top_table = new Table(num_rows, 10, false);
+        top_table.set_border_width(12);
+
+        AttachOptions fill_and_expand = AttachOptions.EXPAND | AttachOptions.FILL;
+        AttachOptions fill = AttachOptions.FILL;
+        int row = 0;
+
+        service_prompt_vbox = new VBox(false, 0);
+        top_table.attach(service_prompt_vbox, 0, 1, row, row + 1, fill_and_expand, fill_and_expand, 12, 0);
+        row++;
+
+        string search_tooltip_text = _("Search for an identity or service");
         this.search_entry = new Entry();
 
-        set_atk_name_description (search_entry, _("Search entry"), _("Search for a specific ID Card"));
-        this.search_entry.set_icon_from_pixbuf (EntryIconPosition.PRIMARY,
-                                                find_icon_sized ("edit-find", Gtk.IconSize.MENU));
-//                                                find_icon_sized ("edit-find-symbolic", Gtk.IconSize.MENU));
-        this.search_entry.set_icon_tooltip_text (EntryIconPosition.PRIMARY,
-                                                 _("Search identity or service"));
-        this.search_entry.set_icon_sensitive (EntryIconPosition.PRIMARY, false);
+        set_atk_name_description(search_entry, _("Search entry"), _("Search for a specific ID Card"));
+        this.search_entry.set_icon_from_pixbuf(EntryIconPosition.SECONDARY,
+                                               find_icon_sized("edit-find", Gtk.IconSize.MENU));
+        this.search_entry.set_icon_tooltip_text(EntryIconPosition.SECONDARY,
+                                                search_tooltip_text);
 
-        this.search_entry.set_icon_from_pixbuf (EntryIconPosition.SECONDARY,
-                                                find_icon_sized ("process-stop", Gtk.IconSize.MENU));
-//                                                find_icon_sized ("edit-clear-symbolic", Gtk.IconSize.MENU));
-        this.search_entry.set_icon_tooltip_text (EntryIconPosition.SECONDARY,
-                                                 _("Clear the current search"));
-        this.search_entry.set_icon_sensitive (EntryIconPosition.SECONDARY, false);
+        this.search_entry.set_tooltip_text(search_tooltip_text);
 
+        this.search_entry.set_icon_sensitive(EntryIconPosition.SECONDARY, false);
 
-        this.search_entry.icon_press.connect (search_entry_icon_press_cb);
-        this.search_entry.notify["text"].connect (search_entry_text_changed_cb);
+        this.search_entry.notify["text"].connect(search_entry_text_changed_cb);
         this.search_entry.key_press_event.connect(search_entry_key_press_event_cb);
+        this.search_entry.set_width_chars(24);
+
+        var search_label_markup ="<small>" + search_tooltip_text + "</small>";
+        var full_search_label = new Label(null);
+        full_search_label.set_markup(search_label_markup);
+        full_search_label.set_alignment(1, 0);
+
+        var search_vbox = new VBox(false, 0);
+        search_vbox.pack_start(search_entry, false, false, 0);
+        var search_spacer = new Alignment(0, 0, 0, 0);
+        search_spacer.set_size_request(0, 2);
+        search_vbox.pack_start(search_spacer, false, false, 0);
+        search_vbox.pack_start(full_search_label, false, false, 0);
+
+        // Overlap with the service_prompt_box
+        top_table.attach(search_vbox, 5, num_cols - button_width, row - 1, row + 1, fill_and_expand, fill, 0, 12);
+        row++;
+
+        this.custom_vbox = new CustomVBox(this, false, 2);
+
+        var viewport = new Viewport(null, null);
+        viewport.set_border_width(2);
+        viewport.set_shadow_type(ShadowType.NONE);
+        viewport.add(custom_vbox);
+        var id_scrollwin = new ScrolledWindow(null, null);
+        id_scrollwin.set_policy(PolicyType.NEVER, PolicyType.AUTOMATIC);
+        id_scrollwin.set_shadow_type(ShadowType.IN);
+        id_scrollwin.add_with_viewport(viewport);
+        top_table.attach(id_scrollwin, 0, num_cols - 1, row, num_rows - 1, fill_and_expand, fill_and_expand, 6, 0);
+
+        // Right below id_scrollwin:
+        remember_identity_binding = new CheckButton.with_label(_("Remember my identity choice for this service"));
+        remember_identity_binding.active = true;
+        top_table.attach(remember_identity_binding, 0, num_cols / 2, num_rows - 1, num_rows, fill_and_expand, fill_and_expand, 3, 0);
+
+        var add_button = new Button.with_label(_("Add"));
+        add_button.clicked.connect((w) => {add_identity_cb();});
+        top_table.attach(make_rigid(add_button), num_cols - button_width, num_cols, row, row + 1, fill, fill, 0, 0);
+        row++;
+
+        var import_button = new Button.with_label(_("Import"));
+        import_button.clicked.connect((w) => {import_identities_cb();});
+        top_table.attach(make_rigid(import_button), num_cols - button_width, num_cols, row, row + 1, fill, fill, 0, 0);
+        row++;
+
+        this.edit_button = new Button.with_label(_("Edit"));
+        edit_button.clicked.connect((w) => {edit_identity_cb(this.selected_card);});
+        edit_button.set_sensitive(false);
+        top_table.attach(make_rigid(edit_button), num_cols - button_width, num_cols, row, row + 1, fill, fill, 0, 0);
+        row++;
+
+        this.remove_button = new Button.with_label(_("Remove"));
+        remove_button.clicked.connect((w) => {remove_identity_cb(this.selected_card);});
+        remove_button.set_sensitive(false);
+        top_table.attach(make_rigid(remove_button), num_cols - button_width, num_cols, row, row + 1, fill, fill, 0, 0);
+        row++;
+
+        // push the send button down another row.
+        row++;
+        this.send_button = new Button.with_label(_("Send"));
+        send_button.clicked.connect((w) => {send_identity_cb(this.selected_card);});
+        // send_button.set_visible(false);
+        send_button.set_sensitive(false);
+        top_table.attach(make_rigid(send_button), num_cols - button_width, num_cols, row, row + 1, fill, fill, 0, 0);
+        row++;
+
+        var main_vbox = new VBox(false, 0);
 
-        this.custom_vbox = new CustomVBox (this, false, 6);
-
-        var viewport = new Viewport (null, null);
-        viewport.set_border_width (6);
-        viewport.set_shadow_type (ShadowType.NONE);
-        viewport.add (custom_vbox);
-        var scroll = new ScrolledWindow (null, null);
-        scroll.set_policy (PolicyType.NEVER, PolicyType.AUTOMATIC);
-        scroll.set_shadow_type (ShadowType.IN);
-        scroll.add_with_viewport (viewport);
-        this.prompting_service = new Label (_(""));
-        // left-align
-        prompting_service.set_alignment(0, (float )0.5);
-
-        var vbox_left = new VBox (false, 0);
-        vbox_left.pack_start (search_entry, false, false, 6);
-        vbox_left.pack_start (scroll, true, true, 0);
-        vbox_left.pack_start (prompting_service, false, false, 6);
-        vbox_left.set_size_request (WINDOW_WIDTH, 0);
-
-        this.no_identity_title = new Label (_("No Identity: Send this identity to services which should not use Moonshot"));
-        no_identity_title.set_alignment(0, (float ) 0.5);
-        no_identity_title.set_line_wrap(true);
-        no_identity_title.show();
-
-        var login_vbox_title = new Label (_("Login: "));
-        label_make_bold (login_vbox_title);
-        login_vbox_title.set_alignment (0, (float) 0.5);
-        var issuer_label = new Label (_("Issuer:"));
-        issuer_label.set_alignment (1, (float) 0.5);
-        this.issuer_entry = new Entry ();
-        issuer_entry.set_can_focus (false);
-        var username_label = new Label (_("Username:"));
-        username_label.set_alignment (1, (float) 0.5);
-        this.username_entry = new Entry ();
-        username_entry.set_can_focus (false);
-        var password_label = new Label (_("Password:"));
-        password_label.set_alignment (1, (float) 0.5);
-        this.password_entry = new Entry ();
-        password_entry.set_invisible_char ('*');
-        password_entry.set_visibility (false);
-        password_entry.set_sensitive (false);
-        this.remember_checkbutton = new CheckButton.with_label (_("Remember password"));
-        remember_checkbutton.set_sensitive(false);
-        this.update_password_button = new Button.with_label (_("Update Password"));
-        this.update_password_button.clicked.connect(update_password_cb);
-
-        set_atk_relation (issuer_label, issuer_entry, Atk.RelationType.LABEL_FOR);
-        set_atk_relation (username_label, username_entry, Atk.RelationType.LABEL_FOR);
-        set_atk_relation (password_entry, password_entry, Atk.RelationType.LABEL_FOR);
-
-        var login_table = new Table (5, 2, false);
-        login_table.set_col_spacings (10);
-        login_table.set_row_spacings (10);
-        login_table.attach_defaults (issuer_label, 0, 1, 0, 1);
-        login_table.attach_defaults (issuer_entry, 1, 2, 0, 1);
-        login_table.attach_defaults (username_label, 0, 1, 1, 2);
-        login_table.attach_defaults (username_entry, 1, 2, 1, 2);
-        login_table.attach_defaults (password_label, 0, 1, 2, 3);
-        login_table.attach_defaults (password_entry, 1, 2, 2, 3);
-        login_table.attach_defaults (remember_checkbutton,  1, 2, 3, 4);
-        login_table.attach_defaults (update_password_button, 0, 1, 4, 5);
-        var login_vbox_alignment = new Alignment (0, 0, 0, 0);
-        login_vbox_alignment.set_padding (0, 0, 12, 0);
-        login_vbox_alignment.add (login_table);
-        this.login_vbox = new VBox (false, 6);
-        login_vbox.pack_start (login_vbox_title, false, true, 0);
-        login_vbox.pack_start (login_vbox_alignment, false, true, 0);
-
-        var services_vbox_title = new Label (_("Services:"));
-        label_make_bold (services_vbox_title);
-        services_vbox_title.set_alignment (0, (float) 0.5);
-        var services_vbox_alignment = new Alignment (0, 0, 0, 0);
-        services_vbox_alignment.set_padding (0, 0, 12, 0);
-        this.services_internal_vbox = new VBox (true, 6);
-        services_vbox_alignment.add (services_internal_vbox);
-        this.services_vbox = new VBox (false, 6);
-        services_vbox.pack_start (services_vbox_title, false, true, 0);
-        services_vbox.pack_start (services_vbox_alignment, false, true, 0);
-
-        this.vbox_right = new VBox (false, 18);
-        vbox_right.pack_start (login_vbox, false, true, 0);
-        vbox_right.pack_start (services_vbox, false, true, 0);
-
-        var hbox = new HBox (false, 12);
-        hbox.pack_start (vbox_left, false, false, 0);
-        hbox.pack_start (vbox_right, true, true, 0);
-
-        var main_vbox = new VBox (false, 0);
-        main_vbox.set_border_width (12);
 #if OS_MACOS
         // hide the  File | Quit menu item which is now on the Mac Menu
-        Gtk.Widget quit_item =  this.ui_manager.get_widget("/MenuBar/FileMenu/Quit");
-        quit_item.hide();
+//        Gtk.Widget quit_item =  this.ui_manager.get_widget("/MenuBar/FileMenu/Quit");
+//        quit_item.hide();
         
-               Gtk.MenuShell menushell = this.ui_manager.get_widget("/MenuBar") as Gtk.MenuShell;
-               osxApp.set_menu_bar(menushell);
-               osxApp.set_use_quartz_accelerators(true);
-               osxApp.sync_menu_bar();
-               osxApp.ready(); 
+        Gtk.MenuShell menushell = this.ui_manager.get_widget("/MenuBar") as Gtk.MenuShell;
+
+        osxApp.set_menu_bar(menushell);
+        osxApp.set_use_quartz_accelerators(true);
+        osxApp.sync_menu_bar();
+        osxApp.ready();
 #else
-        var menubar = this.ui_manager.get_widget ("/MenuBar");
-        main_vbox.pack_start (menubar, false, false, 0);
+        var menubar = this.ui_manager.get_widget("/MenuBar");
+        main_vbox.pack_start(menubar, false, false, 0);
+        set_bg_color(menubar);
 #endif
-        main_vbox.pack_start (hbox, true, true, 0);
-        add (main_vbox);
+        main_vbox.pack_start(top_table, true, true, 6);
+
+        add(main_vbox);
         main_vbox.show_all();
-        this.vbox_right.hide ();
-  } 
 
-    private void set_atk_name_description (Widget widget, string name, string description)
+        if (!this.selection_in_progress())
+            remember_identity_binding.hide();
+    } 
+
+    internal bool selection_in_progress() {
+        return !this.request_queue.is_empty();
+    }
+
+    private void set_atk_name_description(Widget widget, string name, string description)
     {
-       var atk_widget = widget.get_accessible ();
+        var atk_widget = widget.get_accessible();
 
-       atk_widget.set_name (name);
-       atk_widget.set_description (description);
+        atk_widget.set_name(name);
+        atk_widget.set_description(description);
     }
 
     private void connect_signals()
     {
-        this.destroy.connect (Gtk.main_quit);
+        this.destroy.connect(() => {
+                logger.trace("Destroy event; calling Gtk.main_quit()");
+                Gtk.main_quit();
+            });
         this.identities_manager.card_list_changed.connect(this.on_card_list_changed);
+        this.delete_event.connect(() => {return confirm_quit();});
+    }
+
+    private bool confirm_quit() {
+        logger.trace("delete_event intercepted; selection_in_progress()=" + selection_in_progress().to_string());
+
+        if (selection_in_progress()) {
+            var result = WarningDialog.confirm(this,
+                                               Markup.printf_escaped(
+                                                   "<span font-weight='heavy'>" + _("Do you wish to use the %s service?") + "</span>",
+                                                   this.request_queue.peek_head().service)
+                                               + "\n\n" + _("Select Yes to select an ID for this service, or No to cancel"),
+                                               "close_moonshot_window");
+            if (result) {
+                // Prevent other handlers from handling this event; this keeps the window open.
+                return true; 
+            }
+        }
+
+        // Allow the window deletion to proceed.
+        return false;
     }
 
-    private static void set_atk_relation (Widget widget, Widget target_widget, Atk.RelationType relationship)
+    private static Widget make_rigid(Button button) 
     {
-        var atk_widget = widget.get_accessible ();
-        var atk_target_widget = target_widget.get_accessible ();
+        // Hack to prevent the button from growing vertically
+        VBox fixed_height = new VBox(false, 0);
+        fixed_height.pack_start(button, false, false, 0);
 
-        atk_widget.add_relationship (relationship, atk_target_widget);
+        return fixed_height;
     }
-}
 
+    private void import_identities_cb() {
+        var dialog = new FileChooserDialog(_("Import File"),
+                                           this,
+                                           FileChooserAction.OPEN,
+                                           _("Cancel"),ResponseType.CANCEL,
+                                           _("Open"), ResponseType.ACCEPT,
+                                           null);
+
+        if (import_directory != null) {
+            dialog.set_current_folder(import_directory);
+        }
+
+        if (dialog.run() == ResponseType.ACCEPT)
+        {
+            // Save the parent directory to use as default for next save
+            string filename = dialog.get_filename();
+            var file  = File.new_for_path(filename);
+            import_directory = file.get_parent().get_path();
+
+            int import_count = 0;
+
+            var webp = new Parser(filename);
+            dialog.destroy();
+            webp.parse();
+            logger.trace(@"import_identities_cb: Have $(webp.cards.length) IdCards");
+            foreach (IdCard card in webp.cards)
+            {
+
+                if (card == null) {
+                    logger.trace(@"import_identities_cb: Skipping null IdCard");
+                    continue;
+                }
+
+                if (!card.trust_anchor.is_empty()) {
+                    string ta_datetime_added = TrustAnchor.format_datetime_now();
+                    card.trust_anchor.set_datetime_added(ta_datetime_added);
+                    logger.trace("import_identities_cb : Set ta_datetime_added for '%s' to '%s'; ca_cert='%s'; server_cert='%s'"
+                                 .printf(card.display_name, ta_datetime_added, card.trust_anchor.ca_cert, card.trust_anchor.server_cert));
+                }
+
+
+                bool result = add_identity(card, use_flat_file_store);
+                if (result) {
+                    logger.trace(@"import_identities_cb: Added or updated '$(card.display_name)'");
+                    import_count++;
+                }
+                else {
+                    logger.trace(@"import_identities_cb: Did not add or update '$(card.display_name)'");
+                }
+            }
+            if (import_count == 0) {
+                var msg_dialog = new Gtk.MessageDialog(this,
+                                                       Gtk.DialogFlags.DESTROY_WITH_PARENT,
+                                                       Gtk.MessageType.INFO,
+                                                       Gtk.ButtonsType.OK,
+                                                       "%s",
+                                                       _("Import completed. No identities were added or updated."));
+                msg_dialog.run();
+                msg_dialog.destroy();
+            }
+        }
+        dialog.destroy();
+    }
 
+}
index 79392e3..ab4e712 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-identity-manager-app.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-identity-manager-app.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-identity-manager-app.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -38,9 +38,9 @@
 #include <gio/gio.h>
 #include <string.h>
 #include <gtk/gtk.h>
+#include <stdlib.h>
 #include <gnome-keyring.h>
 #include <gee.h>
-#include <stdlib.h>
 #include <stdio.h>
 #include <glib/gi18n-lib.h>
 #include "config.h"
@@ -109,6 +109,16 @@ typedef struct _IdentityManagerViewClass IdentityManagerViewClass;
 
 typedef struct _MoonshotServer MoonshotServer;
 typedef struct _MoonshotServerClass MoonshotServerClass;
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 
 #define IIDENTITY_CARD_STORE_TYPE_STORE_TYPE (iidentity_card_store_store_type_get_type ())
@@ -126,12 +136,12 @@ typedef struct _Block1Data Block1Data;
 #define _identity_manager_app_unref0(var) ((var == NULL) ? NULL : (var = (identity_manager_app_unref (var), NULL)))
 typedef struct _IdentityRequestPrivate IdentityRequestPrivate;
 #define _g_free0(var) (var = (g_free (var), NULL))
-#define __g_slist_free__g_free0_0(var) ((var == NULL) ? NULL : (var = (_g_slist_free__g_free0_ (var), NULL)))
 
 #define TYPE_RULE (rule_get_type ())
 typedef struct _Rule Rule;
 #define _g_pattern_spec_free0(var) ((var == NULL) ? NULL : (var = (g_pattern_spec_free (var), NULL)))
 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _Block2Data Block2Data;
 typedef struct _ParamSpecIdentityManagerApp ParamSpecIdentityManagerApp;
 #define _g_option_context_free0(var) ((var == NULL) ? NULL : (var = (g_option_context_free (var), NULL)))
 #define _g_main_loop_unref0(var) ((var == NULL) ? NULL : (var = (g_main_loop_unref (var), NULL)))
@@ -158,6 +168,10 @@ struct _IdentityManagerAppClass {
 
 struct _IdentityManagerAppPrivate {
        MoonshotServer* ipc_server;
+       gboolean name_is_owned;
+       gboolean show_requested;
+       gboolean _use_flat_file_store;
+       gboolean _headless;
 };
 
 typedef enum  {
@@ -193,12 +207,21 @@ struct _Rule {
        gchar* always_confirm;
 };
 
+struct _Block2Data {
+       int _ref_count_;
+       IdentityManagerApp* self;
+       gboolean shown;
+       gchar* our_name;
+};
+
 struct _ParamSpecIdentityManagerApp {
        GParamSpec parent_instance;
 };
 
 
 static gpointer identity_manager_app_parent_class = NULL;
+extern MoonshotLogger* identity_manager_app_logger;
+MoonshotLogger* identity_manager_app_logger = NULL;
 extern gboolean explicitly_launched;
 gboolean explicitly_launched = TRUE;
 extern gboolean use_flat_file_store;
@@ -233,33 +256,35 @@ guint moonshot_server_register_object (void* object, GDBusConnection* connection
 enum  {
        IDENTITY_MANAGER_APP_DUMMY_PROPERTY
 };
-#define IDENTITY_MANAGER_APP_WINDOW_WIDTH 400
-#define IDENTITY_MANAGER_APP_WINDOW_HEIGHT 500
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* get_logger (const gchar* name);
 void identity_manager_app_show (IdentityManagerApp* self);
+void identity_manager_view_make_visible (IdentityManagerView* self);
 IdentityManagerApp* identity_manager_app_new (gboolean headless, gboolean use_flat_file_store);
 IdentityManagerApp* identity_manager_app_construct (GType object_type, gboolean headless, gboolean use_flat_file_store);
+static void identity_manager_app_set_headless (IdentityManagerApp* self, gboolean value);
 gboolean UserForcesFlatFileStore (void);
+static void identity_manager_app_set_use_flat_file_store (IdentityManagerApp* self, gboolean value);
 GType iidentity_card_store_store_type_get_type (void) G_GNUC_CONST;
 IdentityManagerModel* identity_manager_model_new (IdentityManagerApp* parent_app, IIdentityCardStoreStoreType store_type);
 IdentityManagerModel* identity_manager_model_construct (GType object_type, IdentityManagerApp* parent_app, IIdentityCardStoreStoreType store_type);
 gboolean identity_manager_model_HasNonTrivialIdentities (IdentityManagerModel* self);
 void identity_manager_model_set_store_type (IdentityManagerModel* self, IIdentityCardStoreStoreType type);
-IdentityManagerView* identity_manager_view_new (IdentityManagerApp* app);
-IdentityManagerView* identity_manager_view_construct (GType object_type, IdentityManagerApp* app);
+IdentityManagerView* identity_manager_view_new (IdentityManagerApp* app, gboolean use_flat_file_store);
+IdentityManagerView* identity_manager_view_construct (GType object_type, IdentityManagerApp* app, gboolean use_flat_file_store);
 GeeLinkedList* identity_manager_model_get_card_list (IdentityManagerModel* self);
 static void identity_manager_app_init_ipc_server (IdentityManagerApp* self);
-gboolean identity_manager_app_add_identity (IdentityManagerApp* self, IdCard* id, gboolean force_flat_file_store);
-gboolean identity_manager_view_add_identity (IdentityManagerView* self, IdCard* id_card, gboolean force_flat_file_store);
-void identity_manager_model_add_card (IdentityManagerModel* self, IdCard* card, gboolean force_flat_file_store);
+gboolean identity_manager_app_add_identity (IdentityManagerApp* self, IdCard* id, gboolean force_flat_file_store, GeeArrayList** old_duplicates);
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
+gboolean identity_manager_view_add_identity (IdentityManagerView* self, IdCard* id_card, gboolean force_flat_file_store, GeeArrayList** old_duplicates);
+void identity_manager_model_add_card (IdentityManagerModel* self, IdCard* card, gboolean force_flat_file_store, GeeArrayList** old_duplicates);
 GType identity_request_get_type (void) G_GNUC_CONST;
 void identity_manager_app_select_identity (IdentityManagerApp* self, IdentityRequest* request);
 static Block1Data* block1_data_ref (Block1Data* _data1_);
 static void block1_data_unref (void * _userdata_);
 const gchar* id_card_get_nai (IdCard* self);
-gchar** id_card_get_services (IdCard* self, int* result_length1);
-static void _g_free0_ (gpointer var);
-static void _g_slist_free__g_free0_ (GSList* self);
-void id_card_set_services (IdCard* self, gchar** value, int value_length1);
+const gchar* id_card_get_display_name (IdCard* self);
+GeeArrayList* id_card_get_services (IdCard* self);
 GType rule_get_type (void) G_GNUC_CONST;
 Rule* rule_dup (const Rule* self);
 void rule_free (Rule* self);
@@ -275,18 +300,27 @@ void id_card_set_issuer (IdCard* self, const gchar* value);
 void id_card_set_password (IdCard* self, const gchar* value);
 void id_card_set_temporary (IdCard* self, gboolean value);
 void identity_manager_view_queue_identity_request (IdentityManagerView* self, IdentityRequest* request);
-static gboolean __lambda7_ (Block1Data* _data1_);
+static gboolean __lambda5_ (Block1Data* _data1_);
 IdCard* identity_manager_view_check_add_password (IdentityManagerView* self, IdCard* identity, IdentityRequest* request, IdentityManagerModel* model);
-void identity_request_return_identity (IdentityRequest* self, IdCard* id_card);
-static gboolean ___lambda7__gsource_func (gpointer self);
+void identity_request_return_identity (IdentityRequest* self, IdCard* id_card, gboolean update_card);
+static gboolean ___lambda5__gsource_func (gpointer self);
 static void identity_manager_app_bus_acquired_cb (IdentityManagerApp* self, GDBusConnection* conn);
 MoonshotServer* moonshot_server_new (IdentityManagerApp* app);
 MoonshotServer* moonshot_server_construct (GType object_type, IdentityManagerApp* app);
 static void _identity_manager_app_bus_acquired_cb_gbus_acquired_callback (GDBusConnection* connection, const gchar* name, gpointer self);
-static void __lambda10_ (IdentityManagerApp* self, GDBusConnection* conn, const gchar* name);
-static void ___lambda10__gbus_name_acquired_callback (GDBusConnection* connection, const gchar* name, gpointer self);
-static void __lambda11_ (IdentityManagerApp* self, GDBusConnection* conn, const gchar* name);
-static void ___lambda11__gbus_name_lost_callback (GDBusConnection* connection, const gchar* name, gpointer self);
+static void ___lambda23_ (IdentityManagerApp* self, GDBusConnection* conn, const gchar* name);
+static void ____lambda23__gbus_name_acquired_callback (GDBusConnection* connection, const gchar* name, gpointer self);
+static void ___lambda24_ (IdentityManagerApp* self, GDBusConnection* conn, const gchar* name);
+void moonshot_logger_error (MoonshotLogger* self, const gchar* message, GError* e);
+static void ____lambda24__gbus_name_lost_callback (GDBusConnection* connection, const gchar* name, gpointer self);
+static Block2Data* block2_data_ref (Block2Data* _data2_);
+static void block2_data_unref (void * _userdata_);
+static void __lambda25_ (Block2Data* _data2_, GDBusConnection* conn, const gchar* name);
+static void ___lambda25__gbus_name_acquired_callback (GDBusConnection* connection, const gchar* name, gpointer self);
+static void __lambda26_ (Block2Data* _data2_);
+static void ___lambda26__gbus_name_lost_callback (GDBusConnection* connection, const gchar* name, gpointer self);
+gboolean identity_manager_app_get_use_flat_file_store (IdentityManagerApp* self);
+gboolean identity_manager_app_get_headless (IdentityManagerApp* self);
 static void identity_manager_app_finalize (IdentityManagerApp* obj);
 gint _vala_main (gchar** args, int args_length1);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
@@ -310,7 +344,7 @@ gboolean iidentity_manager_show_ui (IIdentityManager* self, GError** error) {
        g_return_val_if_fail (self != NULL, FALSE);
 #line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return IIDENTITY_MANAGER_GET_INTERFACE (self)->show_ui (self, error);
-#line 313 "moonshot-identity-manager-app.c"
+#line 347 "moonshot-identity-manager-app.c"
 }
 
 
@@ -321,7 +355,7 @@ static void iidentity_manager_base_init (IIdentityManagerIface * iface) {
        if (!initialized) {
 #line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                initialized = TRUE;
-#line 324 "moonshot-identity-manager-app.c"
+#line 358 "moonshot-identity-manager-app.c"
        }
 }
 
@@ -364,8 +398,8 @@ static gboolean iidentity_manager_proxy_show_ui (IIdentityManager* self, GError*
        GDBusMessage *_reply_message;
        GVariant *_reply;
        GVariantIter _reply_iter;
-       gboolean _result;
-       GVariant* _tmp0_;
+       gboolean _result = FALSE;
+       GVariant* _tmp2_;
        G_IO_ERROR;
        _message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.janet.Moonshot", "ShowUi");
        g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
@@ -374,17 +408,19 @@ static gboolean iidentity_manager_proxy_show_ui (IIdentityManager* self, GError*
        _reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
        g_object_unref (_message);
        if (!_reply_message) {
-               return FALSE;
+               gboolean _tmp0_ = FALSE;
+               return _tmp0_;
        }
        if (g_dbus_message_to_gerror (_reply_message, error)) {
+               gboolean _tmp1_ = FALSE;
                g_object_unref (_reply_message);
-               return FALSE;
+               return _tmp1_;
        }
        _reply = g_dbus_message_get_body (_reply_message);
        g_variant_iter_init (&_reply_iter, _reply);
-       _tmp0_ = g_variant_iter_next_value (&_reply_iter);
-       _result = g_variant_get_boolean (_tmp0_);
-       g_variant_unref (_tmp0_);
+       _tmp2_ = g_variant_iter_next_value (&_reply_iter);
+       _result = g_variant_get_boolean (_tmp2_);
+       g_variant_unref (_tmp2_);
        g_object_unref (_reply_message);
        return _result;
 }
@@ -398,7 +434,7 @@ static void iidentity_manager_proxy_iidentity_manager_interface_init (IIdentityM
 static void _dbus_iidentity_manager_show_ui (IIdentityManager* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
        GError* error = NULL;
        GVariantIter _arguments_iter;
-       GDBusMessage* _reply_message;
+       GDBusMessage* _reply_message = NULL;
        GVariant* _reply;
        GVariantBuilder _reply_builder;
        gboolean result;
@@ -475,21 +511,33 @@ static void _iidentity_manager_unregister_object (gpointer user_data) {
 }
 
 
+/** If we're successfully registered with DBus, then show the UI. Otherwise, wait until we're registered. */
 void identity_manager_app_show (IdentityManagerApp* self) {
-       IdentityManagerView* _tmp0_ = NULL;
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       gboolean _tmp0_ = FALSE;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_if_fail (self != NULL);
-#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp0_ = self->view;
-#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (_tmp0_ != NULL) {
-#line 486 "moonshot-identity-manager-app.c"
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp0_ = self->priv->name_is_owned;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp0_) {
+#line 523 "moonshot-identity-manager-app.c"
                IdentityManagerView* _tmp1_ = NULL;
-#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                _tmp1_ = self->view;
-#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               gtk_widget_show ((GtkWidget*) _tmp1_);
-#line 492 "moonshot-identity-manager-app.c"
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               if (_tmp1_ != NULL) {
+#line 529 "moonshot-identity-manager-app.c"
+                       IdentityManagerView* _tmp2_ = NULL;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp2_ = self->view;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       identity_manager_view_make_visible (_tmp2_);
+#line 535 "moonshot-identity-manager-app.c"
+               }
+       } else {
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               self->priv->show_requested = TRUE;
+#line 540 "moonshot-identity-manager-app.c"
        }
 }
 
@@ -500,370 +548,436 @@ IdentityManagerApp* identity_manager_app_construct (GType object_type, gboolean
        gboolean _tmp1_ = FALSE;
        gboolean _tmp2_ = FALSE;
        gboolean _tmp3_ = FALSE;
+       gboolean _tmp4_ = FALSE;
+       gboolean _tmp5_ = FALSE;
        gboolean keyring_available = FALSE;
        IIdentityCardStoreStoreType store_type = 0;
-       gboolean _tmp5_ = FALSE;
-       gboolean _tmp6_ = FALSE;
        gboolean _tmp7_ = FALSE;
-       IIdentityCardStoreStoreType _tmp10_ = 0;
-       IdentityManagerModel* _tmp11_ = NULL;
-       gboolean _tmp12_ = FALSE;
-       gboolean _tmp13_ = FALSE;
+       gboolean _tmp8_ = FALSE;
+       gboolean _tmp9_ = FALSE;
+       IIdentityCardStoreStoreType _tmp12_ = 0;
+       IdentityManagerModel* _tmp13_ = NULL;
        gboolean _tmp14_ = FALSE;
        gboolean _tmp15_ = FALSE;
-       gboolean _tmp21_ = FALSE;
+       gboolean _tmp16_ = FALSE;
+       gboolean _tmp17_ = FALSE;
+       gboolean _tmp23_ = FALSE;
        GeeLinkedList* card_list = NULL;
-       IdentityManagerModel* _tmp23_ = NULL;
-       GeeLinkedList* _tmp24_ = NULL;
-       GeeLinkedList* _tmp25_ = NULL;
-       gint _tmp26_ = 0;
-       gint _tmp27_ = 0;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       IdentityManagerModel* _tmp26_ = NULL;
+       GeeLinkedList* _tmp27_ = NULL;
+       GeeLinkedList* _tmp28_ = NULL;
+       gint _tmp29_ = 0;
+       gint _tmp30_ = 0;
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        self = (IdentityManagerApp*) g_type_create_instance (object_type);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp0_ = use_flat_file_store;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp1_ = UserForcesFlatFileStore ();
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       use_flat_file_store = _tmp0_ | _tmp1_;
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp0_ = headless;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       identity_manager_app_set_headless (self, _tmp0_);
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp1_ = use_flat_file_store;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp2_ = UserForcesFlatFileStore ();
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       use_flat_file_store = _tmp1_ | _tmp2_;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _tmp3_ = use_flat_file_store;
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (!_tmp3_) {
-#line 533 "moonshot-identity-manager-app.c"
-               gboolean _tmp4_ = FALSE;
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp4_ = gnome_keyring_is_available ();
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp2_ = _tmp4_;
-#line 539 "moonshot-identity-manager-app.c"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       identity_manager_app_set_use_flat_file_store (self, _tmp3_);
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp5_ = use_flat_file_store;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (!_tmp5_) {
+#line 591 "moonshot-identity-manager-app.c"
+               gboolean _tmp6_ = FALSE;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp6_ = gnome_keyring_is_available ();
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp4_ = _tmp6_;
+#line 597 "moonshot-identity-manager-app.c"
        } else {
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp2_ = FALSE;
-#line 543 "moonshot-identity-manager-app.c"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp4_ = FALSE;
+#line 601 "moonshot-identity-manager-app.c"
        }
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       keyring_available = _tmp2_;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp7_ = headless;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (_tmp7_) {
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp6_ = TRUE;
-#line 553 "moonshot-identity-manager-app.c"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       keyring_available = _tmp4_;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp9_ = headless;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp9_) {
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp8_ = TRUE;
+#line 611 "moonshot-identity-manager-app.c"
        } else {
-               gboolean _tmp8_ = FALSE;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp8_ = use_flat_file_store;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp6_ = _tmp8_;
-#line 560 "moonshot-identity-manager-app.c"
+               gboolean _tmp10_ = FALSE;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp10_ = use_flat_file_store;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp8_ = _tmp10_;
+#line 618 "moonshot-identity-manager-app.c"
        }
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (_tmp6_) {
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp5_ = TRUE;
-#line 566 "moonshot-identity-manager-app.c"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp8_) {
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp7_ = TRUE;
+#line 624 "moonshot-identity-manager-app.c"
        } else {
-               gboolean _tmp9_ = FALSE;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp9_ = keyring_available;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp5_ = !_tmp9_;
-#line 573 "moonshot-identity-manager-app.c"
+               gboolean _tmp11_ = FALSE;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp11_ = keyring_available;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp7_ = !_tmp11_;
+#line 631 "moonshot-identity-manager-app.c"
        }
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (_tmp5_) {
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp7_) {
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                store_type = IIDENTITY_CARD_STORE_STORE_TYPE_FLAT_FILE;
-#line 579 "moonshot-identity-manager-app.c"
+#line 637 "moonshot-identity-manager-app.c"
        } else {
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                store_type = IIDENTITY_CARD_STORE_STORE_TYPE_KEYRING;
-#line 583 "moonshot-identity-manager-app.c"
+#line 641 "moonshot-identity-manager-app.c"
        }
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp10_ = store_type;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp11_ = identity_manager_model_new (self, _tmp10_);
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp12_ = store_type;
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp13_ = identity_manager_model_new (self, _tmp12_);
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _g_object_unref0 (self->model);
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       self->model = _tmp11_;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp15_ = headless;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (_tmp15_) {
-#line 597 "moonshot-identity-manager-app.c"
-               gboolean _tmp16_ = FALSE;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp16_ = keyring_available;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp14_ = _tmp16_;
-#line 603 "moonshot-identity-manager-app.c"
-       } else {
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp14_ = FALSE;
-#line 607 "moonshot-identity-manager-app.c"
-       }
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (_tmp14_) {
-#line 611 "moonshot-identity-manager-app.c"
-               gboolean _tmp17_ = FALSE;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp17_ = use_flat_file_store;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp13_ = !_tmp17_;
-#line 617 "moonshot-identity-manager-app.c"
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       self->model = _tmp13_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp17_ = headless;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp17_) {
+#line 655 "moonshot-identity-manager-app.c"
+               gboolean _tmp18_ = FALSE;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp18_ = keyring_available;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp16_ = _tmp18_;
+#line 661 "moonshot-identity-manager-app.c"
        } else {
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp13_ = FALSE;
-#line 621 "moonshot-identity-manager-app.c"
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp16_ = FALSE;
+#line 665 "moonshot-identity-manager-app.c"
        }
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (_tmp13_) {
-#line 625 "moonshot-identity-manager-app.c"
-               IdentityManagerModel* _tmp18_ = NULL;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp16_) {
+#line 669 "moonshot-identity-manager-app.c"
                gboolean _tmp19_ = FALSE;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp18_ = self->model;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp19_ = identity_manager_model_HasNonTrivialIdentities (_tmp18_);
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp12_ = !_tmp19_;
-#line 634 "moonshot-identity-manager-app.c"
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp19_ = use_flat_file_store;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp15_ = !_tmp19_;
+#line 675 "moonshot-identity-manager-app.c"
        } else {
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp12_ = FALSE;
-#line 638 "moonshot-identity-manager-app.c"
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp15_ = FALSE;
+#line 679 "moonshot-identity-manager-app.c"
        }
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (_tmp12_) {
-#line 642 "moonshot-identity-manager-app.c"
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp15_) {
+#line 683 "moonshot-identity-manager-app.c"
                IdentityManagerModel* _tmp20_ = NULL;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               gboolean _tmp21_ = FALSE;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                _tmp20_ = self->model;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               identity_manager_model_set_store_type (_tmp20_, IIDENTITY_CARD_STORE_STORE_TYPE_KEYRING);
-#line 648 "moonshot-identity-manager-app.c"
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp21_ = identity_manager_model_HasNonTrivialIdentities (_tmp20_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp14_ = !_tmp21_;
+#line 692 "moonshot-identity-manager-app.c"
+       } else {
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp14_ = FALSE;
+#line 696 "moonshot-identity-manager-app.c"
        }
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp21_ = headless;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (!_tmp21_) {
-#line 654 "moonshot-identity-manager-app.c"
-               IdentityManagerView* _tmp22_ = NULL;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp22_ = identity_manager_view_new (self);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               g_object_ref_sink (_tmp22_);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp14_) {
+#line 700 "moonshot-identity-manager-app.c"
+               IdentityManagerModel* _tmp22_ = NULL;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp22_ = self->model;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               identity_manager_model_set_store_type (_tmp22_, IIDENTITY_CARD_STORE_STORE_TYPE_KEYRING);
+#line 706 "moonshot-identity-manager-app.c"
+       }
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp23_ = headless;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (!_tmp23_) {
+#line 712 "moonshot-identity-manager-app.c"
+               gboolean _tmp24_ = FALSE;
+               IdentityManagerView* _tmp25_ = NULL;
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp24_ = use_flat_file_store;
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp25_ = identity_manager_view_new (self, _tmp24_);
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               g_object_ref_sink (_tmp25_);
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                _g_object_unref0 (self->view);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               self->view = _tmp22_;
-#line 664 "moonshot-identity-manager-app.c"
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               self->view = _tmp25_;
+#line 725 "moonshot-identity-manager-app.c"
        }
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp23_ = self->model;
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp24_ = identity_manager_model_get_card_list (_tmp23_);
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       card_list = _tmp24_;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp25_ = card_list;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp26_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp25_);
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp27_ = _tmp26_;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (_tmp27_ > 0) {
-#line 680 "moonshot-identity-manager-app.c"
-               GeeLinkedList* _tmp28_ = NULL;
-               gpointer _tmp29_ = NULL;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp28_ = card_list;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp29_ = gee_abstract_list_last ((GeeAbstractList*) _tmp28_);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp26_ = self->model;
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp27_ = identity_manager_model_get_card_list (_tmp26_);
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       card_list = _tmp27_;
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp28_ = card_list;
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp29_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp28_);
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp30_ = _tmp29_;
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp30_ > 0) {
+#line 741 "moonshot-identity-manager-app.c"
+               GeeLinkedList* _tmp31_ = NULL;
+               gpointer _tmp32_ = NULL;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp31_ = card_list;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp32_ = gee_linked_list_last (_tmp31_);
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                _g_object_unref0 (self->default_id_card);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               self->default_id_card = (IdCard*) _tmp29_;
-#line 691 "moonshot-identity-manager-app.c"
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               self->default_id_card = (IdCard*) _tmp32_;
+#line 752 "moonshot-identity-manager-app.c"
        }
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        identity_manager_app_init_ipc_server (self);
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _g_object_unref0 (card_list);
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return self;
-#line 699 "moonshot-identity-manager-app.c"
+#line 760 "moonshot-identity-manager-app.c"
 }
 
 
 IdentityManagerApp* identity_manager_app_new (gboolean headless, gboolean use_flat_file_store) {
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return identity_manager_app_construct (TYPE_IDENTITY_MANAGER_APP, headless, use_flat_file_store);
-#line 706 "moonshot-identity-manager-app.c"
+#line 767 "moonshot-identity-manager-app.c"
 }
 
 
-gboolean identity_manager_app_add_identity (IdentityManagerApp* self, IdCard* id, gboolean force_flat_file_store) {
+gboolean identity_manager_app_add_identity (IdentityManagerApp* self, IdCard* id, gboolean force_flat_file_store, GeeArrayList** old_duplicates) {
+       GeeArrayList* _vala_old_duplicates = NULL;
        gboolean result = FALSE;
        IdentityManagerView* _tmp0_ = NULL;
-       IdentityManagerModel* _tmp5_ = NULL;
-       IdCard* _tmp6_ = NULL;
-       gboolean _tmp7_ = FALSE;
-#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_val_if_fail (id != NULL, FALSE);
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _tmp0_ = self->view;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (_tmp0_ != NULL) {
-#line 724 "moonshot-identity-manager-app.c"
-               IdentityManagerView* _tmp1_ = NULL;
-               IdCard* _tmp2_ = NULL;
-               gboolean _tmp3_ = FALSE;
+#line 783 "moonshot-identity-manager-app.c"
+               MoonshotLogger* _tmp1_ = NULL;
+               IdentityManagerView* _tmp2_ = NULL;
+               IdCard* _tmp3_ = NULL;
                gboolean _tmp4_ = FALSE;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp1_ = self->view;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp2_ = id;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp3_ = force_flat_file_store;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp4_ = identity_manager_view_add_identity (_tmp1_, _tmp2_, _tmp3_);
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               result = _tmp4_;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               GeeArrayList* _tmp5_ = NULL;
+               gboolean _tmp6_ = FALSE;
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp1_ = identity_manager_app_logger;
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               moonshot_logger_trace (_tmp1_, "add_identity: calling view.add_identity", NULL);
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp2_ = self->view;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp3_ = id;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp4_ = force_flat_file_store;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp6_ = identity_manager_view_add_identity (_tmp2_, _tmp3_, _tmp4_, &_tmp5_);
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_object_unref0 (_vala_old_duplicates);
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _vala_old_duplicates = _tmp5_;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               result = _tmp6_;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               if (old_duplicates) {
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       *old_duplicates = _vala_old_duplicates;
+#line 812 "moonshot-identity-manager-app.c"
+               } else {
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _g_object_unref0 (_vala_old_duplicates);
+#line 816 "moonshot-identity-manager-app.c"
+               }
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                return result;
-#line 741 "moonshot-identity-manager-app.c"
+#line 820 "moonshot-identity-manager-app.c"
+       } else {
+               MoonshotLogger* _tmp7_ = NULL;
+               IdentityManagerModel* _tmp8_ = NULL;
+               IdCard* _tmp9_ = NULL;
+               gboolean _tmp10_ = FALSE;
+               GeeArrayList* _tmp11_ = NULL;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp7_ = identity_manager_app_logger;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               moonshot_logger_trace (_tmp7_, "add_identity: calling model.add_card", NULL);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp8_ = self->model;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp9_ = id;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp10_ = force_flat_file_store;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               identity_manager_model_add_card (_tmp8_, _tmp9_, _tmp10_, &_tmp11_);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_object_unref0 (_vala_old_duplicates);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _vala_old_duplicates = _tmp11_;
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               result = TRUE;
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               if (old_duplicates) {
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       *old_duplicates = _vala_old_duplicates;
+#line 849 "moonshot-identity-manager-app.c"
+               } else {
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _g_object_unref0 (_vala_old_duplicates);
+#line 853 "moonshot-identity-manager-app.c"
+               }
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               return result;
+#line 857 "moonshot-identity-manager-app.c"
+       }
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (old_duplicates) {
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               *old_duplicates = _vala_old_duplicates;
+#line 863 "moonshot-identity-manager-app.c"
+       } else {
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_object_unref0 (_vala_old_duplicates);
+#line 867 "moonshot-identity-manager-app.c"
        }
-#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp5_ = self->model;
-#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp6_ = id;
-#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp7_ = force_flat_file_store;
-#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       identity_manager_model_add_card (_tmp5_, _tmp6_, _tmp7_);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       result = TRUE;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       return result;
-#line 755 "moonshot-identity-manager-app.c"
 }
 
 
 static gpointer _g_object_ref0 (gpointer self) {
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return self ? g_object_ref (self) : NULL;
-#line 762 "moonshot-identity-manager-app.c"
+#line 875 "moonshot-identity-manager-app.c"
 }
 
 
 static Block1Data* block1_data_ref (Block1Data* _data1_) {
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_atomic_int_inc (&_data1_->_ref_count_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return _data1_;
-#line 771 "moonshot-identity-manager-app.c"
+#line 884 "moonshot-identity-manager-app.c"
 }
 
 
 static void block1_data_unref (void * _userdata_) {
        Block1Data* _data1_;
        _data1_ = (Block1Data*) _userdata_;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
-#line 780 "moonshot-identity-manager-app.c"
+#line 893 "moonshot-identity-manager-app.c"
                IdentityManagerApp* self;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                self = _data1_->self;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                _g_object_unref0 (_data1_->identity);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                _g_object_unref0 (_data1_->request);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                _identity_manager_app_unref0 (self);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                g_slice_free (Block1Data, _data1_);
-#line 792 "moonshot-identity-manager-app.c"
+#line 905 "moonshot-identity-manager-app.c"
        }
 }
 
 
-static void _g_free0_ (gpointer var) {
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       var = (g_free (var), NULL);
-#line 800 "moonshot-identity-manager-app.c"
-}
-
-
-static void _g_slist_free__g_free0_ (GSList* self) {
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       g_slist_foreach (self, (GFunc) _g_free0_, NULL);
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       g_slist_free (self);
-#line 809 "moonshot-identity-manager-app.c"
+static const gchar* string_to_string (const gchar* self) {
+       const gchar* result = NULL;
+#line 1420 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = self;
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 918 "moonshot-identity-manager-app.c"
 }
 
 
-static gboolean __lambda7_ (Block1Data* _data1_) {
+static gboolean __lambda5_ (Block1Data* _data1_) {
        IdentityManagerApp* self;
        gboolean result = FALSE;
        IdentityManagerView* _tmp0_ = NULL;
-       IdentityRequest* _tmp6_ = NULL;
-       IdCard* _tmp7_ = NULL;
-#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       IdentityRequest* _tmp7_ = NULL;
+       IdCard* _tmp8_ = NULL;
+#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        self = _data1_->self;
-#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _tmp0_ = self->view;
-#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (_tmp0_ != NULL) {
-#line 825 "moonshot-identity-manager-app.c"
-               IdentityManagerView* _tmp1_ = NULL;
-               IdCard* _tmp2_ = NULL;
-               IdentityRequest* _tmp3_ = NULL;
-               IdentityManagerModel* _tmp4_ = NULL;
-               IdCard* _tmp5_ = NULL;
-#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp1_ = self->view;
-#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp2_ = _data1_->identity;
-#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp3_ = _data1_->request;
-#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp4_ = self->model;
-#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp5_ = identity_manager_view_check_add_password (_tmp1_, _tmp2_, _tmp3_, _tmp4_);
-#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _g_object_unref0 (_data1_->identity);
-#line 243 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _data1_->identity = _tmp5_;
-#line 845 "moonshot-identity-manager-app.c"
-       }
+#line 934 "moonshot-identity-manager-app.c"
+               MoonshotLogger* _tmp1_ = NULL;
+               IdentityManagerView* _tmp2_ = NULL;
+               IdCard* _tmp3_ = NULL;
+               IdentityRequest* _tmp4_ = NULL;
+               IdentityManagerModel* _tmp5_ = NULL;
+               IdCard* _tmp6_ = NULL;
 #line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp6_ = _data1_->request;
+               _tmp1_ = identity_manager_app_logger;
 #line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp7_ = _data1_->identity;
-#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       identity_request_return_identity (_tmp6_, _tmp7_);
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               moonshot_logger_trace (_tmp1_, "select_identity (Idle handler): calling check_add_password", NULL);
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp2_ = self->view;
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp3_ = _data1_->identity;
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp4_ = _data1_->request;
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp5_ = self->model;
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp6_ = identity_manager_view_check_add_password (_tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_object_unref0 (_data1_->identity);
+#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _data1_->identity = _tmp6_;
+#line 959 "moonshot-identity-manager-app.c"
+       }
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp7_ = _data1_->request;
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp8_ = _data1_->identity;
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       identity_request_return_identity (_tmp7_, _tmp8_, TRUE);
+#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        result = FALSE;
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return result;
-#line 857 "moonshot-identity-manager-app.c"
+#line 971 "moonshot-identity-manager-app.c"
 }
 
 
-static gboolean ___lambda7__gsource_func (gpointer self) {
+static gboolean ___lambda5__gsource_func (gpointer self) {
        gboolean result;
-       result = __lambda7_ (self);
-#line 240 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       result = __lambda5_ (self);
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return result;
-#line 866 "moonshot-identity-manager-app.c"
+#line 980 "moonshot-identity-manager-app.c"
 }
 
 
@@ -871,973 +985,912 @@ void identity_manager_app_select_identity (IdentityManagerApp* self, IdentityReq
        Block1Data* _data1_;
        IdentityRequest* _tmp0_ = NULL;
        IdentityRequest* _tmp1_ = NULL;
-       IdentityRequest* _tmp2_ = NULL;
-       gboolean _tmp3_ = FALSE;
-       IdCard* _tmp6_ = NULL;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       const gchar* _tmp2_ = NULL;
+       IdentityRequest* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       MoonshotLogger* _tmp5_ = NULL;
+       gchar* _tmp6_ = NULL;
+       gchar* _tmp7_ = NULL;
+       IdentityRequest* _tmp8_ = NULL;
+       gboolean _tmp9_ = FALSE;
+       IdCard* _tmp12_ = NULL;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_if_fail (self != NULL);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_if_fail (request != NULL);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _data1_ = g_slice_new0 (Block1Data);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _data1_->_ref_count_ = 1;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _data1_->self = identity_manager_app_ref (self);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _tmp0_ = request;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _tmp1_ = _g_object_ref0 (_tmp0_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _g_object_unref0 (_data1_->request);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _data1_->request = _tmp1_;
-#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp3_ = _data1_->request;
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp4_ = _tmp3_->nai;
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp2_ = _tmp4_;
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp2_ == NULL) {
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp2_ = "[null]";
+#line 1025 "moonshot-identity-manager-app.c"
+       }
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp5_ = identity_manager_app_logger;
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp6_ = g_strdup_printf ("select_identity: request.nai=%s", _tmp2_);
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp7_ = _tmp6_;
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       moonshot_logger_trace (_tmp5_, _tmp7_, NULL);
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _g_free0 (_tmp7_);
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _data1_->identity = NULL;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp2_ = _data1_->request;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp3_ = _tmp2_->select_default;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (_tmp3_) {
-#line 903 "moonshot-identity-manager-app.c"
-               IdCard* _tmp4_ = NULL;
-               IdCard* _tmp5_ = NULL;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp4_ = self->default_id_card;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp5_ = _g_object_ref0 (_tmp4_);
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp8_ = _data1_->request;
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp9_ = _tmp8_->select_default;
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp9_) {
+#line 1045 "moonshot-identity-manager-app.c"
+               IdCard* _tmp10_ = NULL;
+               IdCard* _tmp11_ = NULL;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp10_ = self->default_id_card;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                _g_object_unref0 (_data1_->identity);
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _data1_->identity = _tmp5_;
-#line 914 "moonshot-identity-manager-app.c"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _data1_->identity = _tmp11_;
+#line 1056 "moonshot-identity-manager-app.c"
        }
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp6_ = _data1_->identity;
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (_tmp6_ == NULL) {
-#line 920 "moonshot-identity-manager-app.c"
-               gboolean _tmp7_ = FALSE;
-               IdentityRequest* _tmp8_ = NULL;
-               const gchar* _tmp9_ = NULL;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp12_ = _data1_->identity;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp12_ == NULL) {
+#line 1062 "moonshot-identity-manager-app.c"
+               gboolean _tmp13_ = FALSE;
+               IdentityRequest* _tmp14_ = NULL;
+               const gchar* _tmp15_ = NULL;
                gboolean has_nai = FALSE;
-               gboolean _tmp12_ = FALSE;
-               IdentityRequest* _tmp13_ = NULL;
-               const gchar* _tmp14_ = NULL;
+               gboolean _tmp18_ = FALSE;
+               IdentityRequest* _tmp19_ = NULL;
+               const gchar* _tmp20_ = NULL;
                gboolean has_srv = FALSE;
                gboolean confirm = FALSE;
-               gboolean _tmp48_ = FALSE;
-               gboolean _tmp49_ = FALSE;
-               IdCard* _tmp50_ = NULL;
-               gboolean _tmp86_ = FALSE;
-               IdCard* _tmp87_ = NULL;
-               gboolean _tmp116_ = FALSE;
-               IdCard* _tmp117_ = NULL;
-               IdCard* _tmp138_ = NULL;
-               gboolean _tmp146_ = FALSE;
-               gboolean _tmp147_ = FALSE;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp8_ = _data1_->request;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp9_ = _tmp8_->nai;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (_tmp9_ != NULL) {
-#line 946 "moonshot-identity-manager-app.c"
-                       IdentityRequest* _tmp10_ = NULL;
-                       const gchar* _tmp11_ = NULL;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp10_ = _data1_->request;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp11_ = _tmp10_->nai;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp7_ = g_strcmp0 (_tmp11_, "") != 0;
-#line 955 "moonshot-identity-manager-app.c"
+               gboolean _tmp69_ = FALSE;
+               gboolean _tmp70_ = FALSE;
+               IdCard* _tmp71_ = NULL;
+               gboolean _tmp90_ = FALSE;
+               IdCard* _tmp91_ = NULL;
+               gboolean _tmp128_ = FALSE;
+               IdCard* _tmp129_ = NULL;
+               IdCard* _tmp151_ = NULL;
+               gboolean _tmp165_ = FALSE;
+               gboolean _tmp166_ = FALSE;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp14_ = _data1_->request;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp15_ = _tmp14_->nai;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               if (_tmp15_ != NULL) {
+#line 1088 "moonshot-identity-manager-app.c"
+                       IdentityRequest* _tmp16_ = NULL;
+                       const gchar* _tmp17_ = NULL;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp16_ = _data1_->request;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp17_ = _tmp16_->nai;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp13_ = g_strcmp0 (_tmp17_, "") != 0;
+#line 1097 "moonshot-identity-manager-app.c"
                } else {
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp7_ = FALSE;
-#line 959 "moonshot-identity-manager-app.c"
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp13_ = FALSE;
+#line 1101 "moonshot-identity-manager-app.c"
                }
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               has_nai = _tmp7_;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp13_ = _data1_->request;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp14_ = _tmp13_->service;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (_tmp14_ != NULL) {
-#line 969 "moonshot-identity-manager-app.c"
-                       IdentityRequest* _tmp15_ = NULL;
-                       const gchar* _tmp16_ = NULL;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp15_ = _data1_->request;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp16_ = _tmp15_->service;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp12_ = g_strcmp0 (_tmp16_, "") != 0;
-#line 978 "moonshot-identity-manager-app.c"
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               has_nai = _tmp13_;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp19_ = _data1_->request;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp20_ = _tmp19_->service;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               if (_tmp20_ != NULL) {
+#line 1111 "moonshot-identity-manager-app.c"
+                       IdentityRequest* _tmp21_ = NULL;
+                       const gchar* _tmp22_ = NULL;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp21_ = _data1_->request;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp22_ = _tmp21_->service;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp18_ = g_strcmp0 (_tmp22_, "") != 0;
+#line 1120 "moonshot-identity-manager-app.c"
                } else {
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp12_ = FALSE;
-#line 982 "moonshot-identity-manager-app.c"
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp18_ = FALSE;
+#line 1124 "moonshot-identity-manager-app.c"
                }
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               has_srv = _tmp12_;
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               has_srv = _tmp18_;
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                confirm = FALSE;
-#line 988 "moonshot-identity-manager-app.c"
+#line 1130 "moonshot-identity-manager-app.c"
                {
                        GeeLinkedList* _id_list = NULL;
-                       IdentityManagerModel* _tmp17_ = NULL;
-                       GeeLinkedList* _tmp18_ = NULL;
+                       IdentityManagerModel* _tmp23_ = NULL;
+                       GeeLinkedList* _tmp24_ = NULL;
                        gint _id_size = 0;
-                       GeeLinkedList* _tmp19_ = NULL;
-                       gint _tmp20_ = 0;
-                       gint _tmp21_ = 0;
+                       GeeLinkedList* _tmp25_ = NULL;
+                       gint _tmp26_ = 0;
+                       gint _tmp27_ = 0;
                        gint _id_index = 0;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp17_ = self->model;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp18_ = identity_manager_model_get_card_list (_tmp17_);
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _id_list = _tmp18_;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp19_ = _id_list;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp20_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp19_);
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp21_ = _tmp20_;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _id_size = _tmp21_;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp23_ = self->model;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp24_ = identity_manager_model_get_card_list (_tmp23_);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _id_list = _tmp24_;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp25_ = _id_list;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp26_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp25_);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp27_ = _tmp26_;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _id_size = _tmp27_;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        _id_index = -1;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        while (TRUE) {
-#line 1016 "moonshot-identity-manager-app.c"
-                               gint _tmp22_ = 0;
-                               gint _tmp23_ = 0;
-                               gint _tmp24_ = 0;
+#line 1158 "moonshot-identity-manager-app.c"
+                               gint _tmp28_ = 0;
+                               gint _tmp29_ = 0;
+                               gint _tmp30_ = 0;
                                IdCard* id = NULL;
-                               GeeLinkedList* _tmp25_ = NULL;
-                               gint _tmp26_ = 0;
-                               gpointer _tmp27_ = NULL;
-                               gboolean _tmp28_ = FALSE;
-                               gboolean _tmp29_ = FALSE;
-                               gboolean _tmp37_ = FALSE;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp22_ = _id_index;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _id_index = _tmp22_ + 1;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp23_ = _id_index;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp24_ = _id_size;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               if (!(_tmp23_ < _tmp24_)) {
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               GeeLinkedList* _tmp31_ = NULL;
+                               gint _tmp32_ = 0;
+                               gpointer _tmp33_ = NULL;
+                               gboolean _tmp34_ = FALSE;
+                               gboolean _tmp35_ = FALSE;
+                               gboolean _tmp49_ = FALSE;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp28_ = _id_index;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _id_index = _tmp28_ + 1;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp29_ = _id_index;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp30_ = _id_size;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               if (!(_tmp29_ < _tmp30_)) {
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                        break;
-#line 1039 "moonshot-identity-manager-app.c"
+#line 1181 "moonshot-identity-manager-app.c"
                                }
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp25_ = _id_list;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp26_ = _id_index;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp27_ = gee_abstract_list_get ((GeeAbstractList*) _tmp25_, _tmp26_);
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               id = (IdCard*) _tmp27_;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp29_ = has_nai;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               if (_tmp29_) {
-#line 1053 "moonshot-identity-manager-app.c"
-                                       IdentityRequest* _tmp30_ = NULL;
-                                       const gchar* _tmp31_ = NULL;
-                                       IdCard* _tmp32_ = NULL;
-                                       const gchar* _tmp33_ = NULL;
-                                       const gchar* _tmp34_ = NULL;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp30_ = _data1_->request;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp31_ = _tmp30_->nai;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp32_ = id;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp33_ = id_card_get_nai (_tmp32_);
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp34_ = _tmp33_;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp28_ = g_strcmp0 (_tmp31_, _tmp34_) == 0;
-#line 1071 "moonshot-identity-manager-app.c"
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp31_ = _id_list;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp32_ = _id_index;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp33_ = gee_abstract_list_get ((GeeAbstractList*) _tmp31_, _tmp32_);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               id = (IdCard*) _tmp33_;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp35_ = has_nai;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               if (_tmp35_) {
+#line 1195 "moonshot-identity-manager-app.c"
+                                       IdentityRequest* _tmp36_ = NULL;
+                                       const gchar* _tmp37_ = NULL;
+                                       IdCard* _tmp38_ = NULL;
+                                       const gchar* _tmp39_ = NULL;
+                                       const gchar* _tmp40_ = NULL;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp36_ = _data1_->request;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp37_ = _tmp36_->nai;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp38_ = id;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp39_ = id_card_get_nai (_tmp38_);
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp40_ = _tmp39_;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp34_ = g_strcmp0 (_tmp37_, _tmp40_) == 0;
+#line 1213 "moonshot-identity-manager-app.c"
                                } else {
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp28_ = FALSE;
-#line 1075 "moonshot-identity-manager-app.c"
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp34_ = FALSE;
+#line 1217 "moonshot-identity-manager-app.c"
                                }
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               if (_tmp28_) {
-#line 1079 "moonshot-identity-manager-app.c"
-                                       IdCard* _tmp35_ = NULL;
-                                       IdCard* _tmp36_ = NULL;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp35_ = id;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp36_ = _g_object_ref0 (_tmp35_);
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               if (_tmp34_) {
+#line 1221 "moonshot-identity-manager-app.c"
+                                       MoonshotLogger* _tmp41_ = NULL;
+                                       IdCard* _tmp42_ = NULL;
+                                       const gchar* _tmp43_ = NULL;
+                                       const gchar* _tmp44_ = NULL;
+                                       gchar* _tmp45_ = NULL;
+                                       gchar* _tmp46_ = NULL;
+                                       IdCard* _tmp47_ = NULL;
+                                       IdCard* _tmp48_ = NULL;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp41_ = identity_manager_app_logger;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp42_ = id;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp43_ = id_card_get_display_name (_tmp42_);
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp44_ = _tmp43_;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp45_ = g_strconcat ("select_identity: request has nai; returning ", _tmp44_, NULL);
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp46_ = _tmp45_;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       moonshot_logger_trace (_tmp41_, _tmp46_, NULL);
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _g_free0 (_tmp46_);
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp47_ = id;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp48_ = _g_object_ref0 (_tmp47_);
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                        _g_object_unref0 (_data1_->identity);
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _data1_->identity = _tmp36_;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _data1_->identity = _tmp48_;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                        _g_object_unref0 (id);
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                        break;
-#line 1094 "moonshot-identity-manager-app.c"
+#line 1258 "moonshot-identity-manager-app.c"
                                }
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp37_ = has_srv;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               if (_tmp37_) {
-#line 1100 "moonshot-identity-manager-app.c"
-                                       IdCard* _tmp38_ = NULL;
-                                       gchar** _tmp39_ = NULL;
-                                       gint _tmp39__length1 = 0;
-                                       gchar** _tmp40_ = NULL;
-                                       gint _tmp40__length1 = 0;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp38_ = id;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp39_ = id_card_get_services (_tmp38_, &_tmp39__length1);
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp40_ = _tmp39_;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp40__length1 = _tmp39__length1;
-#line 1114 "moonshot-identity-manager-app.c"
-                                       {
-                                               gchar** srv_collection = NULL;
-                                               gint srv_collection_length1 = 0;
-                                               gint _srv_collection_size_ = 0;
-                                               gint srv_it = 0;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               srv_collection = _tmp40_;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               srv_collection_length1 = _tmp40__length1;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               for (srv_it = 0; srv_it < _tmp40__length1; srv_it = srv_it + 1) {
-#line 1126 "moonshot-identity-manager-app.c"
-                                                       gchar* _tmp41_ = NULL;
-                                                       gchar* srv = NULL;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       _tmp41_ = g_strdup (srv_collection[srv_it]);
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       srv = _tmp41_;
-#line 1133 "moonshot-identity-manager-app.c"
-                                                       {
-                                                               IdentityRequest* _tmp42_ = NULL;
-                                                               const gchar* _tmp43_ = NULL;
-                                                               const gchar* _tmp44_ = NULL;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp42_ = _data1_->request;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp43_ = _tmp42_->service;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp44_ = srv;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               if (g_strcmp0 (_tmp43_, _tmp44_) == 0) {
-#line 1146 "moonshot-identity-manager-app.c"
-                                                                       IdentityRequest* _tmp45_ = NULL;
-                                                                       IdCard* _tmp46_ = NULL;
-                                                                       IdCard* _tmp47_ = NULL;
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp45_ = _data1_->request;
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp46_ = id;
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp47_ = _g_object_ref0 (_tmp46_);
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp45_->candidates = g_slist_append (_tmp45_->candidates, _tmp47_);
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _g_free0 (srv);
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       continue;
-#line 1162 "moonshot-identity-manager-app.c"
-                                                               }
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _g_free0 (srv);
-#line 1166 "moonshot-identity-manager-app.c"
-                                                       }
-                                               }
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp49_ = has_srv;
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               if (_tmp49_) {
+#line 1264 "moonshot-identity-manager-app.c"
+                                       IdCard* _tmp50_ = NULL;
+                                       GeeArrayList* _tmp51_ = NULL;
+                                       GeeArrayList* _tmp52_ = NULL;
+                                       IdentityRequest* _tmp53_ = NULL;
+                                       const gchar* _tmp54_ = NULL;
+                                       gboolean _tmp55_ = FALSE;
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp50_ = id;
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp51_ = id_card_get_services (_tmp50_);
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp52_ = _tmp51_;
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp53_ = _data1_->request;
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp54_ = _tmp53_->service;
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp55_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp52_, _tmp54_);
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       if (_tmp55_) {
+#line 1285 "moonshot-identity-manager-app.c"
+                                               MoonshotLogger* _tmp56_ = NULL;
+                                               IdentityRequest* _tmp57_ = NULL;
+                                               const gchar* _tmp58_ = NULL;
+                                               const gchar* _tmp59_ = NULL;
+                                               IdCard* _tmp60_ = NULL;
+                                               const gchar* _tmp61_ = NULL;
+                                               const gchar* _tmp62_ = NULL;
+                                               const gchar* _tmp63_ = NULL;
+                                               gchar* _tmp64_ = NULL;
+                                               gchar* _tmp65_ = NULL;
+                                               IdentityRequest* _tmp66_ = NULL;
+                                               IdCard* _tmp67_ = NULL;
+                                               IdCard* _tmp68_ = NULL;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp56_ = identity_manager_app_logger;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp57_ = _data1_->request;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp58_ = _tmp57_->service;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp59_ = string_to_string (_tmp58_);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp60_ = id;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp61_ = id_card_get_display_name (_tmp60_);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp62_ = _tmp61_;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp63_ = string_to_string (_tmp62_);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp64_ = g_strconcat ("select_identity: request has service '", _tmp59_, "; matched on '", _tmp63_, "'", NULL);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp65_ = _tmp64_;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               moonshot_logger_trace (_tmp56_, _tmp65_, NULL);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _g_free0 (_tmp65_);
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp66_ = _data1_->request;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp67_ = id;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp68_ = _g_object_ref0 (_tmp67_);
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp66_->candidates = g_slist_append (_tmp66_->candidates, _tmp68_);
+#line 1331 "moonshot-identity-manager-app.c"
                                        }
                                }
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                _g_object_unref0 (id);
-#line 1173 "moonshot-identity-manager-app.c"
+#line 1336 "moonshot-identity-manager-app.c"
                        }
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        _g_object_unref0 (_id_list);
-#line 1177 "moonshot-identity-manager-app.c"
-               }
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp50_ = _data1_->identity;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (_tmp50_ == NULL) {
-#line 1183 "moonshot-identity-manager-app.c"
-                       gboolean _tmp51_ = FALSE;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp51_ = has_srv;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp49_ = _tmp51_;
-#line 1189 "moonshot-identity-manager-app.c"
-               } else {
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp49_ = FALSE;
-#line 1193 "moonshot-identity-manager-app.c"
+#line 1340 "moonshot-identity-manager-app.c"
                }
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (_tmp49_) {
-#line 1197 "moonshot-identity-manager-app.c"
-                       IdentityRequest* _tmp52_ = NULL;
-                       GSList* _tmp53_ = NULL;
-                       guint _tmp54_ = 0U;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp52_ = _data1_->request;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp53_ = _tmp52_->candidates;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp54_ = g_slist_length (_tmp53_);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp48_ = _tmp54_ > ((guint) 1);
-#line 1209 "moonshot-identity-manager-app.c"
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp71_ = _data1_->identity;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               if (_tmp71_ == NULL) {
+#line 1346 "moonshot-identity-manager-app.c"
+                       gboolean _tmp72_ = FALSE;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp72_ = has_srv;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp70_ = _tmp72_;
+#line 1352 "moonshot-identity-manager-app.c"
                } else {
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp48_ = FALSE;
-#line 1213 "moonshot-identity-manager-app.c"
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp70_ = FALSE;
+#line 1356 "moonshot-identity-manager-app.c"
                }
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (_tmp48_) {
-#line 1217 "moonshot-identity-manager-app.c"
-                       IdentityRequest* _tmp55_ = NULL;
-                       GSList* _tmp56_ = NULL;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp55_ = _data1_->request;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp56_ = _tmp55_->candidates;
-#line 1224 "moonshot-identity-manager-app.c"
-                       {
-                               GSList* id_collection = NULL;
-                               GSList* id_it = NULL;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               id_collection = _tmp56_;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               for (id_it = id_collection; id_it != NULL; id_it = id_it->next) {
-#line 1232 "moonshot-identity-manager-app.c"
-                                       IdCard* _tmp57_ = NULL;
-                                       IdCard* id = NULL;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp57_ = _g_object_ref0 ((IdCard*) id_it->data);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       id = _tmp57_;
-#line 1239 "moonshot-identity-manager-app.c"
-                                       {
-                                               gint i = 0;
-                                               GSList* services_list = NULL;
-                                               gboolean has_service = FALSE;
-                                               IdCard* _tmp58_ = NULL;
-                                               gchar** _tmp59_ = NULL;
-                                               gint _tmp59__length1 = 0;
-                                               gchar** _tmp60_ = NULL;
-                                               gint _tmp60__length1 = 0;
-                                               gboolean _tmp67_ = FALSE;
-                                               GSList* _tmp68_ = NULL;
-                                               guint _tmp69_ = 0U;
-                                               gchar** services = NULL;
-                                               GSList* _tmp73_ = NULL;
-                                               guint _tmp74_ = 0U;
-                                               gchar** _tmp75_ = NULL;
-                                               gint services_length1 = 0;
-                                               gint _services_size_ = 0;
-                                               GSList* _tmp76_ = NULL;
-                                               IdCard* _tmp84_ = NULL;
-                                               gchar** _tmp85_ = NULL;
-                                               gint _tmp85__length1 = 0;
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               i = 0;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               services_list = NULL;
-#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               has_service = FALSE;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp58_ = id;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp59_ = id_card_get_services (_tmp58_, &_tmp59__length1);
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp60_ = _tmp59_;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp60__length1 = _tmp59__length1;
-#line 1276 "moonshot-identity-manager-app.c"
-                                               {
-                                                       gchar** srv_collection = NULL;
-                                                       gint srv_collection_length1 = 0;
-                                                       gint _srv_collection_size_ = 0;
-                                                       gint srv_it = 0;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       srv_collection = _tmp60_;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       srv_collection_length1 = _tmp60__length1;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       for (srv_it = 0; srv_it < _tmp60__length1; srv_it = srv_it + 1) {
-#line 1288 "moonshot-identity-manager-app.c"
-                                                               gchar* _tmp61_ = NULL;
-                                                               gchar* srv = NULL;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp61_ = g_strdup (srv_collection[srv_it]);
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               srv = _tmp61_;
-#line 1295 "moonshot-identity-manager-app.c"
-                                                               {
-                                                                       const gchar* _tmp62_ = NULL;
-                                                                       IdentityRequest* _tmp63_ = NULL;
-                                                                       const gchar* _tmp64_ = NULL;
-                                                                       const gchar* _tmp65_ = NULL;
-                                                                       gchar* _tmp66_ = NULL;
-#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp62_ = srv;
-#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp63_ = _data1_->request;
-#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp64_ = _tmp63_->service;
-#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       if (g_strcmp0 (_tmp62_, _tmp64_) == 0) {
-#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                               has_service = TRUE;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                               _g_free0 (srv);
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                               continue;
-#line 1316 "moonshot-identity-manager-app.c"
-                                                                       }
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp65_ = srv;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp66_ = g_strdup (_tmp65_);
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       services_list = g_slist_append (services_list, _tmp66_);
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _g_free0 (srv);
-#line 1326 "moonshot-identity-manager-app.c"
-                                                               }
-                                                       }
-                                               }
-#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp67_ = has_service;
-#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               if (!_tmp67_) {
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       __g_slist_free__g_free0_0 (services_list);
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       _g_object_unref0 (id);
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       continue;
-#line 1340 "moonshot-identity-manager-app.c"
-                                               }
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp68_ = services_list;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp69_ = g_slist_length (_tmp68_);
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               if (_tmp69_ == ((guint) 0)) {
-#line 1348 "moonshot-identity-manager-app.c"
-                                                       IdCard* _tmp70_ = NULL;
-                                                       gchar** _tmp71_ = NULL;
-                                                       gchar** _tmp72_ = NULL;
-                                                       gint _tmp72__length1 = 0;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       _tmp70_ = id;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       _tmp71_ = g_new0 (gchar*, 0 + 1);
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       _tmp72_ = _tmp71_;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       _tmp72__length1 = 0;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       id_card_set_services (_tmp70_, _tmp72_, 0);
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       _tmp72_ = (_vala_array_free (_tmp72_, _tmp72__length1, (GDestroyNotify) g_free), NULL);
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       __g_slist_free__g_free0_0 (services_list);
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       _g_object_unref0 (id);
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       continue;
-#line 1371 "moonshot-identity-manager-app.c"
-                                               }
 #line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp73_ = services_list;
+               if (_tmp70_) {
+#line 1360 "moonshot-identity-manager-app.c"
+                       IdentityRequest* _tmp73_ = NULL;
+                       GSList* _tmp74_ = NULL;
+                       guint _tmp75_ = 0U;
 #line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp74_ = g_slist_length (_tmp73_);
+                       _tmp73_ = _data1_->request;
 #line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp75_ = g_new0 (gchar*, _tmp74_ + 1);
+                       _tmp74_ = _tmp73_->candidates;
 #line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               services = _tmp75_;
+                       _tmp75_ = g_slist_length (_tmp74_);
 #line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               services_length1 = _tmp74_;
+                       _tmp69_ = _tmp75_ > ((guint) 1);
+#line 1372 "moonshot-identity-manager-app.c"
+               } else {
 #line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _services_size_ = services_length1;
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp76_ = services_list;
-#line 1387 "moonshot-identity-manager-app.c"
-                                               {
-                                                       GSList* srv_collection = NULL;
-                                                       GSList* srv_it = NULL;
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       srv_collection = _tmp76_;
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       for (srv_it = srv_collection; srv_it != NULL; srv_it = srv_it->next) {
-#line 1395 "moonshot-identity-manager-app.c"
-                                                               gchar* _tmp77_ = NULL;
-                                                               gchar* srv = NULL;
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp77_ = g_strdup ((const gchar*) srv_it->data);
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               srv = _tmp77_;
-#line 1402 "moonshot-identity-manager-app.c"
-                                                               {
-                                                                       gchar** _tmp78_ = NULL;
-                                                                       gint _tmp78__length1 = 0;
-                                                                       gint _tmp79_ = 0;
-                                                                       const gchar* _tmp80_ = NULL;
-                                                                       gchar* _tmp81_ = NULL;
-                                                                       gchar* _tmp82_ = NULL;
-                                                                       gint _tmp83_ = 0;
-#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp78_ = services;
+                       _tmp69_ = FALSE;
+#line 1376 "moonshot-identity-manager-app.c"
+               }
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               if (_tmp69_) {
+#line 1380 "moonshot-identity-manager-app.c"
+                       MoonshotLogger* _tmp76_ = NULL;
+                       IdentityRequest* _tmp77_ = NULL;
+                       const gchar* _tmp78_ = NULL;
+                       const gchar* _tmp79_ = NULL;
+                       gchar* _tmp80_ = NULL;
+                       gchar* _tmp81_ = NULL;
+                       IdentityRequest* _tmp82_ = NULL;
+                       GSList* _tmp83_ = NULL;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp76_ = identity_manager_app_logger;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp77_ = _data1_->request;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp78_ = _tmp77_->service;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp79_ = string_to_string (_tmp78_);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp80_ = g_strconcat ("select_identity: multiple candidates; removing service '", _tmp79_, " from all.", NULL);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp81_ = _tmp80_;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       moonshot_logger_trace (_tmp76_, _tmp81_, NULL);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _g_free0 (_tmp81_);
 #line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp78__length1 = services_length1;
+                       _tmp82_ = _data1_->request;
 #line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp79_ = i;
+                       _tmp83_ = _tmp82_->candidates;
+#line 1409 "moonshot-identity-manager-app.c"
+                       {
+                               GSList* id_collection = NULL;
+                               GSList* id_it = NULL;
 #line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp80_ = srv;
+                               id_collection = _tmp83_;
 #line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp81_ = g_strdup (_tmp80_);
+                               for (id_it = id_collection; id_it != NULL; id_it = id_it->next) {
+#line 1417 "moonshot-identity-manager-app.c"
+                                       IdCard* _tmp84_ = NULL;
+                                       IdCard* id = NULL;
 #line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _g_free0 (_tmp78_[_tmp79_]);
+                                       _tmp84_ = _g_object_ref0 ((IdCard*) id_it->data);
 #line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp78_[_tmp79_] = _tmp81_;
+                                       id = _tmp84_;
+#line 1424 "moonshot-identity-manager-app.c"
+                                       {
+                                               IdCard* _tmp85_ = NULL;
+                                               GeeArrayList* _tmp86_ = NULL;
+                                               GeeArrayList* _tmp87_ = NULL;
+                                               IdentityRequest* _tmp88_ = NULL;
+                                               const gchar* _tmp89_ = NULL;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp85_ = id;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp86_ = id_card_get_services (_tmp85_);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp87_ = _tmp86_;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp88_ = _data1_->request;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               _tmp89_ = _tmp88_->service;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp87_, _tmp89_);
 #line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp82_ = _tmp78_[_tmp79_];
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _tmp83_ = i;
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       i = _tmp83_ + 1;
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                                       _g_free0 (srv);
-#line 1433 "moonshot-identity-manager-app.c"
-                                                               }
-                                                       }
-                                               }
-#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp84_ = id;
-#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp85_ = services;
-#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               _tmp85__length1 = services_length1;
-#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               id_card_set_services (_tmp84_, _tmp85_, _tmp85__length1);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_free), NULL);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               __g_slist_free__g_free0_0 (services_list);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                                _g_object_unref0 (id);
-#line 1451 "moonshot-identity-manager-app.c"
+#line 1445 "moonshot-identity-manager-app.c"
                                        }
                                }
                        }
                }
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp87_ = _data1_->identity;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (_tmp87_ == NULL) {
-#line 1460 "moonshot-identity-manager-app.c"
-                       IdentityRequest* _tmp88_ = NULL;
-                       GSList* _tmp89_ = NULL;
-                       guint _tmp90_ = 0U;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp88_ = _data1_->request;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp89_ = _tmp88_->candidates;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp90_ = g_slist_length (_tmp89_);
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp86_ = _tmp90_ == ((guint) 0);
-#line 1472 "moonshot-identity-manager-app.c"
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp91_ = _data1_->identity;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               if (_tmp91_ == NULL) {
+#line 1454 "moonshot-identity-manager-app.c"
+                       IdentityRequest* _tmp92_ = NULL;
+                       GSList* _tmp93_ = NULL;
+                       guint _tmp94_ = 0U;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp92_ = _data1_->request;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp93_ = _tmp92_->candidates;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp94_ = g_slist_length (_tmp93_);
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp90_ = _tmp94_ == ((guint) 0);
+#line 1466 "moonshot-identity-manager-app.c"
                } else {
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp86_ = FALSE;
-#line 1476 "moonshot-identity-manager-app.c"
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp90_ = FALSE;
+#line 1470 "moonshot-identity-manager-app.c"
                }
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               if (_tmp90_) {
+#line 1474 "moonshot-identity-manager-app.c"
+                       MoonshotLogger* _tmp95_ = NULL;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp95_ = identity_manager_app_logger;
 #line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (_tmp86_) {
+                       moonshot_logger_trace (_tmp95_, "select_identity: No candidates; using service matching rules.", NULL);
 #line 1480 "moonshot-identity-manager-app.c"
                        {
                                GeeLinkedList* _id_list = NULL;
-                               IdentityManagerModel* _tmp91_ = NULL;
-                               GeeLinkedList* _tmp92_ = NULL;
+                               IdentityManagerModel* _tmp96_ = NULL;
+                               GeeLinkedList* _tmp97_ = NULL;
                                gint _id_size = 0;
-                               GeeLinkedList* _tmp93_ = NULL;
-                               gint _tmp94_ = 0;
-                               gint _tmp95_ = 0;
+                               GeeLinkedList* _tmp98_ = NULL;
+                               gint _tmp99_ = 0;
+                               gint _tmp100_ = 0;
                                gint _id_index = 0;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp91_ = self->model;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp92_ = identity_manager_model_get_card_list (_tmp91_);
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _id_list = _tmp92_;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp93_ = _id_list;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp94_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp93_);
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp95_ = _tmp94_;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _id_size = _tmp95_;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp96_ = self->model;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp97_ = identity_manager_model_get_card_list (_tmp96_);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _id_list = _tmp97_;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp98_ = _id_list;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp99_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp98_);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp100_ = _tmp99_;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _id_size = _tmp100_;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                _id_index = -1;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                while (TRUE) {
 #line 1508 "moonshot-identity-manager-app.c"
-                                       gint _tmp96_ = 0;
-                                       gint _tmp97_ = 0;
-                                       gint _tmp98_ = 0;
+                                       gint _tmp101_ = 0;
+                                       gint _tmp102_ = 0;
+                                       gint _tmp103_ = 0;
                                        IdCard* id = NULL;
-                                       GeeLinkedList* _tmp99_ = NULL;
-                                       gint _tmp100_ = 0;
-                                       gpointer _tmp101_ = NULL;
-                                       IdCard* _tmp102_ = NULL;
-                                       Rule* _tmp103_ = NULL;
-                                       gint _tmp103__length1 = 0;
-                                       Rule* _tmp104_ = NULL;
-                                       gint _tmp104__length1 = 0;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp96_ = _id_index;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _id_index = _tmp96_ + 1;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp97_ = _id_index;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp98_ = _id_size;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       if (!(_tmp97_ < _tmp98_)) {
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       GeeLinkedList* _tmp104_ = NULL;
+                                       gint _tmp105_ = 0;
+                                       gpointer _tmp106_ = NULL;
+                                       IdCard* _tmp107_ = NULL;
+                                       Rule* _tmp108_ = NULL;
+                                       gint _tmp108__length1 = 0;
+                                       Rule* _tmp109_ = NULL;
+                                       gint _tmp109__length1 = 0;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp101_ = _id_index;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _id_index = _tmp101_ + 1;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp102_ = _id_index;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp103_ = _id_size;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       if (!(_tmp102_ < _tmp103_)) {
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                                break;
 #line 1533 "moonshot-identity-manager-app.c"
                                        }
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp99_ = _id_list;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp100_ = _id_index;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp101_ = gee_abstract_list_get ((GeeAbstractList*) _tmp99_, _tmp100_);
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       id = (IdCard*) _tmp101_;
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp102_ = id;
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp103_ = id_card_get_rules (_tmp102_, &_tmp103__length1);
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp104_ = _tmp103_;
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                       _tmp104__length1 = _tmp103__length1;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp104_ = _id_list;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp105_ = _id_index;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp106_ = gee_abstract_list_get ((GeeAbstractList*) _tmp104_, _tmp105_);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       id = (IdCard*) _tmp106_;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp107_ = id;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp108_ = id_card_get_rules (_tmp107_, &_tmp108__length1);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp109_ = _tmp108_;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                       _tmp109__length1 = _tmp108__length1;
 #line 1551 "moonshot-identity-manager-app.c"
                                        {
                                                Rule* rule_collection = NULL;
                                                gint rule_collection_length1 = 0;
                                                gint _rule_collection_size_ = 0;
                                                gint rule_it = 0;
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               rule_collection = _tmp104_;
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               rule_collection_length1 = _tmp104__length1;
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                               for (rule_it = 0; rule_it < _tmp104__length1; rule_it = rule_it + 1) {
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               rule_collection = _tmp109_;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               rule_collection_length1 = _tmp109__length1;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                               for (rule_it = 0; rule_it < _tmp109__length1; rule_it = rule_it + 1) {
 #line 1563 "moonshot-identity-manager-app.c"
-                                                       Rule _tmp105_ = {0};
+                                                       Rule _tmp110_ = {0};
                                                        Rule rule = {0};
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       rule_copy (&rule_collection[rule_it], &_tmp105_);
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                       rule = _tmp105_;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                       rule_copy (&rule_collection[rule_it], &_tmp110_);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                       rule = _tmp110_;
 #line 1570 "moonshot-identity-manager-app.c"
                                                        {
-                                                               IdentityRequest* _tmp106_ = NULL;
-                                                               const gchar* _tmp107_ = NULL;
-                                                               Rule _tmp108_ = {0};
-                                                               const gchar* _tmp109_ = NULL;
-                                                               gboolean _tmp110_ = FALSE;
                                                                IdentityRequest* _tmp111_ = NULL;
-                                                               IdCard* _tmp112_ = NULL;
-                                                               IdCard* _tmp113_ = NULL;
-                                                               Rule _tmp114_ = {0};
-                                                               const gchar* _tmp115_ = NULL;
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp106_ = _data1_->request;
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp107_ = _tmp106_->service;
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp108_ = rule;
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp109_ = _tmp108_.pattern;
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp110_ = identity_manager_app_match_service_pattern (self, _tmp107_, _tmp109_);
+                                                               const gchar* _tmp112_ = NULL;
+                                                               Rule _tmp113_ = {0};
+                                                               const gchar* _tmp114_ = NULL;
+                                                               gboolean _tmp115_ = FALSE;
+                                                               MoonshotLogger* _tmp116_ = NULL;
+                                                               IdCard* _tmp117_ = NULL;
+                                                               const gchar* _tmp118_ = NULL;
+                                                               const gchar* _tmp119_ = NULL;
+                                                               const gchar* _tmp120_ = NULL;
+                                                               gchar* _tmp121_ = NULL;
+                                                               gchar* _tmp122_ = NULL;
+                                                               IdentityRequest* _tmp123_ = NULL;
+                                                               IdCard* _tmp124_ = NULL;
+                                                               IdCard* _tmp125_ = NULL;
+                                                               Rule _tmp126_ = {0};
+                                                               const gchar* _tmp127_ = NULL;
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               _tmp111_ = _data1_->request;
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               _tmp112_ = _tmp111_->service;
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               _tmp113_ = rule;
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               _tmp114_ = _tmp113_.pattern;
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               _tmp115_ = identity_manager_app_match_service_pattern (self, _tmp112_, _tmp114_);
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               if (!_tmp115_) {
 #line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               if (!_tmp110_) {
-#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                                                        rule_destroy (&rule);
-#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                                                        continue;
-#line 1598 "moonshot-identity-manager-app.c"
+#line 1605 "moonshot-identity-manager-app.c"
                                                                }
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               _tmp116_ = identity_manager_app_logger;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               _tmp117_ = id;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               _tmp118_ = id_card_get_display_name (_tmp117_);
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               _tmp119_ = _tmp118_;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               _tmp120_ = string_to_string (_tmp119_);
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               _tmp121_ = g_strconcat ("select_identity: ID ", _tmp120_, " matched on service matching rules.", NULL);
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               _tmp122_ = _tmp121_;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               moonshot_logger_trace (_tmp116_, _tmp122_, NULL);
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                                                               _g_free0 (_tmp122_);
 #line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp111_ = _data1_->request;
+                                                               _tmp123_ = _data1_->request;
 #line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp112_ = id;
+                                                               _tmp124_ = id;
 #line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp113_ = _g_object_ref0 (_tmp112_);
+                                                               _tmp125_ = _g_object_ref0 (_tmp124_);
 #line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp111_->candidates = g_slist_append (_tmp111_->candidates, _tmp113_);
+                                                               _tmp123_->candidates = g_slist_append (_tmp123_->candidates, _tmp125_);
 #line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp114_ = rule;
+                                                               _tmp126_ = rule;
 #line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               _tmp115_ = _tmp114_.always_confirm;
+                                                               _tmp127_ = _tmp126_.always_confirm;
 #line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                                                               if (g_strcmp0 (_tmp115_, "true") == 0) {
+                                                               if (g_strcmp0 (_tmp127_, "true") == 0) {
 #line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                                                        confirm = TRUE;
-#line 1616 "moonshot-identity-manager-app.c"
+#line 1641 "moonshot-identity-manager-app.c"
                                                                }
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                                                rule_destroy (&rule);
-#line 1620 "moonshot-identity-manager-app.c"
+#line 1645 "moonshot-identity-manager-app.c"
                                                        }
                                                }
                                        }
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                        _g_object_unref0 (id);
-#line 1626 "moonshot-identity-manager-app.c"
+#line 1651 "moonshot-identity-manager-app.c"
                                }
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                _g_object_unref0 (_id_list);
-#line 1630 "moonshot-identity-manager-app.c"
+#line 1655 "moonshot-identity-manager-app.c"
                        }
                }
 #line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp117_ = _data1_->identity;
+               _tmp129_ = _data1_->identity;
 #line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (_tmp117_ == NULL) {
-#line 1637 "moonshot-identity-manager-app.c"
-                       gboolean _tmp118_ = FALSE;
+               if (_tmp129_ == NULL) {
+#line 1662 "moonshot-identity-manager-app.c"
+                       gboolean _tmp130_ = FALSE;
 #line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp118_ = has_nai;
+                       _tmp130_ = has_nai;
 #line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp116_ = _tmp118_;
-#line 1643 "moonshot-identity-manager-app.c"
+                       _tmp128_ = _tmp130_;
+#line 1668 "moonshot-identity-manager-app.c"
                } else {
 #line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp116_ = FALSE;
-#line 1647 "moonshot-identity-manager-app.c"
+                       _tmp128_ = FALSE;
+#line 1672 "moonshot-identity-manager-app.c"
                }
 #line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (_tmp116_) {
-#line 1651 "moonshot-identity-manager-app.c"
+               if (_tmp128_) {
+#line 1676 "moonshot-identity-manager-app.c"
+                       MoonshotLogger* _tmp131_ = NULL;
                        gchar** components = NULL;
-                       IdentityRequest* _tmp119_ = NULL;
-                       const gchar* _tmp120_ = NULL;
-                       gchar** _tmp121_ = NULL;
-                       gchar** _tmp122_ = NULL;
+                       IdentityRequest* _tmp132_ = NULL;
+                       const gchar* _tmp133_ = NULL;
+                       gchar** _tmp134_ = NULL;
+                       gchar** _tmp135_ = NULL;
                        gint components_length1 = 0;
                        gint _components_size_ = 0;
-                       IdCard* _tmp123_ = NULL;
-                       IdCard* _tmp124_ = NULL;
-                       IdentityRequest* _tmp125_ = NULL;
-                       const gchar* _tmp126_ = NULL;
-                       IdCard* _tmp127_ = NULL;
-                       gchar** _tmp128_ = NULL;
-                       gint _tmp128__length1 = 0;
-                       const gchar* _tmp129_ = NULL;
-                       gchar** _tmp130_ = NULL;
-                       gint _tmp130__length1 = 0;
-                       IdCard* _tmp134_ = NULL;
-                       IdentityRequest* _tmp135_ = NULL;
-                       const gchar* _tmp136_ = NULL;
+                       IdCard* _tmp136_ = NULL;
                        IdCard* _tmp137_ = NULL;
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp119_ = _data1_->request;
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp120_ = _tmp119_->nai;
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp122_ = _tmp121_ = g_strsplit (_tmp120_, "@", 2);
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       components = _tmp122_;
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       components_length1 = _vala_array_length (_tmp121_);
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _components_size_ = components_length1;
+                       IdentityRequest* _tmp138_ = NULL;
+                       const gchar* _tmp139_ = NULL;
+                       IdCard* _tmp140_ = NULL;
+                       gchar** _tmp141_ = NULL;
+                       gint _tmp141__length1 = 0;
+                       const gchar* _tmp142_ = NULL;
+                       gchar** _tmp143_ = NULL;
+                       gint _tmp143__length1 = 0;
+                       IdCard* _tmp147_ = NULL;
+                       IdentityRequest* _tmp148_ = NULL;
+                       const gchar* _tmp149_ = NULL;
+                       IdCard* _tmp150_ = NULL;
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp131_ = identity_manager_app_logger;
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       moonshot_logger_trace (_tmp131_, "select_identity: Creating temp identity", NULL);
 #line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp123_ = id_card_new ();
+                       _tmp132_ = _data1_->request;
 #line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _g_object_unref0 (_data1_->identity);
+                       _tmp133_ = _tmp132_->nai;
 #line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _data1_->identity = _tmp123_;
-#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp124_ = _data1_->identity;
+                       _tmp135_ = _tmp134_ = g_strsplit (_tmp133_, "@", 2);
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       components = _tmp135_;
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       components_length1 = _vala_array_length (_tmp134_);
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _components_size_ = components_length1;
 #line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp125_ = _data1_->request;
+                       _tmp136_ = id_card_new ();
 #line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp126_ = _tmp125_->nai;
+                       _g_object_unref0 (_data1_->identity);
 #line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       id_card_set_display_name (_tmp124_, _tmp126_);
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp127_ = _data1_->identity;
+                       _data1_->identity = _tmp136_;
 #line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp128_ = components;
+                       _tmp137_ = _data1_->identity;
 #line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp128__length1 = components_length1;
+                       _tmp138_ = _data1_->request;
 #line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp129_ = _tmp128_[0];
+                       _tmp139_ = _tmp138_->nai;
 #line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       id_card_set_username (_tmp127_, _tmp129_);
+                       id_card_set_display_name (_tmp137_, _tmp139_);
 #line 217 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp130_ = components;
+                       _tmp140_ = _data1_->identity;
 #line 217 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp130__length1 = components_length1;
+                       _tmp141_ = components;
 #line 217 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       if (_tmp130__length1 > 1) {
-#line 1715 "moonshot-identity-manager-app.c"
-                               IdCard* _tmp131_ = NULL;
-                               gchar** _tmp132_ = NULL;
-                               gint _tmp132__length1 = 0;
-                               const gchar* _tmp133_ = NULL;
-#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp131_ = _data1_->identity;
-#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp132_ = components;
+                       _tmp141__length1 = components_length1;
+#line 217 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp142_ = _tmp141_[0];
+#line 217 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       id_card_set_username (_tmp140_, _tmp142_);
 #line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp132__length1 = components_length1;
+                       _tmp143_ = components;
 #line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp133_ = _tmp132_[1];
+                       _tmp143__length1 = components_length1;
 #line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               id_card_set_issuer (_tmp131_, _tmp133_);
-#line 1730 "moonshot-identity-manager-app.c"
-                       }
+                       if (_tmp143__length1 > 1) {
+#line 1745 "moonshot-identity-manager-app.c"
+                               IdCard* _tmp144_ = NULL;
+                               gchar** _tmp145_ = NULL;
+                               gint _tmp145__length1 = 0;
+                               const gchar* _tmp146_ = NULL;
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp144_ = _data1_->identity;
 #line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp134_ = _data1_->identity;
+                               _tmp145_ = components;
 #line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp135_ = _data1_->request;
+                               _tmp145__length1 = components_length1;
 #line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp136_ = _tmp135_->password;
+                               _tmp146_ = _tmp145_[1];
 #line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       id_card_set_password (_tmp134_, _tmp136_);
+                               id_card_set_issuer (_tmp144_, _tmp146_);
+#line 1760 "moonshot-identity-manager-app.c"
+                       }
 #line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp137_ = _data1_->identity;
+                       _tmp147_ = _data1_->identity;
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp148_ = _data1_->request;
 #line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       id_card_set_temporary (_tmp137_, TRUE);
+                       _tmp149_ = _tmp148_->password;
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       id_card_set_password (_tmp147_, _tmp149_);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp150_ = _data1_->identity;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       id_card_set_temporary (_tmp150_, TRUE);
 #line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        components = (_vala_array_free (components, components_length1, (GDestroyNotify) g_free), NULL);
-#line 1746 "moonshot-identity-manager-app.c"
+#line 1776 "moonshot-identity-manager-app.c"
                }
-#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp138_ = _data1_->identity;
-#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (_tmp138_ == NULL) {
-#line 1752 "moonshot-identity-manager-app.c"
-                       IdentityRequest* _tmp139_ = NULL;
-                       GSList* _tmp140_ = NULL;
-                       guint _tmp141_ = 0U;
-#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp139_ = _data1_->request;
-#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp140_ = _tmp139_->candidates;
 #line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp141_ = g_slist_length (_tmp140_);
+               _tmp151_ = _data1_->identity;
 #line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       if (_tmp141_ != ((guint) 1)) {
+               if (_tmp151_ == NULL) {
+#line 1782 "moonshot-identity-manager-app.c"
+                       IdentityRequest* _tmp152_ = NULL;
+                       GSList* _tmp153_ = NULL;
+                       guint _tmp154_ = 0U;
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp152_ = _data1_->request;
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp153_ = _tmp152_->candidates;
 #line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp154_ = g_slist_length (_tmp153_);
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       if (_tmp154_ != ((guint) 1)) {
+#line 1794 "moonshot-identity-manager-app.c"
+                               MoonshotLogger* _tmp155_ = NULL;
+                               IdentityRequest* _tmp156_ = NULL;
+                               GSList* _tmp157_ = NULL;
+                               guint _tmp158_ = 0U;
+                               gchar* _tmp159_ = NULL;
+                               gchar* _tmp160_ = NULL;
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp155_ = identity_manager_app_logger;
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp156_ = _data1_->request;
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp157_ = _tmp156_->candidates;
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp158_ = g_slist_length (_tmp157_);
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp159_ = g_strdup_printf ("select_identity: Have %u candidates; user must make selection.", _tmp158_);
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp160_ = _tmp159_;
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               moonshot_logger_trace (_tmp155_, _tmp160_, NULL);
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _g_free0 (_tmp160_);
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                confirm = TRUE;
-#line 1766 "moonshot-identity-manager-app.c"
+#line 1819 "moonshot-identity-manager-app.c"
                        } else {
-                               IdentityRequest* _tmp142_ = NULL;
-                               GSList* _tmp143_ = NULL;
-                               gconstpointer _tmp144_ = NULL;
-                               IdCard* _tmp145_ = NULL;
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp142_ = _data1_->request;
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp143_ = _tmp142_->candidates;
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp144_ = g_slist_nth_data (_tmp143_, (guint) 0);
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp145_ = _g_object_ref0 ((IdCard*) _tmp144_);
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               IdentityRequest* _tmp161_ = NULL;
+                               GSList* _tmp162_ = NULL;
+                               gconstpointer _tmp163_ = NULL;
+                               IdCard* _tmp164_ = NULL;
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp161_ = _data1_->request;
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp162_ = _tmp161_->candidates;
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp163_ = g_slist_nth_data (_tmp162_, (guint) 0);
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp164_ = _g_object_ref0 ((IdCard*) _tmp163_);
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                _g_object_unref0 (_data1_->identity);
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _data1_->identity = _tmp145_;
-#line 1784 "moonshot-identity-manager-app.c"
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _data1_->identity = _tmp164_;
+#line 1837 "moonshot-identity-manager-app.c"
                        }
                }
-#line 230 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp147_ = confirm;
-#line 230 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (_tmp147_) {
-#line 1791 "moonshot-identity-manager-app.c"
-                       IdentityManagerView* _tmp148_ = NULL;
-#line 230 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp148_ = self->view;
-#line 230 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp146_ = _tmp148_ != NULL;
-#line 1797 "moonshot-identity-manager-app.c"
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp166_ = confirm;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               if (_tmp166_) {
+#line 1844 "moonshot-identity-manager-app.c"
+                       IdentityManagerView* _tmp167_ = NULL;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp167_ = self->view;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp165_ = _tmp167_ != NULL;
+#line 1850 "moonshot-identity-manager-app.c"
                } else {
-#line 230 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp146_ = FALSE;
-#line 1801 "moonshot-identity-manager-app.c"
-               }
-#line 230 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (_tmp146_) {
-#line 1805 "moonshot-identity-manager-app.c"
-                       gboolean _tmp149_ = FALSE;
-                       IdentityManagerView* _tmp150_ = NULL;
-                       IdentityRequest* _tmp151_ = NULL;
 #line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp149_ = self->explicitly_launched;
+                       _tmp165_ = FALSE;
+#line 1854 "moonshot-identity-manager-app.c"
+               }
 #line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       if (!_tmp149_) {
-#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               identity_manager_app_show (self);
-#line 1815 "moonshot-identity-manager-app.c"
-                       }
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp150_ = self->view;
+               if (_tmp165_) {
+#line 1858 "moonshot-identity-manager-app.c"
+                       gboolean _tmp168_ = FALSE;
+                       IdentityManagerView* _tmp169_ = NULL;
+                       IdentityRequest* _tmp170_ = NULL;
 #line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp151_ = _data1_->request;
+                       _tmp168_ = self->explicitly_launched;
 #line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       identity_manager_view_queue_identity_request (_tmp150_, _tmp151_);
+                       if (!_tmp168_) {
 #line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               identity_manager_app_show (self);
+#line 1868 "moonshot-identity-manager-app.c"
+                       }
+#line 236 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp169_ = self->view;
+#line 236 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp170_ = _data1_->request;
+#line 236 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       identity_manager_view_queue_identity_request (_tmp169_, _tmp170_);
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        block1_data_unref (_data1_);
-#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        _data1_ = NULL;
-#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        return;
-#line 1829 "moonshot-identity-manager-app.c"
+#line 1882 "moonshot-identity-manager-app.c"
                }
        }
-#line 240 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, ___lambda7__gsource_func, block1_data_ref (_data1_), block1_data_unref);
-#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, ___lambda5__gsource_func, block1_data_ref (_data1_), block1_data_unref);
+#line 256 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        block1_data_unref (_data1_);
-#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 256 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _data1_ = NULL;
-#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 256 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return;
-#line 1840 "moonshot-identity-manager-app.c"
+#line 1893 "moonshot-identity-manager-app.c"
 }
 
 
@@ -1848,51 +1901,286 @@ static gboolean identity_manager_app_match_service_pattern (IdentityManagerApp*
        GPatternSpec* _tmp1_ = NULL;
        const gchar* _tmp2_ = NULL;
        gboolean _tmp3_ = FALSE;
-#line 256 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 256 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_val_if_fail (service != NULL, FALSE);
-#line 256 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_val_if_fail (pattern != NULL, FALSE);
-#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _tmp0_ = pattern;
-#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _tmp1_ = g_pattern_spec_new (_tmp0_);
-#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        pspec = _tmp1_;
-#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _tmp2_ = service;
-#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _tmp3_ = g_pattern_match_string (pspec, _tmp2_);
-#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        result = _tmp3_;
-#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _g_pattern_spec_free0 (pspec);
-#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return result;
-#line 1873 "moonshot-identity-manager-app.c"
+#line 1926 "moonshot-identity-manager-app.c"
+}
+
+
+static void _identity_manager_app_bus_acquired_cb_gbus_acquired_callback (GDBusConnection* connection, const gchar* name, gpointer self) {
+#line 328 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       identity_manager_app_bus_acquired_cb ((IdentityManagerApp*) self, connection);
+#line 1933 "moonshot-identity-manager-app.c"
+}
+
+
+static void ___lambda23_ (IdentityManagerApp* self, GDBusConnection* conn, const gchar* name) {
+       const gchar* _tmp0_ = NULL;
+       GDBusConnection* _tmp1_ = NULL;
+       MoonshotLogger* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       g_return_if_fail (conn != NULL);
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       g_return_if_fail (name != NULL);
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp1_ = conn;
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp1_ == NULL) {
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp0_ = "null";
+#line 1953 "moonshot-identity-manager-app.c"
+       } else {
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp0_ = "non-null";
+#line 1957 "moonshot-identity-manager-app.c"
+       }
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp2_ = identity_manager_app_logger;
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp3_ = g_strconcat ("init_ipc_server: name_acquired_closure; conn=", _tmp0_, NULL);
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp4_ = _tmp3_;
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       moonshot_logger_trace (_tmp2_, _tmp4_, NULL);
+#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _g_free0 (_tmp4_);
+#line 1969 "moonshot-identity-manager-app.c"
+}
+
+
+static void ____lambda23__gbus_name_acquired_callback (GDBusConnection* connection, const gchar* name, gpointer self) {
+#line 328 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       ___lambda23_ ((IdentityManagerApp*) self, connection, name);
+#line 1976 "moonshot-identity-manager-app.c"
+}
+
+
+static void ___lambda24_ (IdentityManagerApp* self, GDBusConnection* conn, const gchar* name) {
+       const gchar* _tmp0_ = NULL;
+       GDBusConnection* _tmp1_ = NULL;
+       MoonshotLogger* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
+       gboolean shown = FALSE;
+       gboolean _tmp11_ = FALSE;
+       GError * _inner_error_ = NULL;
+#line 333 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       g_return_if_fail (conn != NULL);
+#line 333 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       g_return_if_fail (name != NULL);
+#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp1_ = conn;
+#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp1_ == NULL) {
+#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp0_ = "null";
+#line 1999 "moonshot-identity-manager-app.c"
+       } else {
+#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp0_ = "non-null";
+#line 2003 "moonshot-identity-manager-app.c"
+       }
+#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp2_ = identity_manager_app_logger;
+#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp3_ = g_strconcat ("init_ipc_server: name_lost_closure; conn=", _tmp0_, NULL);
+#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp4_ = _tmp3_;
+#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       moonshot_logger_trace (_tmp2_, _tmp4_, NULL);
+#line 334 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _g_free0 (_tmp4_);
+#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       shown = FALSE;
+#line 2017 "moonshot-identity-manager-app.c"
+       {
+               IIdentityManager* manager = NULL;
+               const gchar* _tmp5_ = NULL;
+               IIdentityManager* _tmp6_ = NULL;
+               gboolean _tmp7_ = FALSE;
+               IIdentityManager* _tmp8_ = NULL;
+               gboolean _tmp9_ = FALSE;
+#line 337 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp5_ = name;
+#line 337 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp6_ = g_initable_new (TYPE_IIDENTITY_MANAGER_PROXY, NULL, &_inner_error_, "g-flags", 0, "g-name", _tmp5_, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", "/org/janet/moonshot", "g-interface-name", "org.janet.Moonshot", "g-interface-info", g_type_get_qdata (TYPE_IIDENTITY_MANAGER, g_quark_from_static_string ("vala-dbus-interface-info")), NULL);
+#line 337 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               manager = (IIdentityManager*) _tmp6_;
+#line 337 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 337 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       if (_inner_error_->domain == G_IO_ERROR) {
+#line 2035 "moonshot-identity-manager-app.c"
+                               goto __catch1_g_io_error;
+                       }
+#line 337 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 337 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       g_clear_error (&_inner_error_);
+#line 337 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       return;
+#line 2044 "moonshot-identity-manager-app.c"
+               }
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp8_ = manager;
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp9_ = iidentity_manager_show_ui (_tmp8_, &_inner_error_);
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp7_ = _tmp9_;
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _g_object_unref0 (manager);
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       if (_inner_error_->domain == G_IO_ERROR) {
+#line 2058 "moonshot-identity-manager-app.c"
+                               goto __catch1_g_io_error;
+                       }
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _g_object_unref0 (manager);
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       g_clear_error (&_inner_error_);
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       return;
+#line 2069 "moonshot-identity-manager-app.c"
+               }
+#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               shown = _tmp7_;
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_object_unref0 (manager);
+#line 2075 "moonshot-identity-manager-app.c"
+       }
+       goto __finally1;
+       __catch1_g_io_error:
+       {
+               GError* e = NULL;
+               MoonshotLogger* _tmp10_ = NULL;
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               e = _inner_error_;
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _inner_error_ = NULL;
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp10_ = identity_manager_app_logger;
+#line 340 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               moonshot_logger_error (_tmp10_, "init_ipc_server.name_lost_closure: Caught error: ", NULL);
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_error_free0 (e);
+#line 2092 "moonshot-identity-manager-app.c"
+       }
+       __finally1:
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               g_clear_error (&_inner_error_);
+#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               return;
+#line 2103 "moonshot-identity-manager-app.c"
+       }
+#line 342 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp11_ = shown;
+#line 342 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (!_tmp11_) {
+#line 2109 "moonshot-identity-manager-app.c"
+               MoonshotLogger* _tmp12_ = NULL;
+               const gchar* _tmp13_ = NULL;
+               gchar* _tmp14_ = NULL;
+               gchar* _tmp15_ = NULL;
+               const gchar* _tmp16_ = NULL;
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp12_ = identity_manager_app_logger;
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp13_ = name;
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp14_ = g_strdup_printf ("init_ipc_server.name_lost_closure: Couldn't own name %s on dbus or sho" \
+"w previously launched identity manager", _tmp13_);
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp15_ = _tmp14_;
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               moonshot_logger_error (_tmp12_, _tmp15_, NULL);
+#line 343 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_free0 (_tmp15_);
+#line 344 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp16_ = name;
+#line 344 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               g_error ("moonshot-identity-manager-app.vala:344: Couldn't own name %s on dbus o" \
+"r show previously launched identity manager.", _tmp16_);
+#line 2131 "moonshot-identity-manager-app.c"
+       } else {
+               MoonshotLogger* _tmp17_ = NULL;
+               FILE* _tmp18_ = NULL;
+#line 346 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp17_ = identity_manager_app_logger;
+#line 346 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               moonshot_logger_trace (_tmp17_, "init_ipc_server.name_lost_closure: Showed previously launched identity" \
+" manager.", NULL);
+#line 347 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp18_ = stdout;
+#line 347 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               fprintf (_tmp18_, "Showed previously launched identity manager.\n");
+#line 348 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               exit (0);
+#line 2145 "moonshot-identity-manager-app.c"
+       }
+}
+
+
+static void ____lambda24__gbus_name_lost_callback (GDBusConnection* connection, const gchar* name, gpointer self) {
+#line 328 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       ___lambda24_ ((IdentityManagerApp*) self, connection, name);
+#line 2153 "moonshot-identity-manager-app.c"
 }
 
 
 static void identity_manager_app_bus_acquired_cb (IdentityManagerApp* self, GDBusConnection* conn) {
+       MoonshotLogger* _tmp0_ = NULL;
        GError * _inner_error_ = NULL;
-#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_if_fail (self != NULL);
-#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 319 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_if_fail (conn != NULL);
-#line 1883 "moonshot-identity-manager-app.c"
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp0_ = identity_manager_app_logger;
+#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       moonshot_logger_trace (_tmp0_, "bus_acquired_cb", NULL);
+#line 2168 "moonshot-identity-manager-app.c"
        {
-               GDBusConnection* _tmp0_ = NULL;
-               MoonshotServer* _tmp1_ = NULL;
-#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp0_ = conn;
-#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp1_ = self->priv->ipc_server;
-#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               moonshot_server_register_object (_tmp1_, _tmp0_, "/org/janet/moonshot", &_inner_error_);
-#line 312 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               GDBusConnection* _tmp1_ = NULL;
+               MoonshotServer* _tmp2_ = NULL;
+#line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp1_ = conn;
+#line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp2_ = self->priv->ipc_server;
+#line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               moonshot_server_register_object (_tmp2_, _tmp1_, "/org/janet/moonshot", &_inner_error_);
+#line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 1895 "moonshot-identity-manager-app.c"
+#line 2180 "moonshot-identity-manager-app.c"
                        goto __catch0_g_error;
                }
        }
@@ -1900,418 +2188,673 @@ static void identity_manager_app_bus_acquired_cb (IdentityManagerApp* self, GDBu
        __catch0_g_error:
        {
                GError* e = NULL;
-               FILE* _tmp2_ = NULL;
-               GError* _tmp3_ = NULL;
-               const gchar* _tmp4_ = NULL;
-#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               MoonshotServer* _tmp3_ = NULL;
+               MoonshotLogger* _tmp4_ = NULL;
+#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                e = _inner_error_;
-#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                _inner_error_ = NULL;
-#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp2_ = stderr;
-#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp3_ = e;
-#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp4_ = _tmp3_->message;
-#line 316 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               fprintf (_tmp2_, "%s\n", _tmp4_);
-#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 326 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp3_ = moonshot_server_new (self);
+#line 326 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_object_unref0 (self->priv->ipc_server);
+#line 326 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               self->priv->ipc_server = _tmp3_;
+#line 327 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp4_ = identity_manager_app_logger;
+#line 327 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               moonshot_logger_trace (_tmp4_, "init_ipc_server: Constructed new MoonshotServer", NULL);
+#line 328 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               g_bus_own_name_with_closures (G_BUS_TYPE_SESSION, "org.janet.Moonshot", G_BUS_NAME_OWNER_FLAGS_NONE, (GClosure*) ((_identity_manager_app_bus_acquired_cb_gbus_acquired_callback == NULL) ? NULL : g_cclosure_new ((GCallback) _identity_manager_app_bus_acquired_cb_gbus_acquired_callback, identity_manager_app_ref (self), (GClosureNotify) identity_manager_app_unref)), (GClosure*) ((____lambda23__gbus_name_acquired_callback == NULL) ? NULL : g_cclosure_new ((GCallback) ____lambda23__gbus_name_acquired_callback, identity_manager_app_ref (self), (GClosureNotify) identity_manager_app_unref)), (GClosure*) ((____lambda24__gbus_name_lost_callback == NULL) ? NULL : g_cclosure_new ((GCallback) ____lambda24__gbus_name_lost_callback, identity_manager_app_ref (self), (GClosureNotify) identity_manager_app_unref)));
+#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                _g_error_free0 (e);
-#line 1920 "moonshot-identity-manager-app.c"
+#line 2208 "moonshot-identity-manager-app.c"
        }
        __finally0:
-#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                g_clear_error (&_inner_error_);
-#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 321 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                return;
-#line 1931 "moonshot-identity-manager-app.c"
+#line 2219 "moonshot-identity-manager-app.c"
        }
 }
 
 
-static void _identity_manager_app_bus_acquired_cb_gbus_acquired_callback (GDBusConnection* connection, const gchar* name, gpointer self) {
-#line 323 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       identity_manager_app_bus_acquired_cb ((IdentityManagerApp*) self, connection);
-#line 1939 "moonshot-identity-manager-app.c"
+static Block2Data* block2_data_ref (Block2Data* _data2_) {
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       g_atomic_int_inc (&_data2_->_ref_count_);
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       return _data2_;
+#line 2229 "moonshot-identity-manager-app.c"
 }
 
 
-static void __lambda10_ (IdentityManagerApp* self, GDBusConnection* conn, const gchar* name) {
-#line 327 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+static void block2_data_unref (void * _userdata_) {
+       Block2Data* _data2_;
+       _data2_ = (Block2Data*) _userdata_;
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
+#line 2238 "moonshot-identity-manager-app.c"
+               IdentityManagerApp* self;
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               self = _data2_->self;
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_free0 (_data2_->our_name);
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _identity_manager_app_unref0 (self);
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               g_slice_free (Block2Data, _data2_);
+#line 2248 "moonshot-identity-manager-app.c"
+       }
+}
+
+
+static gchar* bool_to_string (gboolean self) {
+       gchar* result = NULL;
+#line 37 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (self) {
+#line 2257 "moonshot-identity-manager-app.c"
+               gchar* _tmp0_ = NULL;
+#line 38 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp0_ = g_strdup ("true");
+#line 38 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               result = _tmp0_;
+#line 38 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return result;
+#line 2265 "moonshot-identity-manager-app.c"
+       } else {
+               gchar* _tmp1_ = NULL;
+#line 40 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp1_ = g_strdup ("false");
+#line 40 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               result = _tmp1_;
+#line 40 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return result;
+#line 2274 "moonshot-identity-manager-app.c"
+       }
+}
+
+
+static void __lambda25_ (Block2Data* _data2_, GDBusConnection* conn, const gchar* name) {
+       IdentityManagerApp* self;
+       gchar* _tmp0_ = NULL;
+       GDBusConnection* _tmp1_ = NULL;
+       MoonshotLogger* _tmp7_ = NULL;
+       gboolean _tmp8_ = FALSE;
+       gchar* _tmp9_ = NULL;
+       gchar* _tmp10_ = NULL;
+       gchar* _tmp11_ = NULL;
+       gchar* _tmp12_ = NULL;
+       gchar* _tmp13_ = NULL;
+       gchar* _tmp14_ = NULL;
+       gboolean _tmp15_ = FALSE;
+#line 364 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       self = _data2_->self;
+#line 364 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_if_fail (conn != NULL);
-#line 327 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 364 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_if_fail (name != NULL);
-#line 1948 "moonshot-identity-manager-app.c"
+#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp1_ = conn;
+#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp1_ == NULL) {
+#line 2302 "moonshot-identity-manager-app.c"
+               gchar* _tmp2_ = NULL;
+#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp2_ = g_strdup ("null");
+#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_free0 (_tmp0_);
+#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp0_ = _tmp2_;
+#line 2310 "moonshot-identity-manager-app.c"
+       } else {
+               const gchar* _tmp3_ = NULL;
+               gchar* _tmp4_ = NULL;
+               gchar* _tmp5_ = NULL;
+               gchar* _tmp6_ = NULL;
+#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp3_ = name;
+#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp4_ = g_strconcat ("non-null; name='", _tmp3_, NULL);
+#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp5_ = _tmp4_;
+#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp6_ = g_strconcat (_tmp5_, "'", NULL);
+#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_free0 (_tmp0_);
+#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp0_ = _tmp6_;
+#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_free0 (_tmp5_);
+#line 2330 "moonshot-identity-manager-app.c"
+       }
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp7_ = identity_manager_app_logger;
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp8_ = self->priv->show_requested;
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp9_ = bool_to_string (_tmp8_);
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp10_ = _tmp9_;
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp11_ = g_strconcat ("init_ipc_server: name_acquired_closure; show_requested=", _tmp10_, "; conn=", NULL);
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp12_ = _tmp11_;
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp13_ = g_strconcat (_tmp12_, _tmp0_, NULL);
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp14_ = _tmp13_;
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       moonshot_logger_trace (_tmp7_, _tmp14_, NULL);
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _g_free0 (_tmp14_);
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _g_free0 (_tmp12_);
+#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _g_free0 (_tmp10_);
+#line 368 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       self->priv->name_is_owned = TRUE;
+#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp15_ = self->priv->show_requested;
+#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp15_) {
+#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               identity_manager_app_show (self);
+#line 373 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               self->priv->show_requested = FALSE;
+#line 2366 "moonshot-identity-manager-app.c"
+       }
+#line 375 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _data2_->shown = TRUE;
+#line 364 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _g_free0 (_tmp0_);
+#line 2372 "moonshot-identity-manager-app.c"
 }
 
 
-static void ___lambda10__gbus_name_acquired_callback (GDBusConnection* connection, const gchar* name, gpointer self) {
-#line 323 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       __lambda10_ ((IdentityManagerApp*) self, connection, name);
-#line 1955 "moonshot-identity-manager-app.c"
+static void ___lambda25__gbus_name_acquired_callback (GDBusConnection* connection, const gchar* name, gpointer self) {
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       __lambda25_ (self, connection, name);
+#line 2379 "moonshot-identity-manager-app.c"
 }
 
 
-static void __lambda11_ (IdentityManagerApp* self, GDBusConnection* conn, const gchar* name) {
-       gboolean shown = FALSE;
-       gboolean _tmp5_ = FALSE;
+static void __lambda26_ (Block2Data* _data2_) {
+       IdentityManagerApp* self;
+       MoonshotLogger* _tmp0_ = NULL;
        GError * _inner_error_ = NULL;
-#line 328 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       g_return_if_fail (conn != NULL);
-#line 328 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       g_return_if_fail (name != NULL);
-#line 329 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       shown = FALSE;
-#line 1969 "moonshot-identity-manager-app.c"
+#line 379 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       self = _data2_->self;
+#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp0_ = identity_manager_app_logger;
+#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       moonshot_logger_trace (_tmp0_, "init_ipc_server: name_lost_closure", NULL);
+#line 386 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       self->priv->name_is_owned = FALSE;
+#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       self->priv->show_requested = FALSE;
+#line 2397 "moonshot-identity-manager-app.c"
        {
-               IIdentityManager* manager = NULL;
-               const gchar* _tmp0_ = NULL;
-               IIdentityManager* _tmp1_ = NULL;
-               gboolean _tmp2_ = FALSE;
-               IIdentityManager* _tmp3_ = NULL;
-               gboolean _tmp4_ = FALSE;
-#line 331 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp0_ = name;
-#line 331 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp1_ = g_initable_new (TYPE_IIDENTITY_MANAGER_PROXY, NULL, &_inner_error_, "g-flags", 0, "g-name", _tmp0_, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", "/org/janet/moonshot", "g-interface-name", "org.janet.Moonshot", "g-interface-info", g_type_get_qdata (TYPE_IIDENTITY_MANAGER, g_quark_from_static_string ("vala-dbus-interface-info")), NULL);
-#line 331 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               manager = (IIdentityManager*) _tmp1_;
-#line 331 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 331 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       if (_inner_error_->domain == G_IO_ERROR) {
-#line 1987 "moonshot-identity-manager-app.c"
-                               goto __catch1_g_io_error;
+#line 390 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               if (!_data2_->shown) {
+#line 2401 "moonshot-identity-manager-app.c"
+                       IIdentityManager* manager = NULL;
+                       IIdentityManager* _tmp1_ = NULL;
+                       gboolean _tmp2_ = FALSE;
+                       IIdentityManager* _tmp3_ = NULL;
+                       gboolean _tmp4_ = FALSE;
+#line 391 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp1_ = g_initable_new (TYPE_IIDENTITY_MANAGER_PROXY, NULL, &_inner_error_, "g-flags", 0, "g-name", _data2_->our_name, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", "/org/janet/moonshot", "g-interface-name", "org.janet.Moonshot", "g-interface-info", g_type_get_qdata (TYPE_IIDENTITY_MANAGER, g_quark_from_static_string ("vala-dbus-interface-info")), NULL);
+#line 391 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       manager = (IIdentityManager*) _tmp1_;
+#line 391 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 391 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               if (_inner_error_->domain == G_IO_ERROR) {
+#line 2415 "moonshot-identity-manager-app.c"
+                                       goto __catch2_g_io_error;
+                               }
+#line 391 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 391 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               g_clear_error (&_inner_error_);
+#line 391 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               return;
+#line 2424 "moonshot-identity-manager-app.c"
                        }
-#line 331 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 331 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       g_clear_error (&_inner_error_);
-#line 331 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       return;
-#line 1996 "moonshot-identity-manager-app.c"
-               }
-#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp3_ = manager;
-#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp4_ = iidentity_manager_show_ui (_tmp3_, &_inner_error_);
-#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp2_ = _tmp4_;
-#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _g_object_unref0 (manager);
-#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       if (_inner_error_->domain == G_IO_ERROR) {
-#line 2010 "moonshot-identity-manager-app.c"
-                               goto __catch1_g_io_error;
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp3_ = manager;
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp4_ = iidentity_manager_show_ui (_tmp3_, &_inner_error_);
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp2_ = _tmp4_;
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _g_object_unref0 (manager);
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               if (_inner_error_->domain == G_IO_ERROR) {
+#line 2438 "moonshot-identity-manager-app.c"
+                                       goto __catch2_g_io_error;
+                               }
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _g_object_unref0 (manager);
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               g_clear_error (&_inner_error_);
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               return;
+#line 2449 "moonshot-identity-manager-app.c"
                        }
-#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 392 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _data2_->shown = _tmp2_;
+#line 390 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        _g_object_unref0 (manager);
-#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       g_clear_error (&_inner_error_);
-#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       return;
-#line 2021 "moonshot-identity-manager-app.c"
+#line 2455 "moonshot-identity-manager-app.c"
                }
-#line 332 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               shown = _tmp2_;
-#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _g_object_unref0 (manager);
-#line 2027 "moonshot-identity-manager-app.c"
        }
-       goto __finally1;
-       __catch1_g_io_error:
+       goto __finally2;
+       __catch2_g_io_error:
        {
                GError* e = NULL;
-#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               MoonshotLogger* _tmp5_ = NULL;
+               GError* _tmp6_ = NULL;
+               const gchar* _tmp7_ = NULL;
+               gchar* _tmp8_ = NULL;
+               gchar* _tmp9_ = NULL;
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                e = _inner_error_;
-#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                _inner_error_ = NULL;
-#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp5_ = identity_manager_app_logger;
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp6_ = e;
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp7_ = _tmp6_->message;
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp8_ = g_strconcat ("init_ipc_server.name_lost_closure: Caught IOError: ", _tmp7_, NULL);
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp9_ = _tmp8_;
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               moonshot_logger_error (_tmp5_, _tmp9_, NULL);
+#line 395 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_free0 (_tmp9_);
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                _g_error_free0 (e);
-#line 2039 "moonshot-identity-manager-app.c"
+#line 2487 "moonshot-identity-manager-app.c"
        }
-       __finally1:
-#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       __finally2:
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                g_clear_error (&_inner_error_);
-#line 330 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 389 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                return;
-#line 2050 "moonshot-identity-manager-app.c"
+#line 2498 "moonshot-identity-manager-app.c"
        }
-#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp5_ = shown;
-#line 335 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (!_tmp5_) {
-#line 2056 "moonshot-identity-manager-app.c"
-               const gchar* _tmp6_ = NULL;
-#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp6_ = name;
-#line 336 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               g_error ("moonshot-identity-manager-app.vala:336: Couldn't own name %s on dbus o" \
-"r show previously launched identity manager.", _tmp6_);
-#line 2062 "moonshot-identity-manager-app.c"
+#line 397 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (!_data2_->shown) {
+#line 2502 "moonshot-identity-manager-app.c"
+               MoonshotLogger* _tmp10_ = NULL;
+               gchar* _tmp11_ = NULL;
+               gchar* _tmp12_ = NULL;
+#line 398 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp10_ = identity_manager_app_logger;
+#line 398 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp11_ = g_strdup_printf ("init_ipc_server.name_lost_closure: Couldn't own name '%s' on dbus or s" \
+"how previously launched identity manager", _data2_->our_name);
+#line 398 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp12_ = _tmp11_;
+#line 398 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               moonshot_logger_error (_tmp10_, _tmp12_, NULL);
+#line 398 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _g_free0 (_tmp12_);
+#line 399 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               g_error ("moonshot-identity-manager-app.vala:399: Couldn't own name '%s' on dbus" \
+" or show previously launched identity manager.", _data2_->our_name);
+#line 2518 "moonshot-identity-manager-app.c"
        } else {
-               FILE* _tmp7_ = NULL;
-#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp7_ = stdout;
-#line 338 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               fprintf (_tmp7_, "Showed previously launched identity manager.\n");
-#line 339 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               MoonshotLogger* _tmp13_ = NULL;
+               FILE* _tmp14_ = NULL;
+#line 401 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp13_ = identity_manager_app_logger;
+#line 401 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               moonshot_logger_trace (_tmp13_, "init_ipc_server.name_lost_closure: Showed previously launched identity" \
+" manager.", NULL);
+#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp14_ = stdout;
+#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               fprintf (_tmp14_, "Showed previously launched identity manager.\n");
+#line 403 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                exit (0);
-#line 2071 "moonshot-identity-manager-app.c"
+#line 2532 "moonshot-identity-manager-app.c"
        }
 }
 
 
-static void ___lambda11__gbus_name_lost_callback (GDBusConnection* connection, const gchar* name, gpointer self) {
-#line 323 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       __lambda11_ ((IdentityManagerApp*) self, connection, name);
-#line 2079 "moonshot-identity-manager-app.c"
+static void ___lambda26__gbus_name_lost_callback (GDBusConnection* connection, const gchar* name, gpointer self) {
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       __lambda26_ (self);
+#line 2540 "moonshot-identity-manager-app.c"
 }
 
 
 static void identity_manager_app_init_ipc_server (IdentityManagerApp* self) {
+       Block2Data* _data2_;
        MoonshotServer* _tmp0_ = NULL;
-#line 320 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       gchar* _tmp1_ = NULL;
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_if_fail (self != NULL);
-#line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _data2_ = g_slice_new0 (Block2Data);
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _data2_->_ref_count_ = 1;
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _data2_->self = identity_manager_app_ref (self);
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _tmp0_ = moonshot_server_new (self);
-#line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _g_object_unref0 (self->priv->ipc_server);
-#line 322 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 355 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        self->priv->ipc_server = _tmp0_;
-#line 323 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       g_bus_own_name_with_closures (G_BUS_TYPE_SESSION, "org.janet.Moonshot", G_BUS_NAME_OWNER_FLAGS_NONE, (GClosure*) ((_identity_manager_app_bus_acquired_cb_gbus_acquired_callback == NULL) ? NULL : g_cclosure_new ((GCallback) _identity_manager_app_bus_acquired_cb_gbus_acquired_callback, identity_manager_app_ref (self), identity_manager_app_unref)), (GClosure*) ((___lambda10__gbus_name_acquired_callback == NULL) ? NULL : g_cclosure_new ((GCallback) ___lambda10__gbus_name_acquired_callback, identity_manager_app_ref (self), identity_manager_app_unref)), (GClosure*) ((___lambda11__gbus_name_lost_callback == NULL) ? NULL : g_cclosure_new ((GCallback) ___lambda11__gbus_name_lost_callback, identity_manager_app_ref (self), identity_manager_app_unref)));
-#line 2095 "moonshot-identity-manager-app.c"
+#line 356 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _data2_->shown = FALSE;
+#line 357 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp1_ = g_strdup ("org.janet.Moonshot");
+#line 357 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _data2_->our_name = _tmp1_;
+#line 358 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       g_bus_own_name_with_closures (G_BUS_TYPE_SESSION, _data2_->our_name, G_BUS_NAME_OWNER_FLAGS_NONE, (GClosure*) ((_identity_manager_app_bus_acquired_cb_gbus_acquired_callback == NULL) ? NULL : g_cclosure_new ((GCallback) _identity_manager_app_bus_acquired_cb_gbus_acquired_callback, identity_manager_app_ref (self), (GClosureNotify) identity_manager_app_unref)), (GClosure*) ((___lambda25__gbus_name_acquired_callback == NULL) ? NULL : g_cclosure_new ((GCallback) ___lambda25__gbus_name_acquired_callback, block2_data_ref (_data2_), (GClosureNotify) block2_data_unref)), (GClosure*) ((___lambda26__gbus_name_lost_callback == NULL) ? NULL : g_cclosure_new ((GCallback) ___lambda26__gbus_name_lost_callback, block2_data_ref (_data2_), (GClosureNotify) block2_data_unref)));
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       block2_data_unref (_data2_);
+#line 354 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _data2_ = NULL;
+#line 2574 "moonshot-identity-manager-app.c"
+}
+
+
+gboolean identity_manager_app_get_use_flat_file_store (IdentityManagerApp* self) {
+       gboolean result;
+       gboolean _tmp0_ = FALSE;
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp0_ = self->priv->_use_flat_file_store;
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       result = _tmp0_;
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       return result;
+#line 2589 "moonshot-identity-manager-app.c"
+}
+
+
+static void identity_manager_app_set_use_flat_file_store (IdentityManagerApp* self, gboolean value) {
+       gboolean _tmp0_ = FALSE;
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       g_return_if_fail (self != NULL);
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp0_ = value;
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       self->priv->_use_flat_file_store = _tmp0_;
+#line 2601 "moonshot-identity-manager-app.c"
+}
+
+
+gboolean identity_manager_app_get_headless (IdentityManagerApp* self) {
+       gboolean result;
+       gboolean _tmp0_ = FALSE;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp0_ = self->priv->_headless;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       result = _tmp0_;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       return result;
+#line 2616 "moonshot-identity-manager-app.c"
+}
+
+
+static void identity_manager_app_set_headless (IdentityManagerApp* self, gboolean value) {
+       gboolean _tmp0_ = FALSE;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       g_return_if_fail (self != NULL);
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp0_ = value;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       self->priv->_headless = _tmp0_;
+#line 2628 "moonshot-identity-manager-app.c"
 }
 
 
 static void value_identity_manager_app_init (GValue* value) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        value->data[0].v_pointer = NULL;
-#line 2102 "moonshot-identity-manager-app.c"
+#line 2635 "moonshot-identity-manager-app.c"
 }
 
 
 static void value_identity_manager_app_free_value (GValue* value) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (value->data[0].v_pointer) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                identity_manager_app_unref (value->data[0].v_pointer);
-#line 2111 "moonshot-identity-manager-app.c"
+#line 2644 "moonshot-identity-manager-app.c"
        }
 }
 
 
 static void value_identity_manager_app_copy_value (const GValue* src_value, GValue* dest_value) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (src_value->data[0].v_pointer) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                dest_value->data[0].v_pointer = identity_manager_app_ref (src_value->data[0].v_pointer);
-#line 2121 "moonshot-identity-manager-app.c"
+#line 2654 "moonshot-identity-manager-app.c"
        } else {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                dest_value->data[0].v_pointer = NULL;
-#line 2125 "moonshot-identity-manager-app.c"
+#line 2658 "moonshot-identity-manager-app.c"
        }
 }
 
 
 static gpointer value_identity_manager_app_peek_pointer (const GValue* value) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return value->data[0].v_pointer;
-#line 2133 "moonshot-identity-manager-app.c"
+#line 2666 "moonshot-identity-manager-app.c"
 }
 
 
 static gchar* value_identity_manager_app_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (collect_values[0].v_pointer) {
-#line 2140 "moonshot-identity-manager-app.c"
+#line 2673 "moonshot-identity-manager-app.c"
                IdentityManagerApp* object;
                object = collect_values[0].v_pointer;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                if (object->parent_instance.g_class == NULL) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
-#line 2147 "moonshot-identity-manager-app.c"
+#line 2680 "moonshot-identity-manager-app.c"
                } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
-#line 2151 "moonshot-identity-manager-app.c"
+#line 2684 "moonshot-identity-manager-app.c"
                }
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                value->data[0].v_pointer = identity_manager_app_ref (object);
-#line 2155 "moonshot-identity-manager-app.c"
+#line 2688 "moonshot-identity-manager-app.c"
        } else {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                value->data[0].v_pointer = NULL;
-#line 2159 "moonshot-identity-manager-app.c"
+#line 2692 "moonshot-identity-manager-app.c"
        }
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return NULL;
-#line 2163 "moonshot-identity-manager-app.c"
+#line 2696 "moonshot-identity-manager-app.c"
 }
 
 
 static gchar* value_identity_manager_app_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
        IdentityManagerApp** object_p;
        object_p = collect_values[0].v_pointer;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (!object_p) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
-#line 2174 "moonshot-identity-manager-app.c"
+#line 2707 "moonshot-identity-manager-app.c"
        }
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (!value->data[0].v_pointer) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                *object_p = NULL;
-#line 2180 "moonshot-identity-manager-app.c"
+#line 2713 "moonshot-identity-manager-app.c"
        } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                *object_p = value->data[0].v_pointer;
-#line 2184 "moonshot-identity-manager-app.c"
+#line 2717 "moonshot-identity-manager-app.c"
        } else {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                *object_p = identity_manager_app_ref (value->data[0].v_pointer);
-#line 2188 "moonshot-identity-manager-app.c"
+#line 2721 "moonshot-identity-manager-app.c"
        }
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return NULL;
-#line 2192 "moonshot-identity-manager-app.c"
+#line 2725 "moonshot-identity-manager-app.c"
 }
 
 
 GParamSpec* param_spec_identity_manager_app (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
        ParamSpecIdentityManagerApp* spec;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_val_if_fail (g_type_is_a (object_type, TYPE_IDENTITY_MANAGER_APP), NULL);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        G_PARAM_SPEC (spec)->value_type = object_type;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return G_PARAM_SPEC (spec);
-#line 2206 "moonshot-identity-manager-app.c"
+#line 2739 "moonshot-identity-manager-app.c"
 }
 
 
 gpointer value_get_identity_manager_app (const GValue* value) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_IDENTITY_MANAGER_APP), NULL);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return value->data[0].v_pointer;
-#line 2215 "moonshot-identity-manager-app.c"
+#line 2748 "moonshot-identity-manager-app.c"
 }
 
 
 void value_set_identity_manager_app (GValue* value, gpointer v_object) {
        IdentityManagerApp* old;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_IDENTITY_MANAGER_APP));
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        old = value->data[0].v_pointer;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (v_object) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_IDENTITY_MANAGER_APP));
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                value->data[0].v_pointer = v_object;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                identity_manager_app_ref (value->data[0].v_pointer);
-#line 2235 "moonshot-identity-manager-app.c"
+#line 2768 "moonshot-identity-manager-app.c"
        } else {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                value->data[0].v_pointer = NULL;
-#line 2239 "moonshot-identity-manager-app.c"
+#line 2772 "moonshot-identity-manager-app.c"
        }
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (old) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                identity_manager_app_unref (old);
-#line 2245 "moonshot-identity-manager-app.c"
+#line 2778 "moonshot-identity-manager-app.c"
        }
 }
 
 
 void value_take_identity_manager_app (GValue* value, gpointer v_object) {
        IdentityManagerApp* old;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_IDENTITY_MANAGER_APP));
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        old = value->data[0].v_pointer;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (v_object) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_IDENTITY_MANAGER_APP));
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                value->data[0].v_pointer = v_object;
-#line 2264 "moonshot-identity-manager-app.c"
+#line 2797 "moonshot-identity-manager-app.c"
        } else {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                value->data[0].v_pointer = NULL;
-#line 2268 "moonshot-identity-manager-app.c"
+#line 2801 "moonshot-identity-manager-app.c"
        }
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (old) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                identity_manager_app_unref (old);
-#line 2274 "moonshot-identity-manager-app.c"
+#line 2807 "moonshot-identity-manager-app.c"
        }
 }
 
 
 static void identity_manager_app_class_init (IdentityManagerAppClass * klass) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       MoonshotLogger* _tmp0_ = NULL;
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        identity_manager_app_parent_class = g_type_class_peek_parent (klass);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        ((IdentityManagerAppClass *) klass)->finalize = identity_manager_app_finalize;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_type_class_add_private (klass, sizeof (IdentityManagerAppPrivate));
-#line 2286 "moonshot-identity-manager-app.c"
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp0_ = get_logger ("IdentityManagerApp");
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       identity_manager_app_logger = _tmp0_;
+#line 2824 "moonshot-identity-manager-app.c"
 }
 
 
 static void identity_manager_app_instance_init (IdentityManagerApp * self) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        self->priv = IDENTITY_MANAGER_APP_GET_PRIVATE (self);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        self->ref_count = 1;
-#line 2295 "moonshot-identity-manager-app.c"
+#line 2833 "moonshot-identity-manager-app.c"
 }
 
 
 static void identity_manager_app_finalize (IdentityManagerApp* obj) {
        IdentityManagerApp * self;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_IDENTITY_MANAGER_APP, IdentityManagerApp);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       g_signal_handlers_destroy (self);
 #line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       g_signal_handlers_destroy (self);
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _g_object_unref0 (self->model);
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _g_object_unref0 (self->default_id_card);
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _g_object_unref0 (self->view);
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _g_object_unref0 (self->priv->ipc_server);
-#line 2313 "moonshot-identity-manager-app.c"
+#line 2851 "moonshot-identity-manager-app.c"
 }
 
 
@@ -2332,24 +2875,24 @@ GType identity_manager_app_get_type (void) {
 gpointer identity_manager_app_ref (gpointer instance) {
        IdentityManagerApp* self;
        self = instance;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        g_atomic_int_inc (&self->ref_count);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return instance;
-#line 2338 "moonshot-identity-manager-app.c"
+#line 2876 "moonshot-identity-manager-app.c"
 }
 
 
 void identity_manager_app_unref (gpointer instance) {
        IdentityManagerApp* self;
        self = instance;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (g_atomic_int_dec_and_test (&self->ref_count)) {
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                IDENTITY_MANAGER_APP_GET_CLASS (self)->finalize (self);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                g_type_free_instance ((GTypeInstance *) self);
-#line 2351 "moonshot-identity-manager-app.c"
+#line 2889 "moonshot-identity-manager-app.c"
        }
 }
 
@@ -2360,291 +2903,321 @@ gint _vala_main (gchar** args, int args_length1) {
        const gchar* _tmp0_ = NULL;
        gboolean _tmp1_ = FALSE;
        IdentityManagerApp* app = NULL;
-       gboolean _tmp27_ = FALSE;
-       gboolean _tmp28_ = FALSE;
-       IdentityManagerApp* _tmp29_ = NULL;
-       IdentityManagerApp* _tmp30_ = NULL;
+       gboolean _tmp30_ = FALSE;
        gboolean _tmp31_ = FALSE;
        IdentityManagerApp* _tmp32_ = NULL;
-       gboolean _tmp33_ = FALSE;
-       gboolean _tmp35_ = FALSE;
+       IdentityManagerApp* _tmp33_ = NULL;
+       gboolean _tmp34_ = FALSE;
+       MoonshotLogger* _tmp35_ = NULL;
+       gboolean _tmp36_ = FALSE;
+       gchar* _tmp37_ = NULL;
+       gchar* _tmp38_ = NULL;
+       gchar* _tmp39_ = NULL;
+       gchar* _tmp40_ = NULL;
+       IdentityManagerApp* _tmp41_ = NULL;
+       gboolean _tmp42_ = FALSE;
+       gboolean _tmp44_ = FALSE;
        GError * _inner_error_ = NULL;
-#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 431 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _tmp0_ = g_getenv ("DISPLAY");
-#line 361 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 431 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        headless = _tmp0_ == NULL;
-#line 364 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 434 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _tmp1_ = headless;
-#line 364 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 434 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        if (_tmp1_) {
-#line 2379 "moonshot-identity-manager-app.c"
+#line 2923 "moonshot-identity-manager-app.c"
                {
                        GOptionContext* opt_context = NULL;
                        GOptionContext* _tmp2_ = NULL;
                        GOptionContext* _tmp3_ = NULL;
                        GOptionContext* _tmp4_ = NULL;
                        GOptionContext* _tmp5_ = NULL;
-#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 436 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        _tmp2_ = g_option_context_new (NULL);
-#line 366 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 436 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        opt_context = _tmp2_;
-#line 367 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 437 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        _tmp3_ = opt_context;
-#line 367 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 437 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        g_option_context_set_help_enabled (_tmp3_, TRUE);
-#line 368 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 438 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        _tmp4_ = opt_context;
-#line 368 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 438 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        g_option_context_add_main_entries (_tmp4_, options, NULL);
-#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        _tmp5_ = opt_context;
-#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        g_option_context_parse (_tmp5_, &args_length1, &args, &_inner_error_);
-#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 2948 "moonshot-identity-manager-app.c"
+                               gint _tmp6_ = 0;
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                _g_option_context_free0 (opt_context);
-#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                if (_inner_error_->domain == G_OPTION_ERROR) {
-#line 2408 "moonshot-identity-manager-app.c"
-                                       goto __catch2_g_option_error;
+#line 2954 "moonshot-identity-manager-app.c"
+                                       goto __catch3_g_option_error;
                                }
-#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                _g_option_context_free0 (opt_context);
-#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                g_clear_error (&_inner_error_);
-#line 369 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               return 0;
-#line 2419 "moonshot-identity-manager-app.c"
+#line 439 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               return _tmp6_;
+#line 2965 "moonshot-identity-manager-app.c"
                        }
-#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 435 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        _g_option_context_free0 (opt_context);
-#line 2423 "moonshot-identity-manager-app.c"
+#line 2969 "moonshot-identity-manager-app.c"
                }
-               goto __finally2;
-               __catch2_g_option_error:
+               goto __finally3;
+               __catch3_g_option_error:
                {
                        GError* e = NULL;
-                       FILE* _tmp6_ = NULL;
-                       const gchar* _tmp7_ = NULL;
-                       GError* _tmp8_ = NULL;
-                       const gchar* _tmp9_ = NULL;
-                       FILE* _tmp10_ = NULL;
-                       const gchar* _tmp11_ = NULL;
-                       gchar** _tmp12_ = NULL;
-                       gint _tmp12__length1 = 0;
-                       const gchar* _tmp13_ = NULL;
-#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       FILE* _tmp7_ = NULL;
+                       const gchar* _tmp8_ = NULL;
+                       GError* _tmp9_ = NULL;
+                       const gchar* _tmp10_ = NULL;
+                       FILE* _tmp11_ = NULL;
+                       const gchar* _tmp12_ = NULL;
+                       gchar** _tmp13_ = NULL;
+                       gint _tmp13__length1 = 0;
+                       const gchar* _tmp14_ = NULL;
+#line 435 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        e = _inner_error_;
-#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 435 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        _inner_error_ = NULL;
-#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp6_ = stdout;
-#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp7_ = _ ("error: %s\n");
-#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp8_ = e;
-#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp9_ = _tmp8_->message;
-#line 371 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       fprintf (_tmp6_, _tmp7_, _tmp9_);
-#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp10_ = stdout;
-#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp11_ = _ ("Run '%s --help' to see a full list of available options\n");
-#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp12_ = args;
-#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp12__length1 = args_length1;
-#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp13_ = _tmp12_[0];
-#line 372 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       fprintf (_tmp10_, _tmp11_, _tmp13_);
-#line 373 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 441 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp7_ = stdout;
+#line 441 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp8_ = _ ("error: %s\n");
+#line 441 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp9_ = e;
+#line 441 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp10_ = _tmp9_->message;
+#line 441 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       fprintf (_tmp7_, _tmp8_, _tmp10_);
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp11_ = stdout;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp12_ = _ ("Run '%s --help' to see a full list of available options\n");
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp13_ = args;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp13__length1 = args_length1;
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp14_ = _tmp13_[0];
+#line 442 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       fprintf (_tmp11_, _tmp12_, _tmp14_);
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        result = -1;
-#line 373 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        _g_error_free0 (e);
-#line 373 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 443 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        return result;
-#line 2470 "moonshot-identity-manager-app.c"
+#line 3016 "moonshot-identity-manager-app.c"
                }
-               __finally2:
-#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               __finally3:
+#line 435 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 3021 "moonshot-identity-manager-app.c"
+                       gint _tmp15_ = 0;
+#line 435 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 435 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        g_clear_error (&_inner_error_);
-#line 365 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       return 0;
-#line 2481 "moonshot-identity-manager-app.c"
+#line 435 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       return _tmp15_;
+#line 3029 "moonshot-identity-manager-app.c"
                }
-#line 375 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 445 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                explicitly_launched = FALSE;
-#line 2485 "moonshot-identity-manager-app.c"
+#line 3033 "moonshot-identity-manager-app.c"
        } else {
                {
-                       gboolean _tmp14_ = FALSE;
-                       const gchar* _tmp15_ = NULL;
                        gboolean _tmp16_ = FALSE;
-#line 378 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp15_ = _ ("");
-#line 378 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp16_ = gtk_init_with_args (&args_length1, &args, _tmp15_, options, NULL, &_inner_error_);
-#line 378 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp14_ = _tmp16_;
-#line 378 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       const gchar* _tmp17_ = NULL;
+                       gboolean _tmp18_ = FALSE;
+#line 448 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp17_ = _ ("");
+#line 448 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp18_ = gtk_init_with_args (&args_length1, &args, _tmp17_, options, NULL, &_inner_error_);
+#line 448 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp16_ = _tmp18_;
+#line 448 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 2499 "moonshot-identity-manager-app.c"
-                               goto __catch3_g_error;
+#line 3047 "moonshot-identity-manager-app.c"
+                               goto __catch4_g_error;
                        }
-#line 378 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       if (!_tmp14_) {
-#line 2504 "moonshot-identity-manager-app.c"
-                               FILE* _tmp17_ = NULL;
-                               const gchar* _tmp18_ = NULL;
-#line 379 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp17_ = stdout;
-#line 379 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               _tmp18_ = _ ("unable to initialize window\n");
-#line 379 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                               fprintf (_tmp17_, "%s", _tmp18_);
-#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 448 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       if (!_tmp16_) {
+#line 3052 "moonshot-identity-manager-app.c"
+                               FILE* _tmp19_ = NULL;
+                               const gchar* _tmp20_ = NULL;
+#line 449 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp19_ = stdout;
+#line 449 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               _tmp20_ = _ ("unable to initialize window\n");
+#line 449 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                               fprintf (_tmp19_, "%s", _tmp20_);
+#line 450 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                result = -1;
-#line 380 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 450 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                                return result;
-#line 2517 "moonshot-identity-manager-app.c"
+#line 3065 "moonshot-identity-manager-app.c"
                        }
                }
-               goto __finally3;
-               __catch3_g_error:
+               goto __finally4;
+               __catch4_g_error:
                {
                        GError* e = NULL;
-                       FILE* _tmp19_ = NULL;
-                       const gchar* _tmp20_ = NULL;
-                       GError* _tmp21_ = NULL;
+                       FILE* _tmp21_ = NULL;
                        const gchar* _tmp22_ = NULL;
-                       FILE* _tmp23_ = NULL;
+                       GError* _tmp23_ = NULL;
                        const gchar* _tmp24_ = NULL;
-                       gchar** _tmp25_ = NULL;
-                       gint _tmp25__length1 = 0;
+                       FILE* _tmp25_ = NULL;
                        const gchar* _tmp26_ = NULL;
-#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       gchar** _tmp27_ = NULL;
+                       gint _tmp27__length1 = 0;
+                       const gchar* _tmp28_ = NULL;
+#line 447 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        e = _inner_error_;
-#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 447 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        _inner_error_ = NULL;
-#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp19_ = stdout;
-#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp20_ = _ ("error: %s\n");
-#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp21_ = e;
-#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp22_ = _tmp21_->message;
-#line 383 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       fprintf (_tmp19_, _tmp20_, _tmp22_);
-#line 384 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp23_ = stdout;
-#line 384 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp24_ = _ ("Run '%s --help' to see a full list of available options\n");
-#line 384 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp25_ = args;
-#line 384 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp25__length1 = args_length1;
-#line 384 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       _tmp26_ = _tmp25_[0];
-#line 384 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       fprintf (_tmp23_, _tmp24_, _tmp26_);
-#line 385 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 453 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp21_ = stdout;
+#line 453 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp22_ = _ ("error: %s\n");
+#line 453 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp23_ = e;
+#line 453 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp24_ = _tmp23_->message;
+#line 453 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       fprintf (_tmp21_, _tmp22_, _tmp24_);
+#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp25_ = stdout;
+#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp26_ = _ ("Run '%s --help' to see a full list of available options\n");
+#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp27_ = args;
+#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp27__length1 = args_length1;
+#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       _tmp28_ = _tmp27_[0];
+#line 454 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       fprintf (_tmp25_, _tmp26_, _tmp28_);
+#line 455 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        result = -1;
-#line 385 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 455 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        _g_error_free0 (e);
-#line 385 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 455 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        return result;
-#line 2565 "moonshot-identity-manager-app.c"
+#line 3113 "moonshot-identity-manager-app.c"
                }
-               __finally3:
-#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               __finally4:
+#line 447 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 3118 "moonshot-identity-manager-app.c"
+                       gint _tmp29_ = 0;
+#line 447 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 447 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                        g_clear_error (&_inner_error_);
-#line 377 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-                       return 0;
-#line 2576 "moonshot-identity-manager-app.c"
+#line 447 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+                       return _tmp29_;
+#line 3126 "moonshot-identity-manager-app.c"
                }
-#line 387 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 457 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                gtk_available = TRUE;
-#line 2580 "moonshot-identity-manager-app.c"
+#line 3130 "moonshot-identity-manager-app.c"
        }
-#line 397 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 468 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
-#line 398 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 469 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-#line 399 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 470 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        textdomain (GETTEXT_PACKAGE);
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp27_ = headless;
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp28_ = use_flat_file_store;
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp29_ = identity_manager_app_new (_tmp27_, _tmp28_);
-#line 402 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       app = _tmp29_;
-#line 403 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp30_ = app;
-#line 403 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp31_ = explicitly_launched;
-#line 403 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp30_->explicitly_launched = _tmp31_;
-#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp32_ = app;
-#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp33_ = _tmp32_->explicitly_launched;
-#line 405 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (_tmp33_) {
-#line 2608 "moonshot-identity-manager-app.c"
-               IdentityManagerApp* _tmp34_ = NULL;
-#line 406 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp34_ = app;
-#line 406 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               identity_manager_app_show (_tmp34_);
-#line 2614 "moonshot-identity-manager-app.c"
+#line 473 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp30_ = headless;
+#line 473 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp31_ = use_flat_file_store;
+#line 473 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp32_ = identity_manager_app_new (_tmp30_, _tmp31_);
+#line 473 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       app = _tmp32_;
+#line 474 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp33_ = app;
+#line 474 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp34_ = explicitly_launched;
+#line 474 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp33_->explicitly_launched = _tmp34_;
+#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp35_ = identity_manager_app_logger;
+#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp36_ = explicitly_launched;
+#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp37_ = bool_to_string (_tmp36_);
+#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp38_ = _tmp37_;
+#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp39_ = g_strconcat ("main: explicitly_launched=", _tmp38_, NULL);
+#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp40_ = _tmp39_;
+#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       moonshot_logger_trace (_tmp35_, _tmp40_, NULL);
+#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _g_free0 (_tmp40_);
+#line 475 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _g_free0 (_tmp38_);
+#line 477 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp41_ = app;
+#line 477 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp42_ = _tmp41_->explicitly_launched;
+#line 477 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp42_) {
+#line 3176 "moonshot-identity-manager-app.c"
+               IdentityManagerApp* _tmp43_ = NULL;
+#line 478 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp43_ = app;
+#line 478 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               identity_manager_app_show (_tmp43_);
+#line 3182 "moonshot-identity-manager-app.c"
        }
-#line 409 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       _tmp35_ = headless;
-#line 409 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-       if (_tmp35_) {
-#line 2620 "moonshot-identity-manager-app.c"
+#line 481 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       _tmp44_ = headless;
+#line 481 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+       if (_tmp44_) {
+#line 3188 "moonshot-identity-manager-app.c"
                GMainLoop* loop = NULL;
-               GMainLoop* _tmp36_ = NULL;
-               GMainLoop* _tmp37_ = NULL;
-#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp36_ = g_main_loop_new (NULL, FALSE);
-#line 411 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               loop = _tmp36_;
-#line 412 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               _tmp37_ = loop;
-#line 412 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
-               g_main_loop_run (_tmp37_);
-#line 409 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               GMainLoop* _tmp45_ = NULL;
+               GMainLoop* _tmp46_ = NULL;
+#line 483 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp45_ = g_main_loop_new (NULL, FALSE);
+#line 483 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               loop = _tmp45_;
+#line 484 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               _tmp46_ = loop;
+#line 484 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+               g_main_loop_run (_tmp46_);
+#line 481 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                _g_main_loop_unref0 (loop);
-#line 2634 "moonshot-identity-manager-app.c"
+#line 3202 "moonshot-identity-manager-app.c"
        } else {
-#line 415 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 488 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
                gtk_main ();
-#line 2638 "moonshot-identity-manager-app.c"
+#line 3206 "moonshot-identity-manager-app.c"
        }
-#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 491 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        result = 0;
-#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 491 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        _identity_manager_app_unref0 (app);
-#line 418 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 491 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return result;
-#line 2646 "moonshot-identity-manager-app.c"
+#line 3214 "moonshot-identity-manager-app.c"
 }
 
 
@@ -2652,9 +3225,9 @@ int main (int argc, char ** argv) {
 #if !GLIB_CHECK_VERSION (2,35,0)
        g_type_init ();
 #endif
-#line 357 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
+#line 421 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-manager-app.vala"
        return _vala_main (argv, argc);
-#line 2656 "moonshot-identity-manager-app.c"
+#line 3224 "moonshot-identity-manager-app.c"
 }
 
 
index a013cfb..350b68e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -43,40 +43,63 @@ interface IIdentityManager : GLib.Object {
 }
 #endif
 
+
 public class IdentityManagerApp {
+    public static MoonshotLogger logger = get_logger("IdentityManagerApp");
+
     public IdentityManagerModel model;
     public IdCard default_id_card;
     public bool explicitly_launched;
     public IdentityManagerView view;
     private MoonshotServer ipc_server;
+    private bool name_is_owned;
+    private bool show_requested;
+    public bool use_flat_file_store {public get; private set;}
+    public bool headless {public get; private set;}
 
 #if OS_MACOS
-       public OSXApplication osxApp;
+    public OSXApplication osxApp;
   
     // the signal handler function.
     // the current instance of our app class is passed in the 
     // id_manager_app_instanceparameter 
-       public static bool on_osx_open_files (OSXApplication osx_app_instance, 
-                                        string file_name, 
-                                        IdentityManagerApp id_manager_app_instance ) {
-    int added_cards = id_manager_app_instance.ipc_server.install_from_file(file_name);
-    return true;
-       }
+    public static bool on_osx_open_files(OSXApplication osx_app_instance, 
+                                         string file_name, 
+                                         IdentityManagerApp id_manager_app_instance ) {
+        int added_cards = id_manager_app_instance.ipc_server.install_from_file(file_name);
+        return true;
+    }
 #endif
 
-    private const int WINDOW_WIDTH = 400;
-    private const int WINDOW_HEIGHT = 500;
+    /** If we're successfully registered with DBus, then show the UI. Otherwise, wait until we're registered. */
     public void show() {
-        if (view != null) view.show();    
+        if (name_is_owned) {
+            if (view != null) {
+                view.make_visible();
+            }
+        }
+        else {
+            show_requested = true;
+        }
     }
-       
-    public IdentityManagerApp (bool headless, bool use_flat_file_store) {
+    
+#if USE_LOG4VALA
+    // Call this from main() to ensure that the logger is initialized
+    internal IdentityManagerApp.dummy() {}
+#endif
+
+    public IdentityManagerApp(bool headless, bool use_flat_file_store) {
+        this.headless = headless;
+
         use_flat_file_store |= UserForcesFlatFileStore();
+        this.use_flat_file_store = use_flat_file_store;
+
 #if GNOME_KEYRING
         bool keyring_available = (!use_flat_file_store) && GnomeKeyring.is_available();
 #else
         bool keyring_available = false;
 #endif
+
         IIdentityCardStore.StoreType store_type;
         if (headless || use_flat_file_store || !keyring_available)
             store_type = IIdentityCardStore.StoreType.FLAT_FILE;
@@ -90,31 +113,38 @@ public class IdentityManagerApp {
             model.set_store_type(IIdentityCardStore.StoreType.KEYRING);
 
         if (!headless)
-            view = new IdentityManagerView(this);
-        LinkedList<IdCard> card_list = model.get_card_list() ;
+            view = new IdentityManagerView(this, use_flat_file_store);
+        LinkedList<IdCard> card_list = model.get_card_list();
         if (card_list.size > 0)
             this.default_id_card = card_list.last();
 
-        init_ipc_server ();
+        init_ipc_server();
 
 #if OS_MACOS
-
         osxApp = OSXApplication.get_instance();
-        // The 'correct' way of connrcting wont work in Mac OS with Vala 0.12  e.g.    
-        //             osxApp.ns_application_open_file.connect(install_from_file);
+        // The 'correct' way of connecting won't work in Mac OS with Vala 0.12; e.g.
+        //     osxApp.ns_application_open_file.connect(install_from_file);
         // so we have to use this old way
         Signal.connect(osxApp, "NSApplicationOpenFile", (GLib.Callback)(on_osx_open_files), this);
-
 #endif
     }
 
-    public bool add_identity (IdCard id, bool force_flat_file_store) {
-        if (view != null) return view.add_identity(id, force_flat_file_store);
-        model.add_card(id, force_flat_file_store);
-        return true;
+    public bool add_identity(IdCard id, bool force_flat_file_store, out ArrayList<IdCard>? old_duplicates=null) {
+        if (view != null) 
+        {
+            logger.trace("add_identity: calling view.add_identity");
+            return view.add_identity(id, force_flat_file_store, out old_duplicates);
+        }
+        else {
+            logger.trace("add_identity: calling model.add_card");
+            model.add_card(id, force_flat_file_store, out old_duplicates);
+            return true;
+        }
     }
 
-    public void select_identity (IdentityRequest request) {
+    public void select_identity(IdentityRequest request) {
+        logger.trace("select_identity: request.nai=%s".printf(request.nai ?? "[null]"));
+
         IdCard identity = null;
 
         if (request.select_default)
@@ -133,6 +163,7 @@ public class IdentityManagerApp {
                 /* If NAI matches, use this id card */
                 if (has_nai && request.nai == id.nai)
                 {
+                    logger.trace("select_identity: request has nai; returning " + id.display_name);
                     identity = id;
                     break;
                 }
@@ -140,13 +171,9 @@ public class IdentityManagerApp {
                 /* If any service matches we add id card to the candidate list */
                 if (has_srv)
                 {
-                    foreach (string srv in id.services)
-                    {
-                        if (request.service == srv)
-                        {
-                            request.candidates.append (id);
-                            continue;
-                        }
+                    if (id.services.contains(request.service)) {
+                        logger.trace(@"select_identity: request has service '$(request.service); matched on '$(id.display_name)'");
+                        request.candidates.append(id);
                     }
                 }
             }
@@ -154,53 +181,26 @@ public class IdentityManagerApp {
             /* If more than one candidate we dissasociate service from all ids */
             if ((identity == null) && has_srv && request.candidates.length() > 1)
             {
+                logger.trace(@"select_identity: multiple candidates; removing service '$(request.service) from all.");
                 foreach (IdCard id in request.candidates)
                 {
-                    int i = 0;
-                    SList<string> services_list = null;
-                    bool has_service = false;
-
-                    foreach (string srv in id.services)
-                    {
-                        if (srv == request.service)
-                        {
-                            has_service = true;
-                            continue;
-                        }
-                        services_list.append (srv);
-                    }
-                    
-                    if (!has_service)
-                        continue;
-
-                    if (services_list.length () == 0)
-                    {
-                        id.services = {};
-                        continue;
-                    }
-
-                    string[] services = new string[services_list.length ()];
-                    foreach (string srv in services_list)
-                    {
-                        services[i] = srv;
-                        i++;
-                    }
-
-                    id.services = services;
+                    id.services.remove(request.service);
                 }
             }
 
             /* If there are no candidates we use the service matching rules */
-            if ((identity==null) && (request.candidates.length () == 0))
+            if ((identity == null) && (request.candidates.length() == 0))
             {
+                logger.trace("select_identity: No candidates; using service matching rules.");
                 foreach (IdCard id in model.get_card_list())
                 {
                     foreach (Rule rule in id.rules)
                     {
-                        if (!match_service_pattern (request.service, rule.pattern))
+                        if (!match_service_pattern(request.service, rule.pattern))
                             continue;
 
-                        request.candidates.append (id);
+                        logger.trace(@"select_identity: ID $(id.display_name) matched on service matching rules.");
+                        request.candidates.append(id);
 
                         if (rule.always_confirm == "true")
                             confirm = true;
@@ -209,6 +209,7 @@ public class IdentityManagerApp {
             }
             
             if ((identity == null) && has_nai) {
+                logger.trace("select_identity: Creating temp identity");
                 // create a temp identity
                 string[] components = request.nai.split("@", 2);
                 identity = new IdCard();
@@ -220,10 +221,11 @@ public class IdentityManagerApp {
                 identity.temporary = true;
             }
             if (identity == null) {
-                if (request.candidates.length () != 1) {
+                if (request.candidates.length() != 1) {
+                    logger.trace("select_identity: Have %u candidates; user must make selection.".printf(request.candidates.length()));
                     confirm = true;
                 } else {
-                    identity = request.candidates.nth_data (0);                    
+                    identity = request.candidates.nth_data(0);                    
                 }
             }
 
@@ -231,7 +233,7 @@ public class IdentityManagerApp {
             {
                 if (!explicitly_launched)
                     show();
-               view.queue_identity_request(request);
+                view.queue_identity_request(request);
                 return;
             }
         }
@@ -240,105 +242,167 @@ public class IdentityManagerApp {
         GLib.Idle.add(
             () => {
                 if (view != null) {
+                    logger.trace("select_identity (Idle handler): calling check_add_password");
                     identity = view.check_add_password(identity, request, model);
                 }
-                request.return_identity (identity);
+                request.return_identity(identity);
 // The following occasionally causes the app to exit without sending the dbus
 // reply, so for now we just don't exit
 //                if (!explicitly_launched)
-//                    Idle.add( () => { Gtk.main_quit(); return false; } );
+//                    Idle.add(() => { Gtk.main_quit(); return false; } );
                 return false;
             }
-        );
+            );
         return;
     }
 
-    private bool match_service_pattern (string service, string pattern)
-    {
-        var pspec = new PatternSpec (pattern);
-        return pspec.match_string (service);
+    private bool match_service_pattern(string service, string pattern) {
+        var pspec = new PatternSpec(pattern);
+        return pspec.match_string(service);
     }   
     
 #if IPC_MSRPC
-    private void init_ipc_server ()
-    {
+    private void init_ipc_server() {
         // Errors will currently be sent via g_log - ie. to an
         // obtrusive message box, on Windows
         //
-        this.ipc_server = MoonshotServer.get_instance ();
-        MoonshotServer.start (this);
+        this.ipc_server = MoonshotServer.get_instance();
+        MoonshotServer.start(this);
     }
 #elif IPC_DBUS_GLIB
-    private void init_ipc_server ()
-    {
+    private void init_ipc_server() {
         try {
-            var conn = DBus.Bus.get (DBus.BusType.SESSION);
-            dynamic DBus.Object bus = conn.get_object ("org.freedesktop.DBus",
-                                                       "/org/freedesktop/DBus",
-                                                       "org.freedesktop.DBus");
+            var conn = DBus.Bus.get(DBus.BusType.SESSION);
+            dynamic DBus.Object bus = conn.get_object("org.freedesktop.DBus",
+                                                      "/org/freedesktop/DBus",
+                                                      "org.freedesktop.DBus");
 
             // try to register service in session bus
-            uint reply = bus.request_name ("org.janet.Moonshot", (uint) 0);
+            uint reply = bus.request_name("org.janet.Moonshot", (uint) 0);
             if (reply == DBus.RequestNameReply.PRIMARY_OWNER)
             {
-                this.ipc_server = new MoonshotServer (this);
-                conn.register_object ("/org/janet/moonshot", ipc_server);
+                this.ipc_server = new MoonshotServer(this);
+                logger.trace("init_ipc_server(IPC_DBUS_GLIB) : Constructed new MoonshotServer");
+                conn.register_object("/org/janet/moonshot", ipc_server);
             } else {
-                bool shown=false;
+                logger.trace("init_ipc_server: reply != PRIMARY_OWNER");
+                bool shown = false;
                 GLib.Error e;
-                DBus.Object manager_proxy = conn.get_object ("org.janet.Moonshot",
-                                                             "/org/janet/moonshot",
-                                                             "org.janet.Moonshot");
+                DBus.Object manager_proxy = conn.get_object("org.janet.Moonshot",
+                                                            "/org/janet/moonshot",
+                                                            "org.janet.Moonshot");
                 if (manager_proxy != null)
                     manager_proxy.call("ShowUi", out e, GLib.Type.INVALID, typeof(bool), out shown, GLib.Type.INVALID);
 
                 if (!shown) {
-                    GLib.error ("Couldn't own name org.janet.Moonshot on dbus or show previously launched identity manager.");
+                    GLib.error("Couldn't own name org.janet.Moonshot on dbus or show previously launched identity manager.");
                 } else {
-                    stdout.printf("Showed previously launched identity manager.\n");
+                    stdout.printf(_("Showed previously launched identity manager.\n"));
                     GLib.Process.exit(0);
                 }
             }
         }
         catch (DBus.Error e)
         {
-            stderr.printf ("%s\n", e.message);
+            logger.trace("bus_acquired_cb");
+            try {
+                conn.register_object ("/org/janet/moonshot", ipc_server);
+            }
+            catch (Error e)
+            {
+                stderr.printf ("%s\n", e.message);
+                logger.error("bus_acquired_cb: Caught error: " + e.message);
+            }
         }
     }
 #else
-    private void bus_acquired_cb (DBusConnection conn)
-    {
+    private void bus_acquired_cb(DBusConnection conn) {
+        logger.trace("bus_acquired_cb");
         try {
-            conn.register_object ("/org/janet/moonshot", ipc_server);
+            conn.register_object("/org/janet/moonshot", ipc_server);
         }
         catch (Error e)
         {
-            stderr.printf ("%s\n", e.message);
+            this.ipc_server = new MoonshotServer (this);
+            logger.trace("init_ipc_server: Constructed new MoonshotServer");
+            GLib.Bus.own_name (GLib.BusType.SESSION,
+                               "org.janet.Moonshot",
+                               GLib.BusNameOwnerFlags.NONE,
+                               bus_acquired_cb,
+                               (conn, name) => {logger.trace("init_ipc_server: name_acquired_closure; conn=" + (conn==null?"null":"non-null"));},
+                               (conn, name) => {
+                                   logger.trace("init_ipc_server: name_lost_closure; conn=" + (conn==null?"null":"non-null"));
+                                   bool shown=false;
+                                   try {
+                                       IIdentityManager manager = Bus.get_proxy_sync (BusType.SESSION, name, "/org/janet/moonshot");
+                                       shown = manager.show_ui();
+                                   } catch (IOError e) {
+                                       logger.error("init_ipc_server.name_lost_closure: Caught error: ");
+                                   }
+                                   if (!shown) {
+                                       logger.error("init_ipc_server.name_lost_closure: Couldn't own name %s on dbus or show previously launched identity manager".printf(name));
+                                       GLib.error ("Couldn't own name %s on dbus or show previously launched identity manager.", name);
+                                   } else {
+                                       logger.trace("init_ipc_server.name_lost_closure: Showed previously launched identity manager.");
+                                       stdout.printf("Showed previously launched identity manager.\n");
+                                       GLib.Process.exit(0);
+                                   }
+                               });
         }
     }
 
-    private void init_ipc_server ()
-    {
-        this.ipc_server = new MoonshotServer (this);
-        GLib.Bus.own_name (GLib.BusType.SESSION,
-                           "org.janet.Moonshot",
-                           GLib.BusNameOwnerFlags.NONE,
-                           bus_acquired_cb,
-                           (conn, name) => {},
-                           (conn, name) => {
-                               bool shown=false;
-                               try {
-                                   IIdentityManager manager = Bus.get_proxy_sync (BusType.SESSION, name, "/org/janet/moonshot");
-                                   shown = manager.show_ui();
-                               } catch (IOError e) {
-                               }
-                               if (!shown) {
-                                   GLib.error ("Couldn't own name %s on dbus or show previously launched identity manager.", name);
-                               } else {
-                                   stdout.printf("Showed previously launched identity manager.\n");
-                                   GLib.Process.exit(0);
-                               }
-                           });
+    private void init_ipc_server() {
+        this.ipc_server = new MoonshotServer(this);
+        bool shown = false;
+       var our_name = "org.janet.Moonshot";
+        GLib.Bus.own_name(GLib.BusType.SESSION,
+                          our_name,
+                          GLib.BusNameOwnerFlags.NONE,
+                          bus_acquired_cb,
+
+                          // Name acquired callback:
+                          (conn, name) => {
+                              logger.trace(@"init_ipc_server: name_acquired_closure; show_requested=$show_requested; conn="
+                             + (conn==null?"null":"non-null; name='" + name + "'"));
+
+                              name_is_owned = true;
+
+                              // Now that we know that we own the name, it's safe to show the UI.
+                              if (show_requested) {
+                                  show();
+                                  show_requested = false;
+                              }
+                              shown = true;
+                          },
+
+                          // Name lost callback:
+                          () => {
+                              logger.trace("init_ipc_server: name_lost_closure");
+
+                              // This callback usually means that another moonshot is already running.
+                              // But it *might* mean that we lost the name for some other reason
+                              // (though it's unclear to me yet what those reasons are.)
+                              // Clearing these flags seems like a good idea for that case. -- dbreslau
+                              name_is_owned = false;
+                              show_requested = false;
+
+                              try {
+                                  if (!shown) {
+                                      IIdentityManager manager = Bus.get_proxy_sync(BusType.SESSION, our_name, "/org/janet/moonshot");
+                                      shown = manager.show_ui();
+                                  }
+                              } catch (IOError e) {
+                                  logger.error("init_ipc_server.name_lost_closure: Caught IOError: " + e.message);
+                              }
+                              if (!shown) {
+                                  logger.error("init_ipc_server.name_lost_closure: Couldn't own name '%s' on dbus or show previously launched identity manager".printf(our_name));
+                                  GLib.error("Couldn't own name '%s' on dbus or show previously launched identity manager.", our_name);
+                              } else {
+                                  logger.trace("init_ipc_server.name_lost_closure: Showed previously launched identity manager.");
+                                  stdout.printf("Showed previously launched identity manager.\n");
+                                  GLib.Process.exit(0);
+                              }
+                          });
     }
 #endif
 }
@@ -346,75 +410,84 @@ public class IdentityManagerApp {
 static bool explicitly_launched = true;
 static bool use_flat_file_store = false;
 const GLib.OptionEntry[] options = {
-    {"dbus-launched",0,GLib.OptionFlags.REVERSE,GLib.OptionArg.NONE,
-     ref explicitly_launched,"launch for dbus rpc use",null},
-    {"flat-file-store",0,0,GLib.OptionArg.NONE,
-     ref use_flat_file_store,"force use of flat file identity store (used by default only for headless operation)",null},
+    {"dbus-launched", 0, GLib.OptionFlags.REVERSE, GLib.OptionArg.NONE,
+     ref explicitly_launched, "launch for dbus rpc use", null},
+    {"flat-file-store", 0, 0, GLib.OptionArg.NONE,
+     ref use_flat_file_store, "force use of flat file identity store (used by default only for headless operation)", null},
     {null}
 };
 
 
-public static int main(string[] args){
+public static int main(string[] args) {
+
+#if USE_LOG4VALA
+    // Initialize the logger.
+    new IdentityManagerApp.dummy();
+#endif
+
 #if IPC_MSRPC
-       bool headless = false;
+    bool headless = false;
 #else
-        bool headless = GLib.Environment.get_variable("DISPLAY") == null;
+    bool headless = GLib.Environment.get_variable("DISPLAY") == null;
 #endif
 
-        if (headless) {
-            try {
-                var opt_context = new OptionContext(null);
-                opt_context.set_help_enabled (true);
-                opt_context.add_main_entries (options, null);
-                opt_context.parse(ref args);
-            } catch (OptionError e) {
-                stdout.printf(_("error: %s\n"),e.message);
-                stdout.printf(_("Run '%s --help' to see a full list of available options\n"), args[0]);
-                return -1;
-            }
-            explicitly_launched = false;
-        } else {
-            try {
-                if (!Gtk.init_with_args(ref args, _(""), options, null)) {
-                    stdout.printf(_("unable to initialize window\n"));
-                    return -1;
-                }
-            } catch (GLib.Error e) {
-                stdout.printf(_("error: %s\n"),e.message);
-                stdout.printf(_("Run '%s --help' to see a full list of available options\n"), args[0]);
+    if (headless) {
+        try {
+            var opt_context = new OptionContext(null);
+            opt_context.set_help_enabled(true);
+            opt_context.add_main_entries(options, null);
+            opt_context.parse(ref args);
+        } catch (OptionError e) {
+            stdout.printf(_("error: %s\n"),e.message);
+            stdout.printf(_("Run '%s --help' to see a full list of available options\n"), args[0]);
+            return -1;
+        }
+        explicitly_launched = false;
+    } else {
+        try {
+            if (!Gtk.init_with_args(ref args, _(""), options, null)) {
+                stdout.printf(_("unable to initialize window\n"));
                 return -1;
             }
-            gtk_available = true;
+        } catch (GLib.Error e) {
+            stdout.printf(_("error: %s\n"),e.message);
+            stdout.printf(_("Run '%s --help' to see a full list of available options\n"), args[0]);
+            return -1;
         }
+        gtk_available = true;
+    }
 
 #if OS_WIN32
-        // Force specific theme settings on Windows without requiring a gtkrc file
-        Gtk.Settings settings = Gtk.Settings.get_default ();
-        settings.set_string_property ("gtk-theme-name", "ms-windows", "moonshot");
-        settings.set_long_property ("gtk-menu-images", 0, "moonshot");
+    // Force specific theme settings on Windows without requiring a gtkrc file
+    Gtk.Settings settings = Gtk.Settings.get_default();
+    settings.set_string_property("gtk-theme-name", "ms-windows", "moonshot");
+    settings.set_long_property("gtk-menu-images", 0, "moonshot");
 #endif
 
-        Intl.bindtextdomain (Config.GETTEXT_PACKAGE, Config.LOCALEDIR);
-        Intl.bind_textdomain_codeset (Config.GETTEXT_PACKAGE, "UTF-8");
-        Intl.textdomain (Config.GETTEXT_PACKAGE);
+    //TODO?? Do we need to call Intl.setlocale(LocaleCategory.MESSAGES, "");
+    Intl.bindtextdomain(Config.GETTEXT_PACKAGE, Config.LOCALEDIR);
+    Intl.bind_textdomain_codeset(Config.GETTEXT_PACKAGE, "UTF-8");
+    Intl.textdomain(Config.GETTEXT_PACKAGE);
+       
        
-          
-        var app = new IdentityManagerApp(headless, use_flat_file_store);
-        app.explicitly_launched = explicitly_launched;
+    var app = new IdentityManagerApp(headless, use_flat_file_store);
+    app.explicitly_launched = explicitly_launched;
+    IdentityManagerApp.logger.trace(@"main: explicitly_launched=$explicitly_launched");
         
-       if (app.explicitly_launched) {
-            app.show();
-        }
+    if (app.explicitly_launched) {
+        app.show();
+    }
 
-        if (headless) {
+    if (headless) {
 #if !IPC_MSRPC
-            MainLoop loop = new MainLoop();
-            loop.run();
+        MainLoop loop = new MainLoop();
+        loop.run();
 #endif
-        } else {
-            Gtk.main();
-        }
-
-        return 0;
     }
+    else {
+        Gtk.main();
+    }
+
+    return 0;
+}
 
index 0c080a4..9b1795d 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-identity-request.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-identity-request.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-identity-request.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -37,6 +37,7 @@
 #include <glib-object.h>
 #include <stdlib.h>
 #include <string.h>
+#include <gee.h>
 #include <gtk/gtk.h>
 
 
@@ -70,6 +71,16 @@ typedef struct _IdCardClass IdCardClass;
 
 typedef struct _IdentityManagerApp IdentityManagerApp;
 typedef struct _IdentityManagerAppClass IdentityManagerAppClass;
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 #define _identity_manager_app_unref0(var) ((var == NULL) ? NULL : (var = (identity_manager_app_unref (var), NULL)))
 #define _g_free0(var) (var = (g_free (var), NULL))
@@ -137,6 +148,8 @@ struct _IdentityManagerAppClass {
 
 
 static gpointer identity_request_parent_class = NULL;
+static MoonshotLogger* identity_request_logger;
+static MoonshotLogger* identity_request_logger = NULL;
 
 GType identity_request_get_type (void) G_GNUC_CONST;
 GType id_card_get_type (void) G_GNUC_CONST;
@@ -151,6 +164,8 @@ GType identity_manager_app_get_type (void) G_GNUC_CONST;
 enum  {
        IDENTITY_REQUEST_DUMMY_PROPERTY
 };
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* get_logger (const gchar* name);
 static void _g_object_unref0_ (gpointer var);
 static void _g_slist_free__g_object_unref0_ (GSList* self);
 IdentityRequest* identity_request_new (IdentityManagerApp* app, const gchar* nai, const gchar* password, const gchar* service);
@@ -160,37 +175,35 @@ IdentityRequest* identity_request_construct_default (GType object_type, Identity
 void identity_request_set_callback (IdentityRequest* self, ReturnIdentityCallback cb, void* cb_target, GDestroyNotify cb_target_destroy_notify);
 gboolean identity_request_execute (IdentityRequest* self);
 void identity_manager_app_select_identity (IdentityManagerApp* self, IdentityRequest* request);
-void identity_request_return_identity (IdentityRequest* self, IdCard* id_card);
-gchar** id_card_get_services (IdCard* self, int* result_length1);
-void id_card_set_services (IdCard* self, gchar** value, int value_length1);
+void identity_request_return_identity (IdentityRequest* self, IdCard* id_card, gboolean update_card);
+GeeArrayList* id_card_get_services (IdCard* self);
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
 GType identity_manager_model_get_type (void) G_GNUC_CONST;
 GType identity_manager_view_get_type (void) G_GNUC_CONST;
 IdCard* identity_manager_model_update_card (IdentityManagerModel* self, IdCard* card);
 static void identity_request_finalize (GObject* obj);
-static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
-static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 
 
 static void _g_object_unref0_ (gpointer var) {
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        (var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
-#line 178 "moonshot-identity-request.c"
+#line 191 "moonshot-identity-request.c"
 }
 
 
 static void _g_slist_free__g_object_unref0_ (GSList* self) {
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        g_slist_foreach (self, (GFunc) _g_object_unref0_, NULL);
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        g_slist_free (self);
-#line 187 "moonshot-identity-request.c"
+#line 200 "moonshot-identity-request.c"
 }
 
 
 static gpointer _identity_manager_app_ref0 (gpointer self) {
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        return self ? identity_manager_app_ref (self) : NULL;
-#line 194 "moonshot-identity-request.c"
+#line 207 "moonshot-identity-request.c"
 }
 
 
@@ -204,58 +217,58 @@ IdentityRequest* identity_request_construct (GType object_type, IdentityManagerA
        gchar* _tmp5_ = NULL;
        const gchar* _tmp6_ = NULL;
        gchar* _tmp7_ = NULL;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        g_return_val_if_fail (app != NULL, NULL);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        g_return_val_if_fail (nai != NULL, NULL);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        g_return_val_if_fail (password != NULL, NULL);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        g_return_val_if_fail (service != NULL, NULL);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self = (IdentityRequest*) g_object_new (object_type, NULL);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp0_ = app;
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp1_ = _identity_manager_app_ref0 (_tmp0_);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _identity_manager_app_unref0 (self->priv->parent_app);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->priv->parent_app = _tmp1_;
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp2_ = nai;
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp3_ = g_strdup (_tmp2_);
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _g_free0 (self->nai);
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->nai = _tmp3_;
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp4_ = password;
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp5_ = g_strdup (_tmp4_);
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _g_free0 (self->password);
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->password = _tmp5_;
-#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp6_ = service;
-#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp7_ = g_strdup (_tmp6_);
-#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _g_free0 (self->service);
-#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->service = _tmp7_;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        return self;
-#line 252 "moonshot-identity-request.c"
+#line 265 "moonshot-identity-request.c"
 }
 
 
 IdentityRequest* identity_request_new (IdentityManagerApp* app, const gchar* nai, const gchar* password, const gchar* service) {
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        return identity_request_construct (TYPE_IDENTITY_REQUEST, app, nai, password, service);
-#line 259 "moonshot-identity-request.c"
+#line 272 "moonshot-identity-request.c"
 }
 
 
@@ -263,30 +276,30 @@ IdentityRequest* identity_request_construct_default (GType object_type, Identity
        IdentityRequest * self = NULL;
        IdentityManagerApp* _tmp0_ = NULL;
        IdentityManagerApp* _tmp1_ = NULL;
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        g_return_val_if_fail (app != NULL, NULL);
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-       self = (IdentityRequest*) g_object_new (object_type, NULL);
 #line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       self = (IdentityRequest*) g_object_new (object_type, NULL);
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp0_ = app;
-#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp1_ = _identity_manager_app_ref0 (_tmp0_);
-#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _identity_manager_app_unref0 (self->priv->parent_app);
-#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->priv->parent_app = _tmp1_;
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->select_default = TRUE;
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        return self;
-#line 283 "moonshot-identity-request.c"
+#line 296 "moonshot-identity-request.c"
 }
 
 
 IdentityRequest* identity_request_new_default (IdentityManagerApp* app) {
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        return identity_request_construct_default (TYPE_IDENTITY_REQUEST, app);
-#line 290 "moonshot-identity-request.c"
+#line 303 "moonshot-identity-request.c"
 }
 
 
@@ -294,399 +307,310 @@ void identity_request_set_callback (IdentityRequest* self, ReturnIdentityCallbac
        ReturnIdentityCallback _tmp0_ = NULL;
        void* _tmp0__target = NULL;
        GDestroyNotify _tmp0__target_destroy_notify = NULL;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        g_return_if_fail (self != NULL);
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp0_ = cb;
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp0__target = cb_target;
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp0__target_destroy_notify = cb_target_destroy_notify;
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       cb = NULL;
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       cb_target = NULL;
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        cb_target_destroy_notify = NULL;
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        (self->priv->callback_target_destroy_notify == NULL) ? NULL : (self->priv->callback_target_destroy_notify (self->priv->callback_target), NULL);
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->priv->callback = NULL;
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->priv->callback_target = NULL;
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->priv->callback_target_destroy_notify = NULL;
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->priv->callback = _tmp0_;
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->priv->callback_target = _tmp0__target;
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->priv->callback_target_destroy_notify = _tmp0__target_destroy_notify;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        (cb_target_destroy_notify == NULL) ? NULL : (cb_target_destroy_notify (cb_target), NULL);
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        cb = NULL;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        cb_target = NULL;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        cb_target_destroy_notify = NULL;
-#line 330 "moonshot-identity-request.c"
+#line 347 "moonshot-identity-request.c"
 }
 
 
 gboolean identity_request_execute (IdentityRequest* self) {
        gboolean result = FALSE;
        IdentityManagerApp* _tmp0_ = NULL;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp0_ = self->priv->parent_app;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        identity_manager_app_select_identity (_tmp0_, self);
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        result = FALSE;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        return result;
-#line 347 "moonshot-identity-request.c"
+#line 364 "moonshot-identity-request.c"
 }
 
 
 static gpointer _g_object_ref0 (gpointer self) {
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        return self ? g_object_ref (self) : NULL;
-#line 354 "moonshot-identity-request.c"
+#line 371 "moonshot-identity-request.c"
+}
+
+
+static gchar* bool_to_string (gboolean self) {
+       gchar* result = NULL;
+#line 37 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (self) {
+#line 379 "moonshot-identity-request.c"
+               gchar* _tmp0_ = NULL;
+#line 38 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp0_ = g_strdup ("true");
+#line 38 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               result = _tmp0_;
+#line 38 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return result;
+#line 387 "moonshot-identity-request.c"
+       } else {
+               gchar* _tmp1_ = NULL;
+#line 40 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp1_ = g_strdup ("false");
+#line 40 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               result = _tmp1_;
+#line 40 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return result;
+#line 396 "moonshot-identity-request.c"
+       }
 }
 
 
-void identity_request_return_identity (IdentityRequest* self, IdCard* id_card) {
+void identity_request_return_identity (IdentityRequest* self, IdCard* id_card, gboolean update_card) {
        IdCard* _tmp0_ = NULL;
        IdCard* _tmp1_ = NULL;
        gboolean _tmp2_ = FALSE;
        gboolean _tmp3_ = FALSE;
-       IdCard* _tmp4_ = NULL;
-       ReturnIdentityCallback _tmp46_ = NULL;
-       void* _tmp46__target = NULL;
-       ReturnIdentityCallback _tmp47_ = NULL;
-       void* _tmp47__target = NULL;
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       gboolean _tmp4_ = FALSE;
+       gboolean _tmp5_ = FALSE;
+       ReturnIdentityCallback _tmp31_ = NULL;
+       void* _tmp31__target = NULL;
+       MoonshotLogger* _tmp32_ = NULL;
+       ReturnIdentityCallback _tmp33_ = NULL;
+       void* _tmp33__target = NULL;
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        g_return_if_fail (self != NULL);
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp0_ = id_card;
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _tmp1_ = _g_object_ref0 (_tmp0_);
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _g_object_unref0 (self->id_card);
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->id_card = _tmp1_;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->complete = TRUE;
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-       _tmp4_ = id_card;
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-       if (_tmp4_ != NULL) {
-#line 384 "moonshot-identity-request.c"
-               const gchar* _tmp5_ = NULL;
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-               _tmp5_ = self->service;
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-               _tmp3_ = _tmp5_ != NULL;
-#line 390 "moonshot-identity-request.c"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       _tmp5_ = update_card;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       if (_tmp5_) {
+#line 429 "moonshot-identity-request.c"
+               IdCard* _tmp6_ = NULL;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _tmp6_ = id_card;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _tmp4_ = _tmp6_ != NULL;
+#line 435 "moonshot-identity-request.c"
+       } else {
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _tmp4_ = FALSE;
+#line 439 "moonshot-identity-request.c"
+       }
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       if (_tmp4_) {
+#line 443 "moonshot-identity-request.c"
+               const gchar* _tmp7_ = NULL;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _tmp7_ = self->service;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _tmp3_ = _tmp7_ != NULL;
+#line 449 "moonshot-identity-request.c"
        } else {
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
                _tmp3_ = FALSE;
-#line 394 "moonshot-identity-request.c"
+#line 453 "moonshot-identity-request.c"
        }
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        if (_tmp3_) {
-#line 398 "moonshot-identity-request.c"
-               const gchar* _tmp6_ = NULL;
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-               _tmp6_ = self->service;
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-               _tmp2_ = g_strcmp0 (_tmp6_, "") != 0;
-#line 404 "moonshot-identity-request.c"
+#line 457 "moonshot-identity-request.c"
+               const gchar* _tmp8_ = NULL;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _tmp8_ = self->service;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _tmp2_ = g_strcmp0 (_tmp8_, "") != 0;
+#line 463 "moonshot-identity-request.c"
        } else {
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
                _tmp2_ = FALSE;
-#line 408 "moonshot-identity-request.c"
+#line 467 "moonshot-identity-request.c"
        }
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        if (_tmp2_) {
-#line 412 "moonshot-identity-request.c"
+#line 471 "moonshot-identity-request.c"
                gboolean duplicate_service = FALSE;
-               IdCard* _tmp7_ = NULL;
-               gchar** _tmp8_ = NULL;
-               gint _tmp8__length1 = 0;
-               gchar** _tmp9_ = NULL;
-               gint _tmp9__length1 = 0;
+               IdCard* _tmp9_ = NULL;
+               GeeArrayList* _tmp10_ = NULL;
+               GeeArrayList* _tmp11_ = NULL;
+               const gchar* _tmp12_ = NULL;
                gboolean _tmp13_ = FALSE;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-               duplicate_service = FALSE;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-               _tmp7_ = id_card;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-               _tmp8_ = id_card_get_services (_tmp7_, &_tmp8__length1);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-               _tmp9_ = _tmp8_;
+               MoonshotLogger* _tmp14_ = NULL;
+               gboolean _tmp15_ = FALSE;
+               gchar* _tmp16_ = NULL;
+               gchar* _tmp17_ = NULL;
+               gchar* _tmp18_ = NULL;
+               gchar* _tmp19_ = NULL;
+               gboolean _tmp20_ = FALSE;
 #line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-               _tmp9__length1 = _tmp8__length1;
-#line 430 "moonshot-identity-request.c"
-               {
-                       gchar** service_collection = NULL;
-                       gint service_collection_length1 = 0;
-                       gint _service_collection_size_ = 0;
-                       gint service_it = 0;
+               _tmp9_ = id_card;
 #line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       service_collection = _tmp9_;
+               _tmp10_ = id_card_get_services (_tmp9_);
 #line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       service_collection_length1 = _tmp9__length1;
+               _tmp11_ = _tmp10_;
 #line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       for (service_it = 0; service_it < _tmp9__length1; service_it = service_it + 1) {
-#line 442 "moonshot-identity-request.c"
-                               gchar* _tmp10_ = NULL;
-                               gchar* service = NULL;
+               _tmp12_ = self->service;
 #line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                               _tmp10_ = g_strdup (service_collection[service_it]);
+               _tmp13_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp11_, _tmp12_);
 #line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                               service = _tmp10_;
-#line 449 "moonshot-identity-request.c"
-                               {
-                                       const gchar* _tmp11_ = NULL;
-                                       const gchar* _tmp12_ = NULL;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                       _tmp11_ = service;
+               duplicate_service = _tmp13_;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _tmp14_ = identity_request_logger;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _tmp15_ = duplicate_service;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _tmp16_ = bool_to_string (_tmp15_);
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _tmp17_ = _tmp16_;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _tmp18_ = g_strconcat ("return_identity: duplicate_service=", _tmp17_, NULL);
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _tmp19_ = _tmp18_;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               moonshot_logger_trace (_tmp14_, _tmp19_, NULL);
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _g_free0 (_tmp19_);
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+               _g_free0 (_tmp17_);
 #line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                       _tmp12_ = self->service;
+               _tmp20_ = duplicate_service;
 #line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                       if (g_strcmp0 (_tmp11_, _tmp12_) == 0) {
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               duplicate_service = TRUE;
-#line 461 "moonshot-identity-request.c"
-                                       }
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                       _g_free0 (service);
-#line 465 "moonshot-identity-request.c"
-                               }
-                       }
-               }
+               if (_tmp20_ == FALSE) {
+#line 519 "moonshot-identity-request.c"
+                       MoonshotLogger* _tmp21_ = NULL;
+                       IdCard* _tmp22_ = NULL;
+                       GeeArrayList* _tmp23_ = NULL;
+                       GeeArrayList* _tmp24_ = NULL;
+                       const gchar* _tmp25_ = NULL;
+                       MoonshotLogger* _tmp26_ = NULL;
+                       IdentityManagerApp* _tmp27_ = NULL;
+                       IdentityManagerModel* _tmp28_ = NULL;
+                       IdCard* _tmp29_ = NULL;
+                       IdCard* _tmp30_ = NULL;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+                       _tmp21_ = identity_request_logger;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+                       moonshot_logger_trace (_tmp21_, "return_identity: calling add_service", NULL);
 #line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-               _tmp13_ = duplicate_service;
+                       _tmp22_ = id_card;
 #line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-               if (_tmp13_ == FALSE) {
-#line 473 "moonshot-identity-request.c"
-                       gchar** services = NULL;
-                       IdCard* _tmp14_ = NULL;
-                       gchar** _tmp15_ = NULL;
-                       gint _tmp15__length1 = 0;
-                       gchar** _tmp16_ = NULL;
-                       gint _tmp16__length1 = 0;
-                       gchar** _tmp17_ = NULL;
-                       gint services_length1 = 0;
-                       gint _services_size_ = 0;
-                       gchar** _tmp33_ = NULL;
-                       gint _tmp33__length1 = 0;
-                       IdCard* _tmp34_ = NULL;
-                       gchar** _tmp35_ = NULL;
-                       gint _tmp35__length1 = 0;
-                       gchar** _tmp36_ = NULL;
-                       gint _tmp36__length1 = 0;
-                       const gchar* _tmp37_ = NULL;
-                       gchar* _tmp38_ = NULL;
-                       gchar* _tmp39_ = NULL;
-                       IdCard* _tmp40_ = NULL;
-                       gchar** _tmp41_ = NULL;
-                       gint _tmp41__length1 = 0;
-                       IdentityManagerApp* _tmp42_ = NULL;
-                       IdentityManagerModel* _tmp43_ = NULL;
-                       IdCard* _tmp44_ = NULL;
-                       IdCard* _tmp45_ = NULL;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp14_ = id_card;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp15_ = id_card_get_services (_tmp14_, &_tmp15__length1);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp16_ = _tmp15_;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp16__length1 = _tmp15__length1;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp17_ = g_new0 (gchar*, (_tmp16__length1 + 1) + 1);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       services = _tmp17_;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       services_length1 = _tmp16__length1 + 1;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _services_size_ = services_length1;
-#line 516 "moonshot-identity-request.c"
-                       {
-                               gint i = 0;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                               i = 0;
-#line 521 "moonshot-identity-request.c"
-                               {
-                                       gboolean _tmp18_ = FALSE;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                       _tmp18_ = TRUE;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                       while (TRUE) {
-#line 528 "moonshot-identity-request.c"
-                                               gint _tmp20_ = 0;
-                                               IdCard* _tmp21_ = NULL;
-                                               gchar** _tmp22_ = NULL;
-                                               gint _tmp22__length1 = 0;
-                                               gchar** _tmp23_ = NULL;
-                                               gint _tmp23__length1 = 0;
-                                               gchar** _tmp24_ = NULL;
-                                               gint _tmp24__length1 = 0;
-                                               gint _tmp25_ = 0;
-                                               IdCard* _tmp26_ = NULL;
-                                               gchar** _tmp27_ = NULL;
-                                               gint _tmp27__length1 = 0;
-                                               gchar** _tmp28_ = NULL;
-                                               gint _tmp28__length1 = 0;
-                                               gint _tmp29_ = 0;
-                                               const gchar* _tmp30_ = NULL;
-                                               gchar* _tmp31_ = NULL;
-                                               gchar* _tmp32_ = NULL;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               if (!_tmp18_) {
-#line 549 "moonshot-identity-request.c"
-                                                       gint _tmp19_ = 0;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                                       _tmp19_ = i;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                                       i = _tmp19_ + 1;
-#line 555 "moonshot-identity-request.c"
-                                               }
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp18_ = FALSE;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp20_ = i;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp21_ = id_card;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp22_ = id_card_get_services (_tmp21_, &_tmp22__length1);
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp23_ = _tmp22_;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp23__length1 = _tmp22__length1;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               if (!(_tmp20_ < _tmp23__length1)) {
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                                       break;
-#line 573 "moonshot-identity-request.c"
-                                               }
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp24_ = services;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp24__length1 = services_length1;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp25_ = i;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp26_ = id_card;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp27_ = id_card_get_services (_tmp26_, &_tmp27__length1);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp28_ = _tmp27_;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp28__length1 = _tmp27__length1;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp29_ = i;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp30_ = _tmp28_[_tmp29_];
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp31_ = g_strdup (_tmp30_);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _g_free0 (_tmp24_[_tmp25_]);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp24_[_tmp25_] = _tmp31_;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                                               _tmp32_ = _tmp24_[_tmp25_];
-#line 601 "moonshot-identity-request.c"
-                                       }
-                               }
-                       }
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp33_ = services;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp33__length1 = services_length1;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp34_ = id_card;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp35_ = id_card_get_services (_tmp34_, &_tmp35__length1);
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp36_ = _tmp35_;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp36__length1 = _tmp35__length1;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp37_ = self->service;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp38_ = g_strdup (_tmp37_);
+                       _tmp23_ = id_card_get_services (_tmp22_);
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+                       _tmp24_ = _tmp23_;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+                       _tmp25_ = self->service;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp24_, _tmp25_);
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+                       _tmp26_ = identity_request_logger;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+                       moonshot_logger_trace (_tmp26_, "return_identity: back from add_service", NULL);
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+                       _tmp27_ = self->priv->parent_app;
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+                       _tmp28_ = _tmp27_->model;
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+                       _tmp29_ = id_card;
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+                       _tmp30_ = identity_manager_model_update_card (_tmp28_, _tmp29_);
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+                       _g_object_unref0 (self->id_card);
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+                       self->id_card = _tmp30_;
+#line 560 "moonshot-identity-request.c"
+               }
+       }
 #line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _g_free0 (_tmp33_[_tmp36__length1]);
+       _tmp31_ = self->priv->callback;
 #line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp33_[_tmp36__length1] = _tmp38_;
+       _tmp31__target = self->priv->callback_target;
 #line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp39_ = _tmp33_[_tmp36__length1];
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp40_ = id_card;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp41_ = services;
+       g_return_if_fail (_tmp31_ != NULL);
 #line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp41__length1 = services_length1;
+       _tmp32_ = identity_request_logger;
 #line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       id_card_set_services (_tmp40_, _tmp41_, _tmp41__length1);
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp42_ = self->priv->parent_app;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp43_ = _tmp42_->model;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp44_ = id_card;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _tmp45_ = identity_manager_model_update_card (_tmp43_, _tmp44_);
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       _g_object_unref0 (self->id_card);
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       self->id_card = _tmp45_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-                       services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_free), NULL);
-#line 649 "moonshot-identity-request.c"
-               }
-       }
-#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-       _tmp46_ = self->priv->callback;
-#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-       _tmp46__target = self->priv->callback_target;
-#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-       g_return_if_fail (_tmp46_ != NULL);
-#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-       _tmp47_ = self->priv->callback;
-#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-       _tmp47__target = self->priv->callback_target;
-#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-       _tmp47_ (self, _tmp47__target);
-#line 664 "moonshot-identity-request.c"
+       moonshot_logger_trace (_tmp32_, "return_identity: invoking callback", NULL);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       _tmp33_ = self->priv->callback;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       _tmp33__target = self->priv->callback_target;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       _tmp33_ (self, _tmp33__target);
+#line 579 "moonshot-identity-request.c"
 }
 
 
 static void identity_request_class_init (IdentityRequestClass * klass) {
+       MoonshotLogger* _tmp0_ = NULL;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        identity_request_parent_class = g_type_class_peek_parent (klass);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        g_type_class_add_private (klass, sizeof (IdentityRequestPrivate));
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        G_OBJECT_CLASS (klass)->finalize = identity_request_finalize;
-#line 675 "moonshot-identity-request.c"
+#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       _tmp0_ = get_logger ("IdentityRequest");
+#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       identity_request_logger = _tmp0_;
+#line 595 "moonshot-identity-request.c"
 }
 
 
 static void identity_request_instance_init (IdentityRequest * self) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->priv = IDENTITY_REQUEST_GET_PRIVATE (self);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->id_card = NULL;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->complete = FALSE;
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->select_default = FALSE;
-#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->priv->callback = NULL;
-#line 690 "moonshot-identity-request.c"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       self->priv->callback_target = self;
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       self->priv->callback_target_destroy_notify = NULL;
+#line 614 "moonshot-identity-request.c"
 }
 
 
@@ -694,29 +618,29 @@ static void identity_request_finalize (GObject* obj) {
        IdentityRequest * self;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_IDENTITY_REQUEST, IdentityRequest);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _g_object_unref0 (self->id_card);
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _identity_manager_app_unref0 (self->priv->parent_app);
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _g_free0 (self->nai);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _g_free0 (self->password);
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        _g_free0 (self->service);
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
-       __g_slist_free__g_object_unref0_0 (self->candidates);
 #line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+       __g_slist_free__g_object_unref0_0 (self->candidates);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        (self->priv->callback_target_destroy_notify == NULL) ? NULL : (self->priv->callback_target_destroy_notify (self->priv->callback_target), NULL);
-#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->priv->callback = NULL;
-#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->priv->callback_target = NULL;
-#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        self->priv->callback_target_destroy_notify = NULL;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
        G_OBJECT_CLASS (identity_request_parent_class)->finalize (obj);
-#line 720 "moonshot-identity-request.c"
+#line 644 "moonshot-identity-request.c"
 }
 
 
@@ -732,22 +656,4 @@ GType identity_request_get_type (void) {
 }
 
 
-static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
-       if ((array != NULL) && (destroy_func != NULL)) {
-               int i;
-               for (i = 0; i < array_length; i = i + 1) {
-                       if (((gpointer*) array)[i] != NULL) {
-                               destroy_func (((gpointer*) array)[i]);
-                       }
-               }
-       }
-}
-
-
-static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
-       _vala_array_destroy (array, array_length, destroy_func);
-       g_free (array);
-}
-
-
 
index 2137cce..4068903 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
 */
-public delegate void ReturnIdentityCallback (IdentityRequest request);
+public delegate void ReturnIdentityCallback(IdentityRequest request);
 
 public class IdentityRequest : Object {
+    static MoonshotLogger logger = get_logger("IdentityRequest");
+
     public IdCard? id_card = null;
     public bool complete = false;
     public bool select_default = false;
@@ -44,10 +46,10 @@ public class IdentityRequest : Object {
 
     ReturnIdentityCallback callback = null;
 
-    public IdentityRequest (IdentityManagerApp           app,
-                            string                       nai,
-                            string                       password,
-                            string                       service)
+    public IdentityRequest(IdentityManagerApp           app,
+                           string                       nai,
+                           string                       password,
+                           string                       service)
     {
         this.parent_app = app;
         this.nai = nai;
@@ -55,23 +57,23 @@ public class IdentityRequest : Object {
         this.service = service;
     }
 
-    public IdentityRequest.default (IdentityManagerApp app)
+    public IdentityRequest.default(IdentityManagerApp app)
     {
         this.parent_app = app;
         this.select_default = true;
     }
 
-    public void set_callback (owned ReturnIdentityCallback cb)
+    public void set_callback(owned ReturnIdentityCallback cb)
     {
-#if VALA_0_12
-        this.callback = ((owned) cb);
-#else
-        this.callback = ((IdCard) => cb (IdCard));
-#endif
+        #if VALA_0_12
+            this.callback = ((owned) cb);
+        #else
+            this.callback = ((IdCard) => cb(IdCard));
+        #endif
     }
 
-    public bool execute () {
-        parent_app.select_identity (this);
+    public bool execute() {
+        parent_app.select_identity(this);
 
         /* This function works as a GSourceFunc, so it can be passed to
          * the main loop from other threads
@@ -79,36 +81,28 @@ public class IdentityRequest : Object {
         return false;
     }
 
-    public void return_identity (IdCard? id_card) {
+    public void return_identity(IdCard? id_card, bool update_card = true) {
         this.id_card = id_card;
         this.complete = true;
 
         /* update id_card service list */
-        if (id_card != null && this.service != null && this.service != "")
+        if (update_card && id_card != null && this.service != null && this.service != "")
         {
-            bool duplicate_service = false;
-
-            foreach (string service in id_card.services)
-            {
-                if (service == this.service)
-                    duplicate_service = true;
-            }
+            bool duplicate_service = id_card.services.contains(this.service);
+            logger.trace("return_identity: duplicate_service=" + duplicate_service.to_string());
             if (duplicate_service == false)
             {
-                string[] services = new string[id_card.services.length + 1];
-
-                for (int i = 0; i < id_card.services.length; i++)
-                    services[i] = id_card.services[i];
-
-                services[id_card.services.length] = this.service;
-                id_card.services = services;
+                logger.trace("return_identity: calling add_service");
+                id_card.services.add(this.service);
+                logger.trace("return_identity: back from add_service");
 
-                this.id_card = this.parent_app.model.update_card (id_card);
+                this.id_card = this.parent_app.model.update_card(id_card);
             }
         }
 
-        return_if_fail (callback != null);
-        callback (this);
+        return_if_fail(callback != null);
+        logger.trace("return_identity: invoking callback");
+        callback(this);
     }
 
 #if OS_WIN32
index 64e115e..7e9074f 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-keyring-store.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-keyring-store.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-keyring-store.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -72,7 +72,18 @@ typedef struct _IdCardClass IdCardClass;
 typedef struct _KeyringStore KeyringStore;
 typedef struct _KeyringStoreClass KeyringStoreClass;
 typedef struct _KeyringStorePrivate KeyringStorePrivate;
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
 #define __g_list_free__gnome_keyring_found_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__gnome_keyring_found_free0_ (var), NULL)))
 #define _gnome_keyring_attribute_list_free0(var) ((var == NULL) ? NULL : (var = (gnome_keyring_attribute_list_free (var), NULL)))
 
@@ -85,7 +96,6 @@ typedef struct _KeyringStorePrivate KeyringStorePrivate;
 
 typedef struct _TrustAnchor TrustAnchor;
 typedef struct _TrustAnchorClass TrustAnchorClass;
-#define _g_free0(var) (var = (g_free (var), NULL))
 
 #define TYPE_RULE (rule_get_type ())
 typedef struct _Rule Rule;
@@ -102,6 +112,7 @@ struct _IIdentityCardStoreIface {
        IdCard* (*update_card) (IIdentityCardStore* self, IdCard* card);
        IIdentityCardStoreStoreType (*get_store_type) (IIdentityCardStore* self);
        GeeLinkedList* (*get_card_list) (IIdentityCardStore* self);
+       void (*store_id_cards) (IIdentityCardStore* self);
 };
 
 struct _KeyringStore {
@@ -124,6 +135,8 @@ struct _Rule {
 
 
 static gpointer keyring_store_parent_class = NULL;
+static MoonshotLogger* keyring_store_logger;
+static MoonshotLogger* keyring_store_logger = NULL;
 static IIdentityCardStoreIface* keyring_store_iidentity_card_store_parent_iface = NULL;
 
 GType id_card_get_type (void) G_GNUC_CONST;
@@ -134,13 +147,18 @@ GType keyring_store_get_type (void) G_GNUC_CONST;
 enum  {
        KEYRING_STORE_DUMMY_PROPERTY
 };
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* get_logger (const gchar* name);
 #define KEYRING_STORE_keyring_store_attribute "Moonshot"
 #define KEYRING_STORE_keyring_store_version "1.0"
 #define KEYRING_STORE_item_type GNOME_KEYRING_ITEM_GENERIC_SECRET
 static void keyring_store_real_add_card (IIdentityCardStore* base, IdCard* card);
-void keyring_store_store_id_cards (KeyringStore* self);
-static IdCard* keyring_store_real_update_card (IIdentityCardStore* base, IdCard* card);
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
 const gchar* id_card_get_display_name (IdCard* self);
+gchar* id_card_get_services_string (IdCard* self, const gchar* sep);
+void iidentity_card_store_store_id_cards (IIdentityCardStore* self);
+static IdCard* keyring_store_real_update_card (IIdentityCardStore* base, IdCard* card);
+void moonshot_logger_error (MoonshotLogger* self, const gchar* message, GError* e);
 static gboolean keyring_store_real_remove_card (IIdentityCardStore* base, IdCard* card);
 static IIdentityCardStoreStoreType keyring_store_real_get_store_type (IIdentityCardStore* base);
 static GeeLinkedList* keyring_store_real_get_card_list (IIdentityCardStore* base);
@@ -153,13 +171,12 @@ IdCard* id_card_construct (GType object_type);
 void id_card_set_issuer (IdCard* self, const gchar* value);
 void id_card_set_username (IdCard* self, const gchar* value);
 void id_card_set_display_name (IdCard* self, const gchar* value);
-void id_card_set_services (IdCard* self, gchar** value, int value_length1);
+void id_card_update_services (IdCard* self, gchar** services, int services_length1);
 GType trust_anchor_get_type (void) G_GNUC_CONST;
-TrustAnchor* id_card_get_trust_anchor (IdCard* self);
-void trust_anchor_set_ca_cert (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_server_cert (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_subject (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_subject_alt (TrustAnchor* self, const gchar* value);
+TrustAnchor* trust_anchor_new (const gchar* ca_cert, const gchar* server_cert, const gchar* subject, const gchar* subject_alt);
+TrustAnchor* trust_anchor_construct (GType object_type, const gchar* ca_cert, const gchar* server_cert, const gchar* subject, const gchar* subject_alt);
+void trust_anchor_set_datetime_added (TrustAnchor* self, const gchar* datetime);
+void id_card_set_trust_anchor_from_store (IdCard* self, TrustAnchor* ta);
 GType rule_get_type (void) G_GNUC_CONST;
 Rule* rule_dup (const Rule* self);
 void rule_free (Rule* self);
@@ -170,16 +187,17 @@ static void _vala_Rule_array_free (Rule* array, gint array_length);
 void id_card_set_store_password (IdCard* self, gboolean value);
 gboolean id_card_get_store_password (IdCard* self);
 void id_card_set_password (IdCard* self, const gchar* value);
+static void keyring_store_real_store_id_cards (IIdentityCardStore* base);
 Rule* id_card_get_rules (IdCard* self, int* result_length1);
-static Rule* _vala_array_dup3 (Rule* self, int length);
-gchar** id_card_get_services (IdCard* self, int* result_length1);
-static gchar** _vala_array_dup4 (gchar** self, int length);
+static Rule* _vala_array_dup2 (Rule* self, int length);
 const gchar* id_card_get_issuer (IdCard* self);
 const gchar* id_card_get_username (IdCard* self);
+TrustAnchor* id_card_get_trust_anchor (IdCard* self);
 const gchar* trust_anchor_get_ca_cert (TrustAnchor* self);
 const gchar* trust_anchor_get_server_cert (TrustAnchor* self);
 const gchar* trust_anchor_get_subject (TrustAnchor* self);
 const gchar* trust_anchor_get_subject_alt (TrustAnchor* self);
+const gchar* trust_anchor_get_datetime_added (TrustAnchor* self);
 const gchar* id_card_get_password (IdCard* self);
 KeyringStore* keyring_store_new (void);
 KeyringStore* keyring_store_construct (GType object_type);
@@ -191,155 +209,230 @@ static gint _vala_array_length (gpointer array);
 
 static void keyring_store_real_add_card (IIdentityCardStore* base, IdCard* card) {
        KeyringStore * self;
-       GeeLinkedList* _tmp0_ = NULL;
+       MoonshotLogger* _tmp0_ = NULL;
        IdCard* _tmp1_ = NULL;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       const gchar* _tmp2_ = NULL;
+       const gchar* _tmp3_ = NULL;
+       IdCard* _tmp4_ = NULL;
+       gchar* _tmp5_ = NULL;
+       gchar* _tmp6_ = NULL;
+       gchar* _tmp7_ = NULL;
+       gchar* _tmp8_ = NULL;
+       GeeLinkedList* _tmp9_ = NULL;
+       IdCard* _tmp10_ = NULL;
+#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        self = (KeyringStore*) base;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        g_return_if_fail (card != NULL);
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       _tmp0_ = self->priv->id_card_list;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp0_ = keyring_store_logger;
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp1_ = card;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, _tmp1_);
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       keyring_store_store_id_cards (self);
-#line 209 "moonshot-keyring-store.c"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp2_ = id_card_get_display_name (_tmp1_);
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp3_ = _tmp2_;
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp4_ = card;
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp5_ = id_card_get_services_string (_tmp4_, "; ");
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp6_ = _tmp5_;
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp7_ = g_strdup_printf ("add_card: Adding card '%s' with services: '%s'", _tmp3_, _tmp6_);
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp8_ = _tmp7_;
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       moonshot_logger_trace (_tmp0_, _tmp8_, NULL);
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _g_free0 (_tmp8_);
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _g_free0 (_tmp6_);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp9_ = self->priv->id_card_list;
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp10_ = card;
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp9_, _tmp10_);
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       iidentity_card_store_store_id_cards ((IIdentityCardStore*) self);
+#line 260 "moonshot-keyring-store.c"
 }
 
 
 static gpointer _g_object_ref0 (gpointer self) {
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        return self ? g_object_ref (self) : NULL;
-#line 216 "moonshot-keyring-store.c"
+#line 267 "moonshot-keyring-store.c"
+}
+
+
+static const gchar* string_to_string (const gchar* self) {
+       const gchar* result = NULL;
+#line 1420 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = self;
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 279 "moonshot-keyring-store.c"
 }
 
 
 static IdCard* keyring_store_real_update_card (IIdentityCardStore* base, IdCard* card) {
        KeyringStore * self;
        IdCard* result = NULL;
-       GeeLinkedList* _tmp0_ = NULL;
-       IdCard* _tmp1_ = NULL;
-       GeeLinkedList* _tmp2_ = NULL;
-       IdCard* _tmp3_ = NULL;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       MoonshotLogger* _tmp0_ = NULL;
+       GeeLinkedList* _tmp1_ = NULL;
+       IdCard* _tmp2_ = NULL;
+       GeeLinkedList* _tmp3_ = NULL;
+       IdCard* _tmp4_ = NULL;
+       MoonshotLogger* _tmp22_ = NULL;
+       IdCard* _tmp23_ = NULL;
+       const gchar* _tmp24_ = NULL;
+       const gchar* _tmp25_ = NULL;
+       const gchar* _tmp26_ = NULL;
+       gchar* _tmp27_ = NULL;
+       gchar* _tmp28_ = NULL;
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        self = (KeyringStore*) base;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        g_return_val_if_fail (card != NULL, NULL);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       _tmp0_ = self->priv->id_card_list;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       _tmp1_ = card;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _tmp1_);
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       _tmp2_ = self->priv->id_card_list;
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       _tmp3_ = card;
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp2_, _tmp3_);
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       keyring_store_store_id_cards (self);
-#line 245 "moonshot-keyring-store.c"
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp0_ = keyring_store_logger;
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       moonshot_logger_trace (_tmp0_, "update_card", NULL);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp1_ = self->priv->id_card_list;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp2_ = card;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp1_, _tmp2_);
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp3_ = self->priv->id_card_list;
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp4_ = card;
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp3_, _tmp4_);
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       iidentity_card_store_store_id_cards ((IIdentityCardStore*) self);
+#line 320 "moonshot-keyring-store.c"
        {
                GeeLinkedList* _idcard_list = NULL;
-               GeeLinkedList* _tmp4_ = NULL;
                GeeLinkedList* _tmp5_ = NULL;
-               gint _idcard_size = 0;
                GeeLinkedList* _tmp6_ = NULL;
-               gint _tmp7_ = 0;
+               gint _idcard_size = 0;
+               GeeLinkedList* _tmp7_ = NULL;
                gint _tmp8_ = 0;
+               gint _tmp9_ = 0;
                gint _idcard_index = 0;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _tmp4_ = self->priv->id_card_list;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _tmp5_ = _g_object_ref0 (_tmp4_);
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _idcard_list = _tmp5_;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _tmp6_ = _idcard_list;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _tmp7_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp6_);
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _tmp8_ = _tmp7_;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _idcard_size = _tmp8_;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _tmp5_ = self->priv->id_card_list;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _idcard_list = _tmp6_;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _tmp7_ = _idcard_list;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _tmp8_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp7_);
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _tmp9_ = _tmp8_;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _idcard_size = _tmp9_;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                _idcard_index = -1;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                while (TRUE) {
-#line 273 "moonshot-keyring-store.c"
-                       gint _tmp9_ = 0;
+#line 348 "moonshot-keyring-store.c"
                        gint _tmp10_ = 0;
                        gint _tmp11_ = 0;
+                       gint _tmp12_ = 0;
                        IdCard* idcard = NULL;
-                       GeeLinkedList* _tmp12_ = NULL;
-                       gint _tmp13_ = 0;
-                       gpointer _tmp14_ = NULL;
-                       IdCard* _tmp15_ = NULL;
-                       const gchar* _tmp16_ = NULL;
+                       GeeLinkedList* _tmp13_ = NULL;
+                       gint _tmp14_ = 0;
+                       gpointer _tmp15_ = NULL;
+                       IdCard* _tmp16_ = NULL;
                        const gchar* _tmp17_ = NULL;
-                       IdCard* _tmp18_ = NULL;
-                       const gchar* _tmp19_ = NULL;
+                       const gchar* _tmp18_ = NULL;
+                       IdCard* _tmp19_ = NULL;
                        const gchar* _tmp20_ = NULL;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp9_ = _idcard_index;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _idcard_index = _tmp9_ + 1;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       const gchar* _tmp21_ = NULL;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        _tmp10_ = _idcard_index;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp11_ = _idcard_size;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       if (!(_tmp10_ < _tmp11_)) {
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _idcard_index = _tmp10_ + 1;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp11_ = _idcard_index;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp12_ = _idcard_size;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       if (!(_tmp11_ < _tmp12_)) {
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                break;
-#line 299 "moonshot-keyring-store.c"
+#line 374 "moonshot-keyring-store.c"
                        }
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp12_ = _idcard_list;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp13_ = _idcard_index;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp12_, _tmp13_);
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       idcard = (IdCard*) _tmp14_;
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp15_ = idcard;
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp16_ = id_card_get_display_name (_tmp15_);
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp17_ = _tmp16_;
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp18_ = card;
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp19_ = id_card_get_display_name (_tmp18_);
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp20_ = _tmp19_;
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       if (g_strcmp0 (_tmp17_, _tmp20_) == 0) {
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp13_ = _idcard_list;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp14_ = _idcard_index;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp15_ = gee_abstract_list_get ((GeeAbstractList*) _tmp13_, _tmp14_);
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       idcard = (IdCard*) _tmp15_;
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp16_ = idcard;
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp17_ = id_card_get_display_name (_tmp16_);
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp18_ = _tmp17_;
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp19_ = card;
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp20_ = id_card_get_display_name (_tmp19_);
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp21_ = _tmp20_;
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       if (g_strcmp0 (_tmp18_, _tmp21_) == 0) {
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                result = idcard;
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                _g_object_unref0 (_idcard_list);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                return result;
-#line 329 "moonshot-keyring-store.c"
+#line 404 "moonshot-keyring-store.c"
                        }
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        _g_object_unref0 (idcard);
-#line 333 "moonshot-keyring-store.c"
+#line 408 "moonshot-keyring-store.c"
                }
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                _g_object_unref0 (_idcard_list);
-#line 337 "moonshot-keyring-store.c"
+#line 412 "moonshot-keyring-store.c"
        }
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp22_ = keyring_store_logger;
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp23_ = card;
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp24_ = id_card_get_display_name (_tmp23_);
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp25_ = _tmp24_;
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp26_ = string_to_string (_tmp25_);
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp27_ = g_strconcat ("update_card: card '", _tmp26_, "' was not found after re-loading!", NULL);
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp28_ = _tmp27_;
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       moonshot_logger_error (_tmp22_, _tmp28_, NULL);
+#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _g_free0 (_tmp28_);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        result = NULL;
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        return result;
-#line 343 "moonshot-keyring-store.c"
+#line 436 "moonshot-keyring-store.c"
 }
 
 
@@ -351,44 +444,44 @@ static gboolean keyring_store_real_remove_card (IIdentityCardStore* base, IdCard
        IdCard* _tmp1_ = NULL;
        gboolean _tmp2_ = FALSE;
        gboolean _tmp3_ = FALSE;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        self = (KeyringStore*) base;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        g_return_val_if_fail (card != NULL, FALSE);
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp0_ = self->priv->id_card_list;
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp1_ = card;
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp2_ = gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _tmp1_);
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        retval = _tmp2_;
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp3_ = retval;
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        if (_tmp3_) {
-#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               keyring_store_store_id_cards (self);
-#line 373 "moonshot-keyring-store.c"
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               iidentity_card_store_store_id_cards ((IIdentityCardStore*) self);
+#line 466 "moonshot-keyring-store.c"
        }
-#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        result = retval;
-#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        return result;
-#line 379 "moonshot-keyring-store.c"
+#line 472 "moonshot-keyring-store.c"
 }
 
 
 static IIdentityCardStoreStoreType keyring_store_real_get_store_type (IIdentityCardStore* base) {
        KeyringStore * self;
        IIdentityCardStoreStoreType result = 0;
-#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        self = (KeyringStore*) base;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        result = IIDENTITY_CARD_STORE_STORE_TYPE_KEYRING;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        return result;
-#line 392 "moonshot-keyring-store.c"
+#line 485 "moonshot-keyring-store.c"
 }
 
 
@@ -397,33 +490,33 @@ static GeeLinkedList* keyring_store_real_get_card_list (IIdentityCardStore* base
        GeeLinkedList* result = NULL;
        GeeLinkedList* _tmp0_ = NULL;
        GeeLinkedList* _tmp1_ = NULL;
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        self = (KeyringStore*) base;
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp0_ = self->priv->id_card_list;
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp1_ = _g_object_ref0 (_tmp0_);
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        result = _tmp1_;
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        return result;
-#line 411 "moonshot-keyring-store.c"
+#line 504 "moonshot-keyring-store.c"
 }
 
 
 static void _gnome_keyring_found_free0_ (gpointer var) {
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        (var == NULL) ? NULL : (var = (gnome_keyring_found_free (var), NULL));
-#line 418 "moonshot-keyring-store.c"
+#line 511 "moonshot-keyring-store.c"
 }
 
 
 static void _g_list_free__gnome_keyring_found_free0_ (GList* self) {
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        g_list_foreach (self, (GFunc) _gnome_keyring_found_free0_, NULL);
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        g_list_free (self);
-#line 427 "moonshot-keyring-store.c"
+#line 520 "moonshot-keyring-store.c"
 }
 
 
@@ -435,76 +528,76 @@ static void keyring_store_clear_keyring (KeyringStore* self) {
        GnomeKeyringAttributeList* _tmp2_ = NULL;
        GList* _tmp3_ = NULL;
        GList* _tmp4_ = NULL;
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        g_return_if_fail (self != NULL);
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp0_ = gnome_keyring_attribute_list_new ();
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        match = _tmp0_;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp1_ = match;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        gnome_keyring_attribute_list_append_string (_tmp1_, KEYRING_STORE_keyring_store_attribute, KEYRING_STORE_keyring_store_version);
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp2_ = match;
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        gnome_keyring_find_items_sync (KEYRING_STORE_item_type, _tmp2_, &_tmp3_);
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        __g_list_free__gnome_keyring_found_free0_0 (items);
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        items = _tmp3_;
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp4_ = items;
-#line 459 "moonshot-keyring-store.c"
+#line 552 "moonshot-keyring-store.c"
        {
                GList* entry_collection = NULL;
                GList* entry_it = NULL;
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                entry_collection = _tmp4_;
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                for (entry_it = entry_collection; entry_it != NULL; entry_it = entry_it->next) {
-#line 467 "moonshot-keyring-store.c"
+#line 560 "moonshot-keyring-store.c"
                        GnomeKeyringFound* entry = NULL;
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        entry = (GnomeKeyringFound*) entry_it->data;
-#line 471 "moonshot-keyring-store.c"
+#line 564 "moonshot-keyring-store.c"
                        {
                                GnomeKeyringResult _result_ = 0;
                                GnomeKeyringFound* _tmp5_ = NULL;
                                guint _tmp6_ = 0U;
                                GnomeKeyringResult _tmp7_ = 0;
                                GnomeKeyringResult _tmp8_ = 0;
-#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                _tmp5_ = entry;
-#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                _tmp6_ = _tmp5_->item_id;
-#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                _tmp7_ = gnome_keyring_item_delete_sync (NULL, (guint32) _tmp6_);
-#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                _result_ = _tmp7_;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                _tmp8_ = _result_;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                if (_tmp8_ != GNOME_KEYRING_RESULT_OK) {
-#line 490 "moonshot-keyring-store.c"
+#line 583 "moonshot-keyring-store.c"
                                        FILE* _tmp9_ = NULL;
                                        GnomeKeyringResult _tmp10_ = 0;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                        _tmp9_ = stdout;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                        _tmp10_ = _result_;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                        fprintf (_tmp9_, "GnomeKeyring.item_delete_sync() failed. result: %d", (gint) _tmp10_);
-#line 499 "moonshot-keyring-store.c"
+#line 592 "moonshot-keyring-store.c"
                                }
                        }
                }
        }
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        __g_list_free__gnome_keyring_found_free0_0 (items);
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _gnome_keyring_attribute_list_free0 (match);
-#line 508 "moonshot-keyring-store.c"
+#line 601 "moonshot-keyring-store.c"
 }
 
 
@@ -513,39 +606,39 @@ static gchar* string_strip (const gchar* self) {
        gchar* _result_ = NULL;
        gchar* _tmp0_ = NULL;
        const gchar* _tmp1_ = NULL;
-#line 1115 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1215 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        g_return_val_if_fail (self != NULL, NULL);
-#line 1116 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1216 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp0_ = g_strdup (self);
-#line 1116 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1216 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _result_ = _tmp0_;
-#line 1117 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1217 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp1_ = _result_;
-#line 1117 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1217 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        g_strstrip (_tmp1_);
-#line 1118 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1218 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        result = _result_;
-#line 1118 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1218 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        return result;
-#line 531 "moonshot-keyring-store.c"
+#line 624 "moonshot-keyring-store.c"
 }
 
 
 static void _vala_Rule_array_free (Rule* array, gint array_length) {
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        if (array != NULL) {
-#line 538 "moonshot-keyring-store.c"
+#line 631 "moonshot-keyring-store.c"
                int i;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                for (i = 0; i < array_length; i = i + 1) {
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        rule_destroy (&array[i]);
-#line 544 "moonshot-keyring-store.c"
+#line 637 "moonshot-keyring-store.c"
                }
        }
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        g_free (array);
-#line 549 "moonshot-keyring-store.c"
+#line 642 "moonshot-keyring-store.c"
 }
 
 
@@ -558,43 +651,43 @@ static void keyring_store_load_id_cards (KeyringStore* self) {
        GnomeKeyringAttributeList* _tmp3_ = NULL;
        GList* _tmp4_ = NULL;
        GList* _tmp5_ = NULL;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        g_return_if_fail (self != NULL);
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp0_ = self->priv->id_card_list;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp0_);
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp1_ = gnome_keyring_attribute_list_new ();
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        match = _tmp1_;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp2_ = match;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        gnome_keyring_attribute_list_append_string (_tmp2_, KEYRING_STORE_keyring_store_attribute, KEYRING_STORE_keyring_store_version);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp3_ = match;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        gnome_keyring_find_items_sync (KEYRING_STORE_item_type, _tmp3_, &_tmp4_);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        __g_list_free__gnome_keyring_found_free0_0 (items);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        items = _tmp4_;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _tmp5_ = items;
-#line 586 "moonshot-keyring-store.c"
+#line 679 "moonshot-keyring-store.c"
        {
                GList* entry_collection = NULL;
                GList* entry_it = NULL;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                entry_collection = _tmp5_;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                for (entry_it = entry_collection; entry_it != NULL; entry_it = entry_it->next) {
-#line 594 "moonshot-keyring-store.c"
+#line 687 "moonshot-keyring-store.c"
                        GnomeKeyringFound* entry = NULL;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        entry = (GnomeKeyringFound*) entry_it->data;
-#line 598 "moonshot-keyring-store.c"
+#line 691 "moonshot-keyring-store.c"
                        {
                                IdCard* id_card = NULL;
                                IdCard* _tmp6_ = NULL;
@@ -602,345 +695,400 @@ static void keyring_store_load_id_cards (KeyringStore* self) {
                                gint rules_patterns_index = 0;
                                gint rules_always_confirm_index = 0;
                                gchar* store_password = NULL;
-                               gboolean _tmp76_ = FALSE;
-                               gint _tmp77_ = 0;
-                               const gchar* _tmp121_ = NULL;
-                               IdCard* _tmp130_ = NULL;
-                               gboolean _tmp131_ = FALSE;
-                               gboolean _tmp132_ = FALSE;
-                               GeeLinkedList* _tmp137_ = NULL;
-                               IdCard* _tmp138_ = NULL;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp6_ = id_card_new ();
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               id_card = _tmp6_;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               rules_patterns_index = -1;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               rules_always_confirm_index = -1;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               store_password = NULL;
-#line 624 "moonshot-keyring-store.c"
-                               {
-                                       gboolean _tmp7_ = FALSE;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       i = 0;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp7_ = TRUE;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       while (TRUE) {
-#line 633 "moonshot-keyring-store.c"
-                                               gint _tmp9_ = 0;
-                                               GnomeKeyringFound* _tmp10_ = NULL;
-                                               GnomeKeyringAttributeList* _tmp11_ = NULL;
-                                               guint _tmp12_ = 0U;
-                                               GnomeKeyringAttribute attribute = {0};
-                                               GnomeKeyringFound* _tmp13_ = NULL;
-                                               GnomeKeyringAttributeList* _tmp14_ = NULL;
-                                               GnomeKeyringAttribute* _tmp15_ = NULL;
-                                               gint _tmp15__length1 = 0;
-                                               gint _tmp16_ = 0;
-                                               GnomeKeyringAttribute _tmp17_ = {0};
-                                               gchar* value = NULL;
-                                               GnomeKeyringAttribute _tmp18_ = {0};
-                                               const gchar* _tmp19_ = NULL;
-                                               gchar* _tmp20_ = NULL;
-                                               GnomeKeyringAttribute _tmp21_ = {0};
-                                               const gchar* _tmp22_ = NULL;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               if (!_tmp7_) {
-#line 653 "moonshot-keyring-store.c"
-                                                       gint _tmp8_ = 0;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                       _tmp8_ = i;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                       i = _tmp8_ + 1;
-#line 659 "moonshot-keyring-store.c"
-                                               }
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp7_ = FALSE;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp9_ = i;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp10_ = entry;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp11_ = _tmp10_->attributes;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp12_ = _tmp11_->len;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               if (!(((guint) _tmp9_) < _tmp12_)) {
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                       break;
-#line 675 "moonshot-keyring-store.c"
-                                               }
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp13_ = entry;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp14_ = _tmp13_->attributes;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp15_ = _tmp14_->data;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp15__length1 = -1;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp16_ = i;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp17_ = ((GnomeKeyringAttribute*) _tmp15_)[_tmp16_];
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               attribute = _tmp17_;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp18_ = attribute;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp19_ = _tmp18_.value.string;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp20_ = g_strdup (_tmp19_);
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               value = _tmp20_;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp21_ = attribute;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp22_ = _tmp21_.name;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               if (g_strcmp0 (_tmp22_, "Issuer") == 0) {
-#line 705 "moonshot-keyring-store.c"
-                                                       IdCard* _tmp23_ = NULL;
-                                                       const gchar* _tmp24_ = NULL;
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                       _tmp23_ = id_card;
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                       _tmp24_ = value;
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                       id_card_set_issuer (_tmp23_, _tmp24_);
-#line 714 "moonshot-keyring-store.c"
-                                               } else {
-                                                       GnomeKeyringAttribute _tmp25_ = {0};
-                                                       const gchar* _tmp26_ = NULL;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                       _tmp25_ = attribute;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                       _tmp26_ = _tmp25_.name;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                       if (g_strcmp0 (_tmp26_, "Username") == 0) {
-#line 724 "moonshot-keyring-store.c"
-                                                               IdCard* _tmp27_ = NULL;
-                                                               const gchar* _tmp28_ = NULL;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                               _tmp27_ = id_card;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                               _tmp28_ = value;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                               id_card_set_username (_tmp27_, _tmp28_);
-#line 733 "moonshot-keyring-store.c"
-                                                       } else {
-                                                               GnomeKeyringAttribute _tmp29_ = {0};
-                                                               const gchar* _tmp30_ = NULL;
+                               gchar* ca_cert = NULL;
+                               gchar* _tmp7_ = NULL;
+                               gchar* server_cert = NULL;
+                               gchar* _tmp8_ = NULL;
+                               gchar* subject = NULL;
+                               gchar* _tmp9_ = NULL;
+                               gchar* subject_alt = NULL;
+                               gchar* _tmp10_ = NULL;
+                               gchar* ta_datetime_added = NULL;
+                               gchar* _tmp11_ = NULL;
+                               TrustAnchor* ta = NULL;
+                               const gchar* _tmp78_ = NULL;
+                               const gchar* _tmp79_ = NULL;
+                               const gchar* _tmp80_ = NULL;
+                               const gchar* _tmp81_ = NULL;
+                               TrustAnchor* _tmp82_ = NULL;
+                               const gchar* _tmp83_ = NULL;
+                               IdCard* _tmp86_ = NULL;
+                               TrustAnchor* _tmp87_ = NULL;
+                               gboolean _tmp88_ = FALSE;
+                               gint _tmp89_ = 0;
+                               const gchar* _tmp133_ = NULL;
+                               IdCard* _tmp142_ = NULL;
+                               gboolean _tmp143_ = FALSE;
+                               gboolean _tmp144_ = FALSE;
+                               GeeLinkedList* _tmp149_ = NULL;
+                               IdCard* _tmp150_ = NULL;
 #line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                               _tmp29_ = attribute;
-#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                               _tmp30_ = _tmp29_.name;
+                               _tmp6_ = id_card_new ();
 #line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                               if (g_strcmp0 (_tmp30_, "DisplayName") == 0) {
-#line 743 "moonshot-keyring-store.c"
-                                                                       IdCard* _tmp31_ = NULL;
-                                                                       const gchar* _tmp32_ = NULL;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp31_ = id_card;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp32_ = value;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       id_card_set_display_name (_tmp31_, _tmp32_);
-#line 752 "moonshot-keyring-store.c"
-                                                               } else {
-                                                                       GnomeKeyringAttribute _tmp33_ = {0};
-                                                                       const gchar* _tmp34_ = NULL;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp33_ = attribute;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp34_ = _tmp33_.name;
+                               id_card = _tmp6_;
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       if (g_strcmp0 (_tmp34_, "Services") == 0) {
-#line 762 "moonshot-keyring-store.c"
-                                                                               IdCard* _tmp35_ = NULL;
-                                                                               const gchar* _tmp36_ = NULL;
-                                                                               gchar** _tmp37_ = NULL;
-                                                                               gchar** _tmp38_ = NULL;
-                                                                               gchar** _tmp39_ = NULL;
-                                                                               gint _tmp39__length1 = 0;
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                               _tmp35_ = id_card;
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                               _tmp36_ = value;
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                               _tmp38_ = _tmp37_ = g_strsplit (_tmp36_, ";", 0);
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                               _tmp39_ = _tmp38_;
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                               _tmp39__length1 = _vala_array_length (_tmp37_);
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                               id_card_set_services (_tmp35_, _tmp39_, _vala_array_length (_tmp37_));
+                               rules_patterns_index = -1;
 #line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                               _tmp39_ = (_vala_array_free (_tmp39_, _tmp39__length1, (GDestroyNotify) g_free), NULL);
-#line 783 "moonshot-keyring-store.c"
-                                                                       } else {
-                                                                               GnomeKeyringAttribute _tmp40_ = {0};
-                                                                               const gchar* _tmp41_ = NULL;
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                               _tmp40_ = attribute;
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                               _tmp41_ = _tmp40_.name;
+                               rules_always_confirm_index = -1;
 #line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                               if (g_strcmp0 (_tmp41_, "Rules-Pattern") == 0) {
-#line 793 "moonshot-keyring-store.c"
-                                                                                       gint _tmp42_ = 0;
+                               store_password = NULL;
 #line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                       _tmp42_ = i;
+                               _tmp7_ = g_strdup ("");
 #line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                       rules_patterns_index = _tmp42_;
-#line 799 "moonshot-keyring-store.c"
-                                                                               } else {
-                                                                                       GnomeKeyringAttribute _tmp43_ = {0};
-                                                                                       const gchar* _tmp44_ = NULL;
-#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                       _tmp43_ = attribute;
+                               ca_cert = _tmp7_;
 #line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                       _tmp44_ = _tmp43_.name;
+                               _tmp8_ = g_strdup ("");
 #line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                       if (g_strcmp0 (_tmp44_, "Rules-AlwaysConfirm") == 0) {
-#line 809 "moonshot-keyring-store.c"
-                                                                                               gint _tmp45_ = 0;
+                               server_cert = _tmp8_;
 #line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                               _tmp45_ = i;
+                               _tmp9_ = g_strdup ("");
 #line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                               rules_always_confirm_index = _tmp45_;
-#line 815 "moonshot-keyring-store.c"
-                                                                                       } else {
-                                                                                               GnomeKeyringAttribute _tmp46_ = {0};
-                                                                                               const gchar* _tmp47_ = NULL;
-#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                               _tmp46_ = attribute;
+                               subject = _tmp9_;
 #line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                               _tmp47_ = _tmp46_.name;
+                               _tmp10_ = g_strdup ("");
 #line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                               if (g_strcmp0 (_tmp47_, "CA-Cert") == 0) {
-#line 825 "moonshot-keyring-store.c"
-                                                                                                       IdCard* _tmp48_ = NULL;
-                                                                                                       TrustAnchor* _tmp49_ = NULL;
-                                                                                                       TrustAnchor* _tmp50_ = NULL;
-                                                                                                       const gchar* _tmp51_ = NULL;
-                                                                                                       gchar* _tmp52_ = NULL;
-                                                                                                       gchar* _tmp53_ = NULL;
+                               subject_alt = _tmp10_;
 #line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                       _tmp48_ = id_card;
+                               _tmp11_ = g_strdup ("");
 #line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                       _tmp49_ = id_card_get_trust_anchor (_tmp48_);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                       _tmp50_ = _tmp49_;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                       _tmp51_ = value;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                       _tmp52_ = string_strip (_tmp51_);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                       _tmp53_ = _tmp52_;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                       trust_anchor_set_ca_cert (_tmp50_, _tmp53_);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                       _g_free0 (_tmp53_);
-#line 848 "moonshot-keyring-store.c"
-                                                                                               } else {
-                                                                                                       GnomeKeyringAttribute _tmp54_ = {0};
-                                                                                                       const gchar* _tmp55_ = NULL;
+                               ta_datetime_added = _tmp11_;
+#line 756 "moonshot-keyring-store.c"
+                               {
+                                       gboolean _tmp12_ = FALSE;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       i = 0;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp12_ = TRUE;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       while (TRUE) {
+#line 765 "moonshot-keyring-store.c"
+                                               gint _tmp14_ = 0;
+                                               GnomeKeyringFound* _tmp15_ = NULL;
+                                               GnomeKeyringAttributeList* _tmp16_ = NULL;
+                                               guint _tmp17_ = 0U;
+                                               GnomeKeyringAttribute attribute = {0};
+                                               GnomeKeyringFound* _tmp18_ = NULL;
+                                               GnomeKeyringAttributeList* _tmp19_ = NULL;
+                                               GnomeKeyringAttribute* _tmp20_ = NULL;
+                                               gint _tmp20__length1 = 0;
+                                               gint _tmp21_ = 0;
+                                               GnomeKeyringAttribute _tmp22_ = {0};
+                                               gchar* value = NULL;
+                                               gchar* _tmp23_ = NULL;
+                                               GnomeKeyringAttribute _tmp24_ = {0};
+                                               GnomeKeyringAttributeType _tmp25_ = 0;
+                                               GnomeKeyringAttribute _tmp29_ = {0};
+                                               const gchar* _tmp30_ = NULL;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               if (!_tmp12_) {
+#line 785 "moonshot-keyring-store.c"
+                                                       gint _tmp13_ = 0;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       _tmp13_ = i;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       i = _tmp13_ + 1;
+#line 791 "moonshot-keyring-store.c"
+                                               }
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp12_ = FALSE;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp14_ = i;
 #line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                       _tmp54_ = attribute;
+                                               _tmp15_ = entry;
 #line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                       _tmp55_ = _tmp54_.name;
+                                               _tmp16_ = _tmp15_->attributes;
 #line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                       if (g_strcmp0 (_tmp55_, "Server-Cert") == 0) {
-#line 858 "moonshot-keyring-store.c"
-                                                                                                               IdCard* _tmp56_ = NULL;
-                                                                                                               TrustAnchor* _tmp57_ = NULL;
-                                                                                                               TrustAnchor* _tmp58_ = NULL;
-                                                                                                               const gchar* _tmp59_ = NULL;
+                                               _tmp17_ = _tmp16_->len;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               if (!(((guint) _tmp14_) < _tmp17_)) {
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       break;
+#line 807 "moonshot-keyring-store.c"
+                                               }
 #line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                               _tmp56_ = id_card;
+                                               _tmp18_ = entry;
 #line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                               _tmp57_ = id_card_get_trust_anchor (_tmp56_);
+                                               _tmp19_ = _tmp18_->attributes;
 #line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                               _tmp58_ = _tmp57_;
+                                               _tmp20_ = _tmp19_->data;
 #line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                               _tmp59_ = value;
+                                               _tmp20__length1 = -1;
 #line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                               trust_anchor_set_server_cert (_tmp58_, _tmp59_);
-#line 873 "moonshot-keyring-store.c"
-                                                                                                       } else {
-                                                                                                               GnomeKeyringAttribute _tmp60_ = {0};
-                                                                                                               const gchar* _tmp61_ = NULL;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                               _tmp60_ = attribute;
+                                               _tmp21_ = i;
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp22_ = ((GnomeKeyringAttribute*) _tmp20_)[_tmp21_];
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               attribute = _tmp22_;
 #line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                               _tmp61_ = _tmp60_.name;
+                                               _tmp23_ = g_strdup ("");
 #line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                               if (g_strcmp0 (_tmp61_, "Subject") == 0) {
-#line 883 "moonshot-keyring-store.c"
-                                                                                                                       IdCard* _tmp62_ = NULL;
-                                                                                                                       TrustAnchor* _tmp63_ = NULL;
-                                                                                                                       TrustAnchor* _tmp64_ = NULL;
-                                                                                                                       const gchar* _tmp65_ = NULL;
-#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                       _tmp62_ = id_card;
+                                               value = _tmp23_;
 #line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                       _tmp63_ = id_card_get_trust_anchor (_tmp62_);
+                                               _tmp24_ = attribute;
 #line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                       _tmp64_ = _tmp63_;
+                                               _tmp25_ = _tmp24_.type;
 #line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                       _tmp65_ = value;
-#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                       trust_anchor_set_subject (_tmp64_, _tmp65_);
-#line 898 "moonshot-keyring-store.c"
+                                               if (_tmp25_ == GNOME_KEYRING_ATTRIBUTE_TYPE_STRING) {
+#line 833 "moonshot-keyring-store.c"
+                                                       GnomeKeyringAttribute _tmp26_ = {0};
+                                                       const gchar* _tmp27_ = NULL;
+                                                       gchar* _tmp28_ = NULL;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       _tmp26_ = attribute;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       _tmp27_ = _tmp26_.value.string;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       _tmp28_ = g_strdup (_tmp27_);
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       _g_free0 (value);
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       value = _tmp28_;
+#line 847 "moonshot-keyring-store.c"
+                                               }
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp29_ = attribute;
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp30_ = _tmp29_.name;
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               if (g_strcmp0 (_tmp30_, "Issuer") == 0) {
+#line 855 "moonshot-keyring-store.c"
+                                                       IdCard* _tmp31_ = NULL;
+                                                       const gchar* _tmp32_ = NULL;
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       _tmp31_ = id_card;
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       _tmp32_ = value;
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       id_card_set_issuer (_tmp31_, _tmp32_);
+#line 864 "moonshot-keyring-store.c"
+                                               } else {
+                                                       GnomeKeyringAttribute _tmp33_ = {0};
+                                                       const gchar* _tmp34_ = NULL;
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       _tmp33_ = attribute;
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       _tmp34_ = _tmp33_.name;
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       if (g_strcmp0 (_tmp34_, "Username") == 0) {
+#line 874 "moonshot-keyring-store.c"
+                                                               IdCard* _tmp35_ = NULL;
+                                                               const gchar* _tmp36_ = NULL;
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                               _tmp35_ = id_card;
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                               _tmp36_ = value;
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                               id_card_set_username (_tmp35_, _tmp36_);
+#line 883 "moonshot-keyring-store.c"
+                                                       } else {
+                                                               GnomeKeyringAttribute _tmp37_ = {0};
+                                                               const gchar* _tmp38_ = NULL;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                               _tmp37_ = attribute;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                               _tmp38_ = _tmp37_.name;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                               if (g_strcmp0 (_tmp38_, "DisplayName") == 0) {
+#line 893 "moonshot-keyring-store.c"
+                                                                       IdCard* _tmp39_ = NULL;
+                                                                       const gchar* _tmp40_ = NULL;
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp39_ = id_card;
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp40_ = value;
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       id_card_set_display_name (_tmp39_, _tmp40_);
+#line 902 "moonshot-keyring-store.c"
+                                                               } else {
+                                                                       GnomeKeyringAttribute _tmp41_ = {0};
+                                                                       const gchar* _tmp42_ = NULL;
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp41_ = attribute;
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp42_ = _tmp41_.name;
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       if (g_strcmp0 (_tmp42_, "Services") == 0) {
+#line 912 "moonshot-keyring-store.c"
+                                                                               IdCard* _tmp43_ = NULL;
+                                                                               const gchar* _tmp44_ = NULL;
+                                                                               gchar** _tmp45_ = NULL;
+                                                                               gchar** _tmp46_ = NULL;
+                                                                               gchar** _tmp47_ = NULL;
+                                                                               gint _tmp47__length1 = 0;
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                               _tmp43_ = id_card;
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                               _tmp44_ = value;
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                               _tmp46_ = _tmp45_ = g_strsplit (_tmp44_, ";", 0);
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                               _tmp47_ = _tmp46_;
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                               _tmp47__length1 = _vala_array_length (_tmp45_);
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                               id_card_update_services (_tmp43_, _tmp47_, _vala_array_length (_tmp45_));
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                               _tmp47_ = (_vala_array_free (_tmp47_, _tmp47__length1, (GDestroyNotify) g_free), NULL);
+#line 933 "moonshot-keyring-store.c"
+                                                                       } else {
+                                                                               GnomeKeyringAttribute _tmp48_ = {0};
+                                                                               const gchar* _tmp49_ = NULL;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                               _tmp48_ = attribute;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                               _tmp49_ = _tmp48_.name;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                               if (g_strcmp0 (_tmp49_, "Rules-Pattern") == 0) {
+#line 943 "moonshot-keyring-store.c"
+                                                                                       gint _tmp50_ = 0;
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                       _tmp50_ = i;
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                       rules_patterns_index = _tmp50_;
+#line 949 "moonshot-keyring-store.c"
+                                                                               } else {
+                                                                                       GnomeKeyringAttribute _tmp51_ = {0};
+                                                                                       const gchar* _tmp52_ = NULL;
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                       _tmp51_ = attribute;
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                       _tmp52_ = _tmp51_.name;
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                       if (g_strcmp0 (_tmp52_, "Rules-AlwaysConfirm") == 0) {
+#line 959 "moonshot-keyring-store.c"
+                                                                                               gint _tmp53_ = 0;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                               _tmp53_ = i;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                               rules_always_confirm_index = _tmp53_;
+#line 965 "moonshot-keyring-store.c"
+                                                                                       } else {
+                                                                                               GnomeKeyringAttribute _tmp54_ = {0};
+                                                                                               const gchar* _tmp55_ = NULL;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                               _tmp54_ = attribute;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                               _tmp55_ = _tmp54_.name;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                               if (g_strcmp0 (_tmp55_, "CA-Cert") == 0) {
+#line 975 "moonshot-keyring-store.c"
+                                                                                                       const gchar* _tmp56_ = NULL;
+                                                                                                       gchar* _tmp57_ = NULL;
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                       _tmp56_ = value;
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                       _tmp57_ = string_strip (_tmp56_);
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                       _g_free0 (ca_cert);
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                       ca_cert = _tmp57_;
+#line 986 "moonshot-keyring-store.c"
+                                                                                               } else {
+                                                                                                       GnomeKeyringAttribute _tmp58_ = {0};
+                                                                                                       const gchar* _tmp59_ = NULL;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                       _tmp58_ = attribute;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                       _tmp59_ = _tmp58_.name;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                       if (g_strcmp0 (_tmp59_, "Server-Cert") == 0) {
+#line 996 "moonshot-keyring-store.c"
+                                                                                                               const gchar* _tmp60_ = NULL;
+                                                                                                               gchar* _tmp61_ = NULL;
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                               _tmp60_ = value;
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                               _tmp61_ = g_strdup (_tmp60_);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                               _g_free0 (server_cert);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                               server_cert = _tmp61_;
+#line 1007 "moonshot-keyring-store.c"
+                                                                                                       } else {
+                                                                                                               GnomeKeyringAttribute _tmp62_ = {0};
+                                                                                                               const gchar* _tmp63_ = NULL;
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                               _tmp62_ = attribute;
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                               _tmp63_ = _tmp62_.name;
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                               if (g_strcmp0 (_tmp63_, "Subject") == 0) {
+#line 1017 "moonshot-keyring-store.c"
+                                                                                                                       const gchar* _tmp64_ = NULL;
+                                                                                                                       gchar* _tmp65_ = NULL;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                       _tmp64_ = value;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                       _tmp65_ = g_strdup (_tmp64_);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                       _g_free0 (subject);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                       subject = _tmp65_;
+#line 1028 "moonshot-keyring-store.c"
                                                                                                                } else {
                                                                                                                        GnomeKeyringAttribute _tmp66_ = {0};
                                                                                                                        const gchar* _tmp67_ = NULL;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                                                                                                        _tmp66_ = attribute;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                                                                                                        _tmp67_ = _tmp66_.name;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                                                                                                        if (g_strcmp0 (_tmp67_, "Subject-Alt") == 0) {
-#line 908 "moonshot-keyring-store.c"
-                                                                                                                               IdCard* _tmp68_ = NULL;
-                                                                                                                               TrustAnchor* _tmp69_ = NULL;
-                                                                                                                               TrustAnchor* _tmp70_ = NULL;
-                                                                                                                               const gchar* _tmp71_ = NULL;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                               _tmp68_ = id_card;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                               _tmp69_ = id_card_get_trust_anchor (_tmp68_);
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                               _tmp70_ = _tmp69_;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                               _tmp71_ = value;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                               trust_anchor_set_subject_alt (_tmp70_, _tmp71_);
-#line 923 "moonshot-keyring-store.c"
+#line 1038 "moonshot-keyring-store.c"
+                                                                                                                               const gchar* _tmp68_ = NULL;
+                                                                                                                               gchar* _tmp69_ = NULL;
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                               _tmp68_ = value;
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                               _tmp69_ = g_strdup (_tmp68_);
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                               _g_free0 (subject_alt);
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                               subject_alt = _tmp69_;
+#line 1049 "moonshot-keyring-store.c"
                                                                                                                        } else {
-                                                                                                                               GnomeKeyringAttribute _tmp72_ = {0};
-                                                                                                                               const gchar* _tmp73_ = NULL;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                               _tmp72_ = attribute;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                               _tmp73_ = _tmp72_.name;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                               if (g_strcmp0 (_tmp73_, "StorePassword") == 0) {
-#line 933 "moonshot-keyring-store.c"
-                                                                                                                                       const gchar* _tmp74_ = NULL;
-                                                                                                                                       gchar* _tmp75_ = NULL;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                                       _tmp74_ = value;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                                       _tmp75_ = g_strdup (_tmp74_);
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                               GnomeKeyringAttribute _tmp70_ = {0};
+                                                                                                                               const gchar* _tmp71_ = NULL;
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                               _tmp70_ = attribute;
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                               _tmp71_ = _tmp70_.name;
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                               if (g_strcmp0 (_tmp71_, "StorePassword") == 0) {
+#line 1059 "moonshot-keyring-store.c"
+                                                                                                                                       const gchar* _tmp72_ = NULL;
+                                                                                                                                       gchar* _tmp73_ = NULL;
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                                       _tmp72_ = value;
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                                       _tmp73_ = g_strdup (_tmp72_);
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                                                                                                                        _g_free0 (store_password);
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                                                                                       store_password = _tmp75_;
-#line 944 "moonshot-keyring-store.c"
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                                       store_password = _tmp73_;
+#line 1070 "moonshot-keyring-store.c"
+                                                                                                                               } else {
+                                                                                                                                       GnomeKeyringAttribute _tmp74_ = {0};
+                                                                                                                                       const gchar* _tmp75_ = NULL;
+#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                                       _tmp74_ = attribute;
+#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                                       _tmp75_ = _tmp74_.name;
+#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                                       if (g_strcmp0 (_tmp75_, "TA_DateTime_Added") == 0) {
+#line 1080 "moonshot-keyring-store.c"
+                                                                                                                                               const gchar* _tmp76_ = NULL;
+                                                                                                                                               gchar* _tmp77_ = NULL;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                                               _tmp76_ = value;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                                               _tmp77_ = g_strdup (_tmp76_);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                                               _g_free0 (ta_datetime_added);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                                                                                               ta_datetime_added = _tmp77_;
+#line 1091 "moonshot-keyring-store.c"
+                                                                                                                                       }
                                                                                                                                }
                                                                                                                        }
                                                                                                                }
@@ -952,410 +1100,434 @@ static void keyring_store_load_id_cards (KeyringStore* self) {
                                                                }
                                                        }
                                                }
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                                _g_free0 (value);
-#line 958 "moonshot-keyring-store.c"
+#line 1106 "moonshot-keyring-store.c"
                                        }
                                }
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp77_ = rules_always_confirm_index;
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               if (_tmp77_ != (-1)) {
-#line 965 "moonshot-keyring-store.c"
-                                       gint _tmp78_ = 0;
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp78_ = rules_patterns_index;
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp76_ = _tmp78_ != (-1);
-#line 971 "moonshot-keyring-store.c"
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp78_ = ca_cert;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp79_ = server_cert;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp80_ = subject;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp81_ = subject_alt;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp82_ = trust_anchor_new (_tmp78_, _tmp79_, _tmp80_, _tmp81_);
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               ta = _tmp82_;
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp83_ = ta_datetime_added;
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               if (g_strcmp0 (_tmp83_, "") != 0) {
+#line 1125 "moonshot-keyring-store.c"
+                                       TrustAnchor* _tmp84_ = NULL;
+                                       const gchar* _tmp85_ = NULL;
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp84_ = ta;
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp85_ = ta_datetime_added;
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       trust_anchor_set_datetime_added (_tmp84_, _tmp85_);
+#line 1134 "moonshot-keyring-store.c"
+                               }
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp86_ = id_card;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp87_ = ta;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               id_card_set_trust_anchor_from_store (_tmp86_, _tmp87_);
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp89_ = rules_always_confirm_index;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               if (_tmp89_ != -1) {
+#line 1146 "moonshot-keyring-store.c"
+                                       gint _tmp90_ = 0;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp90_ = rules_patterns_index;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp88_ = _tmp90_ != -1;
+#line 1152 "moonshot-keyring-store.c"
                                } else {
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp76_ = FALSE;
-#line 975 "moonshot-keyring-store.c"
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp88_ = FALSE;
+#line 1156 "moonshot-keyring-store.c"
                                }
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               if (_tmp76_) {
-#line 979 "moonshot-keyring-store.c"
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               if (_tmp88_) {
+#line 1160 "moonshot-keyring-store.c"
                                        gchar* rules_patterns_all = NULL;
-                                       GnomeKeyringFound* _tmp79_ = NULL;
-                                       GnomeKeyringAttributeList* _tmp80_ = NULL;
-                                       GnomeKeyringAttribute* _tmp81_ = NULL;
-                                       gint _tmp81__length1 = 0;
-                                       gint _tmp82_ = 0;
-                                       GnomeKeyringAttribute _tmp83_ = {0};
-                                       const gchar* _tmp84_ = NULL;
-                                       gchar* _tmp85_ = NULL;
+                                       GnomeKeyringFound* _tmp91_ = NULL;
+                                       GnomeKeyringAttributeList* _tmp92_ = NULL;
+                                       GnomeKeyringAttribute* _tmp93_ = NULL;
+                                       gint _tmp93__length1 = 0;
+                                       gint _tmp94_ = 0;
+                                       GnomeKeyringAttribute _tmp95_ = {0};
+                                       const gchar* _tmp96_ = NULL;
+                                       gchar* _tmp97_ = NULL;
                                        gchar* rules_always_confirm_all = NULL;
-                                       GnomeKeyringFound* _tmp86_ = NULL;
-                                       GnomeKeyringAttributeList* _tmp87_ = NULL;
-                                       GnomeKeyringAttribute* _tmp88_ = NULL;
-                                       gint _tmp88__length1 = 0;
-                                       gint _tmp89_ = 0;
-                                       GnomeKeyringAttribute _tmp90_ = {0};
-                                       const gchar* _tmp91_ = NULL;
-                                       gchar* _tmp92_ = NULL;
+                                       GnomeKeyringFound* _tmp98_ = NULL;
+                                       GnomeKeyringAttributeList* _tmp99_ = NULL;
+                                       GnomeKeyringAttribute* _tmp100_ = NULL;
+                                       gint _tmp100__length1 = 0;
+                                       gint _tmp101_ = 0;
+                                       GnomeKeyringAttribute _tmp102_ = {0};
+                                       const gchar* _tmp103_ = NULL;
+                                       gchar* _tmp104_ = NULL;
                                        gchar** rules_always_confirm = NULL;
-                                       const gchar* _tmp93_ = NULL;
-                                       gchar** _tmp94_ = NULL;
-                                       gchar** _tmp95_ = NULL;
+                                       const gchar* _tmp105_ = NULL;
+                                       gchar** _tmp106_ = NULL;
+                                       gchar** _tmp107_ = NULL;
                                        gint rules_always_confirm_length1 = 0;
                                        gint _rules_always_confirm_size_ = 0;
                                        gchar** rules_patterns = NULL;
-                                       const gchar* _tmp96_ = NULL;
-                                       gchar** _tmp97_ = NULL;
-                                       gchar** _tmp98_ = NULL;
+                                       const gchar* _tmp108_ = NULL;
+                                       gchar** _tmp109_ = NULL;
+                                       gchar** _tmp110_ = NULL;
                                        gint rules_patterns_length1 = 0;
                                        gint _rules_patterns_size_ = 0;
-                                       gchar** _tmp99_ = NULL;
-                                       gint _tmp99__length1 = 0;
-                                       gchar** _tmp100_ = NULL;
-                                       gint _tmp100__length1 = 0;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp79_ = entry;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp80_ = _tmp79_->attributes;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp81_ = _tmp80_->data;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp81__length1 = -1;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp82_ = rules_patterns_index;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp83_ = ((GnomeKeyringAttribute*) _tmp81_)[_tmp82_];
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp84_ = _tmp83_.value.string;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp85_ = g_strdup (_tmp84_);
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       rules_patterns_all = _tmp85_;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp86_ = entry;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp87_ = _tmp86_->attributes;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp88_ = _tmp87_->data;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp88__length1 = -1;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp89_ = rules_always_confirm_index;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp90_ = ((GnomeKeyringAttribute*) _tmp88_)[_tmp89_];
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp91_ = _tmp90_.value.string;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp92_ = g_strdup (_tmp91_);
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       rules_always_confirm_all = _tmp92_;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp93_ = rules_always_confirm_all;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp95_ = _tmp94_ = g_strsplit (_tmp93_, ";", 0);
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       rules_always_confirm = _tmp95_;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       rules_always_confirm_length1 = _vala_array_length (_tmp94_);
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       gchar** _tmp111_ = NULL;
+                                       gint _tmp111__length1 = 0;
+                                       gchar** _tmp112_ = NULL;
+                                       gint _tmp112__length1 = 0;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp91_ = entry;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp92_ = _tmp91_->attributes;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp93_ = _tmp92_->data;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp93__length1 = -1;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp94_ = rules_patterns_index;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp95_ = ((GnomeKeyringAttribute*) _tmp93_)[_tmp94_];
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp96_ = _tmp95_.value.string;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp97_ = g_strdup (_tmp96_);
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       rules_patterns_all = _tmp97_;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp98_ = entry;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp99_ = _tmp98_->attributes;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp100_ = _tmp99_->data;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp100__length1 = -1;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp101_ = rules_always_confirm_index;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp102_ = ((GnomeKeyringAttribute*) _tmp100_)[_tmp101_];
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp103_ = _tmp102_.value.string;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp104_ = g_strdup (_tmp103_);
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       rules_always_confirm_all = _tmp104_;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp105_ = rules_always_confirm_all;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp107_ = _tmp106_ = g_strsplit (_tmp105_, ";", 0);
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       rules_always_confirm = _tmp107_;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       rules_always_confirm_length1 = _vala_array_length (_tmp106_);
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                        _rules_always_confirm_size_ = rules_always_confirm_length1;
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp96_ = rules_patterns_all;
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp98_ = _tmp97_ = g_strsplit (_tmp96_, ";", 0);
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       rules_patterns = _tmp98_;
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       rules_patterns_length1 = _vala_array_length (_tmp97_);
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp108_ = rules_patterns_all;
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp110_ = _tmp109_ = g_strsplit (_tmp108_, ";", 0);
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       rules_patterns = _tmp110_;
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       rules_patterns_length1 = _vala_array_length (_tmp109_);
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                        _rules_patterns_size_ = rules_patterns_length1;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp99_ = rules_patterns;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp99__length1 = rules_patterns_length1;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp100_ = rules_always_confirm;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp100__length1 = rules_always_confirm_length1;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       if (_tmp99__length1 == _tmp100__length1) {
-#line 1080 "moonshot-keyring-store.c"
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp111_ = rules_patterns;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp111__length1 = rules_patterns_length1;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp112_ = rules_always_confirm;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp112__length1 = rules_always_confirm_length1;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       if (_tmp111__length1 == _tmp112__length1) {
+#line 1261 "moonshot-keyring-store.c"
                                                Rule* rules = NULL;
-                                               gchar** _tmp101_ = NULL;
-                                               gint _tmp101__length1 = 0;
-                                               Rule* _tmp102_ = NULL;
+                                               gchar** _tmp113_ = NULL;
+                                               gint _tmp113__length1 = 0;
+                                               Rule* _tmp114_ = NULL;
                                                gint rules_length1 = 0;
                                                gint _rules_size_ = 0;
-                                               IdCard* _tmp119_ = NULL;
-                                               Rule* _tmp120_ = NULL;
-                                               gint _tmp120__length1 = 0;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp101_ = rules_patterns;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp101__length1 = rules_patterns_length1;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp102_ = g_new0 (Rule, _tmp101__length1);
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               rules = _tmp102_;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               rules_length1 = _tmp101__length1;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               IdCard* _tmp131_ = NULL;
+                                               Rule* _tmp132_ = NULL;
+                                               gint _tmp132__length1 = 0;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp113_ = rules_patterns;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp113__length1 = rules_patterns_length1;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp114_ = g_new0 (Rule, _tmp113__length1);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               rules = _tmp114_;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               rules_length1 = _tmp113__length1;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                                _rules_size_ = rules_length1;
-#line 1102 "moonshot-keyring-store.c"
+#line 1283 "moonshot-keyring-store.c"
                                                {
                                                        gint j = 0;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                                        j = 0;
-#line 1107 "moonshot-keyring-store.c"
+#line 1288 "moonshot-keyring-store.c"
                                                        {
-                                                               gboolean _tmp103_ = FALSE;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                               _tmp103_ = TRUE;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                               gboolean _tmp115_ = FALSE;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                               _tmp115_ = TRUE;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                                                while (TRUE) {
-#line 1114 "moonshot-keyring-store.c"
-                                                                       gint _tmp105_ = 0;
-                                                                       gchar** _tmp106_ = NULL;
-                                                                       gint _tmp106__length1 = 0;
-                                                                       Rule* _tmp107_ = NULL;
-                                                                       gint _tmp107__length1 = 0;
-                                                                       gint _tmp108_ = 0;
-                                                                       gchar** _tmp109_ = NULL;
-                                                                       gint _tmp109__length1 = 0;
-                                                                       gint _tmp110_ = 0;
-                                                                       const gchar* _tmp111_ = NULL;
-                                                                       gchar* _tmp112_ = NULL;
-                                                                       Rule* _tmp113_ = NULL;
-                                                                       gint _tmp113__length1 = 0;
-                                                                       gint _tmp114_ = 0;
-                                                                       gchar** _tmp115_ = NULL;
-                                                                       gint _tmp115__length1 = 0;
-                                                                       gint _tmp116_ = 0;
-                                                                       const gchar* _tmp117_ = NULL;
-                                                                       gchar* _tmp118_ = NULL;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       if (!_tmp103_) {
-#line 1136 "moonshot-keyring-store.c"
-                                                                               gint _tmp104_ = 0;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                               _tmp104_ = j;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                               j = _tmp104_ + 1;
-#line 1142 "moonshot-keyring-store.c"
+#line 1295 "moonshot-keyring-store.c"
+                                                                       gint _tmp117_ = 0;
+                                                                       gchar** _tmp118_ = NULL;
+                                                                       gint _tmp118__length1 = 0;
+                                                                       Rule* _tmp119_ = NULL;
+                                                                       gint _tmp119__length1 = 0;
+                                                                       gint _tmp120_ = 0;
+                                                                       gchar** _tmp121_ = NULL;
+                                                                       gint _tmp121__length1 = 0;
+                                                                       gint _tmp122_ = 0;
+                                                                       const gchar* _tmp123_ = NULL;
+                                                                       gchar* _tmp124_ = NULL;
+                                                                       Rule* _tmp125_ = NULL;
+                                                                       gint _tmp125__length1 = 0;
+                                                                       gint _tmp126_ = 0;
+                                                                       gchar** _tmp127_ = NULL;
+                                                                       gint _tmp127__length1 = 0;
+                                                                       gint _tmp128_ = 0;
+                                                                       const gchar* _tmp129_ = NULL;
+                                                                       gchar* _tmp130_ = NULL;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       if (!_tmp115_) {
+#line 1317 "moonshot-keyring-store.c"
+                                                                               gint _tmp116_ = 0;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                               _tmp116_ = j;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                               j = _tmp116_ + 1;
+#line 1323 "moonshot-keyring-store.c"
                                                                        }
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp103_ = FALSE;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp105_ = j;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp106_ = rules_patterns;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp106__length1 = rules_patterns_length1;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       if (!(_tmp105_ < _tmp106__length1)) {
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp115_ = FALSE;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp117_ = j;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp118_ = rules_patterns;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp118__length1 = rules_patterns_length1;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       if (!(_tmp117_ < _tmp118__length1)) {
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                                                                break;
-#line 1156 "moonshot-keyring-store.c"
+#line 1337 "moonshot-keyring-store.c"
                                                                        }
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp107_ = rules;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp107__length1 = rules_length1;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp108_ = j;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp109_ = rules_patterns;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp109__length1 = rules_patterns_length1;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp110_ = j;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp111_ = _tmp109_[_tmp110_];
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp112_ = g_strdup (_tmp111_);
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _g_free0 (_tmp107_[_tmp108_].pattern);
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp107_[_tmp108_].pattern = _tmp112_;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp113_ = rules;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp113__length1 = rules_length1;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp114_ = j;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp115_ = rules_always_confirm;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp115__length1 = rules_always_confirm_length1;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp116_ = j;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp117_ = _tmp115_[_tmp116_];
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp118_ = g_strdup (_tmp117_);
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _g_free0 (_tmp113_[_tmp114_].always_confirm);
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                                       _tmp113_[_tmp114_].always_confirm = _tmp118_;
-#line 1198 "moonshot-keyring-store.c"
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp119_ = rules;
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp119__length1 = rules_length1;
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp120_ = j;
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp121_ = rules_patterns;
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp121__length1 = rules_patterns_length1;
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp122_ = j;
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp123_ = _tmp121_[_tmp122_];
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp124_ = g_strdup (_tmp123_);
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _g_free0 (_tmp119_[_tmp120_].pattern);
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp119_[_tmp120_].pattern = _tmp124_;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp125_ = rules;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp125__length1 = rules_length1;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp126_ = j;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp127_ = rules_always_confirm;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp127__length1 = rules_always_confirm_length1;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp128_ = j;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp129_ = _tmp127_[_tmp128_];
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp130_ = g_strdup (_tmp129_);
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _g_free0 (_tmp125_[_tmp126_].always_confirm);
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                                       _tmp125_[_tmp126_].always_confirm = _tmp130_;
+#line 1379 "moonshot-keyring-store.c"
                                                                }
                                                        }
                                                }
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp119_ = id_card;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp120_ = rules;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp120__length1 = rules_length1;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               id_card_set_rules (_tmp119_, _tmp120_, _tmp120__length1);
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp131_ = id_card;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp132_ = rules;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp132__length1 = rules_length1;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               id_card_set_rules (_tmp131_, _tmp132_, _tmp132__length1);
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                                rules = (_vala_Rule_array_free (rules, rules_length1), NULL);
-#line 1212 "moonshot-keyring-store.c"
+#line 1393 "moonshot-keyring-store.c"
                                        }
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                        rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                        rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL);
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                        _g_free0 (rules_always_confirm_all);
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                        _g_free0 (rules_patterns_all);
-#line 1222 "moonshot-keyring-store.c"
+#line 1403 "moonshot-keyring-store.c"
                                }
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp121_ = store_password;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               if (_tmp121_ != NULL) {
-#line 1228 "moonshot-keyring-store.c"
-                                       IdCard* _tmp122_ = NULL;
-                                       const gchar* _tmp123_ = NULL;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp122_ = id_card;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp123_ = store_password;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       id_card_set_store_password (_tmp122_, g_strcmp0 (_tmp123_, "yes") == 0);
-#line 1237 "moonshot-keyring-store.c"
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp133_ = store_password;
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               if (_tmp133_ != NULL) {
+#line 1409 "moonshot-keyring-store.c"
+                                       IdCard* _tmp134_ = NULL;
+                                       const gchar* _tmp135_ = NULL;
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp134_ = id_card;
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp135_ = store_password;
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       id_card_set_store_password (_tmp134_, g_strcmp0 (_tmp135_, "yes") == 0);
+#line 1418 "moonshot-keyring-store.c"
                                } else {
-                                       gboolean _tmp124_ = FALSE;
-                                       GnomeKeyringFound* _tmp125_ = NULL;
-                                       const gchar* _tmp126_ = NULL;
-                                       IdCard* _tmp129_ = NULL;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp125_ = entry;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp126_ = _tmp125_->secret;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       if (_tmp126_ != NULL) {
-#line 1249 "moonshot-keyring-store.c"
-                                               GnomeKeyringFound* _tmp127_ = NULL;
-                                               const gchar* _tmp128_ = NULL;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp127_ = entry;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp128_ = _tmp127_->secret;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp124_ = g_strcmp0 (_tmp128_, "") != 0;
-#line 1258 "moonshot-keyring-store.c"
+                                       gboolean _tmp136_ = FALSE;
+                                       GnomeKeyringFound* _tmp137_ = NULL;
+                                       const gchar* _tmp138_ = NULL;
+                                       IdCard* _tmp141_ = NULL;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp137_ = entry;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp138_ = _tmp137_->secret;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       if (_tmp138_ != NULL) {
+#line 1430 "moonshot-keyring-store.c"
+                                               GnomeKeyringFound* _tmp139_ = NULL;
+                                               const gchar* _tmp140_ = NULL;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp139_ = entry;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp140_ = _tmp139_->secret;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp136_ = g_strcmp0 (_tmp140_, "") != 0;
+#line 1439 "moonshot-keyring-store.c"
                                        } else {
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp124_ = FALSE;
-#line 1262 "moonshot-keyring-store.c"
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp136_ = FALSE;
+#line 1443 "moonshot-keyring-store.c"
                                        }
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp129_ = id_card;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       id_card_set_store_password (_tmp129_, _tmp124_);
-#line 1268 "moonshot-keyring-store.c"
-                               }
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp130_ = id_card;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp131_ = id_card_get_store_password (_tmp130_);
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp132_ = _tmp131_;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               if (_tmp132_) {
-#line 1278 "moonshot-keyring-store.c"
-                                       IdCard* _tmp133_ = NULL;
-                                       GnomeKeyringFound* _tmp134_ = NULL;
-                                       const gchar* _tmp135_ = NULL;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp133_ = id_card;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp134_ = entry;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp135_ = _tmp134_->secret;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       id_card_set_password (_tmp133_, _tmp135_);
-#line 1290 "moonshot-keyring-store.c"
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp141_ = id_card;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       id_card_set_store_password (_tmp141_, _tmp136_);
+#line 1449 "moonshot-keyring-store.c"
+                               }
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp142_ = id_card;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp143_ = id_card_get_store_password (_tmp142_);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp144_ = _tmp143_;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               if (_tmp144_) {
+#line 1459 "moonshot-keyring-store.c"
+                                       IdCard* _tmp145_ = NULL;
+                                       GnomeKeyringFound* _tmp146_ = NULL;
+                                       const gchar* _tmp147_ = NULL;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp145_ = id_card;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp146_ = entry;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp147_ = _tmp146_->secret;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       id_card_set_password (_tmp145_, _tmp147_);
+#line 1471 "moonshot-keyring-store.c"
                                } else {
-                                       IdCard* _tmp136_ = NULL;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp136_ = id_card;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       id_card_set_password (_tmp136_, NULL);
-#line 1297 "moonshot-keyring-store.c"
+                                       IdCard* _tmp148_ = NULL;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp148_ = id_card;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       id_card_set_password (_tmp148_, NULL);
+#line 1478 "moonshot-keyring-store.c"
                                }
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp137_ = self->priv->id_card_list;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp138_ = id_card;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp137_, _tmp138_);
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp149_ = self->priv->id_card_list;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp150_ = id_card;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp149_, _tmp150_);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _g_object_unref0 (ta);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _g_free0 (ta_datetime_added);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _g_free0 (subject_alt);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _g_free0 (subject);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _g_free0 (server_cert);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _g_free0 (ca_cert);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                _g_free0 (store_password);
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                _g_object_unref0 (id_card);
-#line 1309 "moonshot-keyring-store.c"
+#line 1502 "moonshot-keyring-store.c"
                        }
                }
        }
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        __g_list_free__gnome_keyring_found_free0_0 (items);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _gnome_keyring_attribute_list_free0 (match);
-#line 1317 "moonshot-keyring-store.c"
+#line 1510 "moonshot-keyring-store.c"
 }
 
 
-static Rule* _vala_array_dup3 (Rule* self, int length) {
+static Rule* _vala_array_dup2 (Rule* self, int length) {
        Rule* result;
        int i;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        result = g_new0 (Rule, length);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        for (i = 0; i < length; i++) {
-#line 1328 "moonshot-keyring-store.c"
+#line 1521 "moonshot-keyring-store.c"
                Rule _tmp0_ = {0};
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                rule_copy (&self[i], &_tmp0_);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               result[i] = _tmp0_;
-#line 1334 "moonshot-keyring-store.c"
-       }
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       return result;
-#line 1338 "moonshot-keyring-store.c"
-}
-
-
-static gchar** _vala_array_dup4 (gchar** self, int length) {
-       gchar** result;
-       int i;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       result = g_new0 (gchar*, length + 1);
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       for (i = 0; i < length; i++) {
-#line 1349 "moonshot-keyring-store.c"
-               gchar* _tmp0_ = NULL;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _tmp0_ = g_strdup (self[i]);
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                result[i] = _tmp0_;
-#line 1355 "moonshot-keyring-store.c"
+#line 1527 "moonshot-keyring-store.c"
        }
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        return result;
-#line 1359 "moonshot-keyring-store.c"
+#line 1531 "moonshot-keyring-store.c"
 }
 
 
@@ -1366,74 +1538,74 @@ static gchar* _vala_g_strjoinv (const gchar* separator, gchar** str_array, int s
        gboolean _tmp2_ = FALSE;
        gchar** _tmp3_ = NULL;
        gint _tmp3__length1 = 0;
-#line 964 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1062 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp0_ = separator;
-#line 964 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1062 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        if (_tmp0_ == NULL) {
-#line 965 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1063 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                separator = "";
-#line 1376 "moonshot-keyring-store.c"
+#line 1548 "moonshot-keyring-store.c"
        }
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp3_ = str_array;
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp3__length1 = str_array_length1;
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        if (_tmp3_ != NULL) {
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp2_ = TRUE;
-#line 1386 "moonshot-keyring-store.c"
+#line 1558 "moonshot-keyring-store.c"
        } else {
                gchar** _tmp4_ = NULL;
                gint _tmp4__length1 = 0;
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp4_ = str_array;
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp4__length1 = str_array_length1;
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp2_ = _tmp4__length1 > 0;
-#line 1396 "moonshot-keyring-store.c"
+#line 1568 "moonshot-keyring-store.c"
        }
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        if (_tmp2_) {
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp1_ = TRUE;
-#line 1402 "moonshot-keyring-store.c"
+#line 1574 "moonshot-keyring-store.c"
        } else {
                gboolean _tmp5_ = FALSE;
                gchar** _tmp6_ = NULL;
                gint _tmp6__length1 = 0;
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp6_ = str_array;
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp6__length1 = str_array_length1;
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
-               if (_tmp6__length1 == (-1)) {
-#line 1413 "moonshot-keyring-store.c"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               if (_tmp6__length1 == -1) {
+#line 1585 "moonshot-keyring-store.c"
                        gchar** _tmp7_ = NULL;
                        gint _tmp7__length1 = 0;
                        const gchar* _tmp8_ = NULL;
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        _tmp7_ = str_array;
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        _tmp7__length1 = str_array_length1;
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        _tmp8_ = _tmp7_[0];
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        _tmp5_ = _tmp8_ != NULL;
-#line 1425 "moonshot-keyring-store.c"
+#line 1597 "moonshot-keyring-store.c"
                } else {
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        _tmp5_ = FALSE;
-#line 1429 "moonshot-keyring-store.c"
+#line 1601 "moonshot-keyring-store.c"
                }
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp1_ = _tmp5_;
-#line 1433 "moonshot-keyring-store.c"
+#line 1605 "moonshot-keyring-store.c"
        }
-#line 967 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1065 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        if (_tmp1_) {
-#line 1437 "moonshot-keyring-store.c"
+#line 1609 "moonshot-keyring-store.c"
                gint i = 0;
                gsize len = 0UL;
                gint _tmp31_ = 0;
@@ -1454,18 +1626,18 @@ static gchar* _vala_g_strjoinv (const gchar* separator, gchar** str_array, int s
                const gchar* _tmp44_ = NULL;
                void* _tmp45_ = NULL;
                const gchar* _tmp62_ = NULL;
-#line 969 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1067 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                len = (gsize) 1;
-#line 1460 "moonshot-keyring-store.c"
+#line 1632 "moonshot-keyring-store.c"
                {
                        gboolean _tmp9_ = FALSE;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        i = 0;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        _tmp9_ = TRUE;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        while (TRUE) {
-#line 1469 "moonshot-keyring-store.c"
+#line 1641 "moonshot-keyring-store.c"
                                gboolean _tmp11_ = FALSE;
                                gboolean _tmp12_ = FALSE;
                                gchar** _tmp13_ = NULL;
@@ -1476,192 +1648,192 @@ static gchar* _vala_g_strjoinv (const gchar* separator, gchar** str_array, int s
                                gint _tmp23_ = 0;
                                const gchar* _tmp24_ = NULL;
                                gsize _tmp30_ = 0UL;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                if (!_tmp9_) {
-#line 1482 "moonshot-keyring-store.c"
+#line 1654 "moonshot-keyring-store.c"
                                        gint _tmp10_ = 0;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp10_ = i;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        i = _tmp10_ + 1;
-#line 1488 "moonshot-keyring-store.c"
+#line 1660 "moonshot-keyring-store.c"
                                }
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp9_ = FALSE;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp13_ = str_array;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp13__length1 = str_array_length1;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
-                               if (_tmp13__length1 != (-1)) {
-#line 1498 "moonshot-keyring-store.c"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                               if (_tmp13__length1 != -1) {
+#line 1670 "moonshot-keyring-store.c"
                                        gint _tmp14_ = 0;
                                        gchar** _tmp15_ = NULL;
                                        gint _tmp15__length1 = 0;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp14_ = i;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp15_ = str_array;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp15__length1 = str_array_length1;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp12_ = _tmp14_ < _tmp15__length1;
-#line 1510 "moonshot-keyring-store.c"
+#line 1682 "moonshot-keyring-store.c"
                                } else {
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp12_ = FALSE;
-#line 1514 "moonshot-keyring-store.c"
+#line 1686 "moonshot-keyring-store.c"
                                }
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                if (_tmp12_) {
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp11_ = TRUE;
-#line 1520 "moonshot-keyring-store.c"
+#line 1692 "moonshot-keyring-store.c"
                                } else {
                                        gboolean _tmp16_ = FALSE;
                                        gchar** _tmp17_ = NULL;
                                        gint _tmp17__length1 = 0;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp17_ = str_array;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp17__length1 = str_array_length1;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
-                                       if (_tmp17__length1 == (-1)) {
-#line 1531 "moonshot-keyring-store.c"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+                                       if (_tmp17__length1 == -1) {
+#line 1703 "moonshot-keyring-store.c"
                                                gchar** _tmp18_ = NULL;
                                                gint _tmp18__length1 = 0;
                                                gint _tmp19_ = 0;
                                                const gchar* _tmp20_ = NULL;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                                _tmp18_ = str_array;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                                _tmp18__length1 = str_array_length1;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                                _tmp19_ = i;
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                                _tmp20_ = _tmp18_[_tmp19_];
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                                _tmp16_ = _tmp20_ != NULL;
-#line 1546 "moonshot-keyring-store.c"
+#line 1718 "moonshot-keyring-store.c"
                                        } else {
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                                _tmp16_ = FALSE;
-#line 1550 "moonshot-keyring-store.c"
+#line 1722 "moonshot-keyring-store.c"
                                        }
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp11_ = _tmp16_;
-#line 1554 "moonshot-keyring-store.c"
+#line 1726 "moonshot-keyring-store.c"
                                }
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                if (!_tmp11_) {
-#line 970 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1068 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        break;
-#line 1560 "moonshot-keyring-store.c"
+#line 1732 "moonshot-keyring-store.c"
                                }
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp22_ = str_array;
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp22__length1 = str_array_length1;
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp23_ = i;
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp24_ = _tmp22_[_tmp23_];
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                if (_tmp24_ != NULL) {
-#line 1572 "moonshot-keyring-store.c"
+#line 1744 "moonshot-keyring-store.c"
                                        gchar** _tmp25_ = NULL;
                                        gint _tmp25__length1 = 0;
                                        gint _tmp26_ = 0;
                                        const gchar* _tmp27_ = NULL;
                                        gint _tmp28_ = 0;
                                        gint _tmp29_ = 0;
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp25_ = str_array;
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp25__length1 = str_array_length1;
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp26_ = i;
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp27_ = _tmp25_[_tmp26_];
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp28_ = strlen ((const gchar*) _tmp27_);
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp29_ = _tmp28_;
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp21_ = _tmp29_;
-#line 1593 "moonshot-keyring-store.c"
+#line 1765 "moonshot-keyring-store.c"
                                } else {
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp21_ = 0;
-#line 1597 "moonshot-keyring-store.c"
+#line 1769 "moonshot-keyring-store.c"
                                }
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp30_ = len;
-#line 971 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1069 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                len = _tmp30_ + _tmp21_;
-#line 1603 "moonshot-keyring-store.c"
+#line 1775 "moonshot-keyring-store.c"
                        }
                }
-#line 973 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1071 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp31_ = i;
-#line 973 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1071 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                if (_tmp31_ == 0) {
-#line 1610 "moonshot-keyring-store.c"
+#line 1782 "moonshot-keyring-store.c"
                        gchar* _tmp32_ = NULL;
-#line 974 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1072 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        _tmp32_ = g_strdup ("");
-#line 974 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1072 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        result = _tmp32_;
-#line 974 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1072 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        return result;
-#line 1618 "moonshot-keyring-store.c"
+#line 1790 "moonshot-keyring-store.c"
                }
-#line 976 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1074 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp33_ = i;
-#line 976 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1074 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                str_array_length1 = _tmp33_;
-#line 976 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1074 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp34_ = str_array_length1;
-#line 977 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1075 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp35_ = len;
-#line 977 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1075 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp36_ = separator;
-#line 977 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1075 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp37_ = strlen ((const gchar*) _tmp36_);
-#line 977 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1075 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp38_ = _tmp37_;
-#line 977 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1075 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp39_ = i;
-#line 977 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1075 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                len = _tmp35_ + (_tmp38_ * (_tmp39_ - 1));
-#line 979 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1077 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp40_ = len;
-#line 979 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1077 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp41_ = g_malloc (_tmp40_);
-#line 979 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1077 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                res = _tmp41_;
-#line 980 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1078 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp42_ = res;
-#line 980 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1078 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp43_ = str_array;
-#line 980 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1078 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp43__length1 = str_array_length1;
-#line 980 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1078 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp44_ = _tmp43_[0];
-#line 980 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1078 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp45_ = g_stpcpy ((void*) _tmp42_, (const gchar*) _tmp44_);
-#line 980 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1078 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                ptr = _tmp45_;
-#line 1656 "moonshot-keyring-store.c"
+#line 1828 "moonshot-keyring-store.c"
                {
                        gboolean _tmp46_ = FALSE;
-#line 981 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        i = 1;
-#line 981 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        _tmp46_ = TRUE;
-#line 981 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        while (TRUE) {
-#line 1665 "moonshot-keyring-store.c"
+#line 1837 "moonshot-keyring-store.c"
                                gint _tmp48_ = 0;
                                gchar** _tmp49_ = NULL;
                                gint _tmp49__length1 = 0;
@@ -1675,717 +1847,715 @@ static gchar* _vala_g_strjoinv (const gchar* separator, gchar** str_array, int s
                                const gchar* _tmp56_ = NULL;
                                void* _tmp60_ = NULL;
                                void* _tmp61_ = NULL;
-#line 981 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                if (!_tmp46_) {
-#line 1681 "moonshot-keyring-store.c"
+#line 1853 "moonshot-keyring-store.c"
                                        gint _tmp47_ = 0;
-#line 981 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp47_ = i;
-#line 981 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        i = _tmp47_ + 1;
-#line 1687 "moonshot-keyring-store.c"
+#line 1859 "moonshot-keyring-store.c"
                                }
-#line 981 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp46_ = FALSE;
-#line 981 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp48_ = i;
-#line 981 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp49_ = str_array;
-#line 981 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp49__length1 = str_array_length1;
-#line 981 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                if (!(_tmp48_ < _tmp49__length1)) {
-#line 981 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1079 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        break;
-#line 1701 "moonshot-keyring-store.c"
+#line 1873 "moonshot-keyring-store.c"
                                }
-#line 982 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1080 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp50_ = ptr;
-#line 982 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1080 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp51_ = separator;
-#line 982 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1080 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp52_ = g_stpcpy (_tmp50_, (const gchar*) _tmp51_);
-#line 982 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1080 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                ptr = _tmp52_;
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp54_ = str_array;
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp54__length1 = str_array_length1;
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp55_ = i;
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp56_ = _tmp54_[_tmp55_];
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                if (_tmp56_ != NULL) {
-#line 1721 "moonshot-keyring-store.c"
+#line 1893 "moonshot-keyring-store.c"
                                        gchar** _tmp57_ = NULL;
                                        gint _tmp57__length1 = 0;
                                        gint _tmp58_ = 0;
                                        const gchar* _tmp59_ = NULL;
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp57_ = str_array;
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp57__length1 = str_array_length1;
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp58_ = i;
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp59_ = _tmp57_[_tmp58_];
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp53_ = (const gchar*) _tmp59_;
-#line 1736 "moonshot-keyring-store.c"
+#line 1908 "moonshot-keyring-store.c"
                                } else {
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                        _tmp53_ = "";
-#line 1740 "moonshot-keyring-store.c"
+#line 1912 "moonshot-keyring-store.c"
                                }
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp60_ = ptr;
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                _tmp61_ = g_stpcpy (_tmp60_, _tmp53_);
-#line 983 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1081 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                                ptr = _tmp61_;
-#line 1748 "moonshot-keyring-store.c"
+#line 1920 "moonshot-keyring-store.c"
                        }
                }
-#line 986 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1084 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp62_ = res;
-#line 986 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1084 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                res = NULL;
-#line 986 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1084 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                result = (gchar*) _tmp62_;
-#line 986 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1084 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                return result;
-#line 1759 "moonshot-keyring-store.c"
+#line 1931 "moonshot-keyring-store.c"
        } else {
                gchar* _tmp63_ = NULL;
-#line 988 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1086 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp63_ = g_strdup ("");
-#line 988 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1086 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                result = _tmp63_;
-#line 988 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1086 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                return result;
-#line 1768 "moonshot-keyring-store.c"
+#line 1940 "moonshot-keyring-store.c"
        }
 }
 
 
-void keyring_store_store_id_cards (KeyringStore* self) {
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       g_return_if_fail (self != NULL);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+static void keyring_store_real_store_id_cards (IIdentityCardStore* base) {
+       KeyringStore * self;
+       MoonshotLogger* _tmp0_ = NULL;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       self = (KeyringStore*) base;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp0_ = keyring_store_logger;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       moonshot_logger_trace (_tmp0_, "store_id_cards", NULL);
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        keyring_store_clear_keyring (self);
-#line 1778 "moonshot-keyring-store.c"
+#line 1956 "moonshot-keyring-store.c"
        {
                GeeLinkedList* _id_card_list = NULL;
-               GeeLinkedList* _tmp0_ = NULL;
                GeeLinkedList* _tmp1_ = NULL;
-               gint _id_card_size = 0;
                GeeLinkedList* _tmp2_ = NULL;
-               gint _tmp3_ = 0;
+               gint _id_card_size = 0;
+               GeeLinkedList* _tmp3_ = NULL;
                gint _tmp4_ = 0;
+               gint _tmp5_ = 0;
                gint _id_card_index = 0;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _tmp0_ = self->priv->id_card_list;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _tmp1_ = _g_object_ref0 (_tmp0_);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _id_card_list = _tmp1_;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _tmp2_ = _id_card_list;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _tmp3_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp2_);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _tmp4_ = _tmp3_;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-               _id_card_size = _tmp4_;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _tmp1_ = self->priv->id_card_list;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _id_card_list = _tmp2_;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _tmp3_ = _id_card_list;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _tmp5_ = _tmp4_;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+               _id_card_size = _tmp5_;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                _id_card_index = -1;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                while (TRUE) {
-#line 1806 "moonshot-keyring-store.c"
-                       gint _tmp5_ = 0;
+#line 1984 "moonshot-keyring-store.c"
                        gint _tmp6_ = 0;
                        gint _tmp7_ = 0;
+                       gint _tmp8_ = 0;
                        IdCard* id_card = NULL;
-                       GeeLinkedList* _tmp8_ = NULL;
-                       gint _tmp9_ = 0;
-                       gpointer _tmp10_ = NULL;
+                       GeeLinkedList* _tmp9_ = NULL;
+                       gint _tmp10_ = 0;
+                       gpointer _tmp11_ = NULL;
                        Rule* rules = NULL;
-                       IdCard* _tmp11_ = NULL;
-                       Rule* _tmp12_ = NULL;
-                       gint _tmp12__length1 = 0;
+                       IdCard* _tmp12_ = NULL;
                        Rule* _tmp13_ = NULL;
                        gint _tmp13__length1 = 0;
                        Rule* _tmp14_ = NULL;
                        gint _tmp14__length1 = 0;
+                       Rule* _tmp15_ = NULL;
+                       gint _tmp15__length1 = 0;
                        gint rules_length1 = 0;
                        gint _rules_size_ = 0;
-                       gchar** services_array = NULL;
-                       IdCard* _tmp15_ = NULL;
-                       gchar** _tmp16_ = NULL;
+                       gchar** rules_patterns = NULL;
+                       Rule* _tmp16_ = NULL;
                        gint _tmp16__length1 = 0;
                        gchar** _tmp17_ = NULL;
-                       gint _tmp17__length1 = 0;
-                       gchar** _tmp18_ = NULL;
-                       gint _tmp18__length1 = 0;
-                       gint services_array_length1 = 0;
-                       gint _services_array_size_ = 0;
-                       gchar** rules_patterns = NULL;
-                       Rule* _tmp19_ = NULL;
-                       gint _tmp19__length1 = 0;
-                       gchar** _tmp20_ = NULL;
                        gint rules_patterns_length1 = 0;
                        gint _rules_patterns_size_ = 0;
                        gchar** rules_always_conf = NULL;
-                       Rule* _tmp21_ = NULL;
-                       gint _tmp21__length1 = 0;
-                       gchar** _tmp22_ = NULL;
+                       Rule* _tmp18_ = NULL;
+                       gint _tmp18__length1 = 0;
+                       gchar** _tmp19_ = NULL;
                        gint rules_always_conf_length1 = 0;
                        gint _rules_always_conf_size_ = 0;
                        gchar* patterns = NULL;
-                       gchar** _tmp43_ = NULL;
-                       gint _tmp43__length1 = 0;
-                       gchar* _tmp44_ = NULL;
+                       gchar** _tmp40_ = NULL;
+                       gint _tmp40__length1 = 0;
+                       gchar* _tmp41_ = NULL;
                        gchar* always_conf = NULL;
-                       gchar** _tmp45_ = NULL;
-                       gint _tmp45__length1 = 0;
-                       gchar* _tmp46_ = NULL;
+                       gchar** _tmp42_ = NULL;
+                       gint _tmp42__length1 = 0;
+                       gchar* _tmp43_ = NULL;
                        gchar* services = NULL;
-                       gchar** _tmp47_ = NULL;
-                       gint _tmp47__length1 = 0;
-                       gchar* _tmp48_ = NULL;
+                       IdCard* _tmp44_ = NULL;
+                       gchar* _tmp45_ = NULL;
                        GnomeKeyringAttributeList* attributes = NULL;
-                       GnomeKeyringAttributeList* _tmp49_ = NULL;
+                       GnomeKeyringAttributeList* _tmp46_ = NULL;
                        guint32 item_id = 0U;
-                       GnomeKeyringAttributeList* _tmp50_ = NULL;
-                       GnomeKeyringAttributeList* _tmp51_ = NULL;
-                       IdCard* _tmp52_ = NULL;
-                       const gchar* _tmp53_ = NULL;
+                       GnomeKeyringAttributeList* _tmp47_ = NULL;
+                       GnomeKeyringAttributeList* _tmp48_ = NULL;
+                       IdCard* _tmp49_ = NULL;
+                       const gchar* _tmp50_ = NULL;
+                       const gchar* _tmp51_ = NULL;
+                       GnomeKeyringAttributeList* _tmp52_ = NULL;
+                       IdCard* _tmp53_ = NULL;
                        const gchar* _tmp54_ = NULL;
-                       GnomeKeyringAttributeList* _tmp55_ = NULL;
-                       IdCard* _tmp56_ = NULL;
-                       const gchar* _tmp57_ = NULL;
+                       const gchar* _tmp55_ = NULL;
+                       GnomeKeyringAttributeList* _tmp56_ = NULL;
+                       IdCard* _tmp57_ = NULL;
                        const gchar* _tmp58_ = NULL;
-                       GnomeKeyringAttributeList* _tmp59_ = NULL;
-                       IdCard* _tmp60_ = NULL;
+                       const gchar* _tmp59_ = NULL;
+                       GnomeKeyringAttributeList* _tmp60_ = NULL;
                        const gchar* _tmp61_ = NULL;
-                       const gchar* _tmp62_ = NULL;
-                       GnomeKeyringAttributeList* _tmp63_ = NULL;
-                       const gchar* _tmp64_ = NULL;
-                       GnomeKeyringAttributeList* _tmp65_ = NULL;
-                       const gchar* _tmp66_ = NULL;
-                       GnomeKeyringAttributeList* _tmp67_ = NULL;
-                       const gchar* _tmp68_ = NULL;
-                       GnomeKeyringAttributeList* _tmp69_ = NULL;
-                       IdCard* _tmp70_ = NULL;
-                       TrustAnchor* _tmp71_ = NULL;
-                       TrustAnchor* _tmp72_ = NULL;
-                       const gchar* _tmp73_ = NULL;
-                       const gchar* _tmp74_ = NULL;
-                       GnomeKeyringAttributeList* _tmp75_ = NULL;
-                       IdCard* _tmp76_ = NULL;
-                       TrustAnchor* _tmp77_ = NULL;
-                       TrustAnchor* _tmp78_ = NULL;
-                       const gchar* _tmp79_ = NULL;
-                       const gchar* _tmp80_ = NULL;
-                       GnomeKeyringAttributeList* _tmp81_ = NULL;
-                       IdCard* _tmp82_ = NULL;
-                       TrustAnchor* _tmp83_ = NULL;
-                       TrustAnchor* _tmp84_ = NULL;
-                       const gchar* _tmp85_ = NULL;
-                       const gchar* _tmp86_ = NULL;
-                       GnomeKeyringAttributeList* _tmp87_ = NULL;
-                       IdCard* _tmp88_ = NULL;
-                       TrustAnchor* _tmp89_ = NULL;
-                       TrustAnchor* _tmp90_ = NULL;
-                       const gchar* _tmp91_ = NULL;
-                       const gchar* _tmp92_ = NULL;
-                       const gchar* _tmp93_ = NULL;
-                       IdCard* _tmp94_ = NULL;
-                       gboolean _tmp95_ = FALSE;
-                       gboolean _tmp96_ = FALSE;
-                       GnomeKeyringAttributeList* _tmp97_ = NULL;
-                       const gchar* _tmp98_ = NULL;
-                       IdCard* _tmp99_ = NULL;
-                       gboolean _tmp100_ = FALSE;
-                       gboolean _tmp101_ = FALSE;
+                       GnomeKeyringAttributeList* _tmp62_ = NULL;
+                       const gchar* _tmp63_ = NULL;
+                       GnomeKeyringAttributeList* _tmp64_ = NULL;
+                       const gchar* _tmp65_ = NULL;
+                       GnomeKeyringAttributeList* _tmp66_ = NULL;
+                       IdCard* _tmp67_ = NULL;
+                       TrustAnchor* _tmp68_ = NULL;
+                       TrustAnchor* _tmp69_ = NULL;
+                       const gchar* _tmp70_ = NULL;
+                       const gchar* _tmp71_ = NULL;
+                       GnomeKeyringAttributeList* _tmp72_ = NULL;
+                       IdCard* _tmp73_ = NULL;
+                       TrustAnchor* _tmp74_ = NULL;
+                       TrustAnchor* _tmp75_ = NULL;
+                       const gchar* _tmp76_ = NULL;
+                       const gchar* _tmp77_ = NULL;
+                       GnomeKeyringAttributeList* _tmp78_ = NULL;
+                       IdCard* _tmp79_ = NULL;
+                       TrustAnchor* _tmp80_ = NULL;
+                       TrustAnchor* _tmp81_ = NULL;
+                       const gchar* _tmp82_ = NULL;
+                       const gchar* _tmp83_ = NULL;
+                       GnomeKeyringAttributeList* _tmp84_ = NULL;
+                       IdCard* _tmp85_ = NULL;
+                       TrustAnchor* _tmp86_ = NULL;
+                       TrustAnchor* _tmp87_ = NULL;
+                       const gchar* _tmp88_ = NULL;
+                       const gchar* _tmp89_ = NULL;
+                       GnomeKeyringAttributeList* _tmp90_ = NULL;
+                       IdCard* _tmp91_ = NULL;
+                       TrustAnchor* _tmp92_ = NULL;
+                       TrustAnchor* _tmp93_ = NULL;
+                       const gchar* _tmp94_ = NULL;
+                       const gchar* _tmp95_ = NULL;
+                       const gchar* _tmp96_ = NULL;
+                       IdCard* _tmp97_ = NULL;
+                       gboolean _tmp98_ = FALSE;
+                       gboolean _tmp99_ = FALSE;
+                       GnomeKeyringAttributeList* _tmp100_ = NULL;
+                       const gchar* _tmp101_ = NULL;
+                       IdCard* _tmp102_ = NULL;
+                       gboolean _tmp103_ = FALSE;
+                       gboolean _tmp104_ = FALSE;
                        GnomeKeyringResult _result_ = 0;
-                       IdCard* _tmp105_ = NULL;
-                       const gchar* _tmp106_ = NULL;
-                       const gchar* _tmp107_ = NULL;
-                       GnomeKeyringAttributeList* _tmp108_ = NULL;
-                       guint32 _tmp109_ = 0U;
-                       GnomeKeyringResult _tmp110_ = 0;
-                       GnomeKeyringResult _tmp111_ = 0;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp5_ = _id_card_index;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _id_card_index = _tmp5_ + 1;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       IdCard* _tmp108_ = NULL;
+                       const gchar* _tmp109_ = NULL;
+                       const gchar* _tmp110_ = NULL;
+                       GnomeKeyringAttributeList* _tmp111_ = NULL;
+                       guint32 _tmp112_ = 0U;
+                       GnomeKeyringResult _tmp113_ = 0;
+                       GnomeKeyringResult _tmp114_ = 0;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        _tmp6_ = _id_card_index;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp7_ = _id_card_size;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       if (!(_tmp6_ < _tmp7_)) {
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _id_card_index = _tmp6_ + 1;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp7_ = _id_card_index;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp8_ = _id_card_size;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       if (!(_tmp7_ < _tmp8_)) {
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                break;
-#line 1933 "moonshot-keyring-store.c"
+#line 2106 "moonshot-keyring-store.c"
                        }
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp8_ = _id_card_list;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp9_ = _id_card_index;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp8_, _tmp9_);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       id_card = (IdCard*) _tmp10_;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp11_ = id_card;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp12_ = id_card_get_rules (_tmp11_, &_tmp12__length1);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp13_ = _tmp12_;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp13__length1 = _tmp12__length1;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp14_ = (_tmp13_ != NULL) ? _vala_array_dup3 (_tmp13_, _tmp13__length1) : ((gpointer) _tmp13_);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp9_ = _id_card_list;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp10_ = _id_card_index;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       id_card = (IdCard*) _tmp11_;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp12_ = id_card;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp13_ = id_card_get_rules (_tmp12_, &_tmp13__length1);
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp14_ = _tmp13_;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        _tmp14__length1 = _tmp13__length1;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       rules = _tmp14_;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       rules_length1 = _tmp14__length1;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp15_ = (_tmp14_ != NULL) ? _vala_array_dup2 (_tmp14_, _tmp14__length1) : ((gpointer) _tmp14_);
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp15__length1 = _tmp14__length1;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       rules = _tmp15_;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       rules_length1 = _tmp15__length1;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        _rules_size_ = rules_length1;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp15_ = id_card;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp16_ = id_card_get_services (_tmp15_, &_tmp16__length1);
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp17_ = _tmp16_;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp17__length1 = _tmp16__length1;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp18_ = (_tmp17_ != NULL) ? _vala_array_dup4 (_tmp17_, _tmp17__length1) : ((gpointer) _tmp17_);
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp18__length1 = _tmp17__length1;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       services_array = _tmp18_;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       services_array_length1 = _tmp18__length1;
-#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _services_array_size_ = services_array_length1;
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp19_ = rules;
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp19__length1 = rules_length1;
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp20_ = g_new0 (gchar*, _tmp19__length1 + 1);
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       rules_patterns = _tmp20_;
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       rules_patterns_length1 = _tmp19__length1;
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp16_ = rules;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp16__length1 = rules_length1;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp17_ = g_new0 (gchar*, _tmp16__length1 + 1);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       rules_patterns = _tmp17_;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       rules_patterns_length1 = _tmp16__length1;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        _rules_patterns_size_ = rules_patterns_length1;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp21_ = rules;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp21__length1 = rules_length1;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp22_ = g_new0 (gchar*, _tmp21__length1 + 1);
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       rules_always_conf = _tmp22_;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       rules_always_conf_length1 = _tmp21__length1;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp18_ = rules;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp18__length1 = rules_length1;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp19_ = g_new0 (gchar*, _tmp18__length1 + 1);
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       rules_always_conf = _tmp19_;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       rules_always_conf_length1 = _tmp18__length1;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        _rules_always_conf_size_ = rules_always_conf_length1;
-#line 2003 "moonshot-keyring-store.c"
+#line 2158 "moonshot-keyring-store.c"
                        {
                                gint i = 0;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                i = 0;
-#line 2008 "moonshot-keyring-store.c"
+#line 2163 "moonshot-keyring-store.c"
                                {
-                                       gboolean _tmp23_ = FALSE;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                       _tmp23_ = TRUE;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       gboolean _tmp20_ = FALSE;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                       _tmp20_ = TRUE;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                        while (TRUE) {
-#line 2015 "moonshot-keyring-store.c"
+#line 2170 "moonshot-keyring-store.c"
+                                               gint _tmp22_ = 0;
+                                               Rule* _tmp23_ = NULL;
+                                               gint _tmp23__length1 = 0;
+                                               gchar** _tmp24_ = NULL;
+                                               gint _tmp24__length1 = 0;
                                                gint _tmp25_ = 0;
                                                Rule* _tmp26_ = NULL;
                                                gint _tmp26__length1 = 0;
-                                               gchar** _tmp27_ = NULL;
-                                               gint _tmp27__length1 = 0;
-                                               gint _tmp28_ = 0;
-                                               Rule* _tmp29_ = NULL;
-                                               gint _tmp29__length1 = 0;
-                                               gint _tmp30_ = 0;
-                                               Rule _tmp31_ = {0};
-                                               const gchar* _tmp32_ = NULL;
-                                               gchar* _tmp33_ = NULL;
-                                               gchar* _tmp34_ = NULL;
-                                               gchar** _tmp35_ = NULL;
-                                               gint _tmp35__length1 = 0;
-                                               gint _tmp36_ = 0;
-                                               Rule* _tmp37_ = NULL;
-                                               gint _tmp37__length1 = 0;
-                                               gint _tmp38_ = 0;
-                                               Rule _tmp39_ = {0};
-                                               const gchar* _tmp40_ = NULL;
-                                               gchar* _tmp41_ = NULL;
-                                               gchar* _tmp42_ = NULL;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               if (!_tmp23_) {
-#line 2041 "moonshot-keyring-store.c"
-                                                       gint _tmp24_ = 0;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                       _tmp24_ = i;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                       i = _tmp24_ + 1;
-#line 2047 "moonshot-keyring-store.c"
+                                               gint _tmp27_ = 0;
+                                               Rule _tmp28_ = {0};
+                                               const gchar* _tmp29_ = NULL;
+                                               gchar* _tmp30_ = NULL;
+                                               gchar* _tmp31_ = NULL;
+                                               gchar** _tmp32_ = NULL;
+                                               gint _tmp32__length1 = 0;
+                                               gint _tmp33_ = 0;
+                                               Rule* _tmp34_ = NULL;
+                                               gint _tmp34__length1 = 0;
+                                               gint _tmp35_ = 0;
+                                               Rule _tmp36_ = {0};
+                                               const gchar* _tmp37_ = NULL;
+                                               gchar* _tmp38_ = NULL;
+                                               gchar* _tmp39_ = NULL;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               if (!_tmp20_) {
+#line 2196 "moonshot-keyring-store.c"
+                                                       gint _tmp21_ = 0;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       _tmp21_ = i;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       i = _tmp21_ + 1;
+#line 2202 "moonshot-keyring-store.c"
                                                }
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp23_ = FALSE;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp20_ = FALSE;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp22_ = i;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp23_ = rules;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp23__length1 = rules_length1;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               if (!(_tmp22_ < _tmp23__length1)) {
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                                       break;
+#line 2216 "moonshot-keyring-store.c"
+                                               }
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp24_ = rules_patterns;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp24__length1 = rules_patterns_length1;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                                _tmp25_ = i;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                                _tmp26_ = rules;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                                                _tmp26__length1 = rules_length1;
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               if (!(_tmp25_ < _tmp26__length1)) {
-#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                                       break;
-#line 2061 "moonshot-keyring-store.c"
-                                               }
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp27_ = rules_patterns;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp27__length1 = rules_patterns_length1;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp28_ = i;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp29_ = rules;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp29__length1 = rules_length1;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp30_ = i;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp31_ = _tmp29_[_tmp30_];
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp32_ = _tmp31_.pattern;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp33_ = g_strdup (_tmp32_);
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _g_free0 (_tmp27_[_tmp28_]);
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp27_[_tmp28_] = _tmp33_;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp34_ = _tmp27_[_tmp28_];
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp35_ = rules_always_conf;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp35__length1 = rules_always_conf_length1;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp36_ = i;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp37_ = rules;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp37__length1 = rules_length1;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp38_ = i;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp39_ = _tmp37_[_tmp38_];
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp40_ = _tmp39_.always_confirm;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp41_ = g_strdup (_tmp40_);
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _g_free0 (_tmp35_[_tmp36_]);
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp35_[_tmp36_] = _tmp41_;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                                               _tmp42_ = _tmp35_[_tmp36_];
-#line 2111 "moonshot-keyring-store.c"
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp27_ = i;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp28_ = _tmp26_[_tmp27_];
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp29_ = _tmp28_.pattern;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp30_ = g_strdup (_tmp29_);
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _g_free0 (_tmp24_[_tmp25_]);
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp24_[_tmp25_] = _tmp30_;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp31_ = _tmp24_[_tmp25_];
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp32_ = rules_always_conf;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp32__length1 = rules_always_conf_length1;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp33_ = i;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp34_ = rules;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp34__length1 = rules_length1;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp35_ = i;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp36_ = _tmp34_[_tmp35_];
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp37_ = _tmp36_.always_confirm;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp38_ = g_strdup (_tmp37_);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _g_free0 (_tmp32_[_tmp33_]);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp32_[_tmp33_] = _tmp38_;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                                               _tmp39_ = _tmp32_[_tmp33_];
+#line 2266 "moonshot-keyring-store.c"
                                        }
                                }
                        }
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp43_ = rules_patterns;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp43__length1 = rules_patterns_length1;
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp44_ = _vala_g_strjoinv (";", _tmp43_, _tmp43__length1);
-#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       patterns = _tmp44_;
-#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp45_ = rules_always_conf;
-#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp45__length1 = rules_always_conf_length1;
-#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp46_ = _vala_g_strjoinv (";", _tmp45_, _tmp45__length1);
-#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       always_conf = _tmp46_;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp47_ = services_array;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp47__length1 = services_array_length1;
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp48_ = _vala_g_strjoinv (";", _tmp47_, _tmp47__length1);
-#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       services = _tmp48_;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp49_ = gnome_keyring_attribute_list_new ();
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       attributes = _tmp49_;
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp50_ = attributes;
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       gnome_keyring_attribute_list_append_string (_tmp50_, KEYRING_STORE_keyring_store_attribute, KEYRING_STORE_keyring_store_version);
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp51_ = attributes;
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp52_ = id_card;
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp53_ = id_card_get_issuer (_tmp52_);
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp54_ = _tmp53_;
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       gnome_keyring_attribute_list_append_string (_tmp51_, "Issuer", _tmp54_);
-#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp55_ = attributes;
-#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp56_ = id_card;
-#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp57_ = id_card_get_username (_tmp56_);
-#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp58_ = _tmp57_;
-#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       gnome_keyring_attribute_list_append_string (_tmp55_, "Username", _tmp58_);
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp59_ = attributes;
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp60_ = id_card;
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp61_ = id_card_get_display_name (_tmp60_);
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp62_ = _tmp61_;
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       gnome_keyring_attribute_list_append_string (_tmp59_, "DisplayName", _tmp62_);
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp63_ = attributes;
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp64_ = services;
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       gnome_keyring_attribute_list_append_string (_tmp63_, "Services", _tmp64_);
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp65_ = attributes;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp66_ = patterns;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       gnome_keyring_attribute_list_append_string (_tmp65_, "Rules-Pattern", _tmp66_);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp67_ = attributes;
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp68_ = always_conf;
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       gnome_keyring_attribute_list_append_string (_tmp67_, "Rules-AlwaysConfirm", _tmp68_);
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp69_ = attributes;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp70_ = id_card;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp71_ = id_card_get_trust_anchor (_tmp70_);
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp72_ = _tmp71_;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp73_ = trust_anchor_get_ca_cert (_tmp72_);
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp74_ = _tmp73_;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       gnome_keyring_attribute_list_append_string (_tmp69_, "CA-Cert", _tmp74_);
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp75_ = attributes;
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp76_ = id_card;
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp77_ = id_card_get_trust_anchor (_tmp76_);
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp78_ = _tmp77_;
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp79_ = trust_anchor_get_server_cert (_tmp78_);
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp80_ = _tmp79_;
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       gnome_keyring_attribute_list_append_string (_tmp75_, "Server-Cert", _tmp80_);
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp81_ = attributes;
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp82_ = id_card;
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp83_ = id_card_get_trust_anchor (_tmp82_);
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp84_ = _tmp83_;
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp85_ = trust_anchor_get_subject (_tmp84_);
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp86_ = _tmp85_;
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       gnome_keyring_attribute_list_append_string (_tmp81_, "Subject", _tmp86_);
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp87_ = attributes;
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp88_ = id_card;
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp89_ = id_card_get_trust_anchor (_tmp88_);
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp90_ = _tmp89_;
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp91_ = trust_anchor_get_subject_alt (_tmp90_);
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp92_ = _tmp91_;
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       gnome_keyring_attribute_list_append_string (_tmp87_, "Subject-Alt", _tmp92_);
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp94_ = id_card;
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp95_ = id_card_get_store_password (_tmp94_);
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp96_ = _tmp95_;
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       if (_tmp96_) {
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp93_ = "yes";
-#line 2261 "moonshot-keyring-store.c"
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp40_ = rules_patterns;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp40__length1 = rules_patterns_length1;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp41_ = _vala_g_strjoinv (";", _tmp40_, _tmp40__length1);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       patterns = _tmp41_;
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp42_ = rules_always_conf;
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp42__length1 = rules_always_conf_length1;
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp43_ = _vala_g_strjoinv (";", _tmp42_, _tmp42__length1);
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       always_conf = _tmp43_;
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp44_ = id_card;
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp45_ = id_card_get_services_string (_tmp44_, ";");
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       services = _tmp45_;
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp46_ = gnome_keyring_attribute_list_new ();
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       attributes = _tmp46_;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp47_ = attributes;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       gnome_keyring_attribute_list_append_string (_tmp47_, KEYRING_STORE_keyring_store_attribute, KEYRING_STORE_keyring_store_version);
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp48_ = attributes;
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp49_ = id_card;
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp50_ = id_card_get_issuer (_tmp49_);
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp51_ = _tmp50_;
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       gnome_keyring_attribute_list_append_string (_tmp48_, "Issuer", _tmp51_);
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp52_ = attributes;
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp53_ = id_card;
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp54_ = id_card_get_username (_tmp53_);
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp55_ = _tmp54_;
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       gnome_keyring_attribute_list_append_string (_tmp52_, "Username", _tmp55_);
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp56_ = attributes;
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp57_ = id_card;
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp58_ = id_card_get_display_name (_tmp57_);
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp59_ = _tmp58_;
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       gnome_keyring_attribute_list_append_string (_tmp56_, "DisplayName", _tmp59_);
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp60_ = attributes;
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp61_ = services;
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       gnome_keyring_attribute_list_append_string (_tmp60_, "Services", _tmp61_);
+#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp62_ = attributes;
+#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp63_ = patterns;
+#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       gnome_keyring_attribute_list_append_string (_tmp62_, "Rules-Pattern", _tmp63_);
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp64_ = attributes;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp65_ = always_conf;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       gnome_keyring_attribute_list_append_string (_tmp64_, "Rules-AlwaysConfirm", _tmp65_);
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp66_ = attributes;
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp67_ = id_card;
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp68_ = id_card_get_trust_anchor (_tmp67_);
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp69_ = _tmp68_;
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp70_ = trust_anchor_get_ca_cert (_tmp69_);
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp71_ = _tmp70_;
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       gnome_keyring_attribute_list_append_string (_tmp66_, "CA-Cert", _tmp71_);
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp72_ = attributes;
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp73_ = id_card;
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp74_ = id_card_get_trust_anchor (_tmp73_);
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp75_ = _tmp74_;
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp76_ = trust_anchor_get_server_cert (_tmp75_);
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp77_ = _tmp76_;
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       gnome_keyring_attribute_list_append_string (_tmp72_, "Server-Cert", _tmp77_);
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp78_ = attributes;
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp79_ = id_card;
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp80_ = id_card_get_trust_anchor (_tmp79_);
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp81_ = _tmp80_;
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp82_ = trust_anchor_get_subject (_tmp81_);
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp83_ = _tmp82_;
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       gnome_keyring_attribute_list_append_string (_tmp78_, "Subject", _tmp83_);
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp84_ = attributes;
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp85_ = id_card;
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp86_ = id_card_get_trust_anchor (_tmp85_);
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp87_ = _tmp86_;
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp88_ = trust_anchor_get_subject_alt (_tmp87_);
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp89_ = _tmp88_;
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       gnome_keyring_attribute_list_append_string (_tmp84_, "Subject-Alt", _tmp89_);
+#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp90_ = attributes;
+#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp91_ = id_card;
+#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp92_ = id_card_get_trust_anchor (_tmp91_);
+#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp93_ = _tmp92_;
+#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp94_ = trust_anchor_get_datetime_added (_tmp93_);
+#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp95_ = _tmp94_;
+#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       gnome_keyring_attribute_list_append_string (_tmp90_, "TA_DateTime_Added", _tmp95_);
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp97_ = id_card;
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp98_ = id_card_get_store_password (_tmp97_);
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp99_ = _tmp98_;
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       if (_tmp99_) {
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp96_ = "yes";
+#line 2428 "moonshot-keyring-store.c"
                        } else {
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp93_ = "no";
-#line 2265 "moonshot-keyring-store.c"
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp96_ = "no";
+#line 2432 "moonshot-keyring-store.c"
                        }
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp97_ = attributes;
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       gnome_keyring_attribute_list_append_string (_tmp97_, "StorePassword", _tmp93_);
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp99_ = id_card;
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp100_ = id_card_get_store_password (_tmp99_);
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp101_ = _tmp100_;
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       if (_tmp101_) {
-#line 2279 "moonshot-keyring-store.c"
-                               IdCard* _tmp102_ = NULL;
-                               const gchar* _tmp103_ = NULL;
-                               const gchar* _tmp104_ = NULL;
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp102_ = id_card;
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp103_ = id_card_get_password (_tmp102_);
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp104_ = _tmp103_;
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp98_ = _tmp104_;
-#line 2291 "moonshot-keyring-store.c"
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp100_ = attributes;
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       gnome_keyring_attribute_list_append_string (_tmp100_, "StorePassword", _tmp96_);
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp102_ = id_card;
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp103_ = id_card_get_store_password (_tmp102_);
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp104_ = _tmp103_;
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       if (_tmp104_) {
+#line 2446 "moonshot-keyring-store.c"
+                               IdCard* _tmp105_ = NULL;
+                               const gchar* _tmp106_ = NULL;
+                               const gchar* _tmp107_ = NULL;
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp105_ = id_card;
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp106_ = id_card_get_password (_tmp105_);
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp107_ = _tmp106_;
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp101_ = _tmp107_;
+#line 2458 "moonshot-keyring-store.c"
                        } else {
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp98_ = "";
-#line 2295 "moonshot-keyring-store.c"
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp101_ = "";
+#line 2462 "moonshot-keyring-store.c"
                        }
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp105_ = id_card;
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp106_ = id_card_get_display_name (_tmp105_);
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp107_ = _tmp106_;
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp108_ = attributes;
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp110_ = gnome_keyring_item_create_sync (NULL, KEYRING_STORE_item_type, _tmp107_, _tmp108_, _tmp98_, TRUE, &_tmp109_);
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       item_id = _tmp109_;
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _result_ = _tmp110_;
-#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       _tmp111_ = _result_;
-#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       if (_tmp111_ != GNOME_KEYRING_RESULT_OK) {
-#line 2315 "moonshot-keyring-store.c"
-                               FILE* _tmp112_ = NULL;
-                               GnomeKeyringResult _tmp113_ = 0;
-#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp112_ = stdout;
-#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               _tmp113_ = _result_;
-#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                               fprintf (_tmp112_, "GnomeKeyring.item_create_sync() failed. result: %d", (gint) _tmp113_);
-#line 2324 "moonshot-keyring-store.c"
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp108_ = id_card;
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp109_ = id_card_get_display_name (_tmp108_);
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp110_ = _tmp109_;
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp111_ = attributes;
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp113_ = gnome_keyring_item_create_sync (NULL, KEYRING_STORE_item_type, _tmp110_, _tmp111_, _tmp101_, TRUE, &_tmp112_);
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       item_id = _tmp112_;
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _result_ = _tmp113_;
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       _tmp114_ = _result_;
+#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                       if (_tmp114_ != GNOME_KEYRING_RESULT_OK) {
+#line 2482 "moonshot-keyring-store.c"
+                               FILE* _tmp115_ = NULL;
+                               GnomeKeyringResult _tmp116_ = 0;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp115_ = stdout;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               _tmp116_ = _result_;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+                               fprintf (_tmp115_, "GnomeKeyring.item_create_sync() failed. result: %d", (gint) _tmp116_);
+#line 2491 "moonshot-keyring-store.c"
                        }
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        _gnome_keyring_attribute_list_free0 (attributes);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        _g_free0 (services);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        _g_free0 (always_conf);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        _g_free0 (patterns);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        rules_always_conf = (_vala_array_free (rules_always_conf, rules_always_conf_length1, (GDestroyNotify) g_free), NULL);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-                       services_array = (_vala_array_free (services_array, services_array_length1, (GDestroyNotify) g_free), NULL);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        rules = (_vala_Rule_array_free (rules, rules_length1), NULL);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                        _g_object_unref0 (id_card);
-#line 2344 "moonshot-keyring-store.c"
+#line 2509 "moonshot-keyring-store.c"
                }
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
                _g_object_unref0 (_id_card_list);
-#line 2348 "moonshot-keyring-store.c"
+#line 2513 "moonshot-keyring-store.c"
        }
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        keyring_store_load_id_cards (self);
-#line 2352 "moonshot-keyring-store.c"
+#line 2517 "moonshot-keyring-store.c"
 }
 
 
 KeyringStore* keyring_store_construct (GType object_type) {
        KeyringStore * self = NULL;
        GeeLinkedList* _tmp0_ = NULL;
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        self = (KeyringStore*) g_object_new (object_type, NULL);
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
-       _tmp0_ = gee_linked_list_new (TYPE_ID_CARD, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL);
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp0_ = gee_linked_list_new (TYPE_ID_CARD, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _g_object_unref0 (self->priv->id_card_list);
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        self->priv->id_card_list = _tmp0_;
-#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        keyring_store_load_id_cards (self);
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        return self;
-#line 2371 "moonshot-keyring-store.c"
+#line 2536 "moonshot-keyring-store.c"
 }
 
 
 KeyringStore* keyring_store_new (void) {
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        return keyring_store_construct (TYPE_KEYRING_STORE);
-#line 2378 "moonshot-keyring-store.c"
+#line 2543 "moonshot-keyring-store.c"
 }
 
 
 static void keyring_store_class_init (KeyringStoreClass * klass) {
+       MoonshotLogger* _tmp0_ = NULL;
 #line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        keyring_store_parent_class = g_type_class_peek_parent (klass);
 #line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        g_type_class_add_private (klass, sizeof (KeyringStorePrivate));
 #line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        G_OBJECT_CLASS (klass)->finalize = keyring_store_finalize;
-#line 2389 "moonshot-keyring-store.c"
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       _tmp0_ = get_logger ("KeyringStore");
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       keyring_store_logger = _tmp0_;
+#line 2559 "moonshot-keyring-store.c"
 }
 
 
@@ -2402,14 +2572,16 @@ static void keyring_store_iidentity_card_store_interface_init (IIdentityCardStor
        iface->get_store_type = (IIdentityCardStoreStoreType (*)(IIdentityCardStore*)) keyring_store_real_get_store_type;
 #line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        iface->get_card_list = (GeeLinkedList* (*)(IIdentityCardStore*)) keyring_store_real_get_card_list;
-#line 2406 "moonshot-keyring-store.c"
+#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+       iface->store_id_cards = (void (*)(IIdentityCardStore*)) keyring_store_real_store_id_cards;
+#line 2578 "moonshot-keyring-store.c"
 }
 
 
 static void keyring_store_instance_init (KeyringStore * self) {
 #line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        self->priv = KEYRING_STORE_GET_PRIVATE (self);
-#line 2413 "moonshot-keyring-store.c"
+#line 2585 "moonshot-keyring-store.c"
 }
 
 
@@ -2417,11 +2589,11 @@ static void keyring_store_finalize (GObject* obj) {
        KeyringStore * self;
 #line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_KEYRING_STORE, KeyringStore);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        _g_object_unref0 (self->priv->id_card_list);
 #line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-keyring-store.vala"
        G_OBJECT_CLASS (keyring_store_parent_class)->finalize (obj);
-#line 2425 "moonshot-keyring-store.c"
+#line 2597 "moonshot-keyring-store.c"
 }
 
 
index ab1ff1e..7ae0d22 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -33,30 +33,42 @@ using Gee;
 
 #if GNOME_KEYRING
 public class KeyringStore : Object, IIdentityCardStore {
+    static MoonshotLogger logger = get_logger("KeyringStore");
+
     private LinkedList<IdCard> id_card_list;
     private const string keyring_store_attribute = "Moonshot";
     private const string keyring_store_version = "1.0";
     private const GnomeKeyring.ItemType item_type = GnomeKeyring.ItemType.GENERIC_SECRET;
 
     public void add_card(IdCard card) {
+        logger.trace("add_card: Adding card '%s' with services: '%s'"
+                     .printf(card.display_name, card.get_services_string("; ")));
+
         id_card_list.add(card);
-        store_id_cards ();
+        store_id_cards();
     }
 
     public IdCard? update_card(IdCard card) {
+        logger.trace("update_card");
+
         id_card_list.remove(card);
         id_card_list.add(card);
-        store_id_cards ();
-        foreach (IdCard idcard in id_card_list)
-            if (idcard.display_name == card.display_name)
+
+        store_id_cards();
+        foreach (IdCard idcard in id_card_list) {
+            if (idcard.display_name == card.display_name) {
                 return idcard;
+            }
+        }
+
+        logger.error(@"update_card: card '$(card.display_name)' was not found after re-loading!");
         return null;
     }
 
     public bool remove_card(IdCard card) {
         bool retval = id_card_list.remove(card);
         if (retval)
-            store_id_cards ();
+            store_id_cards();
         return retval;
     }
 
@@ -70,9 +82,9 @@ public class KeyringStore : Object, IIdentityCardStore {
 
     /* clear all keyring-stored ids (in preparation to store current list) */
     private void clear_keyring() {
-       GnomeKeyring.AttributeList match = new GnomeKeyring.AttributeList();
-       match.append_string(keyring_store_attribute, keyring_store_version);
-       GLib.List<GnomeKeyring.Found> items;
+        GnomeKeyring.AttributeList match = new GnomeKeyring.AttributeList();
+        match.append_string(keyring_store_attribute, keyring_store_version);
+        GLib.List<GnomeKeyring.Found> items;
         GnomeKeyring.find_items_sync(item_type, match, out items);
         foreach(unowned GnomeKeyring.Found entry in items) {
             GnomeKeyring.Result result = GnomeKeyring.item_delete_sync(null, entry.item_id);
@@ -85,55 +97,73 @@ public class KeyringStore : Object, IIdentityCardStore {
     private void load_id_cards() {
         id_card_list.clear();
 
-       GnomeKeyring.AttributeList match = new GnomeKeyring.AttributeList();
-       match.append_string(keyring_store_attribute, keyring_store_version);
-       GLib.List<GnomeKeyring.Found> items;
+        GnomeKeyring.AttributeList match = new GnomeKeyring.AttributeList();
+        match.append_string(keyring_store_attribute, keyring_store_version);
+        GLib.List<GnomeKeyring.Found> items;
         GnomeKeyring.find_items_sync(item_type, match, out items);
         foreach(unowned GnomeKeyring.Found entry in items) {
-            IdCard id_card = new IdCard ();
+            IdCard id_card = new IdCard();
             int i;
             int rules_patterns_index = -1;
             int rules_always_confirm_index = -1;
             string store_password = null;
-            for (i=0; i<entry.attributes.len; i++) {
+            string ca_cert = "";
+            string server_cert = "";
+            string subject = "";
+            string subject_alt = "";
+            string ta_datetime_added = "";
+            for (i = 0; i < entry.attributes.len; i++) {
                 var attribute = ((GnomeKeyring.Attribute *) entry.attributes.data)[i];
-               string value = attribute.string_value;
-               if (attribute.name == "Issuer") {
+                string value = "";
+                if (attribute.type == GnomeKeyring.AttributeType.STRING) {
+                    value = attribute.string_value;
+                }
+
+                if (attribute.name == "Issuer") {
                     id_card.issuer = value;
-               } else if (attribute.name == "Username") {
+                } else if (attribute.name == "Username") {
                     id_card.username = value;
-               } else if (attribute.name == "DisplayName") {
+                } else if (attribute.name == "DisplayName") {
                     id_card.display_name = value;
-               } else if (attribute.name == "Services") {
-                    id_card.services = value.split(";");
+                } else if (attribute.name == "Services") {
+                    id_card.update_services(value.split(";"));
                 } else if (attribute.name == "Rules-Pattern") {
                     rules_patterns_index = i;
                 } else if (attribute.name == "Rules-AlwaysConfirm") {
                     rules_always_confirm_index = i;
                 } else if (attribute.name == "CA-Cert") {
-                    id_card.trust_anchor.ca_cert = value.strip();
+                    ca_cert = value.strip();
                 } else if (attribute.name == "Server-Cert") {
-                    id_card.trust_anchor.server_cert = value;
+                    server_cert = value;
                 } else if (attribute.name == "Subject") {
-                    id_card.trust_anchor.subject = value;
+                    subject = value;
                 } else if (attribute.name == "Subject-Alt") {
-                    id_card.trust_anchor.subject_alt = value;
+                    subject_alt = value;
                 } else if (attribute.name == "StorePassword") {
                     store_password = value;
+                } else if (attribute.name == "TA_DateTime_Added") {
+                    ta_datetime_added = value;
                 }
             }
+
+            var ta = new TrustAnchor(ca_cert, server_cert, subject, subject_alt);
+            if (ta_datetime_added != "") {
+                ta.set_datetime_added(ta_datetime_added);
+            }
+            id_card.set_trust_anchor_from_store(ta);
+
             if ((rules_always_confirm_index != -1) && (rules_patterns_index != -1)) {
                 string rules_patterns_all = ((GnomeKeyring.Attribute *) entry.attributes.data)[rules_patterns_index].string_value;
                 string rules_always_confirm_all = ((GnomeKeyring.Attribute *) entry.attributes.data)[rules_always_confirm_index].string_value;
                 string [] rules_always_confirm = rules_always_confirm_all.split(";");
                 string [] rules_patterns = rules_patterns_all.split(";");
                 if (rules_patterns.length == rules_always_confirm.length) {
-                   Rule[] rules = new Rule[rules_patterns.length];
-                   for (int j=0; j<rules_patterns.length; j++) {
-                       rules[j].pattern = rules_patterns[j];
-                       rules[j].always_confirm = rules_always_confirm[j];
-                   }
-                   id_card.rules = rules;
+                    Rule[] rules = new Rule[rules_patterns.length];
+                    for (int j = 0; j < rules_patterns.length; j++) {
+                        rules[j].pattern = rules_patterns[j];
+                        rules[j].always_confirm = rules_always_confirm[j];
+                    }
+                    id_card.rules = rules;
                 }
             }
 
@@ -146,26 +176,27 @@ public class KeyringStore : Object, IIdentityCardStore {
                 id_card.password = entry.secret;
             else
                 id_card.password = null;
+
             id_card_list.add(id_card);
         }
     }
 
-    public void store_id_cards () {
+    internal void store_id_cards() {
+        logger.trace("store_id_cards");
         clear_keyring();
         foreach (IdCard id_card in this.id_card_list) {
             /* workaround for Centos vala array property bug: use temp array */
             var rules = id_card.rules;
-            var services_array = id_card.services;
             string[] rules_patterns = new string[rules.length];
             string[] rules_always_conf = new string[rules.length];
             
-            for (int i=0; i<rules.length; i++) {
+            for (int i = 0; i < rules.length; i++) {
                 rules_patterns[i] = rules[i].pattern;
                 rules_always_conf[i] = rules[i].always_confirm;
             }
             string patterns = string.joinv(";", rules_patterns);
             string always_conf = string.joinv(";", rules_always_conf);
-            string services = string.joinv(";", services_array);
+            string services = id_card.get_services_string(";");
             GnomeKeyring.AttributeList attributes = new GnomeKeyring.AttributeList();
             uint32 item_id;
             attributes.append_string(keyring_store_attribute, keyring_store_version);
@@ -179,12 +210,13 @@ public class KeyringStore : Object, IIdentityCardStore {
             attributes.append_string("Server-Cert", id_card.trust_anchor.server_cert);
             attributes.append_string("Subject", id_card.trust_anchor.subject);
             attributes.append_string("Subject-Alt", id_card.trust_anchor.subject_alt);
+            attributes.append_string("TA_DateTime_Added", id_card.trust_anchor.datetime_added);
             attributes.append_string("StorePassword", id_card.store_password ? "yes" : "no");
 
             GnomeKeyring.Result result = GnomeKeyring.item_create_sync(null,
-                item_type, id_card.display_name, attributes,
-                id_card.store_password ? id_card.password : "",
-                true, out item_id);
+                                                                       item_type, id_card.display_name, attributes,
+                                                                       id_card.store_password ? id_card.password : "",
+                                                                       true, out item_id);
             if (result != GnomeKeyring.Result.OK) {
                 stdout.printf("GnomeKeyring.item_create_sync() failed. result: %d", result);
             }
@@ -192,7 +224,7 @@ public class KeyringStore : Object, IIdentityCardStore {
         load_id_cards();
     }
 
-    public KeyringStore () {
+    public KeyringStore() {
         id_card_list = new LinkedList<IdCard>();
         load_id_cards();
     }
index e5afdce..3c97ceb 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-local-flat-file-store.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-local-flat-file-store.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-local-flat-file-store.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
-*/
+ */
 
 #include <glib.h>
 #include <glib-object.h>
@@ -74,10 +74,20 @@ typedef struct _IdCardClass IdCardClass;
 typedef struct _LocalFlatFileStore LocalFlatFileStore;
 typedef struct _LocalFlatFileStoreClass LocalFlatFileStoreClass;
 typedef struct _LocalFlatFileStorePrivate LocalFlatFileStorePrivate;
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
-#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
 #define _g_free0(var) (var = (g_free (var), NULL))
-#define _g_key_file_free0(var) ((var == NULL) ? NULL : (var = (g_key_file_free (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _g_key_file_unref0(var) ((var == NULL) ? NULL : (var = (g_key_file_unref (var), NULL)))
 
 #define TYPE_RULE (rule_get_type ())
 typedef struct _Rule Rule;
@@ -104,6 +114,7 @@ struct _IIdentityCardStoreIface {
        IdCard* (*update_card) (IIdentityCardStore* self, IdCard* card);
        IIdentityCardStoreStoreType (*get_store_type) (IIdentityCardStore* self);
        GeeLinkedList* (*get_card_list) (IIdentityCardStore* self);
+       void (*store_id_cards) (IIdentityCardStore* self);
 };
 
 struct _LocalFlatFileStore {
@@ -126,6 +137,8 @@ struct _Rule {
 
 
 static gpointer local_flat_file_store_parent_class = NULL;
+static MoonshotLogger* local_flat_file_store_logger;
+static MoonshotLogger* local_flat_file_store_logger = NULL;
 static IIdentityCardStoreIface* local_flat_file_store_iidentity_card_store_parent_iface = NULL;
 
 GType id_card_get_type (void) G_GNUC_CONST;
@@ -136,22 +149,26 @@ GType local_flat_file_store_get_type (void) G_GNUC_CONST;
 enum  {
        LOCAL_FLAT_FILE_STORE_DUMMY_PROPERTY
 };
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* get_logger (const gchar* name);
 #define LOCAL_FLAT_FILE_STORE_FILE_NAME "identities.txt"
 static void local_flat_file_store_real_add_card (IIdentityCardStore* base, IdCard* card);
-void local_flat_file_store_store_id_cards (LocalFlatFileStore* self);
+void iidentity_card_store_store_id_cards (IIdentityCardStore* self);
 static IdCard* local_flat_file_store_real_update_card (IIdentityCardStore* base, IdCard* card);
 const gchar* id_card_get_display_name (IdCard* self);
+void moonshot_logger_error (MoonshotLogger* self, const gchar* message, GError* e);
 static gboolean local_flat_file_store_real_remove_card (IIdentityCardStore* base, IdCard* card);
 static GeeLinkedList* local_flat_file_store_real_get_card_list (IIdentityCardStore* base);
 static IIdentityCardStoreStoreType local_flat_file_store_real_get_store_type (IIdentityCardStore* base);
 static void local_flat_file_store_load_id_cards (LocalFlatFileStore* self);
 static gchar* local_flat_file_store_get_data_dir (LocalFlatFileStore* self);
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
 IdCard* id_card_new (void);
 IdCard* id_card_construct (GType object_type);
 void id_card_set_issuer (IdCard* self, const gchar* value);
 void id_card_set_username (IdCard* self, const gchar* value);
 void id_card_set_password (IdCard* self, const gchar* value);
-void id_card_set_services (IdCard* self, gchar** value, int value_length1);
+void id_card_update_services (IdCard* self, gchar** services, int services_length1);
 void id_card_set_display_name (IdCard* self, const gchar* value);
 void id_card_set_store_password (IdCard* self, gboolean value);
 const gchar* id_card_get_password (IdCard* self);
@@ -163,22 +180,24 @@ void rule_destroy (Rule* self);
 void id_card_set_rules (IdCard* self, Rule* value, int value_length1);
 static void _vala_Rule_array_free (Rule* array, gint array_length);
 GType trust_anchor_get_type (void) G_GNUC_CONST;
-TrustAnchor* id_card_get_trust_anchor (IdCard* self);
-void trust_anchor_set_ca_cert (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_subject (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_subject_alt (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_server_cert (TrustAnchor* self, const gchar* value);
+TrustAnchor* trust_anchor_new (const gchar* ca_cert, const gchar* server_cert, const gchar* subject, const gchar* subject_alt);
+TrustAnchor* trust_anchor_construct (GType object_type, const gchar* ca_cert, const gchar* server_cert, const gchar* subject, const gchar* subject_alt);
+gchar* get_string_setting (const gchar* group_name, const gchar* key_name, const gchar* _default_, GKeyFile* key_file);
+void trust_anchor_set_datetime_added (TrustAnchor* self, const gchar* datetime);
+void id_card_set_trust_anchor_from_store (IdCard* self, TrustAnchor* ta);
+static void local_flat_file_store_real_store_id_cards (IIdentityCardStore* base);
 Rule* id_card_get_rules (IdCard* self, int* result_length1);
 static Rule* _vala_array_dup1 (Rule* self, int length);
-gchar** id_card_get_services (IdCard* self, int* result_length1);
-static gchar** _vala_array_dup2 (gchar** self, int length);
 const gchar* id_card_get_issuer (IdCard* self);
 const gchar* id_card_get_username (IdCard* self);
 gboolean id_card_get_store_password (IdCard* self);
+GeeArrayList* id_card_get_services (IdCard* self);
+TrustAnchor* id_card_get_trust_anchor (IdCard* self);
 const gchar* trust_anchor_get_ca_cert (TrustAnchor* self);
 const gchar* trust_anchor_get_subject (TrustAnchor* self);
 const gchar* trust_anchor_get_subject_alt (TrustAnchor* self);
 const gchar* trust_anchor_get_server_cert (TrustAnchor* self);
+const gchar* trust_anchor_get_datetime_added (TrustAnchor* self);
 LocalFlatFileStore* local_flat_file_store_new (void);
 LocalFlatFileStore* local_flat_file_store_construct (GType object_type);
 static void local_flat_file_store_finalize (GObject* obj);
@@ -190,26 +209,38 @@ static void local_flat_file_store_real_add_card (IIdentityCardStore* base, IdCar
        LocalFlatFileStore * self;
        GeeLinkedList* _tmp0_ = NULL;
        IdCard* _tmp1_ = NULL;
-#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        self = (LocalFlatFileStore*) base;
-#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        g_return_if_fail (card != NULL);
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp0_ = self->priv->id_card_list;
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp1_ = card;
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, _tmp1_);
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       local_flat_file_store_store_id_cards (self);
-#line 206 "moonshot-local-flat-file-store.c"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       iidentity_card_store_store_id_cards ((IIdentityCardStore*) self);
+#line 225 "moonshot-local-flat-file-store.c"
 }
 
 
 static gpointer _g_object_ref0 (gpointer self) {
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        return self ? g_object_ref (self) : NULL;
-#line 213 "moonshot-local-flat-file-store.c"
+#line 232 "moonshot-local-flat-file-store.c"
+}
+
+
+static const gchar* string_to_string (const gchar* self) {
+       const gchar* result = NULL;
+#line 1420 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = self;
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 244 "moonshot-local-flat-file-store.c"
 }
 
 
@@ -220,25 +251,32 @@ static IdCard* local_flat_file_store_real_update_card (IIdentityCardStore* base,
        IdCard* _tmp1_ = NULL;
        GeeLinkedList* _tmp2_ = NULL;
        IdCard* _tmp3_ = NULL;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       MoonshotLogger* _tmp21_ = NULL;
+       IdCard* _tmp22_ = NULL;
+       const gchar* _tmp23_ = NULL;
+       const gchar* _tmp24_ = NULL;
+       const gchar* _tmp25_ = NULL;
+       gchar* _tmp26_ = NULL;
+       gchar* _tmp27_ = NULL;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        self = (LocalFlatFileStore*) base;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        g_return_val_if_fail (card != NULL, NULL);
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp0_ = self->priv->id_card_list;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp1_ = card;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _tmp1_);
-#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp2_ = self->priv->id_card_list;
-#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp3_ = card;
-#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        gee_abstract_collection_add ((GeeAbstractCollection*) _tmp2_, _tmp3_);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       local_flat_file_store_store_id_cards (self);
-#line 242 "moonshot-local-flat-file-store.c"
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       iidentity_card_store_store_id_cards ((IIdentityCardStore*) self);
+#line 280 "moonshot-local-flat-file-store.c"
        {
                GeeLinkedList* _idcard_list = NULL;
                GeeLinkedList* _tmp4_ = NULL;
@@ -248,25 +286,25 @@ static IdCard* local_flat_file_store_real_update_card (IIdentityCardStore* base,
                gint _tmp7_ = 0;
                gint _tmp8_ = 0;
                gint _idcard_index = 0;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _tmp4_ = self->priv->id_card_list;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _tmp5_ = _g_object_ref0 (_tmp4_);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _idcard_list = _tmp5_;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _tmp6_ = _idcard_list;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp7_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp6_);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp7_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp6_);
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _tmp8_ = _tmp7_;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _idcard_size = _tmp8_;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _idcard_index = -1;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                while (TRUE) {
-#line 270 "moonshot-local-flat-file-store.c"
+#line 308 "moonshot-local-flat-file-store.c"
                        gint _tmp9_ = 0;
                        gint _tmp10_ = 0;
                        gint _tmp11_ = 0;
@@ -280,63 +318,81 @@ static IdCard* local_flat_file_store_real_update_card (IIdentityCardStore* base,
                        IdCard* _tmp18_ = NULL;
                        const gchar* _tmp19_ = NULL;
                        const gchar* _tmp20_ = NULL;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp9_ = _idcard_index;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _idcard_index = _tmp9_ + 1;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp10_ = _idcard_index;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp11_ = _idcard_size;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        if (!(_tmp10_ < _tmp11_)) {
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                break;
-#line 296 "moonshot-local-flat-file-store.c"
+#line 334 "moonshot-local-flat-file-store.c"
                        }
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp12_ = _idcard_list;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp13_ = _idcard_index;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp12_, _tmp13_);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        idcard = (IdCard*) _tmp14_;
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp15_ = idcard;
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp16_ = id_card_get_display_name (_tmp15_);
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp17_ = _tmp16_;
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp18_ = card;
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp19_ = id_card_get_display_name (_tmp18_);
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp20_ = _tmp19_;
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        if (g_strcmp0 (_tmp17_, _tmp20_) == 0) {
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                result = idcard;
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                _g_object_unref0 (_idcard_list);
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                return result;
-#line 326 "moonshot-local-flat-file-store.c"
+#line 364 "moonshot-local-flat-file-store.c"
                        }
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _g_object_unref0 (idcard);
-#line 330 "moonshot-local-flat-file-store.c"
+#line 368 "moonshot-local-flat-file-store.c"
                }
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _g_object_unref0 (_idcard_list);
-#line 334 "moonshot-local-flat-file-store.c"
+#line 372 "moonshot-local-flat-file-store.c"
        }
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp21_ = local_flat_file_store_logger;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp22_ = card;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp23_ = id_card_get_display_name (_tmp22_);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp24_ = _tmp23_;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp25_ = string_to_string (_tmp24_);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp26_ = g_strconcat ("update_card: card '", _tmp25_, "' was not found after re-loading!", NULL);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp27_ = _tmp26_;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       moonshot_logger_error (_tmp21_, _tmp27_, NULL);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _g_free0 (_tmp27_);
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        result = NULL;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        return result;
-#line 340 "moonshot-local-flat-file-store.c"
+#line 396 "moonshot-local-flat-file-store.c"
 }
 
 
@@ -346,31 +402,31 @@ static gboolean local_flat_file_store_real_remove_card (IIdentityCardStore* base
        GeeLinkedList* _tmp0_ = NULL;
        IdCard* _tmp1_ = NULL;
        gboolean _tmp2_ = FALSE;
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        self = (LocalFlatFileStore*) base;
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        g_return_val_if_fail (card != NULL, FALSE);
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp0_ = self->priv->id_card_list;
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp1_ = card;
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp2_ = gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _tmp1_);
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        if (_tmp2_) {
-#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               local_flat_file_store_store_id_cards (self);
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               iidentity_card_store_store_id_cards ((IIdentityCardStore*) self);
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                result = TRUE;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                return result;
-#line 368 "moonshot-local-flat-file-store.c"
+#line 424 "moonshot-local-flat-file-store.c"
        }
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        result = FALSE;
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        return result;
-#line 374 "moonshot-local-flat-file-store.c"
+#line 430 "moonshot-local-flat-file-store.c"
 }
 
 
@@ -379,48 +435,48 @@ static GeeLinkedList* local_flat_file_store_real_get_card_list (IIdentityCardSto
        GeeLinkedList* result = NULL;
        GeeLinkedList* _tmp0_ = NULL;
        GeeLinkedList* _tmp1_ = NULL;
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        self = (LocalFlatFileStore*) base;
-#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp0_ = self->priv->id_card_list;
-#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp1_ = _g_object_ref0 (_tmp0_);
-#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        result = _tmp1_;
-#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        return result;
-#line 393 "moonshot-local-flat-file-store.c"
+#line 449 "moonshot-local-flat-file-store.c"
 }
 
 
 static IIdentityCardStoreStoreType local_flat_file_store_real_get_store_type (IIdentityCardStore* base) {
        LocalFlatFileStore * self;
        IIdentityCardStoreStoreType result = 0;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        self = (LocalFlatFileStore*) base;
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        result = IIDENTITY_CARD_STORE_STORE_TYPE_FLAT_FILE;
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        return result;
-#line 406 "moonshot-local-flat-file-store.c"
+#line 462 "moonshot-local-flat-file-store.c"
 }
 
 
 static void _vala_Rule_array_free (Rule* array, gint array_length) {
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        if (array != NULL) {
-#line 413 "moonshot-local-flat-file-store.c"
+#line 469 "moonshot-local-flat-file-store.c"
                int i;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                for (i = 0; i < array_length; i = i + 1) {
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        rule_destroy (&array[i]);
-#line 419 "moonshot-local-flat-file-store.c"
+#line 475 "moonshot-local-flat-file-store.c"
                }
        }
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        g_free (array);
-#line 424 "moonshot-local-flat-file-store.c"
+#line 480 "moonshot-local-flat-file-store.c"
 }
 
 
@@ -429,21 +485,21 @@ static gchar* string_strip (const gchar* self) {
        gchar* _result_ = NULL;
        gchar* _tmp0_ = NULL;
        const gchar* _tmp1_ = NULL;
-#line 1115 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1215 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        g_return_val_if_fail (self != NULL, NULL);
-#line 1116 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1216 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp0_ = g_strdup (self);
-#line 1116 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1216 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _result_ = _tmp0_;
-#line 1117 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1217 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp1_ = _result_;
-#line 1117 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1217 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        g_strstrip (_tmp1_);
-#line 1118 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1218 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        result = _result_;
-#line 1118 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1218 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        return result;
-#line 447 "moonshot-local-flat-file-store.c"
+#line 503 "moonshot-local-flat-file-store.c"
 }
 
 
@@ -456,141 +512,155 @@ static void local_flat_file_store_load_id_cards (LocalFlatFileStore* self) {
        gchar* filename = NULL;
        const gchar* _tmp3_ = NULL;
        gchar* _tmp4_ = NULL;
+       MoonshotLogger* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       gchar* _tmp7_ = NULL;
+       gchar* _tmp8_ = NULL;
        gchar** identities_uris = NULL;
-       GKeyFile* _tmp10_ = NULL;
-       gsize _tmp11_;
-       gchar** _tmp12_ = NULL;
+       GKeyFile* _tmp15_ = NULL;
+       gsize _tmp16_;
+       gchar** _tmp17_ = NULL;
        gint identities_uris_length1 = 0;
        gint _identities_uris_size_ = 0;
-       gchar** _tmp13_ = NULL;
-       gint _tmp13__length1 = 0;
+       gchar** _tmp18_ = NULL;
+       gint _tmp18__length1 = 0;
        GError * _inner_error_ = NULL;
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        g_return_if_fail (self != NULL);
-#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp0_ = self->priv->id_card_list;
-#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp0_);
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp1_ = g_key_file_new ();
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        key_file = _tmp1_;
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp2_ = local_flat_file_store_get_data_dir (self);
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        path = _tmp2_;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp3_ = path;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp4_ = g_build_filename (_tmp3_, LOCAL_FLAT_FILE_STORE_FILE_NAME, NULL);
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        filename = _tmp4_;
-#line 489 "moonshot-local-flat-file-store.c"
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp5_ = local_flat_file_store_logger;
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp6_ = filename;
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp7_ = g_strconcat ("load_id_cards: attempting to load from ", _tmp6_, NULL);
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp8_ = _tmp7_;
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       moonshot_logger_trace (_tmp5_, _tmp8_, NULL);
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _g_free0 (_tmp8_);
+#line 561 "moonshot-local-flat-file-store.c"
        {
-               GKeyFile* _tmp5_ = NULL;
-               const gchar* _tmp6_ = NULL;
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp5_ = key_file;
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp6_ = filename;
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               g_key_file_load_from_file (_tmp5_, _tmp6_, G_KEY_FILE_NONE, &_inner_error_);
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               GKeyFile* _tmp9_ = NULL;
+               const gchar* _tmp10_ = NULL;
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp9_ = key_file;
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp10_ = filename;
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               g_key_file_load_from_file (_tmp9_, _tmp10_, G_KEY_FILE_NONE, &_inner_error_);
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 501 "moonshot-local-flat-file-store.c"
-                       goto __catch5_g_error;
+#line 573 "moonshot-local-flat-file-store.c"
+                       goto __catch6_g_error;
                }
        }
-       goto __finally5;
-       __catch5_g_error:
+       goto __finally6;
+       __catch6_g_error:
        {
                GError* e = NULL;
-               FILE* _tmp7_ = NULL;
-               GError* _tmp8_ = NULL;
-               const gchar* _tmp9_ = NULL;
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               FILE* _tmp11_ = NULL;
+               const gchar* _tmp12_ = NULL;
+               GError* _tmp13_ = NULL;
+               const gchar* _tmp14_ = NULL;
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                e = _inner_error_;
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _inner_error_ = NULL;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp7_ = stdout;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp8_ = e;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp9_ = _tmp8_->message;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               fprintf (_tmp7_, "Error: %s\n", _tmp9_);
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp11_ = stdout;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp12_ = filename;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp13_ = e;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp14_ = _tmp13_->message;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               fprintf (_tmp11_, "Error while attempting to load from %s: %s\n", _tmp12_, _tmp14_);
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _g_error_free0 (e);
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _g_free0 (filename);
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _g_free0 (path);
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _g_key_file_free0 (key_file);
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _g_key_file_unref0 (key_file);
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                return;
-#line 534 "moonshot-local-flat-file-store.c"
+#line 609 "moonshot-local-flat-file-store.c"
        }
-       __finally5:
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       __finally6:
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _g_free0 (filename);
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _g_free0 (path);
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _g_key_file_free0 (key_file);
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _g_key_file_unref0 (key_file);
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                g_clear_error (&_inner_error_);
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                return;
-#line 551 "moonshot-local-flat-file-store.c"
+#line 626 "moonshot-local-flat-file-store.c"
        }
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       _tmp10_ = key_file;
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       _tmp12_ = g_key_file_get_groups (_tmp10_, &_tmp11_);
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       identities_uris = _tmp12_;
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       identities_uris_length1 = _tmp11_;
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp15_ = key_file;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp17_ = g_key_file_get_groups (_tmp15_, &_tmp16_);
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       identities_uris = _tmp17_;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       identities_uris_length1 = _tmp16_;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _identities_uris_size_ = identities_uris_length1;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       _tmp13_ = identities_uris;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       _tmp13__length1 = identities_uris_length1;
-#line 567 "moonshot-local-flat-file-store.c"
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp18_ = identities_uris;
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp18__length1 = identities_uris_length1;
+#line 642 "moonshot-local-flat-file-store.c"
        {
                gchar** identity_collection = NULL;
                gint identity_collection_length1 = 0;
                gint _identity_collection_size_ = 0;
                gint identity_it = 0;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               identity_collection = _tmp13_;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               identity_collection_length1 = _tmp13__length1;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               for (identity_it = 0; identity_it < _tmp13__length1; identity_it = identity_it + 1) {
-#line 579 "moonshot-local-flat-file-store.c"
-                       gchar* _tmp14_ = NULL;
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               identity_collection = _tmp18_;
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               identity_collection_length1 = _tmp18__length1;
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               for (identity_it = 0; identity_it < _tmp18__length1; identity_it = identity_it + 1) {
+#line 654 "moonshot-local-flat-file-store.c"
+                       gchar* _tmp19_ = NULL;
                        gchar* identity = NULL;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp14_ = g_strdup (identity_collection[identity_it]);
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       identity = _tmp14_;
-#line 586 "moonshot-local-flat-file-store.c"
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp19_ = g_strdup (identity_collection[identity_it]);
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       identity = _tmp19_;
+#line 661 "moonshot-local-flat-file-store.c"
                        {
                                {
                                        IdCard* id_card = NULL;
-                                       IdCard* _tmp15_ = NULL;
-                                       gchar* _tmp16_ = NULL;
-                                       GKeyFile* _tmp17_ = NULL;
-                                       const gchar* _tmp18_ = NULL;
-                                       gchar* _tmp19_ = NULL;
                                        IdCard* _tmp20_ = NULL;
                                        gchar* _tmp21_ = NULL;
                                        GKeyFile* _tmp22_ = NULL;
@@ -602,838 +672,891 @@ static void local_flat_file_store_load_id_cards (LocalFlatFileStore* self) {
                                        const gchar* _tmp28_ = NULL;
                                        gchar* _tmp29_ = NULL;
                                        IdCard* _tmp30_ = NULL;
-                                       gchar** _tmp31_ = NULL;
+                                       gchar* _tmp31_ = NULL;
                                        GKeyFile* _tmp32_ = NULL;
                                        const gchar* _tmp33_ = NULL;
-                                       gsize _tmp34_;
-                                       gchar** _tmp35_ = NULL;
-                                       gint _tmp31__length1 = 0;
-                                       gint __tmp31__size_ = 0;
-                                       IdCard* _tmp36_ = NULL;
-                                       gchar* _tmp37_ = NULL;
-                                       GKeyFile* _tmp38_ = NULL;
-                                       const gchar* _tmp39_ = NULL;
-                                       gchar* _tmp40_ = NULL;
+                                       gchar* _tmp34_ = NULL;
+                                       IdCard* _tmp35_ = NULL;
+                                       gchar** _tmp36_ = NULL;
+                                       GKeyFile* _tmp37_ = NULL;
+                                       const gchar* _tmp38_ = NULL;
+                                       gsize _tmp39_;
+                                       gchar** _tmp40_ = NULL;
+                                       gint _tmp36__length1 = 0;
+                                       gint __tmp36__size_ = 0;
                                        IdCard* _tmp41_ = NULL;
-                                       gboolean _tmp42_ = FALSE;
+                                       gchar* _tmp42_ = NULL;
                                        GKeyFile* _tmp43_ = NULL;
                                        const gchar* _tmp44_ = NULL;
-                                       gboolean _tmp45_ = FALSE;
-                                       gboolean _tmp61_ = FALSE;
-                                       gboolean _tmp62_ = FALSE;
-                                       GKeyFile* _tmp63_ = NULL;
-                                       const gchar* _tmp64_ = NULL;
-                                       gboolean _tmp65_ = FALSE;
-                                       gchar* _tmp100_ = NULL;
-                                       GKeyFile* _tmp101_ = NULL;
-                                       const gchar* _tmp102_ = NULL;
-                                       gchar* _tmp103_ = NULL;
-                                       IdCard* _tmp104_ = NULL;
-                                       TrustAnchor* _tmp105_ = NULL;
-                                       TrustAnchor* _tmp106_ = NULL;
-                                       gchar* _tmp107_ = NULL;
+                                       gchar* _tmp45_ = NULL;
+                                       IdCard* _tmp46_ = NULL;
+                                       gboolean _tmp47_ = FALSE;
+                                       GKeyFile* _tmp48_ = NULL;
+                                       const gchar* _tmp49_ = NULL;
+                                       gboolean _tmp50_ = FALSE;
+                                       gboolean _tmp66_ = FALSE;
+                                       gboolean _tmp67_ = FALSE;
+                                       GKeyFile* _tmp68_ = NULL;
+                                       const gchar* _tmp69_ = NULL;
+                                       gboolean _tmp70_ = FALSE;
+                                       gchar* _tmp105_ = NULL;
+                                       GKeyFile* _tmp106_ = NULL;
+                                       const gchar* _tmp107_ = NULL;
                                        gchar* _tmp108_ = NULL;
+                                       gchar* ca_cert = NULL;
                                        gchar* _tmp109_ = NULL;
                                        gchar* _tmp110_ = NULL;
                                        gchar* _tmp111_ = NULL;
-                                       GKeyFile* _tmp112_ = NULL;
-                                       const gchar* _tmp113_ = NULL;
-                                       gchar* _tmp114_ = NULL;
-                                       IdCard* _tmp115_ = NULL;
-                                       TrustAnchor* _tmp116_ = NULL;
-                                       TrustAnchor* _tmp117_ = NULL;
+                                       gchar* _tmp112_ = NULL;
+                                       gchar* server_cert = NULL;
+                                       GKeyFile* _tmp113_ = NULL;
+                                       const gchar* _tmp114_ = NULL;
+                                       gchar* _tmp115_ = NULL;
+                                       gchar* subject = NULL;
+                                       GKeyFile* _tmp116_ = NULL;
+                                       const gchar* _tmp117_ = NULL;
                                        gchar* _tmp118_ = NULL;
+                                       gchar* subject_alt = NULL;
                                        GKeyFile* _tmp119_ = NULL;
                                        const gchar* _tmp120_ = NULL;
                                        gchar* _tmp121_ = NULL;
-                                       IdCard* _tmp122_ = NULL;
-                                       TrustAnchor* _tmp123_ = NULL;
-                                       TrustAnchor* _tmp124_ = NULL;
-                                       gchar* _tmp125_ = NULL;
-                                       GKeyFile* _tmp126_ = NULL;
+                                       TrustAnchor* ta = NULL;
+                                       const gchar* _tmp122_ = NULL;
+                                       const gchar* _tmp123_ = NULL;
+                                       const gchar* _tmp124_ = NULL;
+                                       const gchar* _tmp125_ = NULL;
+                                       TrustAnchor* _tmp126_ = NULL;
+                                       gchar* ta_datetime_added = NULL;
                                        const gchar* _tmp127_ = NULL;
-                                       gchar* _tmp128_ = NULL;
-                                       IdCard* _tmp129_ = NULL;
-                                       TrustAnchor* _tmp130_ = NULL;
-                                       TrustAnchor* _tmp131_ = NULL;
-                                       GeeLinkedList* _tmp132_ = NULL;
+                                       GKeyFile* _tmp128_ = NULL;
+                                       gchar* _tmp129_ = NULL;
+                                       const gchar* _tmp130_ = NULL;
                                        IdCard* _tmp133_ = NULL;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp15_ = id_card_new ();
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       id_card = _tmp15_;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp17_ = key_file;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp18_ = identity;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp19_ = g_key_file_get_string (_tmp17_, _tmp18_, "Issuer", &_inner_error_);
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp16_ = _tmp19_;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_object_unref0 (id_card);
-#line 678 "moonshot-local-flat-file-store.c"
-                                               goto __catch6_g_error;
-                                       }
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp20_ = id_card;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       id_card_set_issuer (_tmp20_, _tmp16_);
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       TrustAnchor* _tmp134_ = NULL;
+                                       GeeLinkedList* _tmp135_ = NULL;
+                                       IdCard* _tmp136_ = NULL;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp20_ = id_card_new ();
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       id_card = _tmp20_;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp22_ = key_file;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp23_ = identity;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp24_ = g_key_file_get_string (_tmp22_, _tmp23_, "Username", &_inner_error_);
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp24_ = g_key_file_get_string (_tmp22_, _tmp23_, "Issuer", &_inner_error_);
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp21_ = _tmp24_;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp16_);
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_object_unref0 (id_card);
-#line 699 "moonshot-local-flat-file-store.c"
-                                               goto __catch6_g_error;
+#line 755 "moonshot-local-flat-file-store.c"
+                                               goto __catch7_g_error;
                                        }
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp25_ = id_card;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       id_card_set_username (_tmp25_, _tmp21_);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       id_card_set_issuer (_tmp25_, _tmp21_);
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp27_ = key_file;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp28_ = identity;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp29_ = g_key_file_get_string (_tmp27_, _tmp28_, "Password", &_inner_error_);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp29_ = g_key_file_get_string (_tmp27_, _tmp28_, "Username", &_inner_error_);
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp26_ = _tmp29_;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp21_);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp16_);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_object_unref0 (id_card);
-#line 722 "moonshot-local-flat-file-store.c"
-                                               goto __catch6_g_error;
+#line 776 "moonshot-local-flat-file-store.c"
+                                               goto __catch7_g_error;
                                        }
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp30_ = id_card;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       id_card_set_password (_tmp30_, _tmp26_);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       id_card_set_username (_tmp30_, _tmp26_);
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp32_ = key_file;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp33_ = identity;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp35_ = g_key_file_get_string_list (_tmp32_, _tmp33_, "Services", &_tmp34_, &_inner_error_);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp31_ = _tmp35_;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp31__length1 = _tmp34_;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       __tmp31__size_ = _tmp31__length1;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp34_ = g_key_file_get_string (_tmp32_, _tmp33_, "Password", &_inner_error_);
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp31_ = _tmp34_;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp26_);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp21_);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp16_);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_object_unref0 (id_card);
-#line 751 "moonshot-local-flat-file-store.c"
-                                               goto __catch6_g_error;
+#line 799 "moonshot-local-flat-file-store.c"
+                                               goto __catch7_g_error;
                                        }
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp36_ = id_card;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       id_card_set_services (_tmp36_, _tmp31_, _tmp31__length1);
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp38_ = key_file;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp39_ = identity;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp40_ = g_key_file_get_string (_tmp38_, _tmp39_, "DisplayName", &_inner_error_);
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp37_ = _tmp40_;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp35_ = id_card;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       id_card_set_password (_tmp35_, _tmp31_);
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp37_ = key_file;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp38_ = identity;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp40_ = g_key_file_get_string_list (_tmp37_, _tmp38_, "Services", &_tmp39_, &_inner_error_);
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp36_ = _tmp40_;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp36__length1 = _tmp39_;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       __tmp36__size_ = _tmp36__length1;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp31_);
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp26_);
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp21_);
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp16_);
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_object_unref0 (id_card);
-#line 778 "moonshot-local-flat-file-store.c"
-                                               goto __catch6_g_error;
+#line 828 "moonshot-local-flat-file-store.c"
+                                               goto __catch7_g_error;
                                        }
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp41_ = id_card;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       id_card_set_display_name (_tmp41_, _tmp37_);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       id_card_update_services (_tmp41_, _tmp36_, _tmp36__length1);
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp43_ = key_file;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp44_ = identity;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp45_ = g_key_file_has_key (_tmp43_, _tmp44_, "StorePassword", &_inner_error_);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp45_ = g_key_file_get_string (_tmp43_, _tmp44_, "DisplayName", &_inner_error_);
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp42_ = _tmp45_;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp37_);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp31_);
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp26_);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp21_);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp16_);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_object_unref0 (id_card);
-#line 807 "moonshot-local-flat-file-store.c"
-                                               goto __catch6_g_error;
-                                       }
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       if (_tmp42_) {
-#line 812 "moonshot-local-flat-file-store.c"
-                                               gchar* _tmp46_ = NULL;
-                                               GKeyFile* _tmp47_ = NULL;
-                                               const gchar* _tmp48_ = NULL;
-                                               gchar* _tmp49_ = NULL;
-                                               IdCard* _tmp50_ = NULL;
-                                               gchar* _tmp51_ = NULL;
-                                               gchar* _tmp52_ = NULL;
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp47_ = key_file;
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp48_ = identity;
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp49_ = g_key_file_get_string (_tmp47_, _tmp48_, "StorePassword", &_inner_error_);
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp46_ = _tmp49_;
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp37_);
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp26_);
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp21_);
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp16_);
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_object_unref0 (id_card);
-#line 842 "moonshot-local-flat-file-store.c"
-                                                       goto __catch6_g_error;
-                                               }
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp50_ = id_card;
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp51_ = _tmp46_;
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp46_ = NULL;
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp52_ = _tmp51_;
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               id_card_set_store_password (_tmp50_, g_strcmp0 (_tmp52_, "yes") == 0);
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp52_);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp46_);
-#line 859 "moonshot-local-flat-file-store.c"
-                                       } else {
-                                               gboolean _tmp53_ = FALSE;
-                                               IdCard* _tmp54_ = NULL;
-                                               const gchar* _tmp55_ = NULL;
-                                               const gchar* _tmp56_ = NULL;
-                                               IdCard* _tmp60_ = NULL;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp54_ = id_card;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp55_ = id_card_get_password (_tmp54_);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp56_ = _tmp55_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               if (_tmp56_ != NULL) {
-#line 874 "moonshot-local-flat-file-store.c"
-                                                       IdCard* _tmp57_ = NULL;
-                                                       const gchar* _tmp58_ = NULL;
-                                                       const gchar* _tmp59_ = NULL;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp57_ = id_card;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp58_ = id_card_get_password (_tmp57_);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp59_ = _tmp58_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp53_ = g_strcmp0 (_tmp59_, "") != 0;
-#line 886 "moonshot-local-flat-file-store.c"
-                                               } else {
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp53_ = FALSE;
-#line 890 "moonshot-local-flat-file-store.c"
-                                               }
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp60_ = id_card;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               id_card_set_store_password (_tmp60_, _tmp53_);
-#line 896 "moonshot-local-flat-file-store.c"
+#line 855 "moonshot-local-flat-file-store.c"
+                                               goto __catch7_g_error;
                                        }
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp46_ = id_card;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       id_card_set_display_name (_tmp46_, _tmp42_);
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp63_ = key_file;
+                                       _tmp48_ = key_file;
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp64_ = identity;
+                                       _tmp49_ = identity;
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp65_ = g_key_file_has_key (_tmp63_, _tmp64_, "Rules-Patterns", &_inner_error_);
+                                       _tmp50_ = g_key_file_has_key (_tmp48_, _tmp49_, "StorePassword", &_inner_error_);
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp62_ = _tmp65_;
+                                       _tmp47_ = _tmp50_;
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        if (G_UNLIKELY (_inner_error_ != NULL)) {
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp37_);
+                                               _g_free0 (_tmp42_);
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
+                                               _g_free0 (_tmp31_);
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp26_);
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp21_);
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp16_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_object_unref0 (id_card);
-#line 920 "moonshot-local-flat-file-store.c"
-                                               goto __catch6_g_error;
+#line 884 "moonshot-local-flat-file-store.c"
+                                               goto __catch7_g_error;
                                        }
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       if (_tmp62_) {
-#line 925 "moonshot-local-flat-file-store.c"
-                                               gboolean _tmp66_ = FALSE;
-                                               GKeyFile* _tmp67_ = NULL;
-                                               const gchar* _tmp68_ = NULL;
-                                               gboolean _tmp69_ = FALSE;
+                                       if (_tmp47_) {
+#line 889 "moonshot-local-flat-file-store.c"
+                                               gchar* _tmp51_ = NULL;
+                                               GKeyFile* _tmp52_ = NULL;
+                                               const gchar* _tmp53_ = NULL;
+                                               gchar* _tmp54_ = NULL;
+                                               IdCard* _tmp55_ = NULL;
+                                               gchar* _tmp56_ = NULL;
+                                               gchar* _tmp57_ = NULL;
 #line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp67_ = key_file;
+                                               _tmp52_ = key_file;
 #line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp68_ = identity;
+                                               _tmp53_ = identity;
 #line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp69_ = g_key_file_has_key (_tmp67_, _tmp68_, "Rules-AlwaysConfirm", &_inner_error_);
+                                               _tmp54_ = g_key_file_get_string (_tmp52_, _tmp53_, "StorePassword", &_inner_error_);
 #line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp66_ = _tmp69_;
+                                               _tmp51_ = _tmp54_;
 #line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                if (G_UNLIKELY (_inner_error_ != NULL)) {
 #line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp37_);
+                                                       _g_free0 (_tmp42_);
 #line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
+                                                       _tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _g_free0 (_tmp31_);
 #line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                        _g_free0 (_tmp26_);
 #line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                        _g_free0 (_tmp21_);
 #line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp16_);
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                        _g_object_unref0 (id_card);
-#line 952 "moonshot-local-flat-file-store.c"
-                                                       goto __catch6_g_error;
+#line 919 "moonshot-local-flat-file-store.c"
+                                                       goto __catch7_g_error;
                                                }
 #line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp61_ = _tmp66_;
-#line 957 "moonshot-local-flat-file-store.c"
-                                       } else {
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp61_ = FALSE;
-#line 961 "moonshot-local-flat-file-store.c"
-                                       }
+                                               _tmp55_ = id_card;
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp56_ = _tmp51_;
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp51_ = NULL;
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp57_ = _tmp56_;
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               id_card_set_store_password (_tmp55_, g_strcmp0 (_tmp57_, "yes") == 0);
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp57_);
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       if (_tmp61_) {
-#line 965 "moonshot-local-flat-file-store.c"
-                                               gchar** rules_patterns = NULL;
-                                               GKeyFile* _tmp70_ = NULL;
-                                               const gchar* _tmp71_ = NULL;
-                                               gsize _tmp72_;
-                                               gchar** _tmp73_ = NULL;
-                                               gint rules_patterns_length1 = 0;
-                                               gint _rules_patterns_size_ = 0;
-                                               gchar** rules_always_conf = NULL;
-                                               GKeyFile* _tmp74_ = NULL;
-                                               const gchar* _tmp75_ = NULL;
-                                               gsize _tmp76_;
-                                               gchar** _tmp77_ = NULL;
-                                               gint rules_always_conf_length1 = 0;
-                                               gint _rules_always_conf_size_ = 0;
-                                               gchar** _tmp78_ = NULL;
-                                               gint _tmp78__length1 = 0;
-                                               gchar** _tmp79_ = NULL;
-                                               gint _tmp79__length1 = 0;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp70_ = key_file;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp71_ = identity;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp73_ = g_key_file_get_string_list (_tmp70_, _tmp71_, "Rules-Patterns", &_tmp72_, &_inner_error_);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               rules_patterns = _tmp73_;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               rules_patterns_length1 = _tmp72_;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _rules_patterns_size_ = rules_patterns_length1;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp37_);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp26_);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp21_);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp16_);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_object_unref0 (id_card);
-#line 1010 "moonshot-local-flat-file-store.c"
-                                                       goto __catch6_g_error;
-                                               }
+                                               _g_free0 (_tmp51_);
+#line 936 "moonshot-local-flat-file-store.c"
+                                       } else {
+                                               gboolean _tmp58_ = FALSE;
+                                               IdCard* _tmp59_ = NULL;
+                                               const gchar* _tmp60_ = NULL;
+                                               const gchar* _tmp61_ = NULL;
+                                               IdCard* _tmp65_ = NULL;
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp74_ = key_file;
+                                               _tmp59_ = id_card;
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp75_ = identity;
+                                               _tmp60_ = id_card_get_password (_tmp59_);
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp77_ = g_key_file_get_string_list (_tmp74_, _tmp75_, "Rules-AlwaysConfirm", &_tmp76_, &_inner_error_);
+                                               _tmp61_ = _tmp60_;
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               rules_always_conf = _tmp77_;
+                                               if (_tmp61_ != NULL) {
+#line 951 "moonshot-local-flat-file-store.c"
+                                                       IdCard* _tmp62_ = NULL;
+                                                       const gchar* _tmp63_ = NULL;
+                                                       const gchar* _tmp64_ = NULL;
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               rules_always_conf_length1 = _tmp76_;
+                                                       _tmp62_ = id_card;
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _rules_always_conf_size_ = rules_always_conf_length1;
+                                                       _tmp63_ = id_card_get_password (_tmp62_);
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+                                                       _tmp64_ = _tmp63_;
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp37_);
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp26_);
+                                                       _tmp58_ = g_strcmp0 (_tmp64_, "") != 0;
+#line 963 "moonshot-local-flat-file-store.c"
+                                               } else {
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp21_);
+                                                       _tmp58_ = FALSE;
+#line 967 "moonshot-local-flat-file-store.c"
+                                               }
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_free0 (_tmp16_);
+                                               _tmp65_ = id_card;
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _g_object_unref0 (id_card);
-#line 1041 "moonshot-local-flat-file-store.c"
-                                                       goto __catch6_g_error;
-                                               }
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp78_ = rules_patterns;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp78__length1 = rules_patterns_length1;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp79_ = rules_always_conf;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp79__length1 = rules_always_conf_length1;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               if (_tmp78__length1 == _tmp79__length1) {
-#line 1054 "moonshot-local-flat-file-store.c"
-                                                       Rule* rules = NULL;
-                                                       gchar** _tmp80_ = NULL;
-                                                       gint _tmp80__length1 = 0;
-                                                       Rule* _tmp81_ = NULL;
-                                                       gint rules_length1 = 0;
-                                                       gint _rules_size_ = 0;
-                                                       IdCard* _tmp98_ = NULL;
-                                                       Rule* _tmp99_ = NULL;
-                                                       gint _tmp99__length1 = 0;
+                                               id_card_set_store_password (_tmp65_, _tmp58_);
+#line 973 "moonshot-local-flat-file-store.c"
+                                       }
 #line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp80_ = rules_patterns;
+                                       _tmp68_ = key_file;
 #line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp80__length1 = rules_patterns_length1;
+                                       _tmp69_ = identity;
 #line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp81_ = g_new0 (Rule, _tmp80__length1);
+                                       _tmp70_ = g_key_file_has_key (_tmp68_, _tmp69_, "Rules-Patterns", &_inner_error_);
 #line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       rules = _tmp81_;
+                                       _tmp67_ = _tmp70_;
 #line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       rules_length1 = _tmp80__length1;
+                                       if (G_UNLIKELY (_inner_error_ != NULL)) {
 #line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _rules_size_ = rules_length1;
-#line 1076 "moonshot-local-flat-file-store.c"
-                                                       {
-                                                               gint i = 0;
+                                               _g_free0 (_tmp42_);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp31_);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp26_);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp21_);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_object_unref0 (id_card);
+#line 997 "moonshot-local-flat-file-store.c"
+                                               goto __catch7_g_error;
+                                       }
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       if (_tmp67_) {
+#line 1002 "moonshot-local-flat-file-store.c"
+                                               gboolean _tmp71_ = FALSE;
+                                               GKeyFile* _tmp72_ = NULL;
+                                               const gchar* _tmp73_ = NULL;
+                                               gboolean _tmp74_ = FALSE;
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                               i = 0;
-#line 1081 "moonshot-local-flat-file-store.c"
-                                                               {
-                                                                       gboolean _tmp82_ = FALSE;
+                                               _tmp72_ = key_file;
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                       _tmp82_ = TRUE;
+                                               _tmp73_ = identity;
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                       while (TRUE) {
-#line 1088 "moonshot-local-flat-file-store.c"
-                                                                               gint _tmp84_ = 0;
-                                                                               gchar** _tmp85_ = NULL;
-                                                                               gint _tmp85__length1 = 0;
-                                                                               Rule* _tmp86_ = NULL;
-                                                                               gint _tmp86__length1 = 0;
-                                                                               gint _tmp87_ = 0;
-                                                                               gchar** _tmp88_ = NULL;
-                                                                               gint _tmp88__length1 = 0;
-                                                                               gint _tmp89_ = 0;
-                                                                               const gchar* _tmp90_ = NULL;
-                                                                               gchar* _tmp91_ = NULL;
-                                                                               gchar** _tmp92_ = NULL;
-                                                                               gint _tmp92__length1 = 0;
-                                                                               gint _tmp93_ = 0;
-                                                                               const gchar* _tmp94_ = NULL;
-                                                                               gchar* _tmp95_ = NULL;
-                                                                               Rule _tmp96_ = {0};
-                                                                               Rule _tmp97_ = {0};
+                                               _tmp74_ = g_key_file_has_key (_tmp72_, _tmp73_, "Rules-AlwaysConfirm", &_inner_error_);
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               if (!_tmp82_) {
-#line 1109 "moonshot-local-flat-file-store.c"
-                                                                                       gint _tmp83_ = 0;
+                                               _tmp71_ = _tmp74_;
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                                       _tmp83_ = i;
+                                               if (G_UNLIKELY (_inner_error_ != NULL)) {
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                                       i = _tmp83_ + 1;
-#line 1115 "moonshot-local-flat-file-store.c"
-                                                                               }
+                                                       _g_free0 (_tmp42_);
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp82_ = FALSE;
+                                                       _tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp84_ = i;
+                                                       _g_free0 (_tmp31_);
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp85_ = rules_patterns;
+                                                       _g_free0 (_tmp26_);
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp85__length1 = rules_patterns_length1;
+                                                       _g_free0 (_tmp21_);
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               if (!(_tmp84_ < _tmp85__length1)) {
+                                                       _g_object_unref0 (id_card);
+#line 1029 "moonshot-local-flat-file-store.c"
+                                                       goto __catch7_g_error;
+                                               }
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                                       break;
-#line 1129 "moonshot-local-flat-file-store.c"
-                                                                               }
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp86_ = rules;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp86__length1 = rules_length1;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp87_ = i;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp88_ = rules_patterns;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp88__length1 = rules_patterns_length1;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp89_ = i;
-#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp90_ = _tmp88_[_tmp89_];
+                                               _tmp66_ = _tmp71_;
+#line 1034 "moonshot-local-flat-file-store.c"
+                                       } else {
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp66_ = FALSE;
+#line 1038 "moonshot-local-flat-file-store.c"
+                                       }
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       if (_tmp66_) {
+#line 1042 "moonshot-local-flat-file-store.c"
+                                               gchar** rules_patterns = NULL;
+                                               GKeyFile* _tmp75_ = NULL;
+                                               const gchar* _tmp76_ = NULL;
+                                               gsize _tmp77_;
+                                               gchar** _tmp78_ = NULL;
+                                               gint rules_patterns_length1 = 0;
+                                               gint _rules_patterns_size_ = 0;
+                                               gchar** rules_always_conf = NULL;
+                                               GKeyFile* _tmp79_ = NULL;
+                                               const gchar* _tmp80_ = NULL;
+                                               gsize _tmp81_;
+                                               gchar** _tmp82_ = NULL;
+                                               gint rules_always_conf_length1 = 0;
+                                               gint _rules_always_conf_size_ = 0;
+                                               gchar** _tmp83_ = NULL;
+                                               gint _tmp83__length1 = 0;
+                                               gchar** _tmp84_ = NULL;
+                                               gint _tmp84__length1 = 0;
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp91_ = g_strdup (_tmp90_);
+                                               _tmp75_ = key_file;
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp92_ = rules_always_conf;
+                                               _tmp76_ = identity;
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp92__length1 = rules_always_conf_length1;
+                                               _tmp78_ = g_key_file_get_string_list (_tmp75_, _tmp76_, "Rules-Patterns", &_tmp77_, &_inner_error_);
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp93_ = i;
+                                               rules_patterns = _tmp78_;
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp94_ = _tmp92_[_tmp93_];
+                                               rules_patterns_length1 = _tmp77_;
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp95_ = g_strdup (_tmp94_);
+                                               _rules_patterns_size_ = rules_patterns_length1;
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _g_free0 (_tmp96_.pattern);
+                                               if (G_UNLIKELY (_inner_error_ != NULL)) {
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp96_.pattern = _tmp91_;
+                                                       _g_free0 (_tmp42_);
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _g_free0 (_tmp96_.always_confirm);
+                                                       _tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp96_.always_confirm = _tmp95_;
+                                                       _g_free0 (_tmp31_);
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               rule_destroy (&_tmp86_[_tmp87_]);
+                                                       _g_free0 (_tmp26_);
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp86_[_tmp87_] = _tmp96_;
+                                                       _g_free0 (_tmp21_);
 #line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                                               _tmp97_ = _tmp86_[_tmp87_];
-#line 1171 "moonshot-local-flat-file-store.c"
+                                                       _g_object_unref0 (id_card);
+#line 1087 "moonshot-local-flat-file-store.c"
+                                                       goto __catch7_g_error;
+                                               }
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp79_ = key_file;
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp80_ = identity;
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp82_ = g_key_file_get_string_list (_tmp79_, _tmp80_, "Rules-AlwaysConfirm", &_tmp81_, &_inner_error_);
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               rules_always_conf = _tmp82_;
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               rules_always_conf_length1 = _tmp81_;
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _rules_always_conf_size_ = rules_always_conf_length1;
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _g_free0 (_tmp42_);
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _g_free0 (_tmp31_);
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _g_free0 (_tmp26_);
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _g_free0 (_tmp21_);
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _g_object_unref0 (id_card);
+#line 1118 "moonshot-local-flat-file-store.c"
+                                                       goto __catch7_g_error;
+                                               }
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp83_ = rules_patterns;
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp83__length1 = rules_patterns_length1;
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp84_ = rules_always_conf;
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp84__length1 = rules_always_conf_length1;
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               if (_tmp83__length1 == _tmp84__length1) {
+#line 1131 "moonshot-local-flat-file-store.c"
+                                                       Rule* rules = NULL;
+                                                       gchar** _tmp85_ = NULL;
+                                                       gint _tmp85__length1 = 0;
+                                                       Rule* _tmp86_ = NULL;
+                                                       gint rules_length1 = 0;
+                                                       gint _rules_size_ = 0;
+                                                       IdCard* _tmp103_ = NULL;
+                                                       Rule* _tmp104_ = NULL;
+                                                       gint _tmp104__length1 = 0;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _tmp85_ = rules_patterns;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _tmp85__length1 = rules_patterns_length1;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _tmp86_ = g_new0 (Rule, _tmp85__length1);
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       rules = _tmp86_;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       rules_length1 = _tmp85__length1;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _rules_size_ = rules_length1;
+#line 1153 "moonshot-local-flat-file-store.c"
+                                                       {
+                                                               gint i = 0;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                               i = 0;
+#line 1158 "moonshot-local-flat-file-store.c"
+                                                               {
+                                                                       gboolean _tmp87_ = FALSE;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                       _tmp87_ = TRUE;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                       while (TRUE) {
+#line 1165 "moonshot-local-flat-file-store.c"
+                                                                               gint _tmp89_ = 0;
+                                                                               gchar** _tmp90_ = NULL;
+                                                                               gint _tmp90__length1 = 0;
+                                                                               Rule* _tmp91_ = NULL;
+                                                                               gint _tmp91__length1 = 0;
+                                                                               gint _tmp92_ = 0;
+                                                                               gchar** _tmp93_ = NULL;
+                                                                               gint _tmp93__length1 = 0;
+                                                                               gint _tmp94_ = 0;
+                                                                               const gchar* _tmp95_ = NULL;
+                                                                               gchar* _tmp96_ = NULL;
+                                                                               gchar** _tmp97_ = NULL;
+                                                                               gint _tmp97__length1 = 0;
+                                                                               gint _tmp98_ = 0;
+                                                                               const gchar* _tmp99_ = NULL;
+                                                                               gchar* _tmp100_ = NULL;
+                                                                               Rule _tmp101_ = {0};
+                                                                               Rule _tmp102_ = {0};
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               if (!_tmp87_) {
+#line 1186 "moonshot-local-flat-file-store.c"
+                                                                                       gint _tmp88_ = 0;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                                       _tmp88_ = i;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                                       i = _tmp88_ + 1;
+#line 1192 "moonshot-local-flat-file-store.c"
+                                                                               }
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp87_ = FALSE;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp89_ = i;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp90_ = rules_patterns;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp90__length1 = rules_patterns_length1;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               if (!(_tmp89_ < _tmp90__length1)) {
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                                       break;
+#line 1206 "moonshot-local-flat-file-store.c"
+                                                                               }
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp91_ = rules;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp91__length1 = rules_length1;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp92_ = i;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp93_ = rules_patterns;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp93__length1 = rules_patterns_length1;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp94_ = i;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp95_ = _tmp93_[_tmp94_];
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp96_ = g_strdup (_tmp95_);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp97_ = rules_always_conf;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp97__length1 = rules_always_conf_length1;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp98_ = i;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp99_ = _tmp97_[_tmp98_];
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp100_ = g_strdup (_tmp99_);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _g_free0 (_tmp101_.pattern);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp101_.pattern = _tmp96_;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _g_free0 (_tmp101_.always_confirm);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp101_.always_confirm = _tmp100_;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               rule_destroy (&_tmp91_[_tmp92_]);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp91_[_tmp92_] = _tmp101_;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                                               _tmp102_ = _tmp91_[_tmp92_];
+#line 1248 "moonshot-local-flat-file-store.c"
                                                                        }
                                                                }
                                                        }
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp98_ = id_card;
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp99_ = rules;
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp99__length1 = rules_length1;
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       id_card_set_rules (_tmp98_, _tmp99_, _tmp99__length1);
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _tmp103_ = id_card;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _tmp104_ = rules;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _tmp104__length1 = rules_length1;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       id_card_set_rules (_tmp103_, _tmp104_, _tmp104__length1);
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                        rules = (_vala_Rule_array_free (rules, rules_length1), NULL);
-#line 1185 "moonshot-local-flat-file-store.c"
+#line 1262 "moonshot-local-flat-file-store.c"
                                                }
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                rules_always_conf = (_vala_array_free (rules_always_conf, rules_always_conf_length1, (GDestroyNotify) g_free), NULL);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
-#line 1191 "moonshot-local-flat-file-store.c"
+#line 1268 "moonshot-local-flat-file-store.c"
                                        }
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp101_ = key_file;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp102_ = identity;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp103_ = g_key_file_get_string (_tmp101_, _tmp102_, "CA-Cert", &_inner_error_);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp100_ = _tmp103_;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp106_ = key_file;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp107_ = identity;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp108_ = g_key_file_get_string (_tmp106_, _tmp107_, "CA-Cert", &_inner_error_);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp105_ = _tmp108_;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp37_);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp42_);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp31_);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp26_);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp21_);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp16_);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_object_unref0 (id_card);
-#line 1215 "moonshot-local-flat-file-store.c"
-                                               goto __catch6_g_error;
+#line 1292 "moonshot-local-flat-file-store.c"
+                                               goto __catch7_g_error;
                                        }
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp104_ = id_card;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp105_ = id_card_get_trust_anchor (_tmp104_);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp106_ = _tmp105_;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp107_ = _tmp100_;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp100_ = NULL;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp108_ = _tmp107_;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp109_ = string_strip (_tmp108_);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp109_ = _tmp105_;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp105_ = NULL;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp110_ = _tmp109_;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       trust_anchor_set_ca_cert (_tmp106_, _tmp110_);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp111_ = string_strip (_tmp110_);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp112_ = _tmp111_;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _g_free0 (_tmp110_);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _g_free0 (_tmp108_);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp112_ = key_file;
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp113_ = identity;
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp114_ = g_key_file_get_string (_tmp112_, _tmp113_, "Subject", &_inner_error_);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp111_ = _tmp114_;
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       ca_cert = _tmp112_;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp113_ = key_file;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp114_ = identity;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp115_ = g_key_file_get_string (_tmp113_, _tmp114_, "ServerCert", &_inner_error_);
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       server_cert = _tmp115_;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp100_);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp37_);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (ca_cert);
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp105_);
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp42_);
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp31_);
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp26_);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp21_);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp16_);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_object_unref0 (id_card);
-#line 1264 "moonshot-local-flat-file-store.c"
-                                               goto __catch6_g_error;
+#line 1335 "moonshot-local-flat-file-store.c"
+                                               goto __catch7_g_error;
                                        }
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp115_ = id_card;
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp116_ = id_card_get_trust_anchor (_tmp115_);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp117_ = _tmp116_;
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       trust_anchor_set_subject (_tmp117_, _tmp111_);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp119_ = key_file;
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp120_ = identity;
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp121_ = g_key_file_get_string (_tmp119_, _tmp120_, "SubjectAlt", &_inner_error_);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp118_ = _tmp121_;
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp116_ = key_file;
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp117_ = identity;
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp118_ = g_key_file_get_string (_tmp116_, _tmp117_, "Subject", &_inner_error_);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       subject = _tmp118_;
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp111_);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp100_);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp37_);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (server_cert);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (ca_cert);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp105_);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp42_);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp31_);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp26_);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp21_);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp16_);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_object_unref0 (id_card);
-#line 1301 "moonshot-local-flat-file-store.c"
-                                               goto __catch6_g_error;
+#line 1366 "moonshot-local-flat-file-store.c"
+                                               goto __catch7_g_error;
                                        }
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp122_ = id_card;
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp123_ = id_card_get_trust_anchor (_tmp122_);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp124_ = _tmp123_;
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       trust_anchor_set_subject_alt (_tmp124_, _tmp118_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp126_ = key_file;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp127_ = identity;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp128_ = g_key_file_get_string (_tmp126_, _tmp127_, "ServerCert", &_inner_error_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp125_ = _tmp128_;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp119_ = key_file;
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp120_ = identity;
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp121_ = g_key_file_get_string (_tmp119_, _tmp120_, "SubjectAlt", &_inner_error_);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       subject_alt = _tmp121_;
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp118_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp111_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp100_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp37_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (subject);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (server_cert);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (ca_cert);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp105_);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp42_);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp31_);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp26_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_free0 (_tmp21_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp16_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                                _g_object_unref0 (id_card);
-#line 1340 "moonshot-local-flat-file-store.c"
-                                               goto __catch6_g_error;
+#line 1399 "moonshot-local-flat-file-store.c"
+                                               goto __catch7_g_error;
+                                       }
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp122_ = ca_cert;
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp123_ = server_cert;
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp124_ = subject;
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp125_ = subject_alt;
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp126_ = trust_anchor_new (_tmp122_, _tmp123_, _tmp124_, _tmp125_);
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       ta = _tmp126_;
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp127_ = identity;
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp128_ = key_file;
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp129_ = get_string_setting (_tmp127_, "TA_DateTime_Added", "", _tmp128_);
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       ta_datetime_added = _tmp129_;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp130_ = ta_datetime_added;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       if (g_strcmp0 (_tmp130_, "") != 0) {
+#line 1426 "moonshot-local-flat-file-store.c"
+                                               TrustAnchor* _tmp131_ = NULL;
+                                               const gchar* _tmp132_ = NULL;
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp131_ = ta;
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp132_ = ta_datetime_added;
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               trust_anchor_set_datetime_added (_tmp131_, _tmp132_);
+#line 1435 "moonshot-local-flat-file-store.c"
                                        }
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp129_ = id_card;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp130_ = id_card_get_trust_anchor (_tmp129_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp131_ = _tmp130_;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       trust_anchor_set_server_cert (_tmp131_, _tmp125_);
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp132_ = self->priv->id_card_list;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _tmp133_ = id_card;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp132_, _tmp133_);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _g_free0 (_tmp125_);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _g_free0 (_tmp118_);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _g_free0 (_tmp111_);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _g_free0 (_tmp100_);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _g_free0 (_tmp37_);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp134_ = ta;
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       id_card_set_trust_anchor_from_store (_tmp133_, _tmp134_);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp135_ = self->priv->id_card_list;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp136_ = id_card;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp135_, _tmp136_);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _g_free0 (ta_datetime_added);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _g_object_unref0 (ta);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _g_free0 (subject_alt);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _g_free0 (subject);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _g_free0 (server_cert);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _g_free0 (ca_cert);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _g_free0 (_tmp105_);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _g_free0 (_tmp42_);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _g_free0 (_tmp31_);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _g_free0 (_tmp26_);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _g_free0 (_tmp21_);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _g_free0 (_tmp16_);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _g_object_unref0 (id_card);
-#line 1377 "moonshot-local-flat-file-store.c"
+#line 1475 "moonshot-local-flat-file-store.c"
                                }
-                               goto __finally6;
-                               __catch6_g_error:
+                               goto __finally7;
+                               __catch7_g_error:
                                {
                                        GError* e = NULL;
-                                       FILE* _tmp134_ = NULL;
-                                       GError* _tmp135_ = NULL;
-                                       const gchar* _tmp136_ = NULL;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       MoonshotLogger* _tmp137_ = NULL;
+                                       const gchar* _tmp138_ = NULL;
+                                       GError* _tmp139_ = NULL;
+                                       const gchar* _tmp140_ = NULL;
+                                       gchar* _tmp141_ = NULL;
+                                       gchar* _tmp142_ = NULL;
+                                       FILE* _tmp143_ = NULL;
+                                       const gchar* _tmp144_ = NULL;
+                                       GError* _tmp145_ = NULL;
+                                       const gchar* _tmp146_ = NULL;
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        e = _inner_error_;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _inner_error_ = NULL;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp134_ = stdout;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp135_ = e;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp136_ = _tmp135_->message;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       fprintf (_tmp134_, "Error:  %s\n", _tmp136_);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp137_ = local_flat_file_store_logger;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp138_ = filename;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp139_ = e;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp140_ = _tmp139_->message;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp141_ = g_strdup_printf ("load_id_cards: Error while loading keyfile %s: %s\n", _tmp138_, _tmp140_);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp142_ = _tmp141_;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       moonshot_logger_error (_tmp137_, _tmp142_, NULL);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _g_free0 (_tmp142_);
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp143_ = stdout;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp144_ = filename;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp145_ = e;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp146_ = _tmp145_->message;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       fprintf (_tmp143_, "Error while attempting to load from %s: %s\n", _tmp144_, _tmp146_);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _g_error_free0 (e);
-#line 1400 "moonshot-local-flat-file-store.c"
+#line 1523 "moonshot-local-flat-file-store.c"
                                }
-                               __finally6:
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               __finally7:
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _g_free0 (identity);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        identities_uris = (_vala_array_free (identities_uris, identities_uris_length1, (GDestroyNotify) g_free), NULL);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _g_free0 (filename);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        _g_free0 (path);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _g_key_file_free0 (key_file);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _g_key_file_unref0 (key_file);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        g_clear_error (&_inner_error_);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                        return;
-#line 1421 "moonshot-local-flat-file-store.c"
+#line 1544 "moonshot-local-flat-file-store.c"
                                }
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                _g_free0 (identity);
-#line 1425 "moonshot-local-flat-file-store.c"
+#line 1548 "moonshot-local-flat-file-store.c"
                        }
                }
        }
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        identities_uris = (_vala_array_free (identities_uris, identities_uris_length1, (GDestroyNotify) g_free), NULL);
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _g_free0 (filename);
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _g_free0 (path);
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       _g_key_file_free0 (key_file);
-#line 1437 "moonshot-local-flat-file-store.c"
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _g_key_file_unref0 (key_file);
+#line 1560 "moonshot-local-flat-file-store.c"
 }
 
 
@@ -1444,77 +1567,56 @@ static gchar* local_flat_file_store_get_data_dir (LocalFlatFileStore* self) {
        gchar* _tmp1_ = NULL;
        const gchar* _tmp2_ = NULL;
        gboolean _tmp3_ = FALSE;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        g_return_val_if_fail (self != NULL, NULL);
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp0_ = g_get_user_data_dir ();
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp1_ = g_build_filename (_tmp0_, PACKAGE_TARNAME, NULL);
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _g_free0 (path);
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        path = _tmp1_;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp2_ = path;
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp3_ = g_file_test (_tmp2_, G_FILE_TEST_EXISTS);
-#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        if (!_tmp3_) {
-#line 1464 "moonshot-local-flat-file-store.c"
+#line 1587 "moonshot-local-flat-file-store.c"
                const gchar* _tmp4_ = NULL;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _tmp4_ = path;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                g_mkdir_with_parents (_tmp4_, 0700);
-#line 1470 "moonshot-local-flat-file-store.c"
+#line 1593 "moonshot-local-flat-file-store.c"
        }
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        result = path;
-#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        return result;
-#line 1476 "moonshot-local-flat-file-store.c"
+#line 1599 "moonshot-local-flat-file-store.c"
 }
 
 
 static Rule* _vala_array_dup1 (Rule* self, int length) {
        Rule* result;
        int i;
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        result = g_new0 (Rule, length);
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        for (i = 0; i < length; i++) {
-#line 1487 "moonshot-local-flat-file-store.c"
+#line 1610 "moonshot-local-flat-file-store.c"
                Rule _tmp0_ = {0};
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                rule_copy (&self[i], &_tmp0_);
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               result[i] = _tmp0_;
-#line 1493 "moonshot-local-flat-file-store.c"
-       }
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       return result;
-#line 1497 "moonshot-local-flat-file-store.c"
-}
-
-
-static gchar** _vala_array_dup2 (gchar** self, int length) {
-       gchar** result;
-       int i;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       result = g_new0 (gchar*, length + 1);
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       for (i = 0; i < length; i++) {
-#line 1508 "moonshot-local-flat-file-store.c"
-               gchar* _tmp0_ = NULL;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp0_ = g_strdup (self[i]);
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                result[i] = _tmp0_;
-#line 1514 "moonshot-local-flat-file-store.c"
+#line 1616 "moonshot-local-flat-file-store.c"
        }
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        return result;
-#line 1518 "moonshot-local-flat-file-store.c"
+#line 1620 "moonshot-local-flat-file-store.c"
 }
 
 
@@ -1530,58 +1632,59 @@ static guint8* string_get_data (const gchar* self, int* result_length1) {
        gint _tmp3__length1 = 0;
        guint8* _tmp4_ = NULL;
        gint _tmp4__length1 = 0;
-#line 1300 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1406 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        g_return_val_if_fail (self != NULL, NULL);
-#line 1301 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1407 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        res = (guint8*) self;
-#line 1301 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1407 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        res_length1 = -1;
-#line 1301 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1407 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _res_size_ = res_length1;
-#line 1302 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp0_ = strlen (self);
-#line 1302 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp1_ = _tmp0_;
-#line 1302 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        res_length1 = (gint) _tmp1_;
-#line 1302 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp2_ = res_length1;
-#line 1303 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp3_ = res;
-#line 1303 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp3__length1 = res_length1;
-#line 1303 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp4_ = _tmp3_;
-#line 1303 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp4__length1 = _tmp3__length1;
-#line 1303 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        if (result_length1) {
-#line 1303 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                *result_length1 = _tmp4__length1;
-#line 1562 "moonshot-local-flat-file-store.c"
+#line 1664 "moonshot-local-flat-file-store.c"
        }
-#line 1303 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        result = _tmp4_;
-#line 1303 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        return result;
-#line 1568 "moonshot-local-flat-file-store.c"
+#line 1670 "moonshot-local-flat-file-store.c"
 }
 
 
-void local_flat_file_store_store_id_cards (LocalFlatFileStore* self) {
+static void local_flat_file_store_real_store_id_cards (IIdentityCardStore* base) {
+       LocalFlatFileStore * self;
        GKeyFile* key_file = NULL;
        GKeyFile* _tmp0_ = NULL;
        gchar* text = NULL;
-       GKeyFile* _tmp153_ = NULL;
-       gchar* _tmp154_ = NULL;
+       GKeyFile* _tmp192_ = NULL;
+       gchar* _tmp193_ = NULL;
        GError * _inner_error_ = NULL;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       g_return_if_fail (self != NULL);
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       self = (LocalFlatFileStore*) base;
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _tmp0_ = g_key_file_new ();
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        key_file = _tmp0_;
-#line 1585 "moonshot-local-flat-file-store.c"
+#line 1688 "moonshot-local-flat-file-store.c"
        {
                GeeLinkedList* _id_card_list = NULL;
                GeeLinkedList* _tmp1_ = NULL;
@@ -1591,25 +1694,25 @@ void local_flat_file_store_store_id_cards (LocalFlatFileStore* self) {
                gint _tmp4_ = 0;
                gint _tmp5_ = 0;
                gint _id_card_index = 0;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _tmp1_ = self->priv->id_card_list;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _tmp2_ = _g_object_ref0 (_tmp1_);
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _id_card_list = _tmp2_;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _tmp3_ = _id_card_list;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp4_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp3_);
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _tmp5_ = _tmp4_;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _id_card_size = _tmp5_;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _id_card_index = -1;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                while (TRUE) {
-#line 1613 "moonshot-local-flat-file-store.c"
+#line 1716 "moonshot-local-flat-file-store.c"
                        gint _tmp6_ = 0;
                        gint _tmp7_ = 0;
                        gint _tmp8_ = 0;
@@ -1617,890 +1720,1036 @@ void local_flat_file_store_store_id_cards (LocalFlatFileStore* self) {
                        GeeLinkedList* _tmp9_ = NULL;
                        gint _tmp10_ = 0;
                        gpointer _tmp11_ = NULL;
+                       MoonshotLogger* _tmp12_ = NULL;
+                       IdCard* _tmp13_ = NULL;
+                       const gchar* _tmp14_ = NULL;
+                       const gchar* _tmp15_ = NULL;
+                       const gchar* _tmp16_ = NULL;
+                       gchar* _tmp17_ = NULL;
+                       gchar* _tmp18_ = NULL;
                        Rule* rules = NULL;
-                       IdCard* _tmp12_ = NULL;
-                       Rule* _tmp13_ = NULL;
-                       gint _tmp13__length1 = 0;
-                       Rule* _tmp14_ = NULL;
-                       gint _tmp14__length1 = 0;
-                       Rule* _tmp15_ = NULL;
-                       gint _tmp15__length1 = 0;
+                       IdCard* _tmp19_ = NULL;
+                       Rule* _tmp20_ = NULL;
+                       gint _tmp20__length1 = 0;
+                       Rule* _tmp21_ = NULL;
+                       gint _tmp21__length1 = 0;
+                       Rule* _tmp22_ = NULL;
+                       gint _tmp22__length1 = 0;
                        gint rules_length1 = 0;
                        gint _rules_size_ = 0;
-                       gchar** services = NULL;
-                       IdCard* _tmp16_ = NULL;
-                       gchar** _tmp17_ = NULL;
-                       gint _tmp17__length1 = 0;
-                       gchar** _tmp18_ = NULL;
-                       gint _tmp18__length1 = 0;
-                       gchar** _tmp19_ = NULL;
-                       gint _tmp19__length1 = 0;
-                       gint services_length1 = 0;
-                       gint _services_size_ = 0;
-                       gchar** empty = NULL;
-                       gchar** _tmp20_ = NULL;
-                       gint empty_length1 = 0;
-                       gint _empty_size_ = 0;
                        gchar** rules_patterns = NULL;
-                       Rule* _tmp21_ = NULL;
-                       gint _tmp21__length1 = 0;
-                       gchar** _tmp22_ = NULL;
-                       gint rules_patterns_length1 = 0;
-                       gint _rules_patterns_size_ = 0;
-                       gchar** rules_always_conf = NULL;
                        Rule* _tmp23_ = NULL;
                        gint _tmp23__length1 = 0;
                        gchar** _tmp24_ = NULL;
+                       gint rules_patterns_length1 = 0;
+                       gint _rules_patterns_size_ = 0;
+                       gchar** rules_always_conf = NULL;
+                       Rule* _tmp25_ = NULL;
+                       gint _tmp25__length1 = 0;
+                       gchar** _tmp26_ = NULL;
                        gint rules_always_conf_length1 = 0;
                        gint _rules_always_conf_size_ = 0;
-                       const gchar* _tmp45_ = NULL;
-                       IdCard* _tmp46_ = NULL;
                        const gchar* _tmp47_ = NULL;
-                       const gchar* _tmp48_ = NULL;
-                       GKeyFile* _tmp49_ = NULL;
-                       IdCard* _tmp50_ = NULL;
-                       const gchar* _tmp51_ = NULL;
-                       const gchar* _tmp52_ = NULL;
+                       IdCard* _tmp48_ = NULL;
+                       const gchar* _tmp49_ = NULL;
+                       const gchar* _tmp50_ = NULL;
+                       GKeyFile* _tmp51_ = NULL;
+                       IdCard* _tmp52_ = NULL;
                        const gchar* _tmp53_ = NULL;
-                       IdCard* _tmp54_ = NULL;
+                       const gchar* _tmp54_ = NULL;
                        const gchar* _tmp55_ = NULL;
-                       const gchar* _tmp56_ = NULL;
-                       GKeyFile* _tmp57_ = NULL;
-                       IdCard* _tmp58_ = NULL;
-                       const gchar* _tmp59_ = NULL;
-                       const gchar* _tmp60_ = NULL;
+                       IdCard* _tmp56_ = NULL;
+                       const gchar* _tmp57_ = NULL;
+                       const gchar* _tmp58_ = NULL;
+                       GKeyFile* _tmp59_ = NULL;
+                       IdCard* _tmp60_ = NULL;
                        const gchar* _tmp61_ = NULL;
-                       IdCard* _tmp62_ = NULL;
+                       const gchar* _tmp62_ = NULL;
                        const gchar* _tmp63_ = NULL;
-                       const gchar* _tmp64_ = NULL;
-                       GKeyFile* _tmp65_ = NULL;
-                       IdCard* _tmp66_ = NULL;
-                       const gchar* _tmp67_ = NULL;
-                       const gchar* _tmp68_ = NULL;
-                       gboolean _tmp69_ = FALSE;
-                       IdCard* _tmp70_ = NULL;
+                       IdCard* _tmp64_ = NULL;
+                       const gchar* _tmp65_ = NULL;
+                       const gchar* _tmp66_ = NULL;
+                       GKeyFile* _tmp67_ = NULL;
+                       IdCard* _tmp68_ = NULL;
+                       const gchar* _tmp69_ = NULL;
+                       const gchar* _tmp70_ = NULL;
                        gboolean _tmp71_ = FALSE;
-                       gboolean _tmp72_ = FALSE;
-                       gchar** _tmp87_ = NULL;
-                       gchar** _tmp88_ = NULL;
-                       gint _tmp88__length1 = 0;
-                       gint _tmp87__length1 = 0;
-                       gint __tmp87__size_ = 0;
-                       GKeyFile* _tmp90_ = NULL;
-                       IdCard* _tmp91_ = NULL;
-                       const gchar* _tmp92_ = NULL;
-                       const gchar* _tmp93_ = NULL;
-                       Rule* _tmp94_ = NULL;
-                       gint _tmp94__length1 = 0;
-                       const gchar* _tmp105_ = NULL;
-                       IdCard* _tmp106_ = NULL;
-                       gboolean _tmp107_ = FALSE;
-                       gboolean _tmp108_ = FALSE;
-                       GKeyFile* _tmp109_ = NULL;
-                       IdCard* _tmp110_ = NULL;
-                       const gchar* _tmp111_ = NULL;
-                       const gchar* _tmp112_ = NULL;
+                       IdCard* _tmp72_ = NULL;
+                       gboolean _tmp73_ = FALSE;
+                       gboolean _tmp74_ = FALSE;
+                       gchar** svcs = NULL;
+                       IdCard* _tmp89_ = NULL;
+                       GeeArrayList* _tmp90_ = NULL;
+                       GeeArrayList* _tmp91_ = NULL;
+                       gint _tmp92_ = 0;
+                       gint _tmp93_ = 0;
+                       gchar** _tmp94_ = NULL;
+                       gint svcs_length1 = 0;
+                       gint _svcs_size_ = 0;
+                       GKeyFile* _tmp111_ = NULL;
+                       IdCard* _tmp112_ = NULL;
                        const gchar* _tmp113_ = NULL;
-                       IdCard* _tmp114_ = NULL;
-                       TrustAnchor* _tmp115_ = NULL;
-                       TrustAnchor* _tmp116_ = NULL;
-                       const gchar* _tmp117_ = NULL;
-                       const gchar* _tmp118_ = NULL;
-                       GKeyFile* _tmp119_ = NULL;
-                       IdCard* _tmp120_ = NULL;
-                       const gchar* _tmp121_ = NULL;
-                       const gchar* _tmp122_ = NULL;
-                       const gchar* _tmp123_ = NULL;
-                       IdCard* _tmp124_ = NULL;
-                       TrustAnchor* _tmp125_ = NULL;
-                       TrustAnchor* _tmp126_ = NULL;
+                       const gchar* _tmp114_ = NULL;
+                       gchar** _tmp115_ = NULL;
+                       gint _tmp115__length1 = 0;
+                       Rule* _tmp116_ = NULL;
+                       gint _tmp116__length1 = 0;
                        const gchar* _tmp127_ = NULL;
-                       const gchar* _tmp128_ = NULL;
-                       GKeyFile* _tmp129_ = NULL;
-                       IdCard* _tmp130_ = NULL;
-                       const gchar* _tmp131_ = NULL;
-                       const gchar* _tmp132_ = NULL;
+                       IdCard* _tmp128_ = NULL;
+                       gboolean _tmp129_ = FALSE;
+                       gboolean _tmp130_ = FALSE;
+                       GKeyFile* _tmp131_ = NULL;
+                       IdCard* _tmp132_ = NULL;
                        const gchar* _tmp133_ = NULL;
-                       IdCard* _tmp134_ = NULL;
-                       TrustAnchor* _tmp135_ = NULL;
-                       TrustAnchor* _tmp136_ = NULL;
+                       const gchar* _tmp134_ = NULL;
+                       GKeyFile* _tmp135_ = NULL;
+                       IdCard* _tmp136_ = NULL;
                        const gchar* _tmp137_ = NULL;
                        const gchar* _tmp138_ = NULL;
-                       GKeyFile* _tmp139_ = NULL;
-                       IdCard* _tmp140_ = NULL;
-                       const gchar* _tmp141_ = NULL;
+                       IdCard* _tmp139_ = NULL;
+                       TrustAnchor* _tmp140_ = NULL;
+                       TrustAnchor* _tmp141_ = NULL;
                        const gchar* _tmp142_ = NULL;
                        const gchar* _tmp143_ = NULL;
-                       IdCard* _tmp144_ = NULL;
-                       TrustAnchor* _tmp145_ = NULL;
-                       TrustAnchor* _tmp146_ = NULL;
+                       GKeyFile* _tmp144_ = NULL;
+                       IdCard* _tmp145_ = NULL;
+                       const gchar* _tmp146_ = NULL;
                        const gchar* _tmp147_ = NULL;
-                       const gchar* _tmp148_ = NULL;
-                       GKeyFile* _tmp149_ = NULL;
-                       IdCard* _tmp150_ = NULL;
+                       IdCard* _tmp148_ = NULL;
+                       TrustAnchor* _tmp149_ = NULL;
+                       TrustAnchor* _tmp150_ = NULL;
                        const gchar* _tmp151_ = NULL;
                        const gchar* _tmp152_ = NULL;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       GKeyFile* _tmp153_ = NULL;
+                       IdCard* _tmp154_ = NULL;
+                       const gchar* _tmp155_ = NULL;
+                       const gchar* _tmp156_ = NULL;
+                       IdCard* _tmp157_ = NULL;
+                       TrustAnchor* _tmp158_ = NULL;
+                       TrustAnchor* _tmp159_ = NULL;
+                       const gchar* _tmp160_ = NULL;
+                       const gchar* _tmp161_ = NULL;
+                       GKeyFile* _tmp162_ = NULL;
+                       IdCard* _tmp163_ = NULL;
+                       const gchar* _tmp164_ = NULL;
+                       const gchar* _tmp165_ = NULL;
+                       IdCard* _tmp166_ = NULL;
+                       TrustAnchor* _tmp167_ = NULL;
+                       TrustAnchor* _tmp168_ = NULL;
+                       const gchar* _tmp169_ = NULL;
+                       const gchar* _tmp170_ = NULL;
+                       IdCard* _tmp171_ = NULL;
+                       TrustAnchor* _tmp172_ = NULL;
+                       TrustAnchor* _tmp173_ = NULL;
+                       const gchar* _tmp174_ = NULL;
+                       const gchar* _tmp175_ = NULL;
+                       MoonshotLogger* _tmp185_ = NULL;
+                       IdCard* _tmp186_ = NULL;
+                       const gchar* _tmp187_ = NULL;
+                       const gchar* _tmp188_ = NULL;
+                       const gchar* _tmp189_ = NULL;
+                       gchar* _tmp190_ = NULL;
+                       gchar* _tmp191_ = NULL;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp6_ = _id_card_index;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _id_card_index = _tmp6_ + 1;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp7_ = _id_card_index;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp8_ = _id_card_size;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        if (!(_tmp7_ < _tmp8_)) {
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                                break;
-#line 1756 "moonshot-local-flat-file-store.c"
+#line 1866 "moonshot-local-flat-file-store.c"
                        }
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp9_ = _id_card_list;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp10_ = _id_card_index;
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        id_card = (IdCard*) _tmp11_;
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp12_ = id_card;
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp13_ = id_card_get_rules (_tmp12_, &_tmp13__length1);
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp14_ = _tmp13_;
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp14__length1 = _tmp13__length1;
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp15_ = (_tmp14_ != NULL) ? _vala_array_dup1 (_tmp14_, _tmp14__length1) : ((gpointer) _tmp14_);
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp15__length1 = _tmp14__length1;
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       rules = _tmp15_;
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       rules_length1 = _tmp15__length1;
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _rules_size_ = rules_length1;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp16_ = id_card;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp17_ = id_card_get_services (_tmp16_, &_tmp17__length1);
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp18_ = _tmp17_;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp18__length1 = _tmp17__length1;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp19_ = (_tmp18_ != NULL) ? _vala_array_dup2 (_tmp18_, _tmp18__length1) : ((gpointer) _tmp18_);
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp19__length1 = _tmp18__length1;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       services = _tmp19_;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       services_length1 = _tmp19__length1;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _services_size_ = services_length1;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp20_ = g_new0 (gchar*, 0 + 1);
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       empty = _tmp20_;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       empty_length1 = 0;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _empty_size_ = empty_length1;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp21_ = rules;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp21__length1 = rules_length1;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp22_ = g_new0 (gchar*, _tmp21__length1 + 1);
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       rules_patterns = _tmp22_;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       rules_patterns_length1 = _tmp21__length1;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _rules_patterns_size_ = rules_patterns_length1;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp23_ = rules;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp23__length1 = rules_length1;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp24_ = g_new0 (gchar*, _tmp23__length1 + 1);
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       rules_always_conf = _tmp24_;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       rules_always_conf_length1 = _tmp23__length1;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _rules_always_conf_size_ = rules_always_conf_length1;
-#line 1834 "moonshot-local-flat-file-store.c"
-                       {
-                               gint i = 0;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               i = 0;
-#line 1839 "moonshot-local-flat-file-store.c"
-                               {
-                                       gboolean _tmp25_ = FALSE;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       _tmp25_ = TRUE;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                       while (TRUE) {
-#line 1846 "moonshot-local-flat-file-store.c"
-                                               gint _tmp27_ = 0;
-                                               Rule* _tmp28_ = NULL;
-                                               gint _tmp28__length1 = 0;
-                                               gchar** _tmp29_ = NULL;
-                                               gint _tmp29__length1 = 0;
-                                               gint _tmp30_ = 0;
-                                               Rule* _tmp31_ = NULL;
-                                               gint _tmp31__length1 = 0;
-                                               gint _tmp32_ = 0;
-                                               Rule _tmp33_ = {0};
-                                               const gchar* _tmp34_ = NULL;
-                                               gchar* _tmp35_ = NULL;
-                                               gchar* _tmp36_ = NULL;
-                                               gchar** _tmp37_ = NULL;
-                                               gint _tmp37__length1 = 0;
-                                               gint _tmp38_ = 0;
-                                               Rule* _tmp39_ = NULL;
-                                               gint _tmp39__length1 = 0;
-                                               gint _tmp40_ = 0;
-                                               Rule _tmp41_ = {0};
-                                               const gchar* _tmp42_ = NULL;
-                                               gchar* _tmp43_ = NULL;
-                                               gchar* _tmp44_ = NULL;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               if (!_tmp25_) {
-#line 1872 "moonshot-local-flat-file-store.c"
-                                                       gint _tmp26_ = 0;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       _tmp26_ = i;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       i = _tmp26_ + 1;
-#line 1878 "moonshot-local-flat-file-store.c"
-                                               }
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp25_ = FALSE;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp27_ = i;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp28_ = rules;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp28__length1 = rules_length1;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               if (!(_tmp27_ < _tmp28__length1)) {
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                                       break;
-#line 1892 "moonshot-local-flat-file-store.c"
-                                               }
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp29_ = rules_patterns;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp29__length1 = rules_patterns_length1;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp30_ = i;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp31_ = rules;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp31__length1 = rules_length1;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp32_ = i;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp33_ = _tmp31_[_tmp32_];
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp34_ = _tmp33_.pattern;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp35_ = g_strdup (_tmp34_);
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp29_[_tmp30_]);
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp29_[_tmp30_] = _tmp35_;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp36_ = _tmp29_[_tmp30_];
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp37_ = rules_always_conf;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp37__length1 = rules_always_conf_length1;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp38_ = i;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp39_ = rules;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp39__length1 = rules_length1;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp40_ = i;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp41_ = _tmp39_[_tmp40_];
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp42_ = _tmp41_.always_confirm;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp43_ = g_strdup (_tmp42_);
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _g_free0 (_tmp37_[_tmp38_]);
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp37_[_tmp38_] = _tmp43_;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                                               _tmp44_ = _tmp37_[_tmp38_];
-#line 1942 "moonshot-local-flat-file-store.c"
-                                       }
-                               }
-                       }
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp46_ = id_card;
+                       _tmp12_ = local_flat_file_store_logger;
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp47_ = id_card_get_issuer (_tmp46_);
+                       _tmp13_ = id_card;
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp48_ = _tmp47_;
+                       _tmp14_ = id_card_get_display_name (_tmp13_);
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp45_ = _tmp48_;
+                       _tmp15_ = _tmp14_;
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       if (_tmp45_ == NULL) {
+                       _tmp16_ = string_to_string (_tmp15_);
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp45_ = "";
-#line 1958 "moonshot-local-flat-file-store.c"
-                       }
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp49_ = key_file;
+                       _tmp17_ = g_strconcat ("store_id_cards: Storing '", _tmp16_, "'", NULL);
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp50_ = id_card;
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp51_ = id_card_get_display_name (_tmp50_);
+                       _tmp18_ = _tmp17_;
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp52_ = _tmp51_;
+                       moonshot_logger_trace (_tmp12_, _tmp18_, NULL);
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       g_key_file_set_string (_tmp49_, _tmp52_, "Issuer", _tmp45_);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp54_ = id_card;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp55_ = id_card_get_display_name (_tmp54_);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp56_ = _tmp55_;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp53_ = _tmp56_;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       if (_tmp53_ == NULL) {
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp53_ = "";
-#line 1982 "moonshot-local-flat-file-store.c"
-                       }
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp57_ = key_file;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp58_ = id_card;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp59_ = id_card_get_display_name (_tmp58_);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp60_ = _tmp59_;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       g_key_file_set_string (_tmp57_, _tmp60_, "DisplayName", _tmp53_);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp62_ = id_card;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp63_ = id_card_get_username (_tmp62_);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp64_ = _tmp63_;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp61_ = _tmp64_;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       if (_tmp61_ == NULL) {
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp61_ = "";
-#line 2006 "moonshot-local-flat-file-store.c"
-                       }
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp65_ = key_file;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp66_ = id_card;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp67_ = id_card_get_display_name (_tmp66_);
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp68_ = _tmp67_;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       g_key_file_set_string (_tmp65_, _tmp68_, "Username", _tmp61_);
+                       _g_free0 (_tmp18_);
 #line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp70_ = id_card;
+                       _tmp19_ = id_card;
 #line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp71_ = id_card_get_store_password (_tmp70_);
+                       _tmp20_ = id_card_get_rules (_tmp19_, &_tmp20__length1);
 #line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp72_ = _tmp71_;
+                       _tmp21_ = _tmp20_;
 #line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       if (_tmp72_) {
-#line 2026 "moonshot-local-flat-file-store.c"
-                               IdCard* _tmp73_ = NULL;
-                               const gchar* _tmp74_ = NULL;
-                               const gchar* _tmp75_ = NULL;
+                       _tmp21__length1 = _tmp20__length1;
 #line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp73_ = id_card;
+                       _tmp22_ = (_tmp21_ != NULL) ? _vala_array_dup1 (_tmp21_, _tmp21__length1) : ((gpointer) _tmp21_);
 #line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp74_ = id_card_get_password (_tmp73_);
+                       _tmp22__length1 = _tmp21__length1;
 #line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp75_ = _tmp74_;
-#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp69_ = _tmp75_ != NULL;
-#line 2038 "moonshot-local-flat-file-store.c"
-                       } else {
+                       rules = _tmp22_;
 #line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp69_ = FALSE;
-#line 2042 "moonshot-local-flat-file-store.c"
-                       }
+                       rules_length1 = _tmp22__length1;
 #line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       if (_tmp69_) {
-#line 2046 "moonshot-local-flat-file-store.c"
-                               GKeyFile* _tmp76_ = NULL;
-                               IdCard* _tmp77_ = NULL;
-                               const gchar* _tmp78_ = NULL;
-                               const gchar* _tmp79_ = NULL;
-                               IdCard* _tmp80_ = NULL;
-                               const gchar* _tmp81_ = NULL;
-                               const gchar* _tmp82_ = NULL;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp76_ = key_file;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp77_ = id_card;
+                       _rules_size_ = rules_length1;
 #line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp78_ = id_card_get_display_name (_tmp77_);
+                       _tmp23_ = rules;
 #line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp79_ = _tmp78_;
+                       _tmp23__length1 = rules_length1;
 #line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp80_ = id_card;
+                       _tmp24_ = g_new0 (gchar*, _tmp23__length1 + 1);
 #line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp81_ = id_card_get_password (_tmp80_);
+                       rules_patterns = _tmp24_;
 #line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp82_ = _tmp81_;
+                       rules_patterns_length1 = _tmp23__length1;
 #line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               g_key_file_set_string (_tmp76_, _tmp79_, "Password", _tmp82_);
-#line 2070 "moonshot-local-flat-file-store.c"
-                       } else {
-                               GKeyFile* _tmp83_ = NULL;
-                               IdCard* _tmp84_ = NULL;
-                               const gchar* _tmp85_ = NULL;
-                               const gchar* _tmp86_ = NULL;
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp83_ = key_file;
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp84_ = id_card;
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp85_ = id_card_get_display_name (_tmp84_);
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp86_ = _tmp85_;
-#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               g_key_file_set_string (_tmp83_, _tmp86_, "Password", "");
-#line 2086 "moonshot-local-flat-file-store.c"
-                       }
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp88_ = services;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp88__length1 = services_length1;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp87_ = _tmp88_;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp87__length1 = _tmp88__length1;
+                       _rules_patterns_size_ = rules_patterns_length1;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp25_ = rules;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp25__length1 = rules_length1;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp26_ = g_new0 (gchar*, _tmp25__length1 + 1);
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       rules_always_conf = _tmp26_;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       rules_always_conf_length1 = _tmp25__length1;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _rules_always_conf_size_ = rules_always_conf_length1;
+#line 1936 "moonshot-local-flat-file-store.c"
+                       {
+                               gint i = 0;
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       __tmp87__size_ = _tmp87__length1;
+                               i = 0;
+#line 1941 "moonshot-local-flat-file-store.c"
+                               {
+                                       gboolean _tmp27_ = FALSE;
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       if (_tmp87_ == NULL) {
-#line 2100 "moonshot-local-flat-file-store.c"
-                               gchar** _tmp89_ = NULL;
-                               gint _tmp89__length1 = 0;
+                                       _tmp27_ = TRUE;
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp89_ = empty;
+                                       while (TRUE) {
+#line 1948 "moonshot-local-flat-file-store.c"
+                                               gint _tmp29_ = 0;
+                                               Rule* _tmp30_ = NULL;
+                                               gint _tmp30__length1 = 0;
+                                               gchar** _tmp31_ = NULL;
+                                               gint _tmp31__length1 = 0;
+                                               gint _tmp32_ = 0;
+                                               Rule* _tmp33_ = NULL;
+                                               gint _tmp33__length1 = 0;
+                                               gint _tmp34_ = 0;
+                                               Rule _tmp35_ = {0};
+                                               const gchar* _tmp36_ = NULL;
+                                               gchar* _tmp37_ = NULL;
+                                               gchar* _tmp38_ = NULL;
+                                               gchar** _tmp39_ = NULL;
+                                               gint _tmp39__length1 = 0;
+                                               gint _tmp40_ = 0;
+                                               Rule* _tmp41_ = NULL;
+                                               gint _tmp41__length1 = 0;
+                                               gint _tmp42_ = 0;
+                                               Rule _tmp43_ = {0};
+                                               const gchar* _tmp44_ = NULL;
+                                               gchar* _tmp45_ = NULL;
+                                               gchar* _tmp46_ = NULL;
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp89__length1 = empty_length1;
+                                               if (!_tmp27_) {
+#line 1974 "moonshot-local-flat-file-store.c"
+                                                       gint _tmp28_ = 0;
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp87_ = _tmp89_;
+                                                       _tmp28_ = i;
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp87__length1 = _tmp89__length1;
+                                                       i = _tmp28_ + 1;
+#line 1980 "moonshot-local-flat-file-store.c"
+                                               }
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               __tmp87__size_ = _tmp87__length1;
-#line 2113 "moonshot-local-flat-file-store.c"
-                       }
+                                               _tmp27_ = FALSE;
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp90_ = key_file;
+                                               _tmp29_ = i;
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp91_ = id_card;
+                                               _tmp30_ = rules;
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp92_ = id_card_get_display_name (_tmp91_);
+                                               _tmp30__length1 = rules_length1;
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp93_ = _tmp92_;
+                                               if (!(_tmp29_ < _tmp30__length1)) {
 #line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       g_key_file_set_string_list (_tmp90_, _tmp93_, "Services", (const gchar* const*) _tmp87_, _tmp87__length1);
+                                                       break;
+#line 1994 "moonshot-local-flat-file-store.c"
+                                               }
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp31_ = rules_patterns;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp31__length1 = rules_patterns_length1;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp32_ = i;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp33_ = rules;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp33__length1 = rules_length1;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp34_ = i;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp35_ = _tmp33_[_tmp34_];
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp36_ = _tmp35_.pattern;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp37_ = g_strdup (_tmp36_);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp31_[_tmp32_]);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp31_[_tmp32_] = _tmp37_;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp38_ = _tmp31_[_tmp32_];
 #line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp94_ = rules;
+                                               _tmp39_ = rules_always_conf;
 #line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp94__length1 = rules_length1;
+                                               _tmp39__length1 = rules_always_conf_length1;
 #line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       if (_tmp94__length1 > 0) {
-#line 2131 "moonshot-local-flat-file-store.c"
-                               GKeyFile* _tmp95_ = NULL;
-                               IdCard* _tmp96_ = NULL;
-                               const gchar* _tmp97_ = NULL;
-                               const gchar* _tmp98_ = NULL;
-                               gchar** _tmp99_ = NULL;
-                               gint _tmp99__length1 = 0;
-                               GKeyFile* _tmp100_ = NULL;
-                               IdCard* _tmp101_ = NULL;
-                               const gchar* _tmp102_ = NULL;
-                               const gchar* _tmp103_ = NULL;
-                               gchar** _tmp104_ = NULL;
-                               gint _tmp104__length1 = 0;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp95_ = key_file;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp96_ = id_card;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp97_ = id_card_get_display_name (_tmp96_);
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp98_ = _tmp97_;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp99_ = rules_patterns;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp99__length1 = rules_patterns_length1;
-#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               g_key_file_set_string_list (_tmp95_, _tmp98_, "Rules-Patterns", (const gchar* const*) _tmp99_, _tmp99__length1);
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp100_ = key_file;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp101_ = id_card;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp102_ = id_card_get_display_name (_tmp101_);
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp103_ = _tmp102_;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp104_ = rules_always_conf;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp104__length1 = rules_always_conf_length1;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               g_key_file_set_string_list (_tmp100_, _tmp103_, "Rules-AlwaysConfirm", (const gchar* const*) _tmp104_, _tmp104__length1);
-#line 2172 "moonshot-local-flat-file-store.c"
+                                               _tmp40_ = i;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp41_ = rules;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp41__length1 = rules_length1;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp42_ = i;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp43_ = _tmp41_[_tmp42_];
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp44_ = _tmp43_.always_confirm;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp45_ = g_strdup (_tmp44_);
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp39_[_tmp40_]);
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp39_[_tmp40_] = _tmp45_;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp46_ = _tmp39_[_tmp40_];
+#line 2044 "moonshot-local-flat-file-store.c"
+                                       }
+                               }
+                       }
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp48_ = id_card;
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp49_ = id_card_get_issuer (_tmp48_);
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp50_ = _tmp49_;
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp47_ = _tmp50_;
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       if (_tmp47_ == NULL) {
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp47_ = "";
+#line 2060 "moonshot-local-flat-file-store.c"
                        }
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp51_ = key_file;
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp52_ = id_card;
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp53_ = id_card_get_display_name (_tmp52_);
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp54_ = _tmp53_;
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       g_key_file_set_string (_tmp51_, _tmp54_, "Issuer", _tmp47_);
 #line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp106_ = id_card;
+                       _tmp56_ = id_card;
 #line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp107_ = id_card_get_store_password (_tmp106_);
+                       _tmp57_ = id_card_get_display_name (_tmp56_);
 #line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp108_ = _tmp107_;
+                       _tmp58_ = _tmp57_;
 #line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       if (_tmp108_) {
+                       _tmp55_ = _tmp58_;
 #line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp105_ = "yes";
-#line 2184 "moonshot-local-flat-file-store.c"
-                       } else {
+                       if (_tmp55_ == NULL) {
 #line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp105_ = "no";
-#line 2188 "moonshot-local-flat-file-store.c"
+                               _tmp55_ = "";
+#line 2084 "moonshot-local-flat-file-store.c"
                        }
 #line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp109_ = key_file;
+                       _tmp59_ = key_file;
 #line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp110_ = id_card;
+                       _tmp60_ = id_card;
 #line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp111_ = id_card_get_display_name (_tmp110_);
+                       _tmp61_ = id_card_get_display_name (_tmp60_);
 #line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp112_ = _tmp111_;
+                       _tmp62_ = _tmp61_;
 #line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       g_key_file_set_string (_tmp109_, _tmp112_, "StorePassword", _tmp105_);
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp114_ = id_card;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp115_ = id_card_get_trust_anchor (_tmp114_);
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp116_ = _tmp115_;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp117_ = trust_anchor_get_ca_cert (_tmp116_);
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp118_ = _tmp117_;
+                       g_key_file_set_string (_tmp59_, _tmp62_, "DisplayName", _tmp55_);
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp64_ = id_card;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp65_ = id_card_get_username (_tmp64_);
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp66_ = _tmp65_;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp63_ = _tmp66_;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       if (_tmp63_ == NULL) {
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp63_ = "";
+#line 2108 "moonshot-local-flat-file-store.c"
+                       }
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp67_ = key_file;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp68_ = id_card;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp69_ = id_card_get_display_name (_tmp68_);
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp70_ = _tmp69_;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       g_key_file_set_string (_tmp67_, _tmp70_, "Username", _tmp63_);
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp72_ = id_card;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp73_ = id_card_get_store_password (_tmp72_);
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp74_ = _tmp73_;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       if (_tmp74_) {
+#line 2128 "moonshot-local-flat-file-store.c"
+                               IdCard* _tmp75_ = NULL;
+                               const gchar* _tmp76_ = NULL;
+                               const gchar* _tmp77_ = NULL;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp75_ = id_card;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp76_ = id_card_get_password (_tmp75_);
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp77_ = _tmp76_;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp71_ = _tmp77_ != NULL;
+#line 2140 "moonshot-local-flat-file-store.c"
+                       } else {
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp71_ = FALSE;
+#line 2144 "moonshot-local-flat-file-store.c"
+                       }
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       if (_tmp71_) {
+#line 2148 "moonshot-local-flat-file-store.c"
+                               GKeyFile* _tmp78_ = NULL;
+                               IdCard* _tmp79_ = NULL;
+                               const gchar* _tmp80_ = NULL;
+                               const gchar* _tmp81_ = NULL;
+                               IdCard* _tmp82_ = NULL;
+                               const gchar* _tmp83_ = NULL;
+                               const gchar* _tmp84_ = NULL;
 #line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp113_ = _tmp118_;
+                               _tmp78_ = key_file;
 #line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       if (_tmp113_ == NULL) {
+                               _tmp79_ = id_card;
 #line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp113_ = "";
-#line 2216 "moonshot-local-flat-file-store.c"
-                       }
+                               _tmp80_ = id_card_get_display_name (_tmp79_);
 #line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp119_ = key_file;
+                               _tmp81_ = _tmp80_;
 #line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp120_ = id_card;
+                               _tmp82_ = id_card;
 #line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp121_ = id_card_get_display_name (_tmp120_);
+                               _tmp83_ = id_card_get_password (_tmp82_);
 #line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp122_ = _tmp121_;
+                               _tmp84_ = _tmp83_;
 #line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       g_key_file_set_string (_tmp119_, _tmp122_, "CA-Cert", _tmp113_);
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp124_ = id_card;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp125_ = id_card_get_trust_anchor (_tmp124_);
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp126_ = _tmp125_;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp127_ = trust_anchor_get_subject (_tmp126_);
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp128_ = _tmp127_;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp123_ = _tmp128_;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       if (_tmp123_ == NULL) {
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp123_ = "";
-#line 2244 "moonshot-local-flat-file-store.c"
-                       }
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp129_ = key_file;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp130_ = id_card;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp131_ = id_card_get_display_name (_tmp130_);
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp132_ = _tmp131_;
-#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       g_key_file_set_string (_tmp129_, _tmp132_, "Subject", _tmp123_);
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp134_ = id_card;
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp135_ = id_card_get_trust_anchor (_tmp134_);
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp136_ = _tmp135_;
+                               g_key_file_set_string (_tmp78_, _tmp81_, "Password", _tmp84_);
+#line 2172 "moonshot-local-flat-file-store.c"
+                       } else {
+                               GKeyFile* _tmp85_ = NULL;
+                               IdCard* _tmp86_ = NULL;
+                               const gchar* _tmp87_ = NULL;
+                               const gchar* _tmp88_ = NULL;
 #line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp137_ = trust_anchor_get_subject_alt (_tmp136_);
+                               _tmp85_ = key_file;
 #line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp138_ = _tmp137_;
+                               _tmp86_ = id_card;
 #line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp133_ = _tmp138_;
+                               _tmp87_ = id_card_get_display_name (_tmp86_);
 #line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       if (_tmp133_ == NULL) {
+                               _tmp88_ = _tmp87_;
 #line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp133_ = "";
-#line 2272 "moonshot-local-flat-file-store.c"
+                               g_key_file_set_string (_tmp85_, _tmp88_, "Password", "");
+#line 2188 "moonshot-local-flat-file-store.c"
                        }
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp139_ = key_file;
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp140_ = id_card;
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp141_ = id_card_get_display_name (_tmp140_);
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp142_ = _tmp141_;
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       g_key_file_set_string (_tmp139_, _tmp142_, "SubjectAlt", _tmp133_);
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp144_ = id_card;
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp145_ = id_card_get_trust_anchor (_tmp144_);
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp146_ = _tmp145_;
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp147_ = trust_anchor_get_server_cert (_tmp146_);
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp148_ = _tmp147_;
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp143_ = _tmp148_;
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       if (_tmp143_ == NULL) {
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                               _tmp143_ = "";
-#line 2300 "moonshot-local-flat-file-store.c"
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp89_ = id_card;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp90_ = id_card_get_services (_tmp89_);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp91_ = _tmp90_;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp92_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp91_);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp93_ = _tmp92_;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp94_ = g_new0 (gchar*, _tmp93_ + 1);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       svcs = _tmp94_;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       svcs_length1 = _tmp93_;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _svcs_size_ = svcs_length1;
+#line 2208 "moonshot-local-flat-file-store.c"
+                       {
+                               gint i = 0;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               i = 0;
+#line 2213 "moonshot-local-flat-file-store.c"
+                               {
+                                       gboolean _tmp95_ = FALSE;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       _tmp95_ = TRUE;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                       while (TRUE) {
+#line 2220 "moonshot-local-flat-file-store.c"
+                                               gint _tmp97_ = 0;
+                                               IdCard* _tmp98_ = NULL;
+                                               GeeArrayList* _tmp99_ = NULL;
+                                               GeeArrayList* _tmp100_ = NULL;
+                                               gint _tmp101_ = 0;
+                                               gint _tmp102_ = 0;
+                                               gchar** _tmp103_ = NULL;
+                                               gint _tmp103__length1 = 0;
+                                               gint _tmp104_ = 0;
+                                               IdCard* _tmp105_ = NULL;
+                                               GeeArrayList* _tmp106_ = NULL;
+                                               GeeArrayList* _tmp107_ = NULL;
+                                               gint _tmp108_ = 0;
+                                               gpointer _tmp109_ = NULL;
+                                               gchar* _tmp110_ = NULL;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               if (!_tmp95_) {
+#line 2238 "moonshot-local-flat-file-store.c"
+                                                       gint _tmp96_ = 0;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       _tmp96_ = i;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       i = _tmp96_ + 1;
+#line 2244 "moonshot-local-flat-file-store.c"
+                                               }
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp95_ = FALSE;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp97_ = i;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp98_ = id_card;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp99_ = id_card_get_services (_tmp98_);
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp100_ = _tmp99_;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp101_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp100_);
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp102_ = _tmp101_;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               if (!(_tmp97_ < _tmp102_)) {
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                                       break;
+#line 2264 "moonshot-local-flat-file-store.c"
+                                               }
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp103_ = svcs;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp103__length1 = svcs_length1;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp104_ = i;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp105_ = id_card;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp106_ = id_card_get_services (_tmp105_);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp107_ = _tmp106_;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp108_ = i;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp109_ = gee_abstract_list_get ((GeeAbstractList*) _tmp107_, _tmp108_);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _g_free0 (_tmp103_[_tmp104_]);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp103_[_tmp104_] = (gchar*) _tmp109_;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                                               _tmp110_ = _tmp103_[_tmp104_];
+#line 2288 "moonshot-local-flat-file-store.c"
+                                       }
+                               }
+                       }
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp111_ = key_file;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp112_ = id_card;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp113_ = id_card_get_display_name (_tmp112_);
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp114_ = _tmp113_;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp115_ = svcs;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp115__length1 = svcs_length1;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       g_key_file_set_string_list (_tmp111_, _tmp114_, "Services", (const gchar* const*) _tmp115_, _tmp115__length1);
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp116_ = rules;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp116__length1 = rules_length1;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       if (_tmp116__length1 > 0) {
+#line 2312 "moonshot-local-flat-file-store.c"
+                               GKeyFile* _tmp117_ = NULL;
+                               IdCard* _tmp118_ = NULL;
+                               const gchar* _tmp119_ = NULL;
+                               const gchar* _tmp120_ = NULL;
+                               gchar** _tmp121_ = NULL;
+                               gint _tmp121__length1 = 0;
+                               GKeyFile* _tmp122_ = NULL;
+                               IdCard* _tmp123_ = NULL;
+                               const gchar* _tmp124_ = NULL;
+                               const gchar* _tmp125_ = NULL;
+                               gchar** _tmp126_ = NULL;
+                               gint _tmp126__length1 = 0;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp117_ = key_file;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp118_ = id_card;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp119_ = id_card_get_display_name (_tmp118_);
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp120_ = _tmp119_;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp121_ = rules_patterns;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp121__length1 = rules_patterns_length1;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               g_key_file_set_string_list (_tmp117_, _tmp120_, "Rules-Patterns", (const gchar* const*) _tmp121_, _tmp121__length1);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp122_ = key_file;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp123_ = id_card;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp124_ = id_card_get_display_name (_tmp123_);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp125_ = _tmp124_;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp126_ = rules_always_conf;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp126__length1 = rules_always_conf_length1;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               g_key_file_set_string_list (_tmp122_, _tmp125_, "Rules-AlwaysConfirm", (const gchar* const*) _tmp126_, _tmp126__length1);
+#line 2353 "moonshot-local-flat-file-store.c"
+                       }
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp128_ = id_card;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp129_ = id_card_get_store_password (_tmp128_);
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp130_ = _tmp129_;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       if (_tmp130_) {
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp127_ = "yes";
+#line 2365 "moonshot-local-flat-file-store.c"
+                       } else {
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp127_ = "no";
+#line 2369 "moonshot-local-flat-file-store.c"
                        }
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp149_ = key_file;
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp150_ = id_card;
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       _tmp151_ = id_card_get_display_name (_tmp150_);
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp131_ = key_file;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp132_ = id_card;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp133_ = id_card_get_display_name (_tmp132_);
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp134_ = _tmp133_;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       g_key_file_set_string (_tmp131_, _tmp134_, "StorePassword", _tmp127_);
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp135_ = key_file;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp136_ = id_card;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp137_ = id_card_get_display_name (_tmp136_);
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp138_ = _tmp137_;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp139_ = id_card;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp140_ = id_card_get_trust_anchor (_tmp139_);
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp141_ = _tmp140_;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp142_ = trust_anchor_get_ca_cert (_tmp141_);
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp143_ = _tmp142_;
+#line 189 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       g_key_file_set_string (_tmp135_, _tmp138_, "CA-Cert", _tmp143_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp144_ = key_file;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp145_ = id_card;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp146_ = id_card_get_display_name (_tmp145_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp147_ = _tmp146_;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp148_ = id_card;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp149_ = id_card_get_trust_anchor (_tmp148_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp150_ = _tmp149_;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp151_ = trust_anchor_get_subject (_tmp150_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _tmp152_ = _tmp151_;
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       g_key_file_set_string (_tmp149_, _tmp152_, "ServerCert", _tmp143_);
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       g_key_file_set_string (_tmp144_, _tmp147_, "Subject", _tmp152_);
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp153_ = key_file;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp154_ = id_card;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp155_ = id_card_get_display_name (_tmp154_);
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp156_ = _tmp155_;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp157_ = id_card;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp158_ = id_card_get_trust_anchor (_tmp157_);
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp159_ = _tmp158_;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp160_ = trust_anchor_get_subject_alt (_tmp159_);
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp161_ = _tmp160_;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       g_key_file_set_string (_tmp153_, _tmp156_, "SubjectAlt", _tmp161_);
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp162_ = key_file;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp163_ = id_card;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp164_ = id_card_get_display_name (_tmp163_);
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp165_ = _tmp164_;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp166_ = id_card;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp167_ = id_card_get_trust_anchor (_tmp166_);
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp168_ = _tmp167_;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp169_ = trust_anchor_get_server_cert (_tmp168_);
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp170_ = _tmp169_;
+#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       g_key_file_set_string (_tmp162_, _tmp165_, "ServerCert", _tmp170_);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp171_ = id_card;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp172_ = id_card_get_trust_anchor (_tmp171_);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp173_ = _tmp172_;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp174_ = trust_anchor_get_datetime_added (_tmp173_);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp175_ = _tmp174_;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       if (g_strcmp0 (_tmp175_, "") != 0) {
+#line 2473 "moonshot-local-flat-file-store.c"
+                               GKeyFile* _tmp176_ = NULL;
+                               IdCard* _tmp177_ = NULL;
+                               const gchar* _tmp178_ = NULL;
+                               const gchar* _tmp179_ = NULL;
+                               IdCard* _tmp180_ = NULL;
+                               TrustAnchor* _tmp181_ = NULL;
+                               TrustAnchor* _tmp182_ = NULL;
+                               const gchar* _tmp183_ = NULL;
+                               const gchar* _tmp184_ = NULL;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp176_ = key_file;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp177_ = id_card;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp178_ = id_card_get_display_name (_tmp177_);
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp179_ = _tmp178_;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp180_ = id_card;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp181_ = id_card_get_trust_anchor (_tmp180_);
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp182_ = _tmp181_;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp183_ = trust_anchor_get_datetime_added (_tmp182_);
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               _tmp184_ = _tmp183_;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                               g_key_file_set_string (_tmp176_, _tmp179_, "TA_DateTime_Added", _tmp184_);
+#line 2503 "moonshot-local-flat-file-store.c"
+                       }
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp185_ = local_flat_file_store_logger;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp186_ = id_card;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp187_ = id_card_get_display_name (_tmp186_);
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp188_ = _tmp187_;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp189_ = string_to_string (_tmp188_);
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp190_ = g_strconcat ("store_id_cards: Stored '", _tmp189_, "'", NULL);
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _tmp191_ = _tmp190_;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       moonshot_logger_trace (_tmp185_, _tmp191_, NULL);
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       _g_free0 (_tmp191_);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+                       svcs = (_vala_array_free (svcs, svcs_length1, (GDestroyNotify) g_free), NULL);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        rules_always_conf = (_vala_array_free (rules_always_conf, rules_always_conf_length1, (GDestroyNotify) g_free), NULL);
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       empty = (_vala_array_free (empty, empty_length1, (GDestroyNotify) g_free), NULL);
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-                       services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_free), NULL);
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        rules = (_vala_Rule_array_free (rules, rules_length1), NULL);
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _g_object_unref0 (id_card);
-#line 2324 "moonshot-local-flat-file-store.c"
+#line 2533 "moonshot-local-flat-file-store.c"
                }
-#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _g_object_unref0 (_id_card_list);
-#line 2328 "moonshot-local-flat-file-store.c"
+#line 2537 "moonshot-local-flat-file-store.c"
        }
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       _tmp153_ = key_file;
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       _tmp154_ = g_key_file_to_data (_tmp153_, NULL, NULL);
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       text = _tmp154_;
-#line 2336 "moonshot-local-flat-file-store.c"
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp192_ = key_file;
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp193_ = g_key_file_to_data (_tmp192_, NULL, NULL);
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       text = _tmp193_;
+#line 2545 "moonshot-local-flat-file-store.c"
        {
                gchar* path = NULL;
-               gchar* _tmp155_ = NULL;
+               gchar* _tmp194_ = NULL;
                gchar* filename = NULL;
-               const gchar* _tmp156_ = NULL;
-               gchar* _tmp157_ = NULL;
+               const gchar* _tmp195_ = NULL;
+               gchar* _tmp196_ = NULL;
+               MoonshotLogger* _tmp197_ = NULL;
+               const gchar* _tmp198_ = NULL;
+               gchar* _tmp199_ = NULL;
+               gchar* _tmp200_ = NULL;
                GFile* file = NULL;
-               const gchar* _tmp158_ = NULL;
-               GFile* _tmp159_ = NULL;
+               const gchar* _tmp201_ = NULL;
+               GFile* _tmp202_ = NULL;
                GFileOutputStream* stream = NULL;
-               GFile* _tmp160_ = NULL;
-               GFileOutputStream* _tmp161_ = NULL;
-               GFileOutputStream* _tmp162_ = NULL;
-               const gchar* _tmp163_ = NULL;
-               guint8* _tmp164_ = NULL;
-               gint _tmp164__length1 = 0;
-               guint8* _tmp165_ = NULL;
-               gint _tmp165__length1 = 0;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp155_ = local_flat_file_store_get_data_dir (self);
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               path = _tmp155_;
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp156_ = path;
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp157_ = g_build_filename (_tmp156_, LOCAL_FLAT_FILE_STORE_FILE_NAME, NULL);
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               filename = _tmp157_;
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp158_ = filename;
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp159_ = g_file_new_for_path (_tmp158_);
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               file = _tmp159_;
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp160_ = file;
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp161_ = g_file_replace (_tmp160_, NULL, FALSE, G_FILE_CREATE_PRIVATE, NULL, &_inner_error_);
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               stream = _tmp161_;
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               GFile* _tmp203_ = NULL;
+               GFileOutputStream* _tmp204_ = NULL;
+               GFileOutputStream* _tmp205_ = NULL;
+               const gchar* _tmp206_ = NULL;
+               guint8* _tmp207_ = NULL;
+               gint _tmp207__length1 = 0;
+               guint8* _tmp208_ = NULL;
+               gint _tmp208__length1 = 0;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp194_ = local_flat_file_store_get_data_dir (self);
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               path = _tmp194_;
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp195_ = path;
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp196_ = g_build_filename (_tmp195_, LOCAL_FLAT_FILE_STORE_FILE_NAME, NULL);
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               filename = _tmp196_;
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp197_ = local_flat_file_store_logger;
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp198_ = filename;
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp199_ = g_strconcat ("store_id_cards: attempting to store to ", _tmp198_, NULL);
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp200_ = _tmp199_;
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               moonshot_logger_trace (_tmp197_, _tmp200_, NULL);
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _g_free0 (_tmp200_);
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp201_ = filename;
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp202_ = g_file_new_for_path (_tmp201_);
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               file = _tmp202_;
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp203_ = file;
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp204_ = g_file_replace (_tmp203_, NULL, FALSE, G_FILE_CREATE_PRIVATE, NULL, &_inner_error_);
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               stream = _tmp204_;
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _g_object_unref0 (file);
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _g_free0 (filename);
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _g_free0 (path);
-#line 2385 "moonshot-local-flat-file-store.c"
-                       goto __catch7_g_error;
+#line 2610 "moonshot-local-flat-file-store.c"
+                       goto __catch8_g_error;
                }
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp162_ = stream;
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp163_ = text;
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp164_ = string_get_data (_tmp163_, &_tmp164__length1);
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp165_ = _tmp164_;
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp165__length1 = _tmp164__length1;
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               g_output_stream_write ((GOutputStream*) _tmp162_, _tmp165_, (gsize) _tmp165__length1, NULL, &_inner_error_);
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp205_ = stream;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp206_ = text;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp207_ = string_get_data (_tmp206_, &_tmp207__length1);
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp208_ = _tmp207_;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp208__length1 = _tmp207__length1;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               g_output_stream_write ((GOutputStream*) _tmp205_, _tmp208_, (gsize) _tmp208__length1, NULL, &_inner_error_);
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _g_object_unref0 (stream);
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _g_object_unref0 (file);
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _g_free0 (filename);
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                        _g_free0 (path);
-#line 2410 "moonshot-local-flat-file-store.c"
-                       goto __catch7_g_error;
+#line 2635 "moonshot-local-flat-file-store.c"
+                       goto __catch8_g_error;
                }
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _g_object_unref0 (stream);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _g_object_unref0 (file);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _g_free0 (filename);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _g_free0 (path);
-#line 2421 "moonshot-local-flat-file-store.c"
+#line 2646 "moonshot-local-flat-file-store.c"
        }
-       goto __finally7;
-       __catch7_g_error:
+       goto __finally8;
+       __catch8_g_error:
        {
                GError* e = NULL;
-               FILE* _tmp166_ = NULL;
-               GError* _tmp167_ = NULL;
-               const gchar* _tmp168_ = NULL;
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               MoonshotLogger* _tmp209_ = NULL;
+               GError* _tmp210_ = NULL;
+               const gchar* _tmp211_ = NULL;
+               gchar* _tmp212_ = NULL;
+               gchar* _tmp213_ = NULL;
+               FILE* _tmp214_ = NULL;
+               GError* _tmp215_ = NULL;
+               const gchar* _tmp216_ = NULL;
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                e = _inner_error_;
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _inner_error_ = NULL;
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp166_ = stdout;
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp167_ = e;
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _tmp168_ = _tmp167_->message;
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               fprintf (_tmp166_, "Error:  %s\n", _tmp168_);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp209_ = local_flat_file_store_logger;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp210_ = e;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp211_ = _tmp210_->message;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp212_ = g_strdup_printf ("store_id_cards: Error while saving keyfile: %s\n", _tmp211_);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp213_ = _tmp212_;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               moonshot_logger_error (_tmp209_, _tmp213_, NULL);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _g_free0 (_tmp213_);
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp214_ = stdout;
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp215_ = e;
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _tmp216_ = _tmp215_->message;
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               fprintf (_tmp214_, "Error:  %s\n", _tmp216_);
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _g_error_free0 (e);
-#line 2444 "moonshot-local-flat-file-store.c"
+#line 2688 "moonshot-local-flat-file-store.c"
        }
-       __finally7:
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       __finally8:
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                _g_free0 (text);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-               _g_key_file_free0 (key_file);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+               _g_key_file_unref0 (key_file);
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                g_clear_error (&_inner_error_);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
                return;
-#line 2459 "moonshot-local-flat-file-store.c"
+#line 2703 "moonshot-local-flat-file-store.c"
        }
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        local_flat_file_store_load_id_cards (self);
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _g_free0 (text);
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       _g_key_file_free0 (key_file);
-#line 2467 "moonshot-local-flat-file-store.c"
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _g_key_file_unref0 (key_file);
+#line 2711 "moonshot-local-flat-file-store.c"
 }
 
 
 LocalFlatFileStore* local_flat_file_store_construct (GType object_type) {
        LocalFlatFileStore * self = NULL;
        GeeLinkedList* _tmp0_ = NULL;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        self = (LocalFlatFileStore*) g_object_new (object_type, NULL);
-#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
-       _tmp0_ = gee_linked_list_new (TYPE_ID_CARD, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL);
-#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp0_ = gee_linked_list_new (TYPE_ID_CARD, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _g_object_unref0 (self->priv->id_card_list);
-#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        self->priv->id_card_list = _tmp0_;
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        local_flat_file_store_load_id_cards (self);
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        return self;
-#line 2486 "moonshot-local-flat-file-store.c"
+#line 2730 "moonshot-local-flat-file-store.c"
 }
 
 
 LocalFlatFileStore* local_flat_file_store_new (void) {
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        return local_flat_file_store_construct (TYPE_LOCAL_FLAT_FILE_STORE);
-#line 2493 "moonshot-local-flat-file-store.c"
+#line 2737 "moonshot-local-flat-file-store.c"
 }
 
 
 static void local_flat_file_store_class_init (LocalFlatFileStoreClass * klass) {
+       MoonshotLogger* _tmp0_ = NULL;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        local_flat_file_store_parent_class = g_type_class_peek_parent (klass);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        g_type_class_add_private (klass, sizeof (LocalFlatFileStorePrivate));
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        G_OBJECT_CLASS (klass)->finalize = local_flat_file_store_finalize;
-#line 2504 "moonshot-local-flat-file-store.c"
+#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       _tmp0_ = get_logger ("LocalFlatFileStore");
+#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       local_flat_file_store_logger = _tmp0_;
+#line 2753 "moonshot-local-flat-file-store.c"
 }
 
 
@@ -2517,14 +2766,16 @@ static void local_flat_file_store_iidentity_card_store_interface_init (IIdentity
        iface->get_card_list = (GeeLinkedList* (*)(IIdentityCardStore*)) local_flat_file_store_real_get_card_list;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        iface->get_store_type = (IIdentityCardStoreStoreType (*)(IIdentityCardStore*)) local_flat_file_store_real_get_store_type;
-#line 2521 "moonshot-local-flat-file-store.c"
+#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+       iface->store_id_cards = (void (*)(IIdentityCardStore*)) local_flat_file_store_real_store_id_cards;
+#line 2772 "moonshot-local-flat-file-store.c"
 }
 
 
 static void local_flat_file_store_instance_init (LocalFlatFileStore * self) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        self->priv = LOCAL_FLAT_FILE_STORE_GET_PRIVATE (self);
-#line 2528 "moonshot-local-flat-file-store.c"
+#line 2779 "moonshot-local-flat-file-store.c"
 }
 
 
@@ -2532,11 +2783,11 @@ static void local_flat_file_store_finalize (GObject* obj) {
        LocalFlatFileStore * self;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_LOCAL_FLAT_FILE_STORE, LocalFlatFileStore);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
+#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        _g_object_unref0 (self->priv->id_card_list);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-local-flat-file-store.vala"
        G_OBJECT_CLASS (local_flat_file_store_parent_class)->finalize (obj);
-#line 2540 "moonshot-local-flat-file-store.c"
+#line 2791 "moonshot-local-flat-file-store.c"
 }
 
 
index 8e4db0a..0db247a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
-*/
+ */
 using Gee; 
 
 public class LocalFlatFileStore : Object, IIdentityCardStore {
+    static MoonshotLogger logger = get_logger("LocalFlatFileStore");
+
     private LinkedList<IdCard> id_card_list;
     private const string FILE_NAME = "identities.txt";
 
     public void add_card(IdCard card) {
         id_card_list.add(card);
-        store_id_cards ();
+        store_id_cards();
     }
 
     public IdCard? update_card(IdCard card) {
         id_card_list.remove(card);
         id_card_list.add(card);
-        store_id_cards ();
-        foreach(IdCard idcard in id_card_list)
-            if (idcard.display_name == card.display_name)
+        store_id_cards();
+        foreach(IdCard idcard in id_card_list) {
+            if (idcard.display_name == card.display_name) {
                 return idcard;
+            }
+        }
+        logger.error(@"update_card: card '$(card.display_name)' was not found after re-loading!");
         return null;
     }
 
     public bool remove_card(IdCard card) {
         if (id_card_list.remove(card)) {
-            store_id_cards ();
+            store_id_cards();
             return true;
         }
         return false;
@@ -68,134 +73,155 @@ public class LocalFlatFileStore : Object, IIdentityCardStore {
      
     private void load_id_cards() {
         id_card_list.clear();
-        var key_file = new KeyFile ();
-        var path = get_data_dir ();
-        var filename = Path.build_filename (path, FILE_NAME);
+        var key_file = new KeyFile();
+        var path = get_data_dir();
+        var filename = Path.build_filename(path, FILE_NAME);
+        logger.trace("load_id_cards: attempting to load from " + filename);
         
         try {
-            key_file.load_from_file (filename, KeyFileFlags.NONE);
+            key_file.load_from_file(filename, KeyFileFlags.NONE);
         }
         catch (Error e) {
-            stdout.printf("Error: %s\n", e.message);
+            stdout.printf("Error while attempting to load from %s: %s\n", filename, e.message);
             return;
         }
 
-        var identities_uris = key_file.get_groups ();
+        var identities_uris = key_file.get_groups();
         foreach (string identity in identities_uris) {
             try {
-                IdCard id_card = new IdCard ();
-
-                id_card.issuer = key_file.get_string (identity, "Issuer");
-                id_card.username = key_file.get_string (identity, "Username");
-                id_card.password = key_file.get_string (identity, "Password");
-                id_card.services = key_file.get_string_list (identity, "Services");
-                id_card.display_name = key_file.get_string (identity, "DisplayName");
-                if (key_file.has_key (identity, "StorePassword")) {
-                    id_card.store_password = (key_file.get_string (identity, "StorePassword") == "yes");
+                IdCard id_card = new IdCard();
+
+                id_card.issuer = key_file.get_string(identity, "Issuer");
+                id_card.username = key_file.get_string(identity, "Username");
+                id_card.password = key_file.get_string(identity, "Password");
+                id_card.update_services(key_file.get_string_list(identity, "Services"));
+                id_card.display_name = key_file.get_string(identity, "DisplayName");
+                if (key_file.has_key(identity, "StorePassword")) {
+                    id_card.store_password = (key_file.get_string(identity, "StorePassword") == "yes");
                 } else {
                     id_card.store_password = (id_card.password != null) && (id_card.password != "");
                 }
                 
-                if (key_file.has_key (identity, "Rules-Patterns") &&
-                    key_file.has_key (identity, "Rules-AlwaysConfirm")) {
-                    string [] rules_patterns =    key_file.get_string_list (identity, "Rules-Patterns");
-                    string [] rules_always_conf = key_file.get_string_list (identity, "Rules-AlwaysConfirm");
+                if (key_file.has_key(identity, "Rules-Patterns") &&
+                    key_file.has_key(identity, "Rules-AlwaysConfirm")) {
+                    string [] rules_patterns =    key_file.get_string_list(identity, "Rules-Patterns");
+                    string [] rules_always_conf = key_file.get_string_list(identity, "Rules-AlwaysConfirm");
                     
                     if (rules_patterns.length == rules_always_conf.length) {
-                      Rule[] rules = new Rule[rules_patterns.length];
-                      for (int i = 0; i < rules_patterns.length; i++) {
-                        rules[i] = {rules_patterns[i], rules_always_conf[i]};
-                      }
-                      id_card.rules = rules;
+                        Rule[] rules = new Rule[rules_patterns.length];
+                        for (int i = 0; i < rules_patterns.length; i++) {
+                            rules[i] = {rules_patterns[i], rules_always_conf[i]};
+                        }
+                        id_card.rules = rules;
                     }
                 }
                 
                 // Trust anchor 
-                id_card.trust_anchor.ca_cert = key_file.get_string (identity, "CA-Cert").strip();
-                id_card.trust_anchor.subject = key_file.get_string (identity, "Subject");
-                id_card.trust_anchor.subject_alt = key_file.get_string (identity, "SubjectAlt");
-                id_card.trust_anchor.server_cert = key_file.get_string (identity, "ServerCert");
-
-                id_card_list.add (id_card);
+                string ca_cert = key_file.get_string(identity, "CA-Cert").strip();
+                string server_cert = key_file.get_string(identity, "ServerCert");
+                string subject = key_file.get_string(identity, "Subject");
+                string subject_alt = key_file.get_string(identity, "SubjectAlt");
+                var ta = new TrustAnchor(ca_cert, server_cert, subject, subject_alt);
+                string ta_datetime_added = get_string_setting(identity, "TA_DateTime_Added", "", key_file);
+                if (ta_datetime_added != "") {
+                    ta.set_datetime_added(ta_datetime_added);
+                }
+                id_card.set_trust_anchor_from_store(ta);
+                id_card_list.add(id_card);
             }
             catch (Error e) {
-                stdout.printf ("Error:  %s\n", e.message);
+                logger.error("load_id_cards: Error while loading keyfile %s: %s\n".printf(filename, e.message));
+                stdout.printf("Error while attempting to load from %s: %s\n", filename, e.message);
             }
         }
     }
 
     private string get_data_dir() {
         string path;
-        path = Path.build_filename (Environment.get_user_data_dir (),
-                                    Config.PACKAGE_TARNAME);
+        path = Path.build_filename(Environment.get_user_data_dir(),
+                                   Config.PACKAGE_TARNAME);
                                     
-        if (!FileUtils.test (path, FileTest.EXISTS)) {
-            DirUtils.create_with_parents (path, 0700);
+        if (!FileUtils.test(path, FileTest.EXISTS)) {
+            DirUtils.create_with_parents(path, 0700);
         }
         return path;
     }
     
-    public void store_id_cards () {
-        var key_file = new KeyFile ();
+    internal void store_id_cards() {
+        var key_file = new KeyFile();
         foreach (IdCard id_card in this.id_card_list) {
+            logger.trace(@"store_id_cards: Storing '$(id_card.display_name)'");
+
             /* workaround for Centos vala array property bug: use temp arrays */
             var rules = id_card.rules;
-            var services = id_card.services;
-            string[] empty = {};
             string[] rules_patterns = new string[rules.length];
             string[] rules_always_conf = new string[rules.length];
             
-            for (int i=0; i<rules.length; i++) {
-              rules_patterns[i] = rules[i].pattern;
-              rules_always_conf[i] = rules[i].always_confirm;
+            for (int i = 0; i < rules.length; i++) {
+                rules_patterns[i] = rules[i].pattern;
+                rules_always_conf[i] = rules[i].always_confirm;
             }
 
-            key_file.set_string (id_card.display_name, "Issuer", id_card.issuer ?? "");
-            key_file.set_string (id_card.display_name, "DisplayName", id_card.display_name ?? "");
-            key_file.set_string (id_card.display_name, "Username", id_card.username ?? "");
+            key_file.set_string(id_card.display_name, "Issuer", id_card.issuer ?? "");
+            key_file.set_string(id_card.display_name, "DisplayName", id_card.display_name ?? "");
+            key_file.set_string(id_card.display_name, "Username", id_card.username ?? "");
             if (id_card.store_password && (id_card.password != null))
-              key_file.set_string (id_card.display_name, "Password", id_card.password);
+                key_file.set_string(id_card.display_name, "Password", id_card.password);
             else
-              key_file.set_string (id_card.display_name, "Password", "");
-            key_file.set_string_list (id_card.display_name, "Services", services ?? empty);
+                key_file.set_string(id_card.display_name, "Password", "");
+
+            // Using id_card.services.to_array() seems to cause a crash, possibly due to
+            // an unowned reference to the array.
+            string[] svcs = new string[id_card.services.size];
+            for (int i = 0; i < id_card.services.size; i++) {
+                svcs[i] = id_card.services[i];
+            }
+
+            key_file.set_string_list(id_card.display_name, "Services", svcs);
 
             if (rules.length > 0) {
-              key_file.set_string_list (id_card.display_name, "Rules-Patterns", rules_patterns);
-              key_file.set_string_list (id_card.display_name, "Rules-AlwaysConfirm", rules_always_conf);
+                key_file.set_string_list(id_card.display_name, "Rules-Patterns", rules_patterns);
+                key_file.set_string_list(id_card.display_name, "Rules-AlwaysConfirm", rules_always_conf);
             }
-            key_file.set_string (id_card.display_name, "StorePassword", id_card.store_password ? "yes" : "no");
+            key_file.set_string(id_card.display_name, "StorePassword", id_card.store_password ? "yes" : "no");
             
             // Trust anchor 
-            key_file.set_string (id_card.display_name, "CA-Cert", id_card.trust_anchor.ca_cert ?? "");
-            key_file.set_string (id_card.display_name, "Subject", id_card.trust_anchor.subject ?? "");
-            key_file.set_string (id_card.display_name, "SubjectAlt", id_card.trust_anchor.subject_alt ?? "");
-            key_file.set_string (id_card.display_name, "ServerCert", id_card.trust_anchor.server_cert ?? "");
+            key_file.set_string(id_card.display_name, "CA-Cert", id_card.trust_anchor.ca_cert);
+            key_file.set_string(id_card.display_name, "Subject", id_card.trust_anchor.subject);
+            key_file.set_string(id_card.display_name, "SubjectAlt", id_card.trust_anchor.subject_alt);
+            key_file.set_string(id_card.display_name, "ServerCert", id_card.trust_anchor.server_cert);
+            if (id_card.trust_anchor.datetime_added != "") {
+                key_file.set_string(id_card.display_name, "TA_DateTime_Added", id_card.trust_anchor.datetime_added);
+            }
+            logger.trace(@"store_id_cards: Stored '$(id_card.display_name)'");
         }
 
-        var text = key_file.to_data (null);
+        var text = key_file.to_data(null);
 
         try {
-            var path = get_data_dir ();
-            var filename = Path.build_filename (path, FILE_NAME);
+            var path = get_data_dir();
+            var filename = Path.build_filename(path, FILE_NAME);
+            logger.trace("store_id_cards: attempting to store to " + filename);
             var file  = File.new_for_path(filename);
             var stream = file.replace(null, false, FileCreateFlags.PRIVATE);
-#if GIO_VAPI_USES_ARRAYS
+            #if GIO_VAPI_USES_ARRAYS
             stream.write(text.data);
-#else
+            #else
             var bits = text.data;
             stream.write(&bits[0], bits.length);
-#endif
-        }
+            #endif
+                }
         catch (Error e) {
-            stdout.printf ("Error:  %s\n", e.message);
+            logger.error("store_id_cards: Error while saving keyfile: %s\n".printf(e.message));
+            stdout.printf("Error:  %s\n", e.message);
         }
 
         load_id_cards();
     }
 
-     public LocalFlatFileStore () {
+    public LocalFlatFileStore() {
         id_card_list = new LinkedList<IdCard>();
         load_id_cards();
-     }
- }
+    }
+}
 
diff --git a/src/moonshot-logger.c b/src/moonshot-logger.c
new file mode 100644 (file)
index 0000000..cce852f
--- /dev/null
@@ -0,0 +1,224 @@
+/* moonshot-logger.c generated by valac 0.34.9, the Vala compiler
+ * generated from moonshot-logger.vala, do not modify */
+
+/*
+ * Copyright (c) 2011-2016, JANET(UK)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of JANET(UK) nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
+typedef struct _MoonshotLoggerPrivate MoonshotLoggerPrivate;
+
+struct _MoonshotLogger {
+       GObject parent_instance;
+       MoonshotLoggerPrivate * priv;
+};
+
+struct _MoonshotLoggerClass {
+       GObjectClass parent_class;
+};
+
+
+static gpointer moonshot_logger_parent_class = NULL;
+
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* get_logger (const gchar* name);
+MoonshotLogger* moonshot_logger_new (const gchar* name);
+MoonshotLogger* moonshot_logger_construct (GType object_type, const gchar* name);
+enum  {
+       MOONSHOT_LOGGER_DUMMY_PROPERTY
+};
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
+void moonshot_logger_debug (MoonshotLogger* self, const gchar* message, GError* e);
+void moonshot_logger_info (MoonshotLogger* self, const gchar* message, GError* e);
+void moonshot_logger_warn (MoonshotLogger* self, const gchar* message, GError* e);
+void moonshot_logger_error (MoonshotLogger* self, const gchar* message, GError* e);
+void moonshot_logger_fatal (MoonshotLogger* self, const gchar* message, GError* e);
+
+
+MoonshotLogger* get_logger (const gchar* name) {
+       MoonshotLogger* result = NULL;
+       const gchar* _tmp0_ = NULL;
+       MoonshotLogger* _tmp1_ = NULL;
+#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_val_if_fail (name != NULL, NULL);
+#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       _tmp0_ = name;
+#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       _tmp1_ = moonshot_logger_new (_tmp0_);
+#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       result = _tmp1_;
+#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       return result;
+#line 95 "moonshot-logger.c"
+}
+
+
+MoonshotLogger* moonshot_logger_construct (GType object_type, const gchar* name) {
+       MoonshotLogger * self = NULL;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_val_if_fail (name != NULL, NULL);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       self = (MoonshotLogger*) g_object_new (object_type, NULL);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       return self;
+#line 107 "moonshot-logger.c"
+}
+
+
+MoonshotLogger* moonshot_logger_new (const gchar* name) {
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       return moonshot_logger_construct (TYPE_MOONSHOT_LOGGER, name);
+#line 114 "moonshot-logger.c"
+}
+
+
+/**
+     * Log a trace message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e) {
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_if_fail (self != NULL);
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_if_fail (message != NULL);
+#line 128 "moonshot-logger.c"
+}
+
+
+/**
+     * Log a debug message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+void moonshot_logger_debug (MoonshotLogger* self, const gchar* message, GError* e) {
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_if_fail (self != NULL);
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_if_fail (message != NULL);
+#line 142 "moonshot-logger.c"
+}
+
+
+/**
+     * Log an info message.
+     * @param e optional Error to be logged
+     */
+void moonshot_logger_info (MoonshotLogger* self, const gchar* message, GError* e) {
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_if_fail (self != NULL);
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_if_fail (message != NULL);
+#line 155 "moonshot-logger.c"
+}
+
+
+/**
+     * Log a warning message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+void moonshot_logger_warn (MoonshotLogger* self, const gchar* message, GError* e) {
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_if_fail (self != NULL);
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_if_fail (message != NULL);
+#line 169 "moonshot-logger.c"
+}
+
+
+/**
+     * Log an error message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+void moonshot_logger_error (MoonshotLogger* self, const gchar* message, GError* e) {
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_if_fail (self != NULL);
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_if_fail (message != NULL);
+#line 183 "moonshot-logger.c"
+}
+
+
+/**
+     * Log a fatal message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+void moonshot_logger_fatal (MoonshotLogger* self, const gchar* message, GError* e) {
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_if_fail (self != NULL);
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       g_return_if_fail (message != NULL);
+#line 197 "moonshot-logger.c"
+}
+
+
+static void moonshot_logger_class_init (MoonshotLoggerClass * klass) {
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-logger.vala"
+       moonshot_logger_parent_class = g_type_class_peek_parent (klass);
+#line 204 "moonshot-logger.c"
+}
+
+
+static void moonshot_logger_instance_init (MoonshotLogger * self) {
+}
+
+
+/** Logger that currently does nothing, but may eventually write to stdout or a file if enabled */
+GType moonshot_logger_get_type (void) {
+       static volatile gsize moonshot_logger_type_id__volatile = 0;
+       if (g_once_init_enter (&moonshot_logger_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (MoonshotLoggerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) moonshot_logger_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MoonshotLogger), 0, (GInstanceInitFunc) moonshot_logger_instance_init, NULL };
+               GType moonshot_logger_type_id;
+               moonshot_logger_type_id = g_type_register_static (G_TYPE_OBJECT, "MoonshotLogger", &g_define_type_info, 0);
+               g_once_init_leave (&moonshot_logger_type_id__volatile, moonshot_logger_type_id);
+       }
+       return moonshot_logger_type_id__volatile;
+}
+
+
+
diff --git a/src/moonshot-logger.vala b/src/moonshot-logger.vala
new file mode 100644 (file)
index 0000000..c66aa7e
--- /dev/null
@@ -0,0 +1,186 @@
+/*
+ * Copyright (c) 2011-2016, JANET(UK)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of JANET(UK) nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+public MoonshotLogger get_logger(string name) {
+    return new MoonshotLogger(name);
+}
+
+
+#if USE_LOG4VALA
+
+static void glib_default_log_handler(string? log_domain, LogLevelFlags log_level, string message)
+{
+    Log4Vala.Logger logger = Log4Vala.Logger.get_logger(log_domain ?? "Glib");
+    stderr.printf(log_level.to_string() + " : " + message ?? "" + "\n");
+    logger.error("Glib error level: " + log_level.to_string() + " : " + (message ?? ""));
+}
+
+/** Logger class that wraps the Log4Vala logger */
+public class MoonshotLogger : Object {
+    static bool logger_is_initialized = false;
+
+    private Log4Vala.Logger logger;
+
+    public MoonshotLogger(string name) {
+        if (!logger_is_initialized) {
+            Log.set_default_handler(glib_default_log_handler);
+
+#if IPC_MSRPC
+            // Look for config file in the app's current directory.
+            string conf_file = "log4vala.conf";
+#else
+            string conf_file = GLib.Environment.get_variable("MOONSHOT_UI_LOG_CONFIG");
+#endif
+            Log4Vala.init(conf_file);
+            logger_is_initialized = true;
+        }
+
+        logger = Log4Vala.Logger.get_logger(name);
+    }
+
+    /**
+     * Log a trace message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+    public void trace(string message, Error? e = null) {
+        logger.trace(message, e);
+    }
+
+
+    /**
+     * Log a debug message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+    public void debug(string message, Error? e = null) {
+        logger.debug(message, e);
+    }
+
+
+    /**
+     * Log an info message.
+     * @param e optional Error to be logged
+     */
+    public void info(string message, Error? e = null) {
+        logger.info(message, e);
+    }
+
+    /**
+     * Log a warning message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+    public void warn(string message, Error? e = null) {
+        logger.warn(message, e);
+    }
+
+    /**
+     * Log an error message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+    public void error(string message, Error? e = null) {
+        logger.error(message, e);
+    }
+
+    /**
+     * Log a fatal message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+    public void fatal(string message, Error? e = null) {
+        logger.fatal(message, e);
+    }
+}
+
+
+#else
+
+/** Logger that currently does nothing, but may eventually write to stdout or a file if enabled */
+public class MoonshotLogger : Object {
+
+    internal MoonshotLogger(string name) {
+    }
+
+    /**
+     * Log a trace message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+    public void trace(string message, Error? e = null) {
+    }
+
+
+    /**
+     * Log a debug message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+    public void debug(string message, Error? e = null) {
+    }
+
+
+    /**
+     * Log an info message.
+     * @param e optional Error to be logged
+     */
+    public void info(string message, Error? e = null) {
+    }
+
+    /**
+     * Log a warning message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+    public void warn(string message, Error? e = null) {
+    }
+
+    /**
+     * Log an error message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+    public void error(string message, Error? e = null) {
+    }
+
+    /**
+     * Log a fatal message.
+     * @param message log message
+     * @param e optional Error to be logged
+     */
+    public void fatal(string message, Error? e = null) {
+    }
+}
+
+#endif
index a4adbf6..9ca7693 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-password-dialog.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-password-dialog.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-password-dialog.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,7 @@
 #include <glib.h>
 #include <glib-object.h>
 #include <gtk/gtk.h>
+#include <gdk/gdk.h>
 #include <glib/gi18n-lib.h>
 #include <stdlib.h>
 #include <string.h>
@@ -76,7 +77,6 @@ typedef struct _IdCardClass IdCardClass;
 typedef struct _IdentityRequest IdentityRequest;
 typedef struct _IdentityRequestClass IdentityRequestClass;
 #define _g_free0(var) (var = (g_free (var), NULL))
-typedef struct _IdentityRequestPrivate IdentityRequestPrivate;
 
 struct _AddPasswordDialog {
        GtkDialog parent_instance;
@@ -92,24 +92,10 @@ struct _AddPasswordDialogPrivate {
        GtkCheckButton* remember_checkbutton;
 };
 
-struct _IdentityRequest {
-       GObject parent_instance;
-       IdentityRequestPrivate * priv;
-       IdCard* id_card;
-       gboolean complete;
-       gboolean select_default;
-       gchar* nai;
-       gchar* password;
-       gchar* service;
-       GSList* candidates;
-};
-
-struct _IdentityRequestClass {
-       GObjectClass parent_class;
-};
-
 
 static gpointer add_password_dialog_parent_class = NULL;
+static GdkColor add_password_dialog_white;
+static GdkColor add_password_dialog_white = {0};
 
 GType add_password_dialog_get_type (void) G_GNUC_CONST;
 #define ADD_PASSWORD_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ADD_PASSWORD_DIALOG, AddPasswordDialogPrivate))
@@ -118,483 +104,388 @@ enum  {
        ADD_PASSWORD_DIALOG_PASSWORD,
        ADD_PASSWORD_DIALOG_REMEMBER
 };
+void make_color (guint16 red, guint16 green, guint16 blue, GdkColor* result);
+void add_password_dialog_clear_password (AddPasswordDialog* self);
+void clear_password_entry (GtkEntry* entry);
 GType id_card_get_type (void) G_GNUC_CONST;
 GType identity_request_get_type (void) G_GNUC_CONST;
 AddPasswordDialog* add_password_dialog_new (IdCard* id_card, IdentityRequest* request);
 AddPasswordDialog* add_password_dialog_construct (GType object_type, IdCard* id_card, IdentityRequest* request);
+void set_bg_color (GtkWidget* w);
 const gchar* id_card_get_display_name (IdCard* self);
 const gchar* id_card_get_nai (IdCard* self);
-static void add_password_dialog_set_atk_relation (AddPasswordDialog* self, GtkWidget* widget, GtkWidget* target_widget, AtkRelationType relationship);
+void set_atk_relation (GtkWidget* widget, GtkWidget* target_widget, AtkRelationType relationship);
 const gchar* add_password_dialog_get_password (AddPasswordDialog* self);
 gboolean add_password_dialog_get_remember (AddPasswordDialog* self);
 static void add_password_dialog_finalize (GObject* obj);
 static void _vala_add_password_dialog_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
 
 
+/**
+     * Don't leave passwords in memory longer than necessary.
+     * This may not actually erase the password data bytes, but it seems to be the best we can do.
+     */
+void add_password_dialog_clear_password (AddPasswordDialog* self) {
+       GtkEntry* _tmp0_ = NULL;
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       g_return_if_fail (self != NULL);
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp0_ = self->priv->password_entry;
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       clear_password_entry (_tmp0_);
+#line 137 "moonshot-password-dialog.c"
+}
+
+
 static gpointer _g_object_ref0 (gpointer self) {
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        return self ? g_object_ref (self) : NULL;
-#line 138 "moonshot-password-dialog.c"
+#line 144 "moonshot-password-dialog.c"
 }
 
 
 AddPasswordDialog* add_password_dialog_construct (GType object_type, IdCard* id_card, IdentityRequest* request) {
        AddPasswordDialog * self = NULL;
        const gchar* _tmp0_ = NULL;
-       IdCard* _tmp1_ = NULL;
+       const gchar* _tmp1_ = NULL;
        const gchar* _tmp2_ = NULL;
-       const gchar* _tmp3_ = NULL;
-       gchar* _tmp4_ = NULL;
-       gchar* _tmp5_ = NULL;
-       IdentityRequest* _tmp6_ = NULL;
        GtkWidget* content_area = NULL;
-       GtkWidget* _tmp11_ = NULL;
-       GtkWidget* _tmp12_ = NULL;
-       GtkWidget* _tmp13_ = NULL;
-       GtkLabel* service_label = NULL;
-       GtkLabel* service_value = NULL;
-       IdentityRequest* _tmp14_ = NULL;
+       GtkWidget* _tmp3_ = NULL;
+       GtkWidget* _tmp4_ = NULL;
+       GtkLabel* dialog_label = NULL;
+       const gchar* _tmp5_ = NULL;
+       IdCard* _tmp6_ = NULL;
+       const gchar* _tmp7_ = NULL;
+       const gchar* _tmp8_ = NULL;
+       gchar* _tmp9_ = NULL;
+       gchar* _tmp10_ = NULL;
+       GtkLabel* _tmp11_ = NULL;
+       GtkLabel* _tmp12_ = NULL;
        GtkLabel* nai_label = NULL;
-       const gchar* _tmp22_ = NULL;
-       GtkLabel* _tmp23_ = NULL;
-       GtkLabel* _tmp24_ = NULL;
+       const gchar* _tmp13_ = NULL;
+       GtkLabel* _tmp14_ = NULL;
        GtkLabel* nai_value = NULL;
-       IdCard* _tmp25_ = NULL;
-       const gchar* _tmp26_ = NULL;
-       const gchar* _tmp27_ = NULL;
-       GtkLabel* _tmp28_ = NULL;
-       GtkLabel* _tmp29_ = NULL;
+       IdCard* _tmp15_ = NULL;
+       const gchar* _tmp16_ = NULL;
+       const gchar* _tmp17_ = NULL;
+       GtkLabel* _tmp18_ = NULL;
        GtkLabel* password_label = NULL;
-       const gchar* _tmp30_ = NULL;
-       GtkLabel* _tmp31_ = NULL;
-       GtkLabel* _tmp32_ = NULL;
-       GtkEntry* _tmp33_ = NULL;
-       GtkEntry* _tmp34_ = NULL;
-       GtkEntry* _tmp35_ = NULL;
-       GtkEntry* _tmp36_ = NULL;
-       const gchar* _tmp37_ = NULL;
-       GtkCheckButton* _tmp38_ = NULL;
-       GtkEntry* _tmp39_ = NULL;
-       GtkEntry* _tmp40_ = NULL;
+       const gchar* _tmp19_ = NULL;
+       GtkLabel* _tmp20_ = NULL;
+       GtkEntry* _tmp21_ = NULL;
+       GtkEntry* _tmp22_ = NULL;
+       GtkEntry* _tmp23_ = NULL;
+       GtkEntry* _tmp24_ = NULL;
+       const gchar* _tmp25_ = NULL;
+       GtkCheckButton* _tmp26_ = NULL;
+       GtkEntry* _tmp27_ = NULL;
        GtkTable* table = NULL;
-       GtkTable* _tmp41_ = NULL;
+       GtkTable* _tmp28_ = NULL;
+       GtkAttachOptions opts = 0;
        gint row = 0;
-       GtkTable* _tmp42_ = NULL;
-       GtkTable* _tmp43_ = NULL;
-       IdentityRequest* _tmp44_ = NULL;
-       GtkTable* _tmp54_ = NULL;
-       GtkLabel* _tmp55_ = NULL;
-       gint _tmp56_ = 0;
-       gint _tmp57_ = 0;
-       GtkTable* _tmp58_ = NULL;
-       GtkLabel* _tmp59_ = NULL;
-       gint _tmp60_ = 0;
-       gint _tmp61_ = 0;
-       gint _tmp62_ = 0;
-       GtkTable* _tmp63_ = NULL;
-       GtkLabel* _tmp64_ = NULL;
-       gint _tmp65_ = 0;
-       gint _tmp66_ = 0;
-       GtkTable* _tmp67_ = NULL;
-       GtkEntry* _tmp68_ = NULL;
-       gint _tmp69_ = 0;
-       gint _tmp70_ = 0;
-       gint _tmp71_ = 0;
-       GtkTable* _tmp72_ = NULL;
-       GtkCheckButton* _tmp73_ = NULL;
-       gint _tmp74_ = 0;
-       gint _tmp75_ = 0;
+       gint _tmp29_ = 0;
+       gint _tmp30_ = 0;
+       gint _tmp31_ = 0;
+       GtkVBox* nai_vbox = NULL;
+       GtkVBox* _tmp32_ = NULL;
+       gint _tmp33_ = 0;
+       gint _tmp34_ = 0;
+       gint _tmp35_ = 0;
+       GtkVBox* password_vbox = NULL;
+       GtkVBox* _tmp36_ = NULL;
+       GtkVBox* empty_box2 = NULL;
+       GtkVBox* _tmp37_ = NULL;
+       GtkEntry* _tmp38_ = NULL;
+       gint _tmp39_ = 0;
+       gint _tmp40_ = 0;
+       gint _tmp41_ = 0;
+       GtkCheckButton* _tmp42_ = NULL;
+       gint _tmp43_ = 0;
+       gint _tmp44_ = 0;
+       gint _tmp45_ = 0;
+       GtkVBox* empty_box3 = NULL;
+       GtkVBox* _tmp46_ = NULL;
+       gint _tmp47_ = 0;
+       gint _tmp48_ = 0;
+       gint _tmp49_ = 0;
        GtkVBox* vbox = NULL;
-       GtkVBox* _tmp76_ = NULL;
-       GtkTable* _tmp77_ = NULL;
-       GtkWidget* _tmp78_ = NULL;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       GtkVBox* _tmp50_ = NULL;
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        g_return_val_if_fail (id_card != NULL, NULL);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        self = (AddPasswordDialog*) g_object_new (object_type, NULL);
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp0_ = _ ("Please enter password for ");
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp1_ = id_card;
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp2_ = id_card_get_display_name (_tmp1_);
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp3_ = _tmp2_;
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp4_ = g_strconcat (_tmp0_, _tmp3_, NULL);
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp5_ = _tmp4_;
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_window_set_title ((GtkWindow*) self, _tmp5_);
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _g_free0 (_tmp5_);
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_window_set_modal ((GtkWindow*) self, TRUE);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp6_ = request;
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       if (_tmp6_ != NULL) {
-#line 238 "moonshot-password-dialog.c"
-               const gchar* _tmp7_ = NULL;
-               const gchar* _tmp8_ = NULL;
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp7_ = _ ("Send");
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp8_ = _ ("Return to application");
-#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               gtk_dialog_add_buttons ((GtkDialog*) self, _tmp7_, GTK_RESPONSE_OK, _tmp8_, GTK_RESPONSE_CANCEL, NULL);
-#line 247 "moonshot-password-dialog.c"
-       } else {
-               const gchar* _tmp9_ = NULL;
-               const gchar* _tmp10_ = NULL;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp9_ = _ ("Done");
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp10_ = _ ("Cancel");
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               gtk_dialog_add_buttons ((GtkDialog*) self, _tmp9_, GTK_RESPONSE_OK, _tmp10_, GTK_RESPONSE_CANCEL, NULL);
-#line 257 "moonshot-password-dialog.c"
-       }
 #line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_dialog_set_default_response ((GtkDialog*) self, (gint) GTK_RESPONSE_OK);
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp11_ = gtk_dialog_get_content_area ((GtkDialog*) self);
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp12_ = _g_object_ref0 (_tmp11_);
+       _tmp0_ = _ ("Moonshot - Password");
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_window_set_title ((GtkWindow*) self, _tmp0_);
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_window_set_modal ((GtkWindow*) self, TRUE);
 #line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       content_area = _tmp12_;
-#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp13_ = content_area;
-#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_box_set_spacing (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GTK_TYPE_BOX, GtkBox), 12);
+       set_bg_color ((GtkWidget*) self);
 #line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       service_label = NULL;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       service_value = NULL;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp14_ = request;
-#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       if (_tmp14_ != NULL) {
-#line 279 "moonshot-password-dialog.c"
-               const gchar* _tmp15_ = NULL;
-               GtkLabel* _tmp16_ = NULL;
-               GtkLabel* _tmp17_ = NULL;
-               IdentityRequest* _tmp18_ = NULL;
-               const gchar* _tmp19_ = NULL;
-               GtkLabel* _tmp20_ = NULL;
-               GtkLabel* _tmp21_ = NULL;
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp15_ = _ ("for use with:");
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp16_ = (GtkLabel*) gtk_label_new (_tmp15_);
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               g_object_ref_sink (_tmp16_);
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _g_object_unref0 (service_label);
+       _tmp1_ = _ ("Cancel");
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp2_ = _ ("Connect");
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_dialog_add_buttons ((GtkDialog*) self, _tmp1_, GTK_RESPONSE_CANCEL, _tmp2_, GTK_RESPONSE_OK, NULL);
 #line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               service_label = _tmp16_;
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp17_ = service_label;
-#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               gtk_misc_set_alignment ((GtkMisc*) _tmp17_, (gfloat) 1, (gfloat) 0.5);
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp18_ = request;
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp19_ = _tmp18_->service;
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp20_ = (GtkLabel*) gtk_label_new (_tmp19_);
+       gtk_dialog_set_default_response ((GtkDialog*) self, (gint) GTK_RESPONSE_OK);
 #line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               g_object_ref_sink (_tmp20_);
+       _tmp3_ = gtk_dialog_get_content_area ((GtkDialog*) self);
 #line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _g_object_unref0 (service_value);
+       _tmp4_ = _g_object_ref0 (_tmp3_);
 #line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               service_value = _tmp20_;
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp21_ = service_value;
+       content_area = _tmp4_;
 #line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               gtk_misc_set_alignment ((GtkMisc*) _tmp21_, (gfloat) 0, (gfloat) 0.5);
-#line 317 "moonshot-password-dialog.c"
-       }
+       gtk_box_set_spacing (G_TYPE_CHECK_INSTANCE_CAST (content_area, GTK_TYPE_BOX, GtkBox), 12);
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       set_bg_color (content_area);
 #line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp22_ = _ ("Network Access Identifier:");
+       _tmp5_ = _ ("Enter the password for ");
 #line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp23_ = (GtkLabel*) gtk_label_new (_tmp22_);
+       _tmp6_ = id_card;
 #line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       g_object_ref_sink (_tmp23_);
+       _tmp7_ = id_card_get_display_name (_tmp6_);
 #line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       nai_label = _tmp23_;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp24_ = nai_label;
+       _tmp8_ = _tmp7_;
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp9_ = g_strconcat (_tmp5_, _tmp8_, NULL);
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp10_ = _tmp9_;
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp11_ = (GtkLabel*) gtk_label_new (_tmp10_);
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       g_object_ref_sink (_tmp11_);
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp12_ = _tmp11_;
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _g_free0 (_tmp10_);
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       dialog_label = _tmp12_;
 #line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_misc_set_alignment ((GtkMisc*) _tmp24_, (gfloat) 1, (gfloat) 0.5);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp25_ = id_card;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp26_ = id_card_get_nai (_tmp25_);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp27_ = _tmp26_;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp28_ = (GtkLabel*) gtk_label_new (_tmp27_);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       g_object_ref_sink (_tmp28_);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       nai_value = _tmp28_;
+       gtk_misc_set_alignment ((GtkMisc*) dialog_label, (gfloat) 0, (gfloat) 0);
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp13_ = _ ("User (NAI):");
 #line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp29_ = nai_value;
+       _tmp14_ = (GtkLabel*) gtk_label_new (_tmp13_);
 #line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_misc_set_alignment ((GtkMisc*) _tmp29_, (gfloat) 0, (gfloat) 0.5);
+       g_object_ref_sink (_tmp14_);
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       nai_label = _tmp14_;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) nai_label, (gfloat) 0, (gfloat) 1);
 #line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp30_ = _ ("Password:");
+       _tmp15_ = id_card;
 #line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp31_ = (GtkLabel*) gtk_label_new (_tmp30_);
+       _tmp16_ = id_card_get_nai (_tmp15_);
 #line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       g_object_ref_sink (_tmp31_);
+       _tmp17_ = _tmp16_;
 #line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       password_label = _tmp31_;
-#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp32_ = password_label;
+       _tmp18_ = (GtkLabel*) gtk_label_new (_tmp17_);
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       g_object_ref_sink (_tmp18_);
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       nai_value = _tmp18_;
 #line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_misc_set_alignment ((GtkMisc*) _tmp32_, (gfloat) 1, (gfloat) 0.5);
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp33_ = (GtkEntry*) gtk_entry_new ();
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       g_object_ref_sink (_tmp33_);
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _g_object_unref0 (self->priv->password_entry);
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       self->priv->password_entry = _tmp33_;
+       gtk_misc_set_alignment ((GtkMisc*) nai_value, (gfloat) 0, (gfloat) 0);
 #line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp34_ = self->priv->password_entry;
+       _tmp19_ = _ ("Password:");
 #line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_entry_set_invisible_char (_tmp34_, (gunichar) '*');
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp35_ = self->priv->password_entry;
+       _tmp20_ = (GtkLabel*) gtk_label_new (_tmp19_);
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       g_object_ref_sink (_tmp20_);
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       password_label = _tmp20_;
 #line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_entry_set_visibility (_tmp35_, FALSE);
+       gtk_misc_set_alignment ((GtkMisc*) password_label, (gfloat) 0, (gfloat) 1);
 #line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp36_ = self->priv->password_entry;
+       _tmp21_ = (GtkEntry*) gtk_entry_new ();
 #line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_entry_set_activates_default (_tmp36_, TRUE);
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp37_ = _ ("Remember password");
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp38_ = (GtkCheckButton*) gtk_check_button_new_with_label (_tmp37_);
+       g_object_ref_sink (_tmp21_);
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _g_object_unref0 (self->priv->password_entry);
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       self->priv->password_entry = _tmp21_;
 #line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       g_object_ref_sink (_tmp38_);
+       _tmp22_ = self->priv->password_entry;
 #line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _g_object_unref0 (self->priv->remember_checkbutton);
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       self->priv->remember_checkbutton = _tmp38_;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp39_ = self->priv->password_entry;
+       gtk_entry_set_invisible_char (_tmp22_, (gunichar) '*');
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp23_ = self->priv->password_entry;
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_entry_set_visibility (_tmp23_, FALSE);
 #line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp40_ = self->priv->password_entry;
+       _tmp24_ = self->priv->password_entry;
 #line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       add_password_dialog_set_atk_relation (self, (GtkWidget*) _tmp39_, (GtkWidget*) _tmp40_, ATK_RELATION_LABEL_FOR);
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp41_ = (GtkTable*) gtk_table_new ((guint) 4, (guint) 2, FALSE);
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       g_object_ref_sink (_tmp41_);
-#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       table = _tmp41_;
+       gtk_entry_set_activates_default (_tmp24_, TRUE);
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp25_ = _ ("Remember password");
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp26_ = (GtkCheckButton*) gtk_check_button_new_with_label (_tmp25_);
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       g_object_ref_sink (_tmp26_);
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _g_object_unref0 (self->priv->remember_checkbutton);
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       self->priv->remember_checkbutton = _tmp26_;
 #line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       row = 0;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp42_ = table;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_table_set_col_spacings (_tmp42_, (guint) 10);
+       _tmp27_ = self->priv->password_entry;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       set_atk_relation ((GtkWidget*) password_label, (GtkWidget*) _tmp27_, ATK_RELATION_LABEL_FOR);
 #line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp43_ = table;
+       _tmp28_ = (GtkTable*) gtk_table_new ((guint) 6, (guint) 1, FALSE);
 #line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_table_set_row_spacings (_tmp43_, (guint) 10);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp44_ = request;
+       g_object_ref_sink (_tmp28_);
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       table = _tmp28_;
 #line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       if (_tmp44_ != NULL) {
-#line 415 "moonshot-password-dialog.c"
-               GtkTable* _tmp45_ = NULL;
-               GtkLabel* _tmp46_ = NULL;
-               gint _tmp47_ = 0;
-               gint _tmp48_ = 0;
-               GtkTable* _tmp49_ = NULL;
-               GtkLabel* _tmp50_ = NULL;
-               gint _tmp51_ = 0;
-               gint _tmp52_ = 0;
-               gint _tmp53_ = 0;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp45_ = table;
+       opts = GTK_EXPAND | GTK_FILL;
 #line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp46_ = service_label;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp47_ = row;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp48_ = row;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               gtk_table_attach_defaults (_tmp45_, (GtkWidget*) _tmp46_, (guint) 0, (guint) 1, (guint) _tmp47_, (guint) (_tmp48_ + 1));
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp49_ = table;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp50_ = service_value;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp51_ = row;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp52_ = row;
+       row = 0;
 #line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               gtk_table_attach_defaults (_tmp49_, (GtkWidget*) _tmp50_, (guint) 1, (guint) 2, (guint) _tmp51_, (guint) (_tmp52_ + 1));
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               _tmp53_ = row;
+       gtk_table_set_col_spacings (table, (guint) 6);
 #line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-               row = _tmp53_ + 1;
-#line 449 "moonshot-password-dialog.c"
-       }
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp54_ = table;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp55_ = nai_label;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp56_ = row;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp57_ = row;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_table_attach_defaults (_tmp54_, (GtkWidget*) _tmp55_, (guint) 0, (guint) 1, (guint) _tmp56_, (guint) (_tmp57_ + 1));
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp58_ = table;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp59_ = nai_value;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp60_ = row;
+       gtk_table_set_row_spacings (table, (guint) 0);
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp29_ = row;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp30_ = row;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_table_attach (table, (GtkWidget*) dialog_label, (guint) 0, (guint) 1, (guint) _tmp29_, (guint) (_tmp30_ + 1), opts, opts, (guint) 0, (guint) 2);
 #line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp61_ = row;
+       _tmp31_ = row;
 #line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_table_attach_defaults (_tmp58_, (GtkWidget*) _tmp59_, (guint) 1, (guint) 2, (guint) _tmp60_, (guint) (_tmp61_ + 1));
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp62_ = row;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       row = _tmp62_ + 1;
+       row = _tmp31_ + 1;
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp63_ = table;
+       _tmp32_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp64_ = password_label;
+       g_object_ref_sink (_tmp32_);
 #line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp65_ = row;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp66_ = row;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_table_attach_defaults (_tmp63_, (GtkWidget*) _tmp64_, (guint) 0, (guint) 1, (guint) _tmp65_, (guint) (_tmp66_ + 1));
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp67_ = table;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp68_ = self->priv->password_entry;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp69_ = row;
+       nai_vbox = _tmp32_;
 #line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp70_ = row;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_table_attach_defaults (_tmp67_, (GtkWidget*) _tmp68_, (guint) 1, (guint) 2, (guint) _tmp69_, (guint) (_tmp70_ + 1));
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp71_ = row;
+       gtk_box_pack_start ((GtkBox*) nai_vbox, (GtkWidget*) nai_label, FALSE, FALSE, (guint) 0);
 #line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       row = _tmp71_ + 1;
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp72_ = table;
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp73_ = self->priv->remember_checkbutton;
+       gtk_box_pack_start ((GtkBox*) nai_vbox, (GtkWidget*) nai_value, FALSE, FALSE, (guint) 0);
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp74_ = row;
+       _tmp33_ = row;
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp75_ = row;
+       _tmp34_ = row;
 #line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_table_attach_defaults (_tmp72_, (GtkWidget*) _tmp73_, (guint) 1, (guint) 2, (guint) _tmp74_, (guint) (_tmp75_ + 1));
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp76_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       g_object_ref_sink (_tmp76_);
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       vbox = _tmp76_;
+       gtk_table_attach (table, (GtkWidget*) nai_vbox, (guint) 0, (guint) 1, (guint) _tmp33_, (guint) (_tmp34_ + 1), opts, opts, (guint) 0, (guint) 12);
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp35_ = row;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       row = _tmp35_ + 1;
 #line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_container_set_border_width ((GtkContainer*) vbox, (guint) 6);
+       _tmp36_ = (GtkVBox*) gtk_vbox_new (FALSE, 1);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       g_object_ref_sink (_tmp36_);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       password_vbox = _tmp36_;
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp77_ = table;
+       _tmp37_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
 #line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) _tmp77_, FALSE, FALSE, (guint) 0);
-#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp78_ = content_area;
+       g_object_ref_sink (_tmp37_);
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       empty_box2 = _tmp37_;
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_widget_set_size_request ((GtkWidget*) empty_box2, 0, 0);
 #line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp78_, GTK_TYPE_CONTAINER, GtkContainer), (GtkWidget*) vbox);
+       gtk_box_pack_start ((GtkBox*) password_vbox, (GtkWidget*) empty_box2, FALSE, FALSE, (guint) 3);
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) password_vbox, (GtkWidget*) password_label, FALSE, FALSE, (guint) 0);
 #line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       gtk_container_set_border_width ((GtkContainer*) self, (guint) 6);
+       _tmp38_ = self->priv->password_entry;
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) password_vbox, (GtkWidget*) _tmp38_, FALSE, FALSE, (guint) 0);
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp39_ = row;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp40_ = row;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_table_attach (table, (GtkWidget*) password_vbox, (guint) 0, (guint) 1, (guint) _tmp39_, (guint) (_tmp40_ + 1), opts, opts, (guint) 0, (guint) 0);
 #line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp41_ = row;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       row = _tmp41_ + 1;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp42_ = self->priv->remember_checkbutton;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp43_ = row;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp44_ = row;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_table_attach (table, (GtkWidget*) _tmp42_, (guint) 0, (guint) 1, (guint) _tmp43_, (guint) (_tmp44_ + 1), opts, opts, (guint) 20, (guint) 2);
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp45_ = row;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       row = _tmp45_ + 1;
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp46_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       g_object_ref_sink (_tmp46_);
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       empty_box3 = _tmp46_;
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_widget_set_size_request ((GtkWidget*) empty_box3, 0, 0);
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp47_ = row;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp48_ = row;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_table_attach (table, (GtkWidget*) empty_box3, (guint) 0, (guint) 1, (guint) _tmp47_, (guint) (_tmp48_ + 1), opts, opts, (guint) 0, (guint) 10);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp49_ = row;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       row = _tmp49_ + 1;
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _tmp50_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       g_object_ref_sink (_tmp50_);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       vbox = _tmp50_;
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_container_set_border_width ((GtkContainer*) vbox, (guint) 6);
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) table, FALSE, FALSE, (guint) 0);
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (content_area, GTK_TYPE_CONTAINER, GtkContainer), (GtkWidget*) vbox);
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       gtk_container_set_border_width ((GtkContainer*) self, (guint) 6);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        gtk_widget_show_all ((GtkWidget*) self);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        _g_object_unref0 (vbox);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _g_object_unref0 (empty_box3);
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _g_object_unref0 (empty_box2);
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _g_object_unref0 (password_vbox);
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _g_object_unref0 (nai_vbox);
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        _g_object_unref0 (table);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        _g_object_unref0 (password_label);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        _g_object_unref0 (nai_value);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        _g_object_unref0 (nai_label);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _g_object_unref0 (service_value);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _g_object_unref0 (service_label);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       _g_object_unref0 (dialog_label);
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        _g_object_unref0 (content_area);
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        return self;
-#line 547 "moonshot-password-dialog.c"
+#line 482 "moonshot-password-dialog.c"
 }
 
 
 AddPasswordDialog* add_password_dialog_new (IdCard* id_card, IdentityRequest* request) {
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        return add_password_dialog_construct (TYPE_ADD_PASSWORD_DIALOG, id_card, request);
-#line 554 "moonshot-password-dialog.c"
-}
-
-
-static void add_password_dialog_set_atk_relation (AddPasswordDialog* self, GtkWidget* widget, GtkWidget* target_widget, AtkRelationType relationship) {
-       AtkObject* atk_widget = NULL;
-       GtkWidget* _tmp0_ = NULL;
-       AtkObject* _tmp1_ = NULL;
-       AtkObject* _tmp2_ = NULL;
-       AtkObject* atk_target_widget = NULL;
-       GtkWidget* _tmp3_ = NULL;
-       AtkObject* _tmp4_ = NULL;
-       AtkObject* _tmp5_ = NULL;
-       AtkRelationType _tmp6_ = 0;
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       g_return_if_fail (self != NULL);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       g_return_if_fail (widget != NULL);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       g_return_if_fail (target_widget != NULL);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp0_ = widget;
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp1_ = gtk_widget_get_accessible (_tmp0_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp2_ = _g_object_ref0 (_tmp1_);
-#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       atk_widget = _tmp2_;
-#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp3_ = target_widget;
-#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp4_ = gtk_widget_get_accessible (_tmp3_);
-#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp5_ = _g_object_ref0 (_tmp4_);
-#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       atk_target_widget = _tmp5_;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _tmp6_ = relationship;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       atk_object_add_relationship (atk_widget, _tmp6_, atk_target_widget);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _g_object_unref0 (atk_target_widget);
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
-       _g_object_unref0 (atk_widget);
-#line 598 "moonshot-password-dialog.c"
+#line 489 "moonshot-password-dialog.c"
 }
 
 
@@ -602,17 +493,17 @@ const gchar* add_password_dialog_get_password (AddPasswordDialog* self) {
        const gchar* result;
        GtkEntry* _tmp0_ = NULL;
        const gchar* _tmp1_ = NULL;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        g_return_val_if_fail (self != NULL, NULL);
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        _tmp0_ = self->priv->password_entry;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        _tmp1_ = gtk_entry_get_text (_tmp0_);
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        result = _tmp1_;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        return result;
-#line 616 "moonshot-password-dialog.c"
+#line 507 "moonshot-password-dialog.c"
 }
 
 
@@ -620,21 +511,22 @@ gboolean add_password_dialog_get_remember (AddPasswordDialog* self) {
        gboolean result;
        GtkCheckButton* _tmp0_ = NULL;
        gboolean _tmp1_ = FALSE;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        g_return_val_if_fail (self != NULL, FALSE);
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        _tmp0_ = self->priv->remember_checkbutton;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        _tmp1_ = gtk_toggle_button_get_active ((GtkToggleButton*) _tmp0_);
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        result = _tmp1_;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        return result;
-#line 634 "moonshot-password-dialog.c"
+#line 525 "moonshot-password-dialog.c"
 }
 
 
 static void add_password_dialog_class_init (AddPasswordDialogClass * klass) {
+       GdkColor _tmp0_ = {0};
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        add_password_dialog_parent_class = g_type_class_peek_parent (klass);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
@@ -647,14 +539,18 @@ static void add_password_dialog_class_init (AddPasswordDialogClass * klass) {
        g_object_class_install_property (G_OBJECT_CLASS (klass), ADD_PASSWORD_DIALOG_PASSWORD, g_param_spec_string ("password", "password", "password", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        g_object_class_install_property (G_OBJECT_CLASS (klass), ADD_PASSWORD_DIALOG_REMEMBER, g_param_spec_boolean ("remember", "remember", "remember", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
-#line 651 "moonshot-password-dialog.c"
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       make_color ((guint16) 65535, (guint16) 65535, (guint16) 65535, &_tmp0_);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+       add_password_dialog_white = _tmp0_;
+#line 547 "moonshot-password-dialog.c"
 }
 
 
 static void add_password_dialog_instance_init (AddPasswordDialog * self) {
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        self->priv = ADD_PASSWORD_DIALOG_GET_PRIVATE (self);
-#line 658 "moonshot-password-dialog.c"
+#line 554 "moonshot-password-dialog.c"
 }
 
 
@@ -662,13 +558,13 @@ static void add_password_dialog_finalize (GObject* obj) {
        AddPasswordDialog * self;
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ADD_PASSWORD_DIALOG, AddPasswordDialog);
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        _g_object_unref0 (self->priv->password_entry);
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
+#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        _g_object_unref0 (self->priv->remember_checkbutton);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
        G_OBJECT_CLASS (add_password_dialog_parent_class)->finalize (obj);
-#line 672 "moonshot-password-dialog.c"
+#line 568 "moonshot-password-dialog.c"
 }
 
 
@@ -701,13 +597,13 @@ static void _vala_add_password_dialog_get_property (GObject * object, guint prop
                g_value_set_boolean (value, add_password_dialog_get_remember (self));
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
                break;
-#line 705 "moonshot-password-dialog.c"
+#line 601 "moonshot-password-dialog.c"
                default:
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 #line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-password-dialog.vala"
                break;
-#line 711 "moonshot-password-dialog.c"
+#line 607 "moonshot-password-dialog.c"
        }
 }
 
index 772d12c..5bf2e46 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -33,90 +33,100 @@ using Gtk;
 
 class AddPasswordDialog : Dialog
 {
+    private static Gdk.Color white = make_color(65535, 65535, 65535);
+
     private Entry password_entry;
     private CheckButton remember_checkbutton;
 
     public string password {
-        get { return password_entry.get_text (); }
+        get { return password_entry.get_text(); }
+    }
+
+    /**
+     * Don't leave passwords in memory longer than necessary.
+     * This may not actually erase the password data bytes, but it seems to be the best we can do.
+     */
+    public void clear_password() {
+        clear_password_entry(password_entry);
     }
 
     public bool remember {
-        get { return remember_checkbutton.get_active (); }
+        get { return remember_checkbutton.get_active(); }
     }
 
-    public AddPasswordDialog (IdCard id_card, IdentityRequest? request)
+    public AddPasswordDialog(IdCard id_card, IdentityRequest? request)
     {
-        this.set_title (_("Please enter password for ") + id_card.display_name);
-        this.set_modal (true);
-
-       if (request != null) {
-            this.add_buttons (_("Send"), ResponseType.OK,
-                              _("Return to application"), ResponseType.CANCEL);
-        } else {
-            this.add_buttons (_("Done"), ResponseType.OK,
-                              _("Cancel"), ResponseType.CANCEL);
-        }
-        this.set_default_response (ResponseType.OK);
-
-        var content_area = this.get_content_area ();
-        ((Box) content_area).set_spacing (12);
-        Label service_label = null;
-        Label service_value = null;
-       if (request != null) {
-            service_label = new Label (_("for use with:"));
-            service_label.set_alignment (1, (float) 0.5);
-            service_value = new Label (request.service);
-            service_value.set_alignment (0, (float) 0.5);
-        }
-
-        var nai_label = new Label (_("Network Access Identifier:"));
-        nai_label.set_alignment (1, (float) 0.5);
-        var nai_value = new Label (id_card.nai);
-        nai_value.set_alignment (0, (float) 0.5);
-
-        var password_label = new Label (_("Password:"));
-        password_label.set_alignment (1, (float) 0.5);
-        this.password_entry = new Entry ();
-        password_entry.set_invisible_char ('*');
-        password_entry.set_visibility (false);
+        this.set_title(_("Moonshot - Password"));
+        this.set_modal(true);
+        set_bg_color(this);
+
+        this.add_buttons(_("Cancel"), ResponseType.CANCEL,
+                         _("Connect"), ResponseType.OK);
+
+        this.set_default_response(ResponseType.OK);
+
+        var content_area = this.get_content_area();
+        ((Box) content_area).set_spacing(12);
+        set_bg_color(content_area);
+
+        Label dialog_label = new Label(_("Enter the password for ") + id_card.display_name);
+        dialog_label.set_alignment(0, 0);
+
+        var nai_label = new Label(_("User (NAI):"));
+        nai_label.set_alignment(0, 1);
+        var nai_value = new Label(id_card.nai);
+        nai_value.set_alignment(0, 0);
+
+        var password_label = new Label(_("Password:"));
+        password_label.set_alignment(0, (float) 1);
+        this.password_entry = new Entry();
+        password_entry.set_invisible_char('*');
+        password_entry.set_visibility(false);
         password_entry.activates_default = true;
-        remember_checkbutton = new CheckButton.with_label (_("Remember password"));
+        remember_checkbutton = new CheckButton.with_label(_("Remember password"));
 
-        set_atk_relation (password_entry, password_entry, Atk.RelationType.LABEL_FOR);
+        set_atk_relation(password_label, password_entry, Atk.RelationType.LABEL_FOR);
 
-        var table = new Table (4, 2, false);
+        var table = new Table(6, 1, false);
+        AttachOptions opts = AttachOptions.EXPAND | AttachOptions.FILL;
         int row = 0;
-        table.set_col_spacings (10);
-        table.set_row_spacings (10);
-        if (request != null) {
-            table.attach_defaults (service_label, 0, 1, row, row + 1);
-            table.attach_defaults (service_value, 1, 2, row, row + 1);
-            row++;
-        }
-        table.attach_defaults (nai_label, 0, 1, row, row+1);
-        table.attach_defaults (nai_value, 1, 2, row, row+1);
+        table.set_col_spacings(6);
+        table.set_row_spacings(0);
+        table.attach(dialog_label, 0, 1, row, row + 1, opts, opts, 0, 2);
+//            table.attach_defaults(service_value, 1, 2, row, row + 1);
+        row++;
+
+        VBox nai_vbox = new VBox(false, 0);
+        nai_vbox.pack_start(nai_label, false, false, 0);
+        nai_vbox.pack_start(nai_value, false, false, 0);
+        table.attach(nai_vbox, 0, 1, row, row + 1, opts, opts, 0, 12);
         row++;
-        table.attach_defaults (password_label, 0, 1, row, row+1);
-        table.attach_defaults (password_entry, 1, 2, row, row+1);
+
+        VBox password_vbox = new VBox(false, 1);
+        var empty_box2 = new VBox(false, 0);
+        empty_box2.set_size_request(0, 0);
+        password_vbox.pack_start(empty_box2, false, false, 3);
+        password_vbox.pack_start(password_label, false, false, 0);
+        password_vbox.pack_start(password_entry, false, false, 0);
+        table.attach(password_vbox, 0, 1, row, row + 1, opts, opts, 0, 0);
         row++;
-        table.attach_defaults (remember_checkbutton,  1, 2, row, row+1);
 
-        var vbox = new VBox (false, 0);
-        vbox.set_border_width (6);
-        vbox.pack_start (table, false, false, 0);
+        table.attach(remember_checkbutton,  0, 1, row, row + 1, opts, opts, 20, 2);
+        row++;
 
-        ((Container) content_area).add (vbox);
+        var empty_box3 = new VBox(false, 0);
+        empty_box3.set_size_request(0, 0);
+        table.attach(empty_box3,  0, 1, row, row + 1, opts, opts, 0, 10);
+        row++;
 
-        this.set_border_width (6);
-        //this.set_resizable (false);
-        this.show_all ();
-    }
+        var vbox = new VBox(false, 0);
+        vbox.set_border_width(6);
+        vbox.pack_start(table, false, false, 0);
 
-    private void set_atk_relation (Widget widget, Widget target_widget, Atk.RelationType relationship)
-    {
-        var atk_widget = widget.get_accessible ();
-        var atk_target_widget = target_widget.get_accessible ();
+        ((Container) content_area).add(vbox);
 
-        atk_widget.add_relationship (relationship, atk_target_widget);
+        this.set_border_width(6);
+        //this.set_resizable(false);
+        this.show_all();
     }
 }
index a4bd053..c7819be 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-provisioning-common.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-provisioning-common.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-provisioning-common.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 #include <glib-object.h>
 #include <stdlib.h>
 #include <string.h>
+#include <gee.h>
 #include <gio/gio.h>
-#include <gobject/gvaluecollector.h>
 
 
+#define WEB_PROVISIONING_TYPE_PARSER (web_provisioning_parser_get_type ())
+#define WEB_PROVISIONING_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParser))
+#define WEB_PROVISIONING_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserClass))
+#define WEB_PROVISIONING_IS_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WEB_PROVISIONING_TYPE_PARSER))
+#define WEB_PROVISIONING_IS_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WEB_PROVISIONING_TYPE_PARSER))
+#define WEB_PROVISIONING_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserClass))
+
+typedef struct _WebProvisioningParser WebProvisioningParser;
+typedef struct _WebProvisioningParserClass WebProvisioningParserClass;
+typedef struct _WebProvisioningParserPrivate WebProvisioningParserPrivate;
+
 #define TYPE_ID_CARD (id_card_get_type ())
 #define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
 #define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
 
 typedef struct _IdCard IdCard;
 typedef struct _IdCardClass IdCardClass;
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
+#define _g_markup_parse_context_free0(var) ((var == NULL) ? NULL : (var = (g_markup_parse_context_free (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 
 #define TYPE_RULE (rule_get_type ())
 typedef struct _Rule Rule;
-#define _g_free0(var) (var = (g_free (var), NULL))
 
 #define TYPE_TRUST_ANCHOR (trust_anchor_get_type ())
 #define TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR, TrustAnchor))
@@ -65,58 +87,41 @@ typedef struct _Rule Rule;
 
 typedef struct _TrustAnchor TrustAnchor;
 typedef struct _TrustAnchorClass TrustAnchorClass;
-
-#define WEB_PROVISIONING_TYPE_PARSER (web_provisioning_parser_get_type ())
-#define WEB_PROVISIONING_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParser))
-#define WEB_PROVISIONING_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserClass))
-#define WEB_PROVISIONING_IS_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WEB_PROVISIONING_TYPE_PARSER))
-#define WEB_PROVISIONING_IS_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WEB_PROVISIONING_TYPE_PARSER))
-#define WEB_PROVISIONING_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserClass))
-
-typedef struct _WebProvisioningParser WebProvisioningParser;
-typedef struct _WebProvisioningParserClass WebProvisioningParserClass;
-typedef struct _WebProvisioningParserPrivate WebProvisioningParserPrivate;
 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
-#define _g_markup_parse_context_free0(var) ((var == NULL) ? NULL : (var = (g_markup_parse_context_free (var), NULL)))
-typedef struct _WebProvisioningParamSpecParser WebProvisioningParamSpecParser;
-
-struct _Rule {
-       gchar* pattern;
-       gchar* always_confirm;
-};
 
 struct _WebProvisioningParser {
-       GTypeInstance parent_instance;
-       volatile int ref_count;
+       GObject parent_instance;
        WebProvisioningParserPrivate * priv;
 };
 
 struct _WebProvisioningParserClass {
-       GTypeClass parent_class;
-       void (*finalize) (WebProvisioningParser *self);
+       GObjectClass parent_class;
 };
 
 struct _WebProvisioningParserPrivate {
-       GMarkupParser parser;
+       GMarkupParseContext* ctx;
        gchar* text;
        gchar* path;
+       gchar* ta_ca_cert;
+       gchar* ta_server_cert;
+       gchar* ta_subject;
+       gchar* ta_subject_alt;
+       IdCard* card;
+       IdCard** _cards;
+       gint _cards_length1;
+       gint __cards_size_;
 };
 
-struct _WebProvisioningParamSpecParser {
-       GParamSpec parent_instance;
+struct _Rule {
+       gchar* pattern;
+       gchar* always_confirm;
 };
 
 
-extern IdCard* web_provisioning_card;
-IdCard* web_provisioning_card = NULL;
-extern IdCard** web_provisioning_cards;
-extern gint web_provisioning_cards_length1;
-IdCard** web_provisioning_cards = NULL;
-gint web_provisioning_cards_length1 = 0;
-static gint _web_provisioning_cards_size_ = 0;
 static gpointer web_provisioning_parser_parent_class = NULL;
+static MoonshotLogger* web_provisioning_parser_logger;
+static MoonshotLogger* web_provisioning_parser_logger = NULL;
 
-GType id_card_get_type (void) G_GNUC_CONST;
 gboolean web_provisioning_check_stack (GSList* stack, gchar** reference, int reference_length1);
 gboolean web_provisioning_always_confirm_handler (GSList* stack);
 gboolean web_provisioning_pattern_handler (GSList* stack);
@@ -128,56 +133,57 @@ gboolean web_provisioning_realm_handler (GSList* stack);
 gboolean web_provisioning_password_handler (GSList* stack);
 gboolean web_provisioning_user_handler (GSList* stack);
 gboolean web_provisioning_display_name_handler (GSList* stack);
-void web_provisioning_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, int attribute_names_length1, gchar** attribute_values, int attribute_values_length1, GError** error);
-static IdCard** _vala_array_dup7 (IdCard** self, int length);
+GType web_provisioning_parser_get_type (void) G_GNUC_CONST;
+GType id_card_get_type (void) G_GNUC_CONST;
+#define WEB_PROVISIONING_PARSER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserPrivate))
+enum  {
+       WEB_PROVISIONING_PARSER_DUMMY_PROPERTY
+};
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* moonshot_logger_new (const gchar* name);
+MoonshotLogger* moonshot_logger_construct (GType object_type, const gchar* name);
+static void web_provisioning_parser_start_element_func (WebProvisioningParser* self, GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, int attribute_names_length1, gchar** attribute_values, int attribute_values_length1, GError** error);
+static void _web_provisioning_parser_start_element_func_gmarkup_parser_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, gchar** attribute_values, gpointer self, GError** error);
+static void web_provisioning_parser_end_element_func (WebProvisioningParser* self, GMarkupParseContext* context, const gchar* element_name, GError** error);
+static void _web_provisioning_parser_end_element_func_gmarkup_parser_end_element_func (GMarkupParseContext* context, const gchar* element_name, gpointer self, GError** error);
+static void web_provisioning_parser_text_element_func (WebProvisioningParser* self, GMarkupParseContext* context, const gchar* text, gsize text_len, GError** error);
+static void _web_provisioning_parser_text_element_func_gmarkup_parser_text_func (GMarkupParseContext* context, const gchar* text, gsize text_len, gpointer self, GError** error);
 IdCard* id_card_new (void);
 IdCard* id_card_construct (GType object_type);
+static void _vala_array_add1 (IdCard*** array, int* length, int* size, IdCard* value);
 GType rule_get_type (void) G_GNUC_CONST;
 Rule* rule_dup (const Rule* self);
 void rule_free (Rule* self);
 void rule_copy (const Rule* self, Rule* dest);
 void rule_destroy (Rule* self);
-Rule* id_card_get_rules (IdCard* self, int* result_length1);
-static Rule* _vala_array_dup8 (Rule* self, int length);
-void id_card_set_rules (IdCard* self, Rule* value, int value_length1);
-static void _vala_Rule_array_free (Rule* array, gint array_length);
-void web_provisioning_text_element_func (GMarkupParseContext* context, const gchar* text, gsize text_len, GError** error);
+void id_card_add_rule (IdCard* self, Rule* rule);
+GType trust_anchor_get_type (void) G_GNUC_CONST;
+TrustAnchor* trust_anchor_new (const gchar* ca_cert, const gchar* server_cert, const gchar* subject, const gchar* subject_alt);
+TrustAnchor* trust_anchor_construct (GType object_type, const gchar* ca_cert, const gchar* server_cert, const gchar* subject, const gchar* subject_alt);
+void id_card_set_trust_anchor_from_store (IdCard* self, TrustAnchor* ta);
 void id_card_set_display_name (IdCard* self, const gchar* value);
 void id_card_set_username (IdCard* self, const gchar* value);
 void id_card_set_password (IdCard* self, const gchar* value);
 void id_card_set_issuer (IdCard* self, const gchar* value);
-gchar** id_card_get_services (IdCard* self, int* result_length1);
-static gchar** _vala_array_dup9 (gchar** self, int length);
-void id_card_set_services (IdCard* self, gchar** value, int value_length1);
-static Rule* _vala_array_dup10 (Rule* self, int length);
-static Rule* _vala_array_dup11 (Rule* self, int length);
-GType trust_anchor_get_type (void) G_GNUC_CONST;
-TrustAnchor* id_card_get_trust_anchor (IdCard* self);
-void trust_anchor_set_ca_cert (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_subject (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_subject_alt (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_server_cert (TrustAnchor* self, const gchar* value);
-gpointer web_provisioning_parser_ref (gpointer instance);
-void web_provisioning_parser_unref (gpointer instance);
-GParamSpec* web_provisioning_param_spec_parser (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
-void web_provisioning_value_set_parser (GValue* value, gpointer v_object);
-void web_provisioning_value_take_parser (GValue* value, gpointer v_object);
-gpointer web_provisioning_value_get_parser (const GValue* value);
-GType web_provisioning_parser_get_type (void) G_GNUC_CONST;
-#define WEB_PROVISIONING_PARSER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserPrivate))
-enum  {
-       WEB_PROVISIONING_PARSER_DUMMY_PROPERTY
-};
+GeeArrayList* id_card_get_services (IdCard* self);
+Rule* id_card_get_rules (IdCard* self, int* result_length1);
+static Rule* _vala_array_dup2 (Rule* self, int length);
+static void _vala_Rule_array_free (Rule* array, gint array_length);
+static Rule* _vala_array_dup3 (Rule* self, int length);
 WebProvisioningParser* web_provisioning_parser_new (const gchar* path);
 WebProvisioningParser* web_provisioning_parser_construct (GType object_type, const gchar* path);
-static void _web_provisioning_start_element_func_gmarkup_parser_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, gchar** attribute_values, gpointer self, GError** error);
-static void _web_provisioning_text_element_func_gmarkup_parser_text_func (GMarkupParseContext* context, const gchar* text, gsize text_len, gpointer self, GError** error);
 void web_provisioning_parser_parse (WebProvisioningParser* self);
-static void web_provisioning_parser_finalize (WebProvisioningParser* obj);
+IdCard** web_provisioning_parser_get_cards (WebProvisioningParser* self, int* result_length1);
+static void web_provisioning_parser_set_cards (WebProvisioningParser* self, IdCard** value, int value_length1);
+static IdCard** _vala_array_dup4 (IdCard** self, int length);
+static void web_provisioning_parser_finalize (GObject* obj);
+static void _vala_web_provisioning_parser_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_web_provisioning_parser_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static gint _vala_array_length (gpointer array);
 
+static const GMarkupParser WEB_PROVISIONING_PARSER_parser = {_web_provisioning_parser_start_element_func_gmarkup_parser_start_element_func, _web_provisioning_parser_end_element_func_gmarkup_parser_end_element_func, _web_provisioning_parser_text_element_func_gmarkup_parser_text_func, NULL, NULL};
 
 gboolean web_provisioning_check_stack (GSList* stack, gchar** reference, int reference_length1) {
        gboolean result = FALSE;
@@ -185,34 +191,34 @@ gboolean web_provisioning_check_stack (GSList* stack, gchar** reference, int ref
        guint _tmp1_ = 0U;
        gchar** _tmp2_ = NULL;
        gint _tmp2__length1 = 0;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp0_ = stack;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp1_ = g_slist_length (_tmp0_);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp2_ = reference;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp2__length1 = reference_length1;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        if (_tmp1_ < ((guint) _tmp2__length1)) {
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                result = FALSE;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                return result;
-#line 203 "moonshot-provisioning-common.c"
+#line 209 "moonshot-provisioning-common.c"
        }
        {
                gint i = 0;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                i = 0;
-#line 209 "moonshot-provisioning-common.c"
+#line 215 "moonshot-provisioning-common.c"
                {
                        gboolean _tmp3_ = FALSE;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        _tmp3_ = TRUE;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        while (TRUE) {
-#line 216 "moonshot-provisioning-common.c"
+#line 222 "moonshot-provisioning-common.c"
                                gint _tmp5_ = 0;
                                gchar** _tmp6_ = NULL;
                                gint _tmp6__length1 = 0;
@@ -223,60 +229,60 @@ gboolean web_provisioning_check_stack (GSList* stack, gchar** reference, int ref
                                gint _tmp10__length1 = 0;
                                gint _tmp11_ = 0;
                                const gchar* _tmp12_ = NULL;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                if (!_tmp3_) {
-#line 229 "moonshot-provisioning-common.c"
+#line 235 "moonshot-provisioning-common.c"
                                        gint _tmp4_ = 0;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        _tmp4_ = i;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        i = _tmp4_ + 1;
-#line 235 "moonshot-provisioning-common.c"
+#line 241 "moonshot-provisioning-common.c"
                                }
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp3_ = FALSE;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp5_ = i;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp6_ = reference;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp6__length1 = reference_length1;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                if (!(_tmp5_ < _tmp6__length1)) {
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        break;
-#line 249 "moonshot-provisioning-common.c"
+#line 255 "moonshot-provisioning-common.c"
                                }
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp7_ = stack;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp8_ = i;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp9_ = g_slist_nth_data (_tmp7_, (guint) _tmp8_);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp10_ = reference;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp10__length1 = reference_length1;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp11_ = i;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp12_ = _tmp10_[_tmp11_];
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                if (g_strcmp0 ((const gchar*) _tmp9_, _tmp12_) != 0) {
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        result = FALSE;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        return result;
-#line 271 "moonshot-provisioning-common.c"
+#line 277 "moonshot-provisioning-common.c"
                                }
                        }
                }
        }
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        result = TRUE;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return result;
-#line 280 "moonshot-provisioning-common.c"
+#line 286 "moonshot-provisioning-common.c"
 }
 
 
@@ -293,45 +299,45 @@ gboolean web_provisioning_always_confirm_handler (GSList* stack) {
        gint _always_confirm_path_size_ = 0;
        GSList* _tmp6_ = NULL;
        gboolean _tmp7_ = FALSE;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp0_ = g_strdup ("always-confirm");
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp1_ = g_strdup ("rule");
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp2_ = g_strdup ("selection-rules");
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_ = g_strdup ("identity");
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_ = g_strdup ("identities");
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_ = g_new0 (gchar*, 5 + 1);
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_[0] = _tmp0_;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_[1] = _tmp1_;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_[2] = _tmp2_;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_[3] = _tmp3_;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_[4] = _tmp4_;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        always_confirm_path = _tmp5_;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        always_confirm_path_length1 = 5;
-#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _always_confirm_path_size_ = always_confirm_path_length1;
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp6_ = stack;
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp7_ = web_provisioning_check_stack (_tmp6_, always_confirm_path, always_confirm_path_length1);
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        result = _tmp7_;
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        always_confirm_path = (_vala_array_free (always_confirm_path, always_confirm_path_length1, (GDestroyNotify) g_free), NULL);
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return result;
-#line 335 "moonshot-provisioning-common.c"
+#line 341 "moonshot-provisioning-common.c"
 }
 
 
@@ -348,45 +354,45 @@ gboolean web_provisioning_pattern_handler (GSList* stack) {
        gint _pattern_path_size_ = 0;
        GSList* _tmp6_ = NULL;
        gboolean _tmp7_ = FALSE;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp0_ = g_strdup ("pattern");
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp1_ = g_strdup ("rule");
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp2_ = g_strdup ("selection-rules");
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_ = g_strdup ("identity");
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_ = g_strdup ("identities");
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_ = g_new0 (gchar*, 5 + 1);
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_[0] = _tmp0_;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_[1] = _tmp1_;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_[2] = _tmp2_;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_[3] = _tmp3_;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_[4] = _tmp4_;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        pattern_path = _tmp5_;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        pattern_path_length1 = 5;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _pattern_path_size_ = pattern_path_length1;
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp6_ = stack;
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp7_ = web_provisioning_check_stack (_tmp6_, pattern_path, pattern_path_length1);
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        result = _tmp7_;
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        pattern_path = (_vala_array_free (pattern_path, pattern_path_length1, (GDestroyNotify) g_free), NULL);
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return result;
-#line 390 "moonshot-provisioning-common.c"
+#line 396 "moonshot-provisioning-common.c"
 }
 
 
@@ -402,41 +408,41 @@ gboolean web_provisioning_server_cert_handler (GSList* stack) {
        gint _server_cert_path_size_ = 0;
        GSList* _tmp5_ = NULL;
        gboolean _tmp6_ = FALSE;
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp0_ = g_strdup ("server-cert");
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp1_ = g_strdup ("trust-anchor");
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp2_ = g_strdup ("identity");
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_ = g_strdup ("identities");
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_ = g_new0 (gchar*, 4 + 1);
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[0] = _tmp0_;
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[1] = _tmp1_;
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[2] = _tmp2_;
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[3] = _tmp3_;
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        server_cert_path = _tmp4_;
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        server_cert_path_length1 = 4;
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _server_cert_path_size_ = server_cert_path_length1;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_ = stack;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp6_ = web_provisioning_check_stack (_tmp5_, server_cert_path, server_cert_path_length1);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        result = _tmp6_;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        server_cert_path = (_vala_array_free (server_cert_path, server_cert_path_length1, (GDestroyNotify) g_free), NULL);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return result;
-#line 440 "moonshot-provisioning-common.c"
+#line 446 "moonshot-provisioning-common.c"
 }
 
 
@@ -452,41 +458,41 @@ gboolean web_provisioning_subject_alt_handler (GSList* stack) {
        gint _subject_alt_path_size_ = 0;
        GSList* _tmp5_ = NULL;
        gboolean _tmp6_ = FALSE;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp0_ = g_strdup ("subject-alt");
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp1_ = g_strdup ("trust-anchor");
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp2_ = g_strdup ("identity");
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_ = g_strdup ("identities");
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_ = g_new0 (gchar*, 4 + 1);
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[0] = _tmp0_;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[1] = _tmp1_;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[2] = _tmp2_;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[3] = _tmp3_;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        subject_alt_path = _tmp4_;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        subject_alt_path_length1 = 4;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _subject_alt_path_size_ = subject_alt_path_length1;
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_ = stack;
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp6_ = web_provisioning_check_stack (_tmp5_, subject_alt_path, subject_alt_path_length1);
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        result = _tmp6_;
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        subject_alt_path = (_vala_array_free (subject_alt_path, subject_alt_path_length1, (GDestroyNotify) g_free), NULL);
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return result;
-#line 490 "moonshot-provisioning-common.c"
+#line 496 "moonshot-provisioning-common.c"
 }
 
 
@@ -502,41 +508,41 @@ gboolean web_provisioning_subject_handler (GSList* stack) {
        gint _subject_path_size_ = 0;
        GSList* _tmp5_ = NULL;
        gboolean _tmp6_ = FALSE;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp0_ = g_strdup ("subject");
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp1_ = g_strdup ("trust-anchor");
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp2_ = g_strdup ("identity");
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_ = g_strdup ("identities");
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_ = g_new0 (gchar*, 4 + 1);
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[0] = _tmp0_;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[1] = _tmp1_;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[2] = _tmp2_;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[3] = _tmp3_;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        subject_path = _tmp4_;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        subject_path_length1 = 4;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _subject_path_size_ = subject_path_length1;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_ = stack;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp6_ = web_provisioning_check_stack (_tmp5_, subject_path, subject_path_length1);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        result = _tmp6_;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        subject_path = (_vala_array_free (subject_path, subject_path_length1, (GDestroyNotify) g_free), NULL);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return result;
-#line 540 "moonshot-provisioning-common.c"
+#line 546 "moonshot-provisioning-common.c"
 }
 
 
@@ -552,41 +558,41 @@ gboolean web_provisioning_ca_cert_handler (GSList* stack) {
        gint _ca_path_size_ = 0;
        GSList* _tmp5_ = NULL;
        gboolean _tmp6_ = FALSE;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp0_ = g_strdup ("ca-cert");
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp1_ = g_strdup ("trust-anchor");
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp2_ = g_strdup ("identity");
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_ = g_strdup ("identities");
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_ = g_new0 (gchar*, 4 + 1);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[0] = _tmp0_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[1] = _tmp1_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[2] = _tmp2_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_[3] = _tmp3_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        ca_path = _tmp4_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        ca_path_length1 = 4;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _ca_path_size_ = ca_path_length1;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_ = stack;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp6_ = web_provisioning_check_stack (_tmp5_, ca_path, ca_path_length1);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        result = _tmp6_;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        ca_path = (_vala_array_free (ca_path, ca_path_length1, (GDestroyNotify) g_free), NULL);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return result;
-#line 590 "moonshot-provisioning-common.c"
+#line 596 "moonshot-provisioning-common.c"
 }
 
 
@@ -601,37 +607,37 @@ gboolean web_provisioning_realm_handler (GSList* stack) {
        gint _realm_path_size_ = 0;
        GSList* _tmp4_ = NULL;
        gboolean _tmp5_ = FALSE;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp0_ = g_strdup ("realm");
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp1_ = g_strdup ("identity");
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp2_ = g_strdup ("identities");
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_ = g_new0 (gchar*, 3 + 1);
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_[0] = _tmp0_;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_[1] = _tmp1_;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_[2] = _tmp2_;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        realm_path = _tmp3_;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        realm_path_length1 = 3;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _realm_path_size_ = realm_path_length1;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_ = stack;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_ = web_provisioning_check_stack (_tmp4_, realm_path, realm_path_length1);
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        result = _tmp5_;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        realm_path = (_vala_array_free (realm_path, realm_path_length1, (GDestroyNotify) g_free), NULL);
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return result;
-#line 635 "moonshot-provisioning-common.c"
+#line 641 "moonshot-provisioning-common.c"
 }
 
 
@@ -646,37 +652,37 @@ gboolean web_provisioning_password_handler (GSList* stack) {
        gint _password_path_size_ = 0;
        GSList* _tmp4_ = NULL;
        gboolean _tmp5_ = FALSE;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp0_ = g_strdup ("password");
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp1_ = g_strdup ("identity");
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp2_ = g_strdup ("identities");
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_ = g_new0 (gchar*, 3 + 1);
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_[0] = _tmp0_;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_[1] = _tmp1_;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_[2] = _tmp2_;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        password_path = _tmp3_;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        password_path_length1 = 3;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _password_path_size_ = password_path_length1;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_ = stack;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_ = web_provisioning_check_stack (_tmp4_, password_path, password_path_length1);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        result = _tmp5_;
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        password_path = (_vala_array_free (password_path, password_path_length1, (GDestroyNotify) g_free), NULL);
-#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return result;
-#line 680 "moonshot-provisioning-common.c"
+#line 686 "moonshot-provisioning-common.c"
 }
 
 
@@ -691,37 +697,37 @@ gboolean web_provisioning_user_handler (GSList* stack) {
        gint _user_path_size_ = 0;
        GSList* _tmp4_ = NULL;
        gboolean _tmp5_ = FALSE;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp0_ = g_strdup ("user");
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp1_ = g_strdup ("identity");
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp2_ = g_strdup ("identities");
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_ = g_new0 (gchar*, 3 + 1);
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_[0] = _tmp0_;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_[1] = _tmp1_;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_[2] = _tmp2_;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        user_path = _tmp3_;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        user_path_length1 = 3;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _user_path_size_ = user_path_length1;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_ = stack;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_ = web_provisioning_check_stack (_tmp4_, user_path, user_path_length1);
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        result = _tmp5_;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        user_path = (_vala_array_free (user_path, user_path_length1, (GDestroyNotify) g_free), NULL);
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return result;
-#line 725 "moonshot-provisioning-common.c"
+#line 731 "moonshot-provisioning-common.c"
 }
 
 
@@ -736,506 +742,302 @@ gboolean web_provisioning_display_name_handler (GSList* stack) {
        gint _display_name_path_size_ = 0;
        GSList* _tmp4_ = NULL;
        gboolean _tmp5_ = FALSE;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp0_ = g_strdup ("display-name");
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp1_ = g_strdup ("identity");
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp2_ = g_strdup ("identities");
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_ = g_new0 (gchar*, 3 + 1);
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_[0] = _tmp0_;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_[1] = _tmp1_;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp3_[2] = _tmp2_;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        display_name_path = _tmp3_;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        display_name_path_length1 = 3;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _display_name_path_size_ = display_name_path_length1;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_ = stack;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_ = web_provisioning_check_stack (_tmp4_, display_name_path, display_name_path_length1);
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        result = _tmp5_;
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        display_name_path = (_vala_array_free (display_name_path, display_name_path_length1, (GDestroyNotify) g_free), NULL);
-#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return result;
-#line 770 "moonshot-provisioning-common.c"
+#line 776 "moonshot-provisioning-common.c"
 }
 
 
-static gpointer _g_object_ref0 (gpointer self) {
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       return self ? g_object_ref (self) : NULL;
-#line 777 "moonshot-provisioning-common.c"
+static void _web_provisioning_parser_start_element_func_gmarkup_parser_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, gchar** attribute_values, gpointer self, GError** error) {
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       web_provisioning_parser_start_element_func ((WebProvisioningParser*) self, context, element_name, attribute_names, _vala_array_length (attribute_names), attribute_values, _vala_array_length (attribute_values), error);
+#line 783 "moonshot-provisioning-common.c"
 }
 
 
-static IdCard** _vala_array_dup7 (IdCard** self, int length) {
-       IdCard** result;
-       int i;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       result = g_new0 (IdCard*, length + 1);
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       for (i = 0; i < length; i++) {
-#line 788 "moonshot-provisioning-common.c"
-               IdCard* _tmp0_ = NULL;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp0_ = _g_object_ref0 (self[i]);
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               result[i] = _tmp0_;
-#line 794 "moonshot-provisioning-common.c"
-       }
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       return result;
-#line 798 "moonshot-provisioning-common.c"
+static void _web_provisioning_parser_end_element_func_gmarkup_parser_end_element_func (GMarkupParseContext* context, const gchar* element_name, gpointer self, GError** error) {
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       web_provisioning_parser_end_element_func ((WebProvisioningParser*) self, context, element_name, error);
+#line 790 "moonshot-provisioning-common.c"
 }
 
 
-static Rule* _vala_array_dup8 (Rule* self, int length) {
-       Rule* result;
-       int i;
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       result = g_new0 (Rule, length);
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       for (i = 0; i < length; i++) {
-#line 809 "moonshot-provisioning-common.c"
-               Rule _tmp0_ = {0};
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               rule_copy (&self[i], &_tmp0_);
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               result[i] = _tmp0_;
-#line 815 "moonshot-provisioning-common.c"
-       }
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       return result;
-#line 819 "moonshot-provisioning-common.c"
+static void _web_provisioning_parser_text_element_func_gmarkup_parser_text_func (GMarkupParseContext* context, const gchar* text, gsize text_len, gpointer self, GError** error) {
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       web_provisioning_parser_text_element_func ((WebProvisioningParser*) self, context, text, text_len, error);
+#line 797 "moonshot-provisioning-common.c"
 }
 
 
-static void _vala_Rule_array_free (Rule* array, gint array_length) {
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       if (array != NULL) {
-#line 826 "moonshot-provisioning-common.c"
-               int i;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               for (i = 0; i < array_length; i = i + 1) {
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       rule_destroy (&array[i]);
-#line 832 "moonshot-provisioning-common.c"
-               }
+static gpointer _g_object_ref0 (gpointer self) {
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 804 "moonshot-provisioning-common.c"
+}
+
+
+static void _vala_array_add1 (IdCard*** array, int* length, int* size, IdCard* value) {
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       if ((*length) == (*size)) {
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               *size = (*size) ? (2 * (*size)) : 4;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               *array = g_renew (IdCard*, *array, (*size) + 1);
+#line 815 "moonshot-provisioning-common.c"
        }
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       g_free (array);
-#line 837 "moonshot-provisioning-common.c"
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       (*array)[(*length)++] = value;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       (*array)[*length] = NULL;
+#line 821 "moonshot-provisioning-common.c"
 }
 
 
-void web_provisioning_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, int attribute_names_length1, gchar** attribute_values, int attribute_values_length1, GError** error) {
+static void web_provisioning_parser_start_element_func (WebProvisioningParser* self, GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, int attribute_names_length1, gchar** attribute_values, int attribute_values_length1, GError** error) {
        const gchar* _tmp0_ = NULL;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       g_return_if_fail (self != NULL);
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        g_return_if_fail (context != NULL);
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        g_return_if_fail (element_name != NULL);
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp0_ = element_name;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        if (g_strcmp0 (_tmp0_, "identity") == 0) {
-#line 851 "moonshot-provisioning-common.c"
-               IdCard** tmp_cards = NULL;
-               IdCard** _tmp1_ = NULL;
-               gint _tmp1__length1 = 0;
+#line 837 "moonshot-provisioning-common.c"
+               IdCard* _tmp1_ = NULL;
                IdCard** _tmp2_ = NULL;
                gint _tmp2__length1 = 0;
-               gint tmp_cards_length1 = 0;
-               gint _tmp_cards_size_ = 0;
-               IdCard** _tmp3_ = NULL;
-               gint _tmp3__length1 = 0;
-               IdCard** _tmp4_ = NULL;
-               IdCard* _tmp16_ = NULL;
-               IdCard** _tmp17_ = NULL;
-               gint _tmp17__length1 = 0;
-               IdCard** _tmp18_ = NULL;
-               gint _tmp18__length1 = 0;
-               IdCard* _tmp19_ = NULL;
-               IdCard* _tmp20_ = NULL;
-               IdCard* _tmp21_ = NULL;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp1_ = web_provisioning_cards;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp1__length1 = web_provisioning_cards_length1;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp2_ = (_tmp1_ != NULL) ? _vala_array_dup7 (_tmp1_, _tmp1__length1) : ((gpointer) _tmp1_);
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp2__length1 = _tmp1__length1;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               tmp_cards = _tmp2_;
+               IdCard* _tmp3_ = NULL;
+               IdCard* _tmp4_ = NULL;
+               gchar* _tmp5_ = NULL;
+               gchar* _tmp6_ = NULL;
+               gchar* _tmp7_ = NULL;
+               gchar* _tmp8_ = NULL;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp1_ = id_card_new ();
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _g_object_unref0 (self->priv->card);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               self->priv->card = _tmp1_;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp2_ = self->priv->_cards;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp2__length1 = self->priv->_cards_length1;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp3_ = self->priv->card;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _vala_array_add1 (&self->priv->_cards, &self->priv->_cards_length1, &self->priv->__cards_size_, _tmp4_);
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp5_ = g_strdup ("");
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _g_free0 (self->priv->ta_ca_cert);
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               self->priv->ta_ca_cert = _tmp5_;
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp6_ = g_strdup ("");
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _g_free0 (self->priv->ta_server_cert);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               self->priv->ta_server_cert = _tmp6_;
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp7_ = g_strdup ("");
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _g_free0 (self->priv->ta_subject);
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               self->priv->ta_subject = _tmp7_;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp8_ = g_strdup ("");
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _g_free0 (self->priv->ta_subject_alt);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               self->priv->ta_subject_alt = _tmp8_;
+#line 887 "moonshot-provisioning-common.c"
+       } else {
+               const gchar* _tmp9_ = NULL;
 #line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               tmp_cards_length1 = _tmp2__length1;
+               _tmp9_ = element_name;
 #line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp_cards_size_ = tmp_cards_length1;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp3_ = tmp_cards;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp3__length1 = tmp_cards_length1;
+               if (g_strcmp0 (_tmp9_, "rule") == 0) {
+#line 894 "moonshot-provisioning-common.c"
+                       IdCard* _tmp10_ = NULL;
+                       Rule _tmp11_ = {0};
+                       Rule _tmp12_ = {0};
 #line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp4_ = g_new0 (IdCard*, (_tmp3__length1 + 1) + 1);
+                       _tmp10_ = self->priv->card;
 #line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               web_provisioning_cards = (_vala_array_free (web_provisioning_cards, web_provisioning_cards_length1, (GDestroyNotify) g_object_unref), NULL);
+                       memset (&_tmp11_, 0, sizeof (Rule));
 #line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               web_provisioning_cards = _tmp4_;
+                       _tmp12_ = _tmp11_;
 #line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               web_provisioning_cards_length1 = _tmp3__length1 + 1;
+                       id_card_add_rule (_tmp10_, &_tmp12_);
 #line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _web_provisioning_cards_size_ = web_provisioning_cards_length1;
-#line 898 "moonshot-provisioning-common.c"
-               {
-                       gint i = 0;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       i = 0;
-#line 903 "moonshot-provisioning-common.c"
-                       {
-                               gboolean _tmp5_ = FALSE;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                               _tmp5_ = TRUE;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                               while (TRUE) {
-#line 910 "moonshot-provisioning-common.c"
-                                       gint _tmp7_ = 0;
-                                       IdCard** _tmp8_ = NULL;
-                                       gint _tmp8__length1 = 0;
-                                       IdCard** _tmp9_ = NULL;
-                                       gint _tmp9__length1 = 0;
-                                       gint _tmp10_ = 0;
-                                       IdCard** _tmp11_ = NULL;
-                                       gint _tmp11__length1 = 0;
-                                       gint _tmp12_ = 0;
-                                       IdCard* _tmp13_ = NULL;
-                                       IdCard* _tmp14_ = NULL;
-                                       IdCard* _tmp15_ = NULL;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       if (!_tmp5_) {
-#line 925 "moonshot-provisioning-common.c"
-                                               gint _tmp6_ = 0;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp6_ = i;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               i = _tmp6_ + 1;
-#line 931 "moonshot-provisioning-common.c"
-                                       }
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp5_ = FALSE;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp7_ = i;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp8_ = tmp_cards;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp8__length1 = tmp_cards_length1;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       if (!(_tmp7_ < _tmp8__length1)) {
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               break;
-#line 945 "moonshot-provisioning-common.c"
-                                       }
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp9_ = web_provisioning_cards;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp9__length1 = web_provisioning_cards_length1;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp10_ = i;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp11_ = tmp_cards;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp11__length1 = tmp_cards_length1;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp12_ = i;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp13_ = _tmp11_[_tmp12_];
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp14_ = _g_object_ref0 (_tmp13_);
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _g_object_unref0 (_tmp9_[_tmp10_]);
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp9_[_tmp10_] = _tmp14_;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp15_ = _tmp9_[_tmp10_];
-#line 969 "moonshot-provisioning-common.c"
-                               }
-                       }
+                       rule_destroy (&_tmp12_);
+#line 908 "moonshot-provisioning-common.c"
                }
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp16_ = id_card_new ();
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _g_object_unref0 (web_provisioning_card);
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               web_provisioning_card = _tmp16_;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp17_ = web_provisioning_cards;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp17__length1 = web_provisioning_cards_length1;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp18_ = tmp_cards;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp18__length1 = tmp_cards_length1;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp19_ = web_provisioning_card;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp20_ = _g_object_ref0 (_tmp19_);
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _g_object_unref0 (_tmp17_[_tmp18__length1]);
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp17_[_tmp18__length1] = _tmp20_;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp21_ = _tmp17_[_tmp18__length1];
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               tmp_cards = (_vala_array_free (tmp_cards, tmp_cards_length1, (GDestroyNotify) g_object_unref), NULL);
-#line 999 "moonshot-provisioning-common.c"
-       } else {
-               const gchar* _tmp22_ = NULL;
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp22_ = element_name;
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               if (g_strcmp0 (_tmp22_, "rule") == 0) {
-#line 1006 "moonshot-provisioning-common.c"
-                       Rule* tmp_rules = NULL;
-                       IdCard* _tmp23_ = NULL;
-                       Rule* _tmp24_ = NULL;
-                       gint _tmp24__length1 = 0;
-                       Rule* _tmp25_ = NULL;
-                       gint _tmp25__length1 = 0;
-                       Rule* _tmp26_ = NULL;
-                       gint _tmp26__length1 = 0;
-                       gint tmp_rules_length1 = 0;
-                       gint _tmp_rules_size_ = 0;
-                       IdCard* _tmp27_ = NULL;
-                       Rule* _tmp28_ = NULL;
-                       gint _tmp28__length1 = 0;
-                       Rule* _tmp29_ = NULL;
-                       Rule* _tmp30_ = NULL;
-                       gint _tmp30__length1 = 0;
-                       IdCard* _tmp44_ = NULL;
-                       Rule* _tmp45_ = NULL;
-                       gint _tmp45__length1 = 0;
-                       Rule* _tmp46_ = NULL;
-                       gint _tmp46__length1 = 0;
-                       Rule* _tmp47_ = NULL;
-                       gint _tmp47__length1 = 0;
-                       Rule _tmp48_ = {0};
-                       Rule _tmp49_ = {0};
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp23_ = web_provisioning_card;
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp24_ = id_card_get_rules (_tmp23_, &_tmp24__length1);
-#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp25_ = _tmp24_;
+       }
+}
+
+
+static void web_provisioning_parser_end_element_func (WebProvisioningParser* self, GMarkupParseContext* context, const gchar* element_name, GError** error) {
+       const gchar* _tmp0_ = NULL;
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       g_return_if_fail (self != NULL);
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       g_return_if_fail (context != NULL);
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       g_return_if_fail (element_name != NULL);
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp0_ = element_name;
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       if (g_strcmp0 (_tmp0_, "identity") == 0) {
+#line 926 "moonshot-provisioning-common.c"
+               gboolean _tmp1_ = FALSE;
+               const gchar* _tmp2_ = NULL;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp2_ = self->priv->ta_ca_cert;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               if (g_strcmp0 (_tmp2_, "") != 0) {
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp1_ = TRUE;
+#line 935 "moonshot-provisioning-common.c"
+               } else {
+                       const gchar* _tmp3_ = NULL;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp3_ = self->priv->ta_server_cert;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp1_ = g_strcmp0 (_tmp3_, "") != 0;
+#line 942 "moonshot-provisioning-common.c"
+               }
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               if (_tmp1_) {
+#line 946 "moonshot-provisioning-common.c"
+                       TrustAnchor* ta = NULL;
+                       const gchar* _tmp4_ = NULL;
+                       const gchar* _tmp5_ = NULL;
+                       const gchar* _tmp6_ = NULL;
+                       const gchar* _tmp7_ = NULL;
+                       TrustAnchor* _tmp8_ = NULL;
+                       IdCard* _tmp9_ = NULL;
+                       TrustAnchor* _tmp10_ = NULL;
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp25__length1 = _tmp24__length1;
+                       _tmp4_ = self->priv->ta_ca_cert;
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp26_ = (_tmp25_ != NULL) ? _vala_array_dup8 (_tmp25_, _tmp25__length1) : ((gpointer) _tmp25_);
+                       _tmp5_ = self->priv->ta_server_cert;
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp26__length1 = _tmp25__length1;
+                       _tmp6_ = self->priv->ta_subject;
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       tmp_rules = _tmp26_;
+                       _tmp7_ = self->priv->ta_subject_alt;
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       tmp_rules_length1 = _tmp26__length1;
+                       _tmp8_ = trust_anchor_new (_tmp4_, _tmp5_, _tmp6_, _tmp7_);
 #line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp_rules_size_ = tmp_rules_length1;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp27_ = web_provisioning_card;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp28_ = tmp_rules;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp28__length1 = tmp_rules_length1;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp29_ = g_new0 (Rule, _tmp28__length1 + 1);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp30_ = _tmp29_;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp30__length1 = _tmp28__length1 + 1;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       id_card_set_rules (_tmp27_, _tmp30_, _tmp28__length1 + 1);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp30_ = (_vala_Rule_array_free (_tmp30_, _tmp30__length1), NULL);
-#line 1066 "moonshot-provisioning-common.c"
-                       {
-                               gint i = 0;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                               i = 0;
-#line 1071 "moonshot-provisioning-common.c"
-                               {
-                                       gboolean _tmp31_ = FALSE;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp31_ = TRUE;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       while (TRUE) {
-#line 1078 "moonshot-provisioning-common.c"
-                                               gint _tmp33_ = 0;
-                                               Rule* _tmp34_ = NULL;
-                                               gint _tmp34__length1 = 0;
-                                               IdCard* _tmp35_ = NULL;
-                                               Rule* _tmp36_ = NULL;
-                                               gint _tmp36__length1 = 0;
-                                               Rule* _tmp37_ = NULL;
-                                               gint _tmp37__length1 = 0;
-                                               gint _tmp38_ = 0;
-                                               Rule* _tmp39_ = NULL;
-                                               gint _tmp39__length1 = 0;
-                                               gint _tmp40_ = 0;
-                                               Rule _tmp41_ = {0};
-                                               Rule _tmp42_ = {0};
-                                               Rule _tmp43_ = {0};
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               if (!_tmp31_) {
-#line 1096 "moonshot-provisioning-common.c"
-                                                       gint _tmp32_ = 0;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp32_ = i;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       i = _tmp32_ + 1;
-#line 1102 "moonshot-provisioning-common.c"
-                                               }
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp31_ = FALSE;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp33_ = i;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp34_ = tmp_rules;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp34__length1 = tmp_rules_length1;
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               if (!(_tmp33_ < _tmp34__length1)) {
-#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       break;
-#line 1116 "moonshot-provisioning-common.c"
-                                               }
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp35_ = web_provisioning_card;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp36_ = id_card_get_rules (_tmp35_, &_tmp36__length1);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp37_ = _tmp36_;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp37__length1 = _tmp36__length1;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp38_ = i;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp39_ = tmp_rules;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp39__length1 = tmp_rules_length1;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp40_ = i;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp41_ = _tmp39_[_tmp40_];
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               rule_copy (&_tmp41_, &_tmp42_);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               rule_destroy (&_tmp37_[_tmp38_]);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp37_[_tmp38_] = _tmp42_;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp43_ = _tmp37_[_tmp38_];
-#line 1144 "moonshot-provisioning-common.c"
-                                       }
-                               }
-                       }
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp44_ = web_provisioning_card;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp45_ = id_card_get_rules (_tmp44_, &_tmp45__length1);
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp46_ = _tmp45_;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp46__length1 = _tmp45__length1;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp47_ = tmp_rules;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp47__length1 = tmp_rules_length1;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       memset (&_tmp48_, 0, sizeof (Rule));
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       rule_destroy (&_tmp46_[_tmp47__length1]);
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp46_[_tmp47__length1] = _tmp48_;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp49_ = _tmp46_[_tmp47__length1];
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       tmp_rules = (_vala_Rule_array_free (tmp_rules, tmp_rules_length1), NULL);
-#line 1170 "moonshot-provisioning-common.c"
+                       ta = _tmp8_;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp9_ = self->priv->card;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp10_ = ta;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       id_card_set_trust_anchor_from_store (_tmp9_, _tmp10_);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _g_object_unref0 (ta);
+#line 975 "moonshot-provisioning-common.c"
                }
        }
 }
 
 
-static gchar** _vala_array_dup9 (gchar** self, int length) {
-       gchar** result;
+static Rule* _vala_array_dup2 (Rule* self, int length) {
+       Rule* result;
        int i;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       result = g_new0 (gchar*, length + 1);
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       result = g_new0 (Rule, length);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        for (i = 0; i < length; i++) {
-#line 1183 "moonshot-provisioning-common.c"
-               gchar* _tmp0_ = NULL;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp0_ = g_strdup (self[i]);
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 988 "moonshot-provisioning-common.c"
+               Rule _tmp0_ = {0};
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               rule_copy (&self[i], &_tmp0_);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                result[i] = _tmp0_;
-#line 1189 "moonshot-provisioning-common.c"
+#line 994 "moonshot-provisioning-common.c"
        }
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return result;
-#line 1193 "moonshot-provisioning-common.c"
+#line 998 "moonshot-provisioning-common.c"
+}
+
+
+static void _vala_Rule_array_free (Rule* array, gint array_length) {
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       if (array != NULL) {
+#line 1005 "moonshot-provisioning-common.c"
+               int i;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               for (i = 0; i < array_length; i = i + 1) {
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       rule_destroy (&array[i]);
+#line 1011 "moonshot-provisioning-common.c"
+               }
+       }
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       g_free (array);
+#line 1016 "moonshot-provisioning-common.c"
 }
 
 
-static Rule* _vala_array_dup10 (Rule* self, int length) {
+static Rule* _vala_array_dup3 (Rule* self, int length) {
        Rule* result;
        int i;
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        result = g_new0 (Rule, length);
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        for (i = 0; i < length; i++) {
-#line 1204 "moonshot-provisioning-common.c"
+#line 1027 "moonshot-provisioning-common.c"
                Rule _tmp0_ = {0};
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                rule_copy (&self[i], &_tmp0_);
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                result[i] = _tmp0_;
-#line 1210 "moonshot-provisioning-common.c"
+#line 1033 "moonshot-provisioning-common.c"
        }
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return result;
-#line 1214 "moonshot-provisioning-common.c"
+#line 1037 "moonshot-provisioning-common.c"
 }
 
 
-static Rule* _vala_array_dup11 (Rule* self, int length) {
-       Rule* result;
-       int i;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       result = g_new0 (Rule, length);
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       for (i = 0; i < length; i++) {
-#line 1225 "moonshot-provisioning-common.c"
-               Rule _tmp0_ = {0};
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               rule_copy (&self[i], &_tmp0_);
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               result[i] = _tmp0_;
-#line 1231 "moonshot-provisioning-common.c"
-       }
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       return result;
-#line 1235 "moonshot-provisioning-common.c"
-}
-
-
-void web_provisioning_text_element_func (GMarkupParseContext* context, const gchar* text, gsize text_len, GError** error) {
+static void web_provisioning_parser_text_element_func (WebProvisioningParser* self, GMarkupParseContext* context, const gchar* text, gsize text_len, GError** error) {
        GSList* stack = NULL;
        GMarkupParseContext* _tmp0_ = NULL;
        GSList* _tmp1_ = NULL;
@@ -1243,714 +1045,566 @@ void web_provisioning_text_element_func (GMarkupParseContext* context, const gch
        gboolean _tmp3_ = FALSE;
        GSList* _tmp4_ = NULL;
        gconstpointer _tmp5_ = NULL;
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       g_return_if_fail (self != NULL);
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        g_return_if_fail (context != NULL);
-#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        g_return_if_fail (text != NULL);
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp0_ = context;
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp1_ = g_markup_parse_context_get_element_stack (_tmp0_);
-#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        stack = _tmp1_;
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp2_ = text_len;
-#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        if (_tmp2_ < ((gsize) 1)) {
-#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                return;
-#line 1263 "moonshot-provisioning-common.c"
+#line 1067 "moonshot-provisioning-common.c"
        }
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp4_ = stack;
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _tmp5_ = g_slist_nth_data (_tmp4_, (guint) 0);
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        if (g_strcmp0 ((const gchar*) _tmp5_, "display-name") == 0) {
-#line 1271 "moonshot-provisioning-common.c"
+#line 1075 "moonshot-provisioning-common.c"
                GSList* _tmp6_ = NULL;
                gboolean _tmp7_ = FALSE;
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _tmp6_ = stack;
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _tmp7_ = web_provisioning_display_name_handler (_tmp6_);
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _tmp3_ = _tmp7_;
-#line 1280 "moonshot-provisioning-common.c"
+#line 1084 "moonshot-provisioning-common.c"
        } else {
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _tmp3_ = FALSE;
-#line 1284 "moonshot-provisioning-common.c"
+#line 1088 "moonshot-provisioning-common.c"
        }
-#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        if (_tmp3_) {
-#line 1288 "moonshot-provisioning-common.c"
+#line 1092 "moonshot-provisioning-common.c"
                IdCard* _tmp8_ = NULL;
                const gchar* _tmp9_ = NULL;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp8_ = web_provisioning_card;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp8_ = self->priv->card;
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _tmp9_ = text;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                id_card_set_display_name (_tmp8_, _tmp9_);
-#line 1297 "moonshot-provisioning-common.c"
+#line 1101 "moonshot-provisioning-common.c"
        } else {
                gboolean _tmp10_ = FALSE;
                GSList* _tmp11_ = NULL;
                gconstpointer _tmp12_ = NULL;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _tmp11_ = stack;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _tmp12_ = g_slist_nth_data (_tmp11_, (guint) 0);
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                if (g_strcmp0 ((const gchar*) _tmp12_, "user") == 0) {
-#line 1308 "moonshot-provisioning-common.c"
+#line 1112 "moonshot-provisioning-common.c"
                        GSList* _tmp13_ = NULL;
                        gboolean _tmp14_ = FALSE;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        _tmp13_ = stack;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        _tmp14_ = web_provisioning_user_handler (_tmp13_);
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        _tmp10_ = _tmp14_;
-#line 1317 "moonshot-provisioning-common.c"
+#line 1121 "moonshot-provisioning-common.c"
                } else {
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        _tmp10_ = FALSE;
-#line 1321 "moonshot-provisioning-common.c"
+#line 1125 "moonshot-provisioning-common.c"
                }
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                if (_tmp10_) {
-#line 1325 "moonshot-provisioning-common.c"
+#line 1129 "moonshot-provisioning-common.c"
                        IdCard* _tmp15_ = NULL;
                        const gchar* _tmp16_ = NULL;
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp15_ = web_provisioning_card;
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp15_ = self->priv->card;
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        _tmp16_ = text;
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        id_card_set_username (_tmp15_, _tmp16_);
-#line 1334 "moonshot-provisioning-common.c"
+#line 1138 "moonshot-provisioning-common.c"
                } else {
                        gboolean _tmp17_ = FALSE;
                        GSList* _tmp18_ = NULL;
                        gconstpointer _tmp19_ = NULL;
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        _tmp18_ = stack;
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        _tmp19_ = g_slist_nth_data (_tmp18_, (guint) 0);
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        if (g_strcmp0 ((const gchar*) _tmp19_, "password") == 0) {
-#line 1345 "moonshot-provisioning-common.c"
+#line 1149 "moonshot-provisioning-common.c"
                                GSList* _tmp20_ = NULL;
                                gboolean _tmp21_ = FALSE;
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp20_ = stack;
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp21_ = web_provisioning_password_handler (_tmp20_);
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp17_ = _tmp21_;
-#line 1354 "moonshot-provisioning-common.c"
+#line 1158 "moonshot-provisioning-common.c"
                        } else {
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp17_ = FALSE;
-#line 1358 "moonshot-provisioning-common.c"
+#line 1162 "moonshot-provisioning-common.c"
                        }
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        if (_tmp17_) {
-#line 1362 "moonshot-provisioning-common.c"
+#line 1166 "moonshot-provisioning-common.c"
                                IdCard* _tmp22_ = NULL;
                                const gchar* _tmp23_ = NULL;
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                               _tmp22_ = web_provisioning_card;
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                               _tmp22_ = self->priv->card;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp23_ = text;
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                id_card_set_password (_tmp22_, _tmp23_);
-#line 1371 "moonshot-provisioning-common.c"
+#line 1175 "moonshot-provisioning-common.c"
                        } else {
                                gboolean _tmp24_ = FALSE;
                                GSList* _tmp25_ = NULL;
                                gconstpointer _tmp26_ = NULL;
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp25_ = stack;
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _tmp26_ = g_slist_nth_data (_tmp25_, (guint) 0);
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                if (g_strcmp0 ((const gchar*) _tmp26_, "realm") == 0) {
-#line 1382 "moonshot-provisioning-common.c"
+#line 1186 "moonshot-provisioning-common.c"
                                        GSList* _tmp27_ = NULL;
                                        gboolean _tmp28_ = FALSE;
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        _tmp27_ = stack;
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        _tmp28_ = web_provisioning_realm_handler (_tmp27_);
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        _tmp24_ = _tmp28_;
-#line 1391 "moonshot-provisioning-common.c"
+#line 1195 "moonshot-provisioning-common.c"
                                } else {
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        _tmp24_ = FALSE;
-#line 1395 "moonshot-provisioning-common.c"
+#line 1199 "moonshot-provisioning-common.c"
                                }
-#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                if (_tmp24_) {
-#line 1399 "moonshot-provisioning-common.c"
+#line 1203 "moonshot-provisioning-common.c"
                                        IdCard* _tmp29_ = NULL;
                                        const gchar* _tmp30_ = NULL;
-#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                       _tmp29_ = web_provisioning_card;
-#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                       _tmp29_ = self->priv->card;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        _tmp30_ = text;
-#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        id_card_set_issuer (_tmp29_, _tmp30_);
-#line 1408 "moonshot-provisioning-common.c"
+#line 1212 "moonshot-provisioning-common.c"
                                } else {
                                        GSList* _tmp31_ = NULL;
                                        gconstpointer _tmp32_ = NULL;
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        _tmp31_ = stack;
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        _tmp32_ = g_slist_nth_data (_tmp31_, (guint) 0);
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                        if (g_strcmp0 ((const gchar*) _tmp32_, "service") == 0) {
-#line 1418 "moonshot-provisioning-common.c"
-                                               gchar** services = NULL;
+#line 1222 "moonshot-provisioning-common.c"
                                                IdCard* _tmp33_ = NULL;
-                                               gchar** _tmp34_ = NULL;
-                                               gint _tmp34__length1 = 0;
-                                               gchar** _tmp35_ = NULL;
-                                               gint _tmp35__length1 = 0;
-                                               gchar** _tmp36_ = NULL;
-                                               gint _tmp36__length1 = 0;
-                                               gint services_length1 = 0;
-                                               gint _services_size_ = 0;
-                                               IdCard* _tmp37_ = NULL;
-                                               gchar** _tmp38_ = NULL;
-                                               gint _tmp38__length1 = 0;
-                                               gchar** _tmp39_ = NULL;
-                                               gchar** _tmp40_ = NULL;
-                                               gint _tmp40__length1 = 0;
-                                               IdCard* _tmp54_ = NULL;
-                                               gchar** _tmp55_ = NULL;
-                                               gint _tmp55__length1 = 0;
-                                               gchar** _tmp56_ = NULL;
-                                               gint _tmp56__length1 = 0;
-                                               gchar** _tmp57_ = NULL;
-                                               gint _tmp57__length1 = 0;
-                                               const gchar* _tmp58_ = NULL;
-                                               gchar* _tmp59_ = NULL;
-                                               gchar* _tmp60_ = NULL;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp33_ = web_provisioning_card;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp34_ = id_card_get_services (_tmp33_, &_tmp34__length1);
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                               GeeArrayList* _tmp34_ = NULL;
+                                               GeeArrayList* _tmp35_ = NULL;
+                                               const gchar* _tmp36_ = NULL;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                               _tmp33_ = self->priv->card;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                               _tmp34_ = id_card_get_services (_tmp33_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                                _tmp35_ = _tmp34_;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp35__length1 = _tmp34__length1;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp36_ = (_tmp35_ != NULL) ? _vala_array_dup9 (_tmp35_, _tmp35__length1) : ((gpointer) _tmp35_);
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp36__length1 = _tmp35__length1;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               services = _tmp36_;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               services_length1 = _tmp36__length1;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _services_size_ = services_length1;
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp37_ = web_provisioning_card;
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp38_ = services;
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp38__length1 = services_length1;
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp39_ = g_new0 (gchar*, (_tmp38__length1 + 1) + 1);
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp40_ = _tmp39_;
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp40__length1 = _tmp38__length1 + 1;
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               id_card_set_services (_tmp37_, _tmp40_, _tmp38__length1 + 1);
-#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp40_ = (_vala_array_free (_tmp40_, _tmp40__length1, (GDestroyNotify) g_free), NULL);
-#line 1479 "moonshot-provisioning-common.c"
-                                               {
-                                                       gint i = 0;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       i = 0;
-#line 1484 "moonshot-provisioning-common.c"
-                                                       {
-                                                               gboolean _tmp41_ = FALSE;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                               _tmp41_ = TRUE;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                               while (TRUE) {
-#line 1491 "moonshot-provisioning-common.c"
-                                                                       gint _tmp43_ = 0;
-                                                                       gchar** _tmp44_ = NULL;
-                                                                       gint _tmp44__length1 = 0;
-                                                                       IdCard* _tmp45_ = NULL;
-                                                                       gchar** _tmp46_ = NULL;
-                                                                       gint _tmp46__length1 = 0;
-                                                                       gchar** _tmp47_ = NULL;
-                                                                       gint _tmp47__length1 = 0;
-                                                                       gint _tmp48_ = 0;
-                                                                       gchar** _tmp49_ = NULL;
-                                                                       gint _tmp49__length1 = 0;
-                                                                       gint _tmp50_ = 0;
-                                                                       const gchar* _tmp51_ = NULL;
-                                                                       gchar* _tmp52_ = NULL;
-                                                                       gchar* _tmp53_ = NULL;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       if (!_tmp41_) {
-#line 1509 "moonshot-provisioning-common.c"
-                                                                               gint _tmp42_ = 0;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               _tmp42_ = i;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                               _tmp36_ = text;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp35_, _tmp36_);
+#line 1237 "moonshot-provisioning-common.c"
+                                       } else {
+                                               gboolean _tmp37_ = FALSE;
+                                               GSList* _tmp38_ = NULL;
+                                               gconstpointer _tmp39_ = NULL;
 #line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               i = _tmp42_ + 1;
-#line 1515 "moonshot-provisioning-common.c"
-                                                                       }
+                                               _tmp38_ = stack;
 #line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp41_ = FALSE;
+                                               _tmp39_ = g_slist_nth_data (_tmp38_, (guint) 0);
 #line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp43_ = i;
+                                               if (g_strcmp0 ((const gchar*) _tmp39_, "pattern") == 0) {
+#line 1248 "moonshot-provisioning-common.c"
+                                                       GSList* _tmp40_ = NULL;
+                                                       gboolean _tmp41_ = FALSE;
 #line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp44_ = services;
+                                                       _tmp40_ = stack;
 #line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp44__length1 = services_length1;
+                                                       _tmp41_ = web_provisioning_pattern_handler (_tmp40_);
 #line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       if (!(_tmp43_ < _tmp44__length1)) {
+                                                       _tmp37_ = _tmp41_;
+#line 1257 "moonshot-provisioning-common.c"
+                                               } else {
 #line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               break;
-#line 1529 "moonshot-provisioning-common.c"
-                                                                       }
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp45_ = web_provisioning_card;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp46_ = id_card_get_services (_tmp45_, &_tmp46__length1);
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp47_ = _tmp46_;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp47__length1 = _tmp46__length1;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp48_ = i;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp49_ = services;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp49__length1 = services_length1;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp50_ = i;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp51_ = _tmp49_[_tmp50_];
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp52_ = g_strdup (_tmp51_);
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _g_free0 (_tmp47_[_tmp48_]);
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp47_[_tmp48_] = _tmp52_;
-#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp53_ = _tmp47_[_tmp48_];
-#line 1557 "moonshot-provisioning-common.c"
-                                                               }
-                                                       }
+                                                       _tmp37_ = FALSE;
+#line 1261 "moonshot-provisioning-common.c"
                                                }
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                               if (_tmp37_) {
+#line 1265 "moonshot-provisioning-common.c"
+                                                       Rule* temp = NULL;
+                                                       IdCard* _tmp42_ = NULL;
+                                                       Rule* _tmp43_ = NULL;
+                                                       gint _tmp43__length1 = 0;
+                                                       Rule* _tmp44_ = NULL;
+                                                       gint _tmp44__length1 = 0;
+                                                       Rule* _tmp45_ = NULL;
+                                                       gint _tmp45__length1 = 0;
+                                                       gint temp_length1 = 0;
+                                                       gint _temp_size_ = 0;
+                                                       IdCard* _tmp46_ = NULL;
+                                                       Rule* _tmp47_ = NULL;
+                                                       gint _tmp47__length1 = 0;
+                                                       Rule* _tmp48_ = NULL;
+                                                       gint _tmp48__length1 = 0;
+                                                       Rule* _tmp49_ = NULL;
+                                                       gint _tmp49__length1 = 0;
+                                                       const gchar* _tmp50_ = NULL;
+                                                       gchar* _tmp51_ = NULL;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       _tmp42_ = self->priv->card;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       _tmp43_ = id_card_get_rules (_tmp42_, &_tmp43__length1);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       _tmp44_ = _tmp43_;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       _tmp44__length1 = _tmp43__length1;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       _tmp45_ = (_tmp44_ != NULL) ? _vala_array_dup2 (_tmp44_, _tmp44__length1) : ((gpointer) _tmp44_);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       _tmp45__length1 = _tmp44__length1;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       temp = _tmp45_;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       temp_length1 = _tmp45__length1;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       _temp_size_ = temp_length1;
 #line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp54_ = web_provisioning_card;
-#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp55_ = id_card_get_services (_tmp54_, &_tmp55__length1);
+                                                       _tmp46_ = self->priv->card;
 #line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp56_ = _tmp55_;
+                                                       _tmp47_ = id_card_get_rules (_tmp46_, &_tmp47__length1);
 #line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp56__length1 = _tmp55__length1;
+                                                       _tmp48_ = _tmp47_;
 #line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp57_ = services;
+                                                       _tmp48__length1 = _tmp47__length1;
 #line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp57__length1 = services_length1;
+                                                       _tmp49_ = temp;
 #line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp58_ = text;
+                                                       _tmp49__length1 = temp_length1;
 #line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp59_ = g_strdup (_tmp58_);
+                                                       _tmp50_ = text;
 #line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _g_free0 (_tmp56_[_tmp57__length1]);
+                                                       _tmp51_ = g_strdup (_tmp50_);
 #line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp56_[_tmp57__length1] = _tmp59_;
+                                                       _g_free0 (_tmp48_[_tmp49__length1 - 1].pattern);
 #line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp60_ = _tmp56_[_tmp57__length1];
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_free), NULL);
-#line 1585 "moonshot-provisioning-common.c"
-                                       } else {
-                                               gboolean _tmp61_ = FALSE;
-                                               GSList* _tmp62_ = NULL;
-                                               gconstpointer _tmp63_ = NULL;
-#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp62_ = stack;
-#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               _tmp63_ = g_slist_nth_data (_tmp62_, (guint) 0);
-#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               if (g_strcmp0 ((const gchar*) _tmp63_, "pattern") == 0) {
-#line 1596 "moonshot-provisioning-common.c"
-                                                       GSList* _tmp64_ = NULL;
-                                                       gboolean _tmp65_ = FALSE;
-#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp64_ = stack;
-#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp65_ = web_provisioning_pattern_handler (_tmp64_);
-#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp61_ = _tmp65_;
-#line 1605 "moonshot-provisioning-common.c"
+                                                       _tmp48_[_tmp49__length1 - 1].pattern = _tmp51_;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       temp = (_vala_Rule_array_free (temp, temp_length1), NULL);
+#line 1325 "moonshot-provisioning-common.c"
                                                } else {
-#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp61_ = FALSE;
-#line 1609 "moonshot-provisioning-common.c"
-                                               }
-#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                               if (_tmp61_) {
-#line 1613 "moonshot-provisioning-common.c"
-                                                       Rule* temp = NULL;
-                                                       IdCard* _tmp66_ = NULL;
-                                                       Rule* _tmp67_ = NULL;
-                                                       gint _tmp67__length1 = 0;
-                                                       Rule* _tmp68_ = NULL;
-                                                       gint _tmp68__length1 = 0;
-                                                       Rule* _tmp69_ = NULL;
-                                                       gint _tmp69__length1 = 0;
-                                                       gint temp_length1 = 0;
-                                                       gint _temp_size_ = 0;
-                                                       IdCard* _tmp70_ = NULL;
-                                                       Rule* _tmp71_ = NULL;
-                                                       gint _tmp71__length1 = 0;
-                                                       Rule* _tmp72_ = NULL;
-                                                       gint _tmp72__length1 = 0;
-                                                       Rule* _tmp73_ = NULL;
-                                                       gint _tmp73__length1 = 0;
-                                                       const gchar* _tmp74_ = NULL;
-                                                       gchar* _tmp75_ = NULL;
+                                                       gboolean _tmp52_ = FALSE;
+                                                       GSList* _tmp53_ = NULL;
+                                                       gconstpointer _tmp54_ = NULL;
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       _tmp53_ = stack;
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       _tmp54_ = g_slist_nth_data (_tmp53_, (guint) 0);
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       if (g_strcmp0 ((const gchar*) _tmp54_, "always-confirm") == 0) {
+#line 1336 "moonshot-provisioning-common.c"
+                                                               GSList* _tmp55_ = NULL;
+                                                               gboolean _tmp56_ = FALSE;
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                               _tmp55_ = stack;
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                               _tmp56_ = web_provisioning_always_confirm_handler (_tmp55_);
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                               _tmp52_ = _tmp56_;
+#line 1345 "moonshot-provisioning-common.c"
+                                                       } else {
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                               _tmp52_ = FALSE;
+#line 1349 "moonshot-provisioning-common.c"
+                                                       }
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                       if (_tmp52_) {
+#line 1353 "moonshot-provisioning-common.c"
+                                                               gboolean _tmp57_ = FALSE;
+                                                               const gchar* _tmp58_ = NULL;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                               _tmp58_ = text;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                               if (g_strcmp0 (_tmp58_, "true") == 0) {
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       _tmp57_ = TRUE;
+#line 1362 "moonshot-provisioning-common.c"
+                                                               } else {
+                                                                       const gchar* _tmp59_ = NULL;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       _tmp59_ = text;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       _tmp57_ = g_strcmp0 (_tmp59_, "false") == 0;
+#line 1369 "moonshot-provisioning-common.c"
+                                                               }
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                               if (_tmp57_) {
+#line 1373 "moonshot-provisioning-common.c"
+                                                                       Rule* temp = NULL;
+                                                                       IdCard* _tmp60_ = NULL;
+                                                                       Rule* _tmp61_ = NULL;
+                                                                       gint _tmp61__length1 = 0;
+                                                                       Rule* _tmp62_ = NULL;
+                                                                       gint _tmp62__length1 = 0;
+                                                                       Rule* _tmp63_ = NULL;
+                                                                       gint _tmp63__length1 = 0;
+                                                                       gint temp_length1 = 0;
+                                                                       gint _temp_size_ = 0;
+                                                                       IdCard* _tmp64_ = NULL;
+                                                                       Rule* _tmp65_ = NULL;
+                                                                       gint _tmp65__length1 = 0;
+                                                                       Rule* _tmp66_ = NULL;
+                                                                       gint _tmp66__length1 = 0;
+                                                                       Rule* _tmp67_ = NULL;
+                                                                       gint _tmp67__length1 = 0;
+                                                                       const gchar* _tmp68_ = NULL;
+                                                                       gchar* _tmp69_ = NULL;
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp66_ = web_provisioning_card;
+                                                                       _tmp60_ = self->priv->card;
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp67_ = id_card_get_rules (_tmp66_, &_tmp67__length1);
+                                                                       _tmp61_ = id_card_get_rules (_tmp60_, &_tmp61__length1);
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp68_ = _tmp67_;
+                                                                       _tmp62_ = _tmp61_;
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp68__length1 = _tmp67__length1;
+                                                                       _tmp62__length1 = _tmp61__length1;
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp69_ = (_tmp68_ != NULL) ? _vala_array_dup10 (_tmp68_, _tmp68__length1) : ((gpointer) _tmp68_);
+                                                                       _tmp63_ = (_tmp62_ != NULL) ? _vala_array_dup3 (_tmp62_, _tmp62__length1) : ((gpointer) _tmp62_);
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp69__length1 = _tmp68__length1;
+                                                                       _tmp63__length1 = _tmp62__length1;
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       temp = _tmp69_;
+                                                                       temp = _tmp63_;
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       temp_length1 = _tmp69__length1;
+                                                                       temp_length1 = _tmp63__length1;
 #line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _temp_size_ = temp_length1;
+                                                                       _temp_size_ = temp_length1;
 #line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp70_ = web_provisioning_card;
+                                                                       _tmp64_ = self->priv->card;
 #line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp71_ = id_card_get_rules (_tmp70_, &_tmp71__length1);
+                                                                       _tmp65_ = id_card_get_rules (_tmp64_, &_tmp65__length1);
 #line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp72_ = _tmp71_;
+                                                                       _tmp66_ = _tmp65_;
 #line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp72__length1 = _tmp71__length1;
+                                                                       _tmp66__length1 = _tmp65__length1;
 #line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp73_ = temp;
+                                                                       _tmp67_ = temp;
 #line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp73__length1 = temp_length1;
+                                                                       _tmp67__length1 = temp_length1;
 #line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp74_ = text;
+                                                                       _tmp68_ = text;
 #line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp75_ = g_strdup (_tmp74_);
+                                                                       _tmp69_ = g_strdup (_tmp68_);
 #line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _g_free0 (_tmp72_[_tmp73__length1 - 1].pattern);
+                                                                       _g_free0 (_tmp66_[_tmp67__length1 - 1].always_confirm);
 #line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp72_[_tmp73__length1 - 1].pattern = _tmp75_;
-#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       temp = (_vala_Rule_array_free (temp, temp_length1), NULL);
-#line 1673 "moonshot-provisioning-common.c"
-                                               } else {
-                                                       gboolean _tmp76_ = FALSE;
-                                                       GSList* _tmp77_ = NULL;
-                                                       gconstpointer _tmp78_ = NULL;
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp77_ = stack;
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       _tmp78_ = g_slist_nth_data (_tmp77_, (guint) 0);
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       if (g_strcmp0 ((const gchar*) _tmp78_, "always-confirm") == 0) {
-#line 1684 "moonshot-provisioning-common.c"
-                                                               GSList* _tmp79_ = NULL;
-                                                               gboolean _tmp80_ = FALSE;
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                               _tmp79_ = stack;
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                               _tmp80_ = web_provisioning_always_confirm_handler (_tmp79_);
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                               _tmp76_ = _tmp80_;
-#line 1693 "moonshot-provisioning-common.c"
+                                                                       _tmp66_[_tmp67__length1 - 1].always_confirm = _tmp69_;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       temp = (_vala_Rule_array_free (temp, temp_length1), NULL);
+#line 1433 "moonshot-provisioning-common.c"
+                                                               }
                                                        } else {
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                               _tmp76_ = FALSE;
-#line 1697 "moonshot-provisioning-common.c"
-                                                       }
-#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                       if (_tmp76_) {
-#line 1701 "moonshot-provisioning-common.c"
-                                                               gboolean _tmp81_ = FALSE;
-                                                               const gchar* _tmp82_ = NULL;
-#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                               _tmp82_ = text;
-#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                               if (g_strcmp0 (_tmp82_, "true") == 0) {
-#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp81_ = TRUE;
-#line 1710 "moonshot-provisioning-common.c"
+                                                               gboolean _tmp70_ = FALSE;
+                                                               GSList* _tmp71_ = NULL;
+                                                               gconstpointer _tmp72_ = NULL;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                               _tmp71_ = stack;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                               _tmp72_ = g_slist_nth_data (_tmp71_, (guint) 0);
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                               if (g_strcmp0 ((const gchar*) _tmp72_, "ca-cert") == 0) {
+#line 1445 "moonshot-provisioning-common.c"
+                                                                       GSList* _tmp73_ = NULL;
+                                                                       gboolean _tmp74_ = FALSE;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       _tmp73_ = stack;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       _tmp74_ = web_provisioning_ca_cert_handler (_tmp73_);
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       _tmp70_ = _tmp74_;
+#line 1454 "moonshot-provisioning-common.c"
                                                                } else {
-                                                                       const gchar* _tmp83_ = NULL;
-#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp83_ = text;
-#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp81_ = g_strcmp0 (_tmp83_, "false") == 0;
-#line 1717 "moonshot-provisioning-common.c"
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       _tmp70_ = FALSE;
+#line 1458 "moonshot-provisioning-common.c"
                                                                }
-#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                               if (_tmp81_) {
-#line 1721 "moonshot-provisioning-common.c"
-                                                                       Rule* temp = NULL;
-                                                                       IdCard* _tmp84_ = NULL;
-                                                                       Rule* _tmp85_ = NULL;
-                                                                       gint _tmp85__length1 = 0;
-                                                                       Rule* _tmp86_ = NULL;
-                                                                       gint _tmp86__length1 = 0;
-                                                                       Rule* _tmp87_ = NULL;
-                                                                       gint _tmp87__length1 = 0;
-                                                                       gint temp_length1 = 0;
-                                                                       gint _temp_size_ = 0;
-                                                                       IdCard* _tmp88_ = NULL;
-                                                                       Rule* _tmp89_ = NULL;
-                                                                       gint _tmp89__length1 = 0;
-                                                                       Rule* _tmp90_ = NULL;
-                                                                       gint _tmp90__length1 = 0;
-                                                                       Rule* _tmp91_ = NULL;
-                                                                       gint _tmp91__length1 = 0;
-                                                                       const gchar* _tmp92_ = NULL;
-                                                                       gchar* _tmp93_ = NULL;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp84_ = web_provisioning_card;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp85_ = id_card_get_rules (_tmp84_, &_tmp85__length1);
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp86_ = _tmp85_;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp86__length1 = _tmp85__length1;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp87_ = (_tmp86_ != NULL) ? _vala_array_dup11 (_tmp86_, _tmp86__length1) : ((gpointer) _tmp86_);
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp87__length1 = _tmp86__length1;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       temp = _tmp87_;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       temp_length1 = _tmp87__length1;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _temp_size_ = temp_length1;
-#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp88_ = web_provisioning_card;
-#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp89_ = id_card_get_rules (_tmp88_, &_tmp89__length1);
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                               if (_tmp70_) {
+#line 1462 "moonshot-provisioning-common.c"
+                                                                       const gchar* _tmp75_ = NULL;
+                                                                       const gchar* _tmp76_ = NULL;
+                                                                       gchar* _tmp77_ = NULL;
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       _tmp76_ = text;
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       _tmp75_ = _tmp76_;
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       if (_tmp75_ == NULL) {
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                               _tmp75_ = "";
+#line 1474 "moonshot-provisioning-common.c"
+                                                                       }
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       _tmp77_ = g_strdup (_tmp75_);
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       _g_free0 (self->priv->ta_ca_cert);
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                       self->priv->ta_ca_cert = _tmp77_;
+#line 1482 "moonshot-provisioning-common.c"
+                                                               } else {
+                                                                       gboolean _tmp78_ = FALSE;
+                                                                       GSList* _tmp79_ = NULL;
+                                                                       gconstpointer _tmp80_ = NULL;
 #line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp90_ = _tmp89_;
+                                                                       _tmp79_ = stack;
 #line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp90__length1 = _tmp89__length1;
+                                                                       _tmp80_ = g_slist_nth_data (_tmp79_, (guint) 0);
 #line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp91_ = temp;
+                                                                       if (g_strcmp0 ((const gchar*) _tmp80_, "server-cert") == 0) {
+#line 1493 "moonshot-provisioning-common.c"
+                                                                               GSList* _tmp81_ = NULL;
+                                                                               gboolean _tmp82_ = FALSE;
 #line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp91__length1 = temp_length1;
+                                                                               _tmp81_ = stack;
 #line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp92_ = text;
+                                                                               _tmp82_ = web_provisioning_server_cert_handler (_tmp81_);
 #line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp93_ = g_strdup (_tmp92_);
+                                                                               _tmp78_ = _tmp82_;
+#line 1502 "moonshot-provisioning-common.c"
+                                                                       } else {
 #line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _g_free0 (_tmp90_[_tmp91__length1 - 1].always_confirm);
+                                                                               _tmp78_ = FALSE;
+#line 1506 "moonshot-provisioning-common.c"
+                                                                       }
 #line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp90_[_tmp91__length1 - 1].always_confirm = _tmp93_;
-#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       temp = (_vala_Rule_array_free (temp, temp_length1), NULL);
-#line 1781 "moonshot-provisioning-common.c"
-                                                               }
-                                                       } else {
-                                                               gboolean _tmp94_ = FALSE;
-                                                               GSList* _tmp95_ = NULL;
-                                                               gconstpointer _tmp96_ = NULL;
+                                                                       if (_tmp78_) {
+#line 1510 "moonshot-provisioning-common.c"
+                                                                               const gchar* _tmp83_ = NULL;
+                                                                               const gchar* _tmp84_ = NULL;
+                                                                               gchar* _tmp85_ = NULL;
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                               _tmp84_ = text;
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                               _tmp83_ = _tmp84_;
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                               if (_tmp83_ == NULL) {
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                                       _tmp83_ = "";
+#line 1522 "moonshot-provisioning-common.c"
+                                                                               }
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                               _tmp85_ = g_strdup (_tmp83_);
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                               _g_free0 (self->priv->ta_server_cert);
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                                                                               self->priv->ta_server_cert = _tmp85_;
+#line 1530 "moonshot-provisioning-common.c"
+                                                                       } else {
+                                                                               gboolean _tmp86_ = FALSE;
+                                                                               GSList* _tmp87_ = NULL;
+                                                                               gconstpointer _tmp88_ = NULL;
 #line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                               _tmp95_ = stack;
+                                                                               _tmp87_ = stack;
 #line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                               _tmp96_ = g_slist_nth_data (_tmp95_, (guint) 0);
+                                                                               _tmp88_ = g_slist_nth_data (_tmp87_, (guint) 0);
 #line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                               if (g_strcmp0 ((const gchar*) _tmp96_, "ca-cert") == 0) {
-#line 1793 "moonshot-provisioning-common.c"
-                                                                       GSList* _tmp97_ = NULL;
-                                                                       gboolean _tmp98_ = FALSE;
+                                                                               if (g_strcmp0 ((const gchar*) _tmp88_, "subject") == 0) {
+#line 1541 "moonshot-provisioning-common.c"
+                                                                                       GSList* _tmp89_ = NULL;
+                                                                                       gboolean _tmp90_ = FALSE;
 #line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp97_ = stack;
+                                                                                       _tmp89_ = stack;
 #line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp98_ = web_provisioning_ca_cert_handler (_tmp97_);
+                                                                                       _tmp90_ = web_provisioning_subject_handler (_tmp89_);
 #line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp94_ = _tmp98_;
-#line 1802 "moonshot-provisioning-common.c"
-                                                               } else {
+                                                                                       _tmp86_ = _tmp90_;
+#line 1550 "moonshot-provisioning-common.c"
+                                                                               } else {
 #line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp94_ = FALSE;
-#line 1806 "moonshot-provisioning-common.c"
-                                                               }
+                                                                                       _tmp86_ = FALSE;
+#line 1554 "moonshot-provisioning-common.c"
+                                                                               }
 #line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                               if (_tmp94_) {
-#line 1810 "moonshot-provisioning-common.c"
-                                                                       IdCard* _tmp99_ = NULL;
-                                                                       TrustAnchor* _tmp100_ = NULL;
-                                                                       TrustAnchor* _tmp101_ = NULL;
-                                                                       const gchar* _tmp102_ = NULL;
-#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp99_ = web_provisioning_card;
+                                                                               if (_tmp86_) {
+#line 1558 "moonshot-provisioning-common.c"
+                                                                                       const gchar* _tmp91_ = NULL;
+                                                                                       gchar* _tmp92_ = NULL;
 #line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp100_ = id_card_get_trust_anchor (_tmp99_);
+                                                                                       _tmp91_ = text;
 #line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp101_ = _tmp100_;
+                                                                                       _tmp92_ = g_strdup (_tmp91_);
 #line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp102_ = text;
+                                                                                       _g_free0 (self->priv->ta_subject);
 #line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       trust_anchor_set_ca_cert (_tmp101_, _tmp102_);
-#line 1825 "moonshot-provisioning-common.c"
-                                                               } else {
-                                                                       gboolean _tmp103_ = FALSE;
-                                                                       GSList* _tmp104_ = NULL;
-                                                                       gconstpointer _tmp105_ = NULL;
+                                                                                       self->priv->ta_subject = _tmp92_;
+#line 1569 "moonshot-provisioning-common.c"
+                                                                               } else {
+                                                                                       gboolean _tmp93_ = FALSE;
+                                                                                       GSList* _tmp94_ = NULL;
+                                                                                       gconstpointer _tmp95_ = NULL;
 #line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp104_ = stack;
+                                                                                       _tmp94_ = stack;
 #line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       _tmp105_ = g_slist_nth_data (_tmp104_, (guint) 0);
+                                                                                       _tmp95_ = g_slist_nth_data (_tmp94_, (guint) 0);
 #line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       if (g_strcmp0 ((const gchar*) _tmp105_, "subject") == 0) {
-#line 1836 "moonshot-provisioning-common.c"
-                                                                               GSList* _tmp106_ = NULL;
-                                                                               gboolean _tmp107_ = FALSE;
+                                                                                       if (g_strcmp0 ((const gchar*) _tmp95_, "subject-alt") == 0) {
+#line 1580 "moonshot-provisioning-common.c"
+                                                                                               GSList* _tmp96_ = NULL;
+                                                                                               gboolean _tmp97_ = FALSE;
 #line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               _tmp106_ = stack;
+                                                                                               _tmp96_ = stack;
 #line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               _tmp107_ = web_provisioning_subject_handler (_tmp106_);
+                                                                                               _tmp97_ = web_provisioning_subject_alt_handler (_tmp96_);
 #line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               _tmp103_ = _tmp107_;
-#line 1845 "moonshot-provisioning-common.c"
-                                                                       } else {
+                                                                                               _tmp93_ = _tmp97_;
+#line 1589 "moonshot-provisioning-common.c"
+                                                                                       } else {
 #line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               _tmp103_ = FALSE;
-#line 1849 "moonshot-provisioning-common.c"
-                                                                       }
+                                                                                               _tmp93_ = FALSE;
+#line 1593 "moonshot-provisioning-common.c"
+                                                                                       }
 #line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                       if (_tmp103_) {
-#line 1853 "moonshot-provisioning-common.c"
-                                                                               IdCard* _tmp108_ = NULL;
-                                                                               TrustAnchor* _tmp109_ = NULL;
-                                                                               TrustAnchor* _tmp110_ = NULL;
-                                                                               const gchar* _tmp111_ = NULL;
+                                                                                       if (_tmp93_) {
+#line 1597 "moonshot-provisioning-common.c"
+                                                                                               const gchar* _tmp98_ = NULL;
+                                                                                               gchar* _tmp99_ = NULL;
 #line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               _tmp108_ = web_provisioning_card;
+                                                                                               _tmp98_ = text;
 #line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               _tmp109_ = id_card_get_trust_anchor (_tmp108_);
+                                                                                               _tmp99_ = g_strdup (_tmp98_);
 #line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               _tmp110_ = _tmp109_;
+                                                                                               _g_free0 (self->priv->ta_subject_alt);
 #line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               _tmp111_ = text;
-#line 222 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               trust_anchor_set_subject (_tmp110_, _tmp111_);
-#line 1868 "moonshot-provisioning-common.c"
-                                                                       } else {
-                                                                               gboolean _tmp112_ = FALSE;
-                                                                               GSList* _tmp113_ = NULL;
-                                                                               gconstpointer _tmp114_ = NULL;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               _tmp113_ = stack;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               _tmp114_ = g_slist_nth_data (_tmp113_, (guint) 0);
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               if (g_strcmp0 ((const gchar*) _tmp114_, "subject-alt") == 0) {
-#line 1879 "moonshot-provisioning-common.c"
-                                                                                       GSList* _tmp115_ = NULL;
-                                                                                       gboolean _tmp116_ = FALSE;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                       _tmp115_ = stack;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                       _tmp116_ = web_provisioning_subject_alt_handler (_tmp115_);
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                       _tmp112_ = _tmp116_;
-#line 1888 "moonshot-provisioning-common.c"
-                                                                               } else {
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                       _tmp112_ = FALSE;
-#line 1892 "moonshot-provisioning-common.c"
-                                                                               }
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                               if (_tmp112_) {
-#line 1896 "moonshot-provisioning-common.c"
-                                                                                       IdCard* _tmp117_ = NULL;
-                                                                                       TrustAnchor* _tmp118_ = NULL;
-                                                                                       TrustAnchor* _tmp119_ = NULL;
-                                                                                       const gchar* _tmp120_ = NULL;
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                       _tmp117_ = web_provisioning_card;
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                       _tmp118_ = id_card_get_trust_anchor (_tmp117_);
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                       _tmp119_ = _tmp118_;
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                       _tmp120_ = text;
-#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                       trust_anchor_set_subject_alt (_tmp119_, _tmp120_);
-#line 1911 "moonshot-provisioning-common.c"
-                                                                               } else {
-                                                                                       gboolean _tmp121_ = FALSE;
-                                                                                       GSList* _tmp122_ = NULL;
-                                                                                       gconstpointer _tmp123_ = NULL;
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                       _tmp122_ = stack;
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                       _tmp123_ = g_slist_nth_data (_tmp122_, (guint) 0);
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                       if (g_strcmp0 ((const gchar*) _tmp123_, "server-cert") == 0) {
-#line 1922 "moonshot-provisioning-common.c"
-                                                                                               GSList* _tmp124_ = NULL;
-                                                                                               gboolean _tmp125_ = FALSE;
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                               _tmp124_ = stack;
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                               _tmp125_ = web_provisioning_server_cert_handler (_tmp124_);
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                               _tmp121_ = _tmp125_;
-#line 1931 "moonshot-provisioning-common.c"
-                                                                                       } else {
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                               _tmp121_ = FALSE;
-#line 1935 "moonshot-provisioning-common.c"
-                                                                                       }
-#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                       if (_tmp121_) {
-#line 1939 "moonshot-provisioning-common.c"
-                                                                                               IdCard* _tmp126_ = NULL;
-                                                                                               TrustAnchor* _tmp127_ = NULL;
-                                                                                               TrustAnchor* _tmp128_ = NULL;
-                                                                                               const gchar* _tmp129_ = NULL;
-#line 230 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                               _tmp126_ = web_provisioning_card;
-#line 230 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                               _tmp127_ = id_card_get_trust_anchor (_tmp126_);
-#line 230 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                               _tmp128_ = _tmp127_;
-#line 230 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                               _tmp129_ = text;
-#line 230 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                                                                                               trust_anchor_set_server_cert (_tmp128_, _tmp129_);
-#line 1954 "moonshot-provisioning-common.c"
+                                                                                               self->priv->ta_subject_alt = _tmp99_;
+#line 1608 "moonshot-provisioning-common.c"
                                                                                        }
                                                                                }
                                                                        }
@@ -1965,520 +1619,469 @@ void web_provisioning_text_element_func (GMarkupParseContext* context, const gch
 }
 
 
-static void _web_provisioning_start_element_func_gmarkup_parser_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, gchar** attribute_values, gpointer self, GError** error) {
-#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       web_provisioning_start_element_func (context, element_name, attribute_names, _vala_array_length (attribute_names), attribute_values, _vala_array_length (attribute_values), error);
-#line 1972 "moonshot-provisioning-common.c"
-}
-
-
-static void _web_provisioning_text_element_func_gmarkup_parser_text_func (GMarkupParseContext* context, const gchar* text, gsize text_len, gpointer self, GError** error) {
-#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       web_provisioning_text_element_func (context, text, text_len, error);
-#line 1979 "moonshot-provisioning-common.c"
-}
-
-
 WebProvisioningParser* web_provisioning_parser_construct (GType object_type, const gchar* path) {
-       WebProvisioningParser* self = NULL;
-       gchar* _tmp0_ = NULL;
-       const gchar* _tmp1_ = NULL;
-       gchar* _tmp2_ = NULL;
+       WebProvisioningParser * self = NULL;
+       GMarkupParseContext* _tmp0_ = NULL;
+       gchar* _tmp1_ = NULL;
+       const gchar* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
        GFile* file = NULL;
-       const gchar* _tmp3_ = NULL;
-       GFile* _tmp4_ = NULL;
-       GMarkupParser _tmp17_ = {0};
+       const gchar* _tmp4_ = NULL;
+       GFile* _tmp5_ = NULL;
        GError * _inner_error_ = NULL;
-#line 239 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        g_return_val_if_fail (path != NULL, NULL);
-#line 239 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       self = (WebProvisioningParser*) g_type_create_instance (object_type);
-#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       _tmp0_ = g_strdup ("");
-#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       self = (WebProvisioningParser*) g_object_new (object_type, NULL);
+#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp0_ = g_markup_parse_context_new (&WEB_PROVISIONING_PARSER_parser, 0, self, NULL);
+#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _g_markup_parse_context_free0 (self->priv->ctx);
+#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       self->priv->ctx = _tmp0_;
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp1_ = g_strdup ("");
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _g_free0 (self->priv->text);
-#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       self->priv->text = _tmp0_;
-#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       _tmp1_ = path;
-#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       _tmp2_ = g_strdup (_tmp1_);
-#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       self->priv->text = _tmp1_;
+#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp2_ = path;
+#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp3_ = g_strdup (_tmp2_);
+#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _g_free0 (self->priv->path);
-#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       self->priv->path = _tmp2_;
-#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       _tmp3_ = path;
-#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       _tmp4_ = g_file_new_for_path (_tmp3_);
-#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       file = _tmp4_;
-#line 2017 "moonshot-provisioning-common.c"
+#line 253 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       self->priv->path = _tmp3_;
+#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp4_ = path;
+#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp5_ = g_file_new_for_path (_tmp4_);
+#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       file = _tmp5_;
+#line 1663 "moonshot-provisioning-common.c"
        {
-               GFileInputStream* _tmp5_ = NULL;
-               GFile* _tmp6_ = NULL;
-               GFileInputStream* _tmp7_ = NULL;
+               GFileInputStream* _tmp6_ = NULL;
+               GFile* _tmp7_ = NULL;
+               GFileInputStream* _tmp8_ = NULL;
                GDataInputStream* dis = NULL;
-               GDataInputStream* _tmp8_ = NULL;
+               GDataInputStream* _tmp9_ = NULL;
                gchar* line = NULL;
-#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp6_ = file;
-#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp7_ = g_file_read (_tmp6_, NULL, &_inner_error_);
-#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp5_ = _tmp7_;
-#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp7_ = file;
+#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp8_ = g_file_read (_tmp7_, NULL, &_inner_error_);
+#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp6_ = _tmp8_;
+#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 2033 "moonshot-provisioning-common.c"
-                       goto __catch8_g_error;
+#line 1679 "moonshot-provisioning-common.c"
+                       goto __catch0_g_error;
                }
-#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp8_ = g_data_input_stream_new ((GInputStream*) _tmp5_);
-#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               dis = _tmp8_;
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp9_ = g_data_input_stream_new ((GInputStream*) _tmp6_);
+#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               dis = _tmp9_;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                while (TRUE) {
-#line 2042 "moonshot-provisioning-common.c"
-                       gchar* _tmp9_ = NULL;
-                       GDataInputStream* _tmp10_ = NULL;
-                       gchar* _tmp11_ = NULL;
+#line 1688 "moonshot-provisioning-common.c"
+                       gchar* _tmp10_ = NULL;
+                       GDataInputStream* _tmp11_ = NULL;
                        gchar* _tmp12_ = NULL;
-                       const gchar* _tmp13_ = NULL;
+                       gchar* _tmp13_ = NULL;
                        const gchar* _tmp14_ = NULL;
                        const gchar* _tmp15_ = NULL;
-                       gchar* _tmp16_ = NULL;
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp10_ = dis;
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp11_ = g_data_input_stream_read_line (_tmp10_, NULL, NULL, &_inner_error_);
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp9_ = _tmp11_;
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       const gchar* _tmp16_ = NULL;
+                       gchar* _tmp17_ = NULL;
+                       const gchar* _tmp18_ = NULL;
+                       gchar* _tmp19_ = NULL;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp11_ = dis;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp12_ = g_data_input_stream_read_line (_tmp11_, NULL, NULL, &_inner_error_);
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp10_ = _tmp12_;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _g_free0 (line);
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                _g_object_unref0 (dis);
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                               _g_object_unref0 (_tmp5_);
-#line 2065 "moonshot-provisioning-common.c"
-                               goto __catch8_g_error;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                               _g_object_unref0 (_tmp6_);
+#line 1713 "moonshot-provisioning-common.c"
+                               goto __catch0_g_error;
                        }
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp12_ = _tmp9_;
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp9_ = NULL;
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp13_ = _tmp10_;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp10_ = NULL;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        _g_free0 (line);
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       line = _tmp12_;
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp13_ = line;
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       if (!(_tmp13_ != NULL)) {
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                               _g_free0 (_tmp9_);
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       line = _tmp13_;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp14_ = line;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       if (!(_tmp14_ != NULL)) {
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                               _g_free0 (_tmp10_);
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                                break;
-#line 2084 "moonshot-provisioning-common.c"
+#line 1732 "moonshot-provisioning-common.c"
                        }
-#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp14_ = self->priv->text;
-#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp15_ = line;
-#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _tmp16_ = g_strconcat (_tmp14_, _tmp15_, NULL);
-#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp15_ = self->priv->text;
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp16_ = line;
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp17_ = g_strconcat (_tmp15_, _tmp16_, NULL);
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                        _g_free0 (self->priv->text);
-#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       self->priv->text = _tmp16_;
-#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       _g_free0 (_tmp9_);
-#line 2098 "moonshot-provisioning-common.c"
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       self->priv->text = _tmp17_;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp18_ = self->priv->text;
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _tmp19_ = g_strconcat (_tmp18_, "\n", NULL);
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _g_free0 (self->priv->text);
+#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       self->priv->text = _tmp19_;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+                       _g_free0 (_tmp10_);
+#line 1754 "moonshot-provisioning-common.c"
                }
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _g_free0 (line);
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _g_object_unref0 (dis);
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _g_object_unref0 (_tmp5_);
-#line 2106 "moonshot-provisioning-common.c"
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _g_object_unref0 (_tmp6_);
+#line 1762 "moonshot-provisioning-common.c"
        }
-       goto __finally8;
-       __catch8_g_error:
+       goto __finally0;
+       __catch0_g_error:
        {
                GError* e = NULL;
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                e = _inner_error_;
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _inner_error_ = NULL;
-#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               g_error ("moonshot-provisioning-common.vala:255: Could not retreive file size");
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 273 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               g_error ("moonshot-provisioning-common.vala:273: Could not retreive file size");
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _g_error_free0 (e);
-#line 2120 "moonshot-provisioning-common.c"
+#line 1776 "moonshot-provisioning-common.c"
        }
-       __finally8:
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       __finally0:
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _g_object_unref0 (file);
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                g_clear_error (&_inner_error_);
-#line 246 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                return NULL;
-#line 2133 "moonshot-provisioning-common.c"
+#line 1789 "moonshot-provisioning-common.c"
        }
-#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       _tmp17_.start_element = _web_provisioning_start_element_func_gmarkup_parser_start_element_func;
-#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       _tmp17_.end_element = NULL;
-#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       _tmp17_.text = _web_provisioning_text_element_func_gmarkup_parser_text_func;
-#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       _tmp17_.passthrough = NULL;
-#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       _tmp17_.error = NULL;
-#line 258 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       self->priv->parser = _tmp17_;
-#line 239 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _g_object_unref0 (file);
-#line 239 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return self;
-#line 2151 "moonshot-provisioning-common.c"
+#line 1795 "moonshot-provisioning-common.c"
 }
 
 
 WebProvisioningParser* web_provisioning_parser_new (const gchar* path) {
-#line 239 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 248 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        return web_provisioning_parser_construct (WEB_PROVISIONING_TYPE_PARSER, path);
-#line 2158 "moonshot-provisioning-common.c"
+#line 1802 "moonshot-provisioning-common.c"
 }
 
 
 void web_provisioning_parser_parse (WebProvisioningParser* self) {
-       GMarkupParseContext* ctx = NULL;
-       GMarkupParser _tmp0_ = {0};
-       GMarkupParseContext* _tmp1_ = NULL;
        GError * _inner_error_ = NULL;
-#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        g_return_if_fail (self != NULL);
-#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       _tmp0_ = self->priv->parser;
-#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       _tmp1_ = g_markup_parse_context_new (&_tmp0_, 0, NULL, NULL);
-#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       ctx = _tmp1_;
-#line 2175 "moonshot-provisioning-common.c"
+#line 1810 "moonshot-provisioning-common.c"
        {
+               GMarkupParseContext* _tmp0_ = NULL;
+               const gchar* _tmp1_ = NULL;
                const gchar* _tmp2_ = NULL;
-               const gchar* _tmp3_ = NULL;
+               gint _tmp3_ = 0;
                gint _tmp4_ = 0;
-               gint _tmp5_ = 0;
-#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp0_ = self->priv->ctx;
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp1_ = self->priv->text;
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _tmp2_ = self->priv->text;
-#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp3_ = self->priv->text;
-#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp4_ = strlen (_tmp3_);
-#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp5_ = _tmp4_;
-#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               g_markup_parse_context_parse (ctx, _tmp2_, (gssize) _tmp5_, &_inner_error_);
-#line 268 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp3_ = strlen (_tmp2_);
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp4_ = _tmp3_;
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               g_markup_parse_context_parse (_tmp0_, _tmp1_, (gssize) _tmp4_, &_inner_error_);
+#line 280 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 2193 "moonshot-provisioning-common.c"
-                       goto __catch9_g_error;
+#line 1831 "moonshot-provisioning-common.c"
+                       goto __catch1_g_error;
                }
        }
-       goto __finally9;
-       __catch9_g_error:
+       goto __finally1;
+       __catch1_g_error:
        {
                GError* e = NULL;
-               const gchar* _tmp6_ = NULL;
-#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               const gchar* _tmp5_ = NULL;
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                e = _inner_error_;
-#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _inner_error_ = NULL;
-#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _tmp6_ = self->priv->path;
-#line 272 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               g_error ("moonshot-provisioning-common.vala:272: Could not parse %s, invalid con" \
-"tent", _tmp6_);
-#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp5_ = self->priv->path;
+#line 284 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               g_error ("moonshot-provisioning-common.vala:284: Could not parse %s, invalid con" \
+"tent", _tmp5_);
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                _g_error_free0 (e);
-#line 2212 "moonshot-provisioning-common.c"
+#line 1850 "moonshot-provisioning-common.c"
        }
-       __finally9:
-#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       __finally1:
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               _g_markup_parse_context_free0 (ctx);
-#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                g_clear_error (&_inner_error_);
-#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
                return;
-#line 2225 "moonshot-provisioning-common.c"
-       }
-#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       _g_markup_parse_context_free0 (ctx);
-#line 2229 "moonshot-provisioning-common.c"
-}
-
-
-static void web_provisioning_value_parser_init (GValue* value) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       value->data[0].v_pointer = NULL;
-#line 2236 "moonshot-provisioning-common.c"
-}
-
-
-static void web_provisioning_value_parser_free_value (GValue* value) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       if (value->data[0].v_pointer) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               web_provisioning_parser_unref (value->data[0].v_pointer);
-#line 2245 "moonshot-provisioning-common.c"
-       }
-}
-
-
-static void web_provisioning_value_parser_copy_value (const GValue* src_value, GValue* dest_value) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       if (src_value->data[0].v_pointer) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               dest_value->data[0].v_pointer = web_provisioning_parser_ref (src_value->data[0].v_pointer);
-#line 2255 "moonshot-provisioning-common.c"
-       } else {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               dest_value->data[0].v_pointer = NULL;
-#line 2259 "moonshot-provisioning-common.c"
+#line 1861 "moonshot-provisioning-common.c"
        }
 }
 
 
-static gpointer web_provisioning_value_parser_peek_pointer (const GValue* value) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       return value->data[0].v_pointer;
-#line 2267 "moonshot-provisioning-common.c"
-}
-
-
-static gchar* web_provisioning_value_parser_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       if (collect_values[0].v_pointer) {
-#line 2274 "moonshot-provisioning-common.c"
-               WebProvisioningParser* object;
-               object = collect_values[0].v_pointer;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               if (object->parent_instance.g_class == NULL) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
-#line 2281 "moonshot-provisioning-common.c"
-               } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-                       return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
-#line 2285 "moonshot-provisioning-common.c"
-               }
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               value->data[0].v_pointer = web_provisioning_parser_ref (object);
-#line 2289 "moonshot-provisioning-common.c"
-       } else {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               value->data[0].v_pointer = NULL;
-#line 2293 "moonshot-provisioning-common.c"
-       }
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       return NULL;
-#line 2297 "moonshot-provisioning-common.c"
-}
-
-
-static gchar* web_provisioning_value_parser_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
-       WebProvisioningParser** object_p;
-       object_p = collect_values[0].v_pointer;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       if (!object_p) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
-#line 2308 "moonshot-provisioning-common.c"
-       }
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       if (!value->data[0].v_pointer) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               *object_p = NULL;
-#line 2314 "moonshot-provisioning-common.c"
-       } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               *object_p = value->data[0].v_pointer;
-#line 2318 "moonshot-provisioning-common.c"
-       } else {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               *object_p = web_provisioning_parser_ref (value->data[0].v_pointer);
-#line 2322 "moonshot-provisioning-common.c"
+IdCard** web_provisioning_parser_get_cards (WebProvisioningParser* self, int* result_length1) {
+       IdCard** result;
+       IdCard** _tmp0_ = NULL;
+       gint _tmp0__length1 = 0;
+       IdCard** _tmp1_ = NULL;
+       gint _tmp1__length1 = 0;
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp0_ = self->priv->_cards;
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp0__length1 = self->priv->_cards_length1;
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp1_ = _tmp0_;
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp1__length1 = _tmp0__length1;
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       if (result_length1) {
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               *result_length1 = _tmp1__length1;
+#line 1886 "moonshot-provisioning-common.c"
        }
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       return NULL;
-#line 2326 "moonshot-provisioning-common.c"
-}
-
-
-GParamSpec* web_provisioning_param_spec_parser (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
-       WebProvisioningParamSpecParser* spec;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       g_return_val_if_fail (g_type_is_a (object_type, WEB_PROVISIONING_TYPE_PARSER), NULL);
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       G_PARAM_SPEC (spec)->value_type = object_type;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       return G_PARAM_SPEC (spec);
-#line 2340 "moonshot-provisioning-common.c"
-}
-
-
-gpointer web_provisioning_value_get_parser (const GValue* value) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, WEB_PROVISIONING_TYPE_PARSER), NULL);
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       return value->data[0].v_pointer;
-#line 2349 "moonshot-provisioning-common.c"
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       result = _tmp1_;
+#line 244 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       return result;
+#line 1892 "moonshot-provisioning-common.c"
 }
 
 
-void web_provisioning_value_set_parser (GValue* value, gpointer v_object) {
-       WebProvisioningParser* old;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, WEB_PROVISIONING_TYPE_PARSER));
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       old = value->data[0].v_pointer;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       if (v_object) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, WEB_PROVISIONING_TYPE_PARSER));
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               value->data[0].v_pointer = v_object;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               web_provisioning_parser_ref (value->data[0].v_pointer);
-#line 2369 "moonshot-provisioning-common.c"
-       } else {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               value->data[0].v_pointer = NULL;
-#line 2373 "moonshot-provisioning-common.c"
-       }
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       if (old) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               web_provisioning_parser_unref (old);
-#line 2379 "moonshot-provisioning-common.c"
+static IdCard** _vala_array_dup4 (IdCard** self, int length) {
+       IdCard** result;
+       int i;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       result = g_new0 (IdCard*, length + 1);
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       for (i = 0; i < length; i++) {
+#line 1903 "moonshot-provisioning-common.c"
+               IdCard* _tmp0_ = NULL;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp0_ = _g_object_ref0 (self[i]);
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               result[i] = _tmp0_;
+#line 1909 "moonshot-provisioning-common.c"
        }
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       return result;
+#line 1913 "moonshot-provisioning-common.c"
 }
 
 
-void web_provisioning_value_take_parser (GValue* value, gpointer v_object) {
-       WebProvisioningParser* old;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, WEB_PROVISIONING_TYPE_PARSER));
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       old = value->data[0].v_pointer;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       if (v_object) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, WEB_PROVISIONING_TYPE_PARSER));
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               value->data[0].v_pointer = v_object;
-#line 2398 "moonshot-provisioning-common.c"
-       } else {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               value->data[0].v_pointer = NULL;
-#line 2402 "moonshot-provisioning-common.c"
-       }
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       if (old) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               web_provisioning_parser_unref (old);
-#line 2408 "moonshot-provisioning-common.c"
+static void web_provisioning_parser_set_cards (WebProvisioningParser* self, IdCard** value, int value_length1) {
+       IdCard** _tmp0_ = NULL;
+       IdCard** _tmp1_ = NULL;
+       gint _tmp1__length1 = 0;
+       IdCard** _tmp2_ = NULL;
+       gint _tmp2__length1 = 0;
+       gint _tmp0__length1 = 0;
+       gint __tmp0__size_ = 0;
+       IdCard** _tmp4_ = NULL;
+       gint _tmp4__length1 = 0;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       g_return_if_fail (self != NULL);
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp1_ = value;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp1__length1 = value_length1;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp2_ = (_tmp1_ != NULL) ? _vala_array_dup4 (_tmp1_, _tmp1__length1) : ((gpointer) _tmp1_);
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp2__length1 = _tmp1__length1;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp0_ = _tmp2_;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp0__length1 = _tmp2__length1;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       __tmp0__size_ = _tmp0__length1;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       if (_tmp0_ == NULL) {
+#line 1945 "moonshot-provisioning-common.c"
+               IdCard** _tmp3_ = NULL;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp3_ = g_new0 (IdCard*, 0 + 1);
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp0_ = (_vala_array_free (_tmp0_, _tmp0__length1, (GDestroyNotify) g_object_unref), NULL);
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp0_ = _tmp3_;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               _tmp0__length1 = 0;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               __tmp0__size_ = _tmp0__length1;
+#line 1957 "moonshot-provisioning-common.c"
        }
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp4_ = _tmp0_;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp4__length1 = _tmp0__length1;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp0_ = NULL;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp0__length1 = 0;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       self->priv->_cards = (_vala_array_free (self->priv->_cards, self->priv->_cards_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       self->priv->_cards = _tmp4_;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       self->priv->_cards_length1 = _tmp4__length1;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       self->priv->__cards_size_ = self->priv->_cards_length1;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp0_ = (_vala_array_free (_tmp0_, _tmp0__length1, (GDestroyNotify) g_object_unref), NULL);
+#line 1977 "moonshot-provisioning-common.c"
 }
 
 
 static void web_provisioning_parser_class_init (WebProvisioningParserClass * klass) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       MoonshotLogger* _tmp0_ = NULL;
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        web_provisioning_parser_parent_class = g_type_class_peek_parent (klass);
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       ((WebProvisioningParserClass *) klass)->finalize = web_provisioning_parser_finalize;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        g_type_class_add_private (klass, sizeof (WebProvisioningParserPrivate));
-#line 2420 "moonshot-provisioning-common.c"
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       G_OBJECT_CLASS (klass)->get_property = _vala_web_provisioning_parser_get_property;
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       G_OBJECT_CLASS (klass)->set_property = _vala_web_provisioning_parser_set_property;
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       G_OBJECT_CLASS (klass)->finalize = web_provisioning_parser_finalize;
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp0_ = moonshot_logger_new ("WebProvisioning");
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       web_provisioning_parser_logger = _tmp0_;
+#line 1997 "moonshot-provisioning-common.c"
 }
 
 
 static void web_provisioning_parser_instance_init (WebProvisioningParser * self) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       IdCard** _tmp0_ = NULL;
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        self->priv = WEB_PROVISIONING_PARSER_GET_PRIVATE (self);
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       self->ref_count = 1;
-#line 2429 "moonshot-provisioning-common.c"
+#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _tmp0_ = g_new0 (IdCard*, 0 + 1);
+#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       self->priv->_cards = _tmp0_;
+#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       self->priv->_cards_length1 = 0;
+#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       self->priv->__cards_size_ = self->priv->_cards_length1;
+#line 2013 "moonshot-provisioning-common.c"
 }
 
 
-static void web_provisioning_parser_finalize (WebProvisioningParser* obj) {
+static void web_provisioning_parser_finalize (GObject* obj) {
        WebProvisioningParser * self;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParser);
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       g_signal_handlers_destroy (self);
-#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 230 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _g_markup_parse_context_free0 (self->priv->ctx);
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _g_free0 (self->priv->text);
-#line 238 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+#line 233 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
        _g_free0 (self->priv->path);
-#line 2443 "moonshot-provisioning-common.c"
+#line 235 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _g_free0 (self->priv->ta_ca_cert);
+#line 236 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _g_free0 (self->priv->ta_server_cert);
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _g_free0 (self->priv->ta_subject);
+#line 238 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _g_free0 (self->priv->ta_subject_alt);
+#line 240 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       _g_object_unref0 (self->priv->card);
+#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       self->priv->_cards = (_vala_array_free (self->priv->_cards, self->priv->_cards_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       G_OBJECT_CLASS (web_provisioning_parser_parent_class)->finalize (obj);
+#line 2041 "moonshot-provisioning-common.c"
 }
 
 
 GType web_provisioning_parser_get_type (void) {
        static volatile gsize web_provisioning_parser_type_id__volatile = 0;
        if (g_once_init_enter (&web_provisioning_parser_type_id__volatile)) {
-               static const GTypeValueTable g_define_type_value_table = { web_provisioning_value_parser_init, web_provisioning_value_parser_free_value, web_provisioning_value_parser_copy_value, web_provisioning_value_parser_peek_pointer, "p", web_provisioning_value_parser_collect_value, "p", web_provisioning_value_parser_lcopy_value };
-               static const GTypeInfo g_define_type_info = { sizeof (WebProvisioningParserClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) web_provisioning_parser_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WebProvisioningParser), 0, (GInstanceInitFunc) web_provisioning_parser_instance_init, &g_define_type_value_table };
-               static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+               static const GTypeInfo g_define_type_info = { sizeof (WebProvisioningParserClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) web_provisioning_parser_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WebProvisioningParser), 0, (GInstanceInitFunc) web_provisioning_parser_instance_init, NULL };
                GType web_provisioning_parser_type_id;
-               web_provisioning_parser_type_id = g_type_register_fundamental (g_type_fundamental_next (), "WebProvisioningParser", &g_define_type_info, &g_define_type_fundamental_info, 0);
+               web_provisioning_parser_type_id = g_type_register_static (G_TYPE_OBJECT, "WebProvisioningParser", &g_define_type_info, 0);
                g_once_init_leave (&web_provisioning_parser_type_id__volatile, web_provisioning_parser_type_id);
        }
        return web_provisioning_parser_type_id__volatile;
 }
 
 
-gpointer web_provisioning_parser_ref (gpointer instance) {
-       WebProvisioningParser* self;
-       self = instance;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       g_atomic_int_inc (&self->ref_count);
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       return instance;
-#line 2468 "moonshot-provisioning-common.c"
+static void _vala_web_provisioning_parser_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+       WebProvisioningParser * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (object, WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParser);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       switch (property_id) {
+#line 2062 "moonshot-provisioning-common.c"
+               default:
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               break;
+#line 2068 "moonshot-provisioning-common.c"
+       }
 }
 
 
-void web_provisioning_parser_unref (gpointer instance) {
-       WebProvisioningParser* self;
-       self = instance;
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-       if (g_atomic_int_dec_and_test (&self->ref_count)) {
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               WEB_PROVISIONING_PARSER_GET_CLASS (self)->finalize (self);
-#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
-               g_type_free_instance ((GTypeInstance *) self);
-#line 2481 "moonshot-provisioning-common.c"
+static void _vala_web_provisioning_parser_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+       WebProvisioningParser * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (object, WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParser);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+       switch (property_id) {
+#line 2078 "moonshot-provisioning-common.c"
+               default:
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-provisioning-common.vala"
+               break;
+#line 2084 "moonshot-provisioning-common.c"
        }
 }
 
index de891cd..2311cab 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * SUCH DAMAGE.
 */
 
+
+
 namespace WebProvisioning
-{ 
-  IdCard card;
-  IdCard[] cards;
-
-  bool
-  check_stack (SList<string> stack, string[] reference)
-  {
-    if (stack.length () < reference.length)
-      return false;
-    
-    for (int i = 0; i<reference.length; i++)
-    {
-      if (stack.nth_data(i) != reference[i])
-        return false;
-    }
+{
+    bool check_stack(SList<string> stack, string[] reference) {
 
-    return true;
-  }
-
-  bool
-  always_confirm_handler (SList<string> stack)
-  {
-    string[] always_confirm_path = {"always-confirm", "rule", "selection-rules", "identity", "identities"};
-    
-    return check_stack (stack, always_confirm_path);
-  }
-  
-  bool
-  pattern_handler (SList<string> stack)
-  {
-    string[] pattern_path = {"pattern", "rule", "selection-rules", "identity", "identities"};
-    
-    return check_stack (stack, pattern_path);
-  }
-
-  bool
-  server_cert_handler (SList<string> stack)
-  {
-    string[] server_cert_path = {"server-cert", "trust-anchor", "identity", "identities"};
-    
-    return check_stack (stack, server_cert_path);
-  }
-
-  bool
-  subject_alt_handler (SList<string> stack)
-  {
-    string[] subject_alt_path = {"subject-alt", "trust-anchor", "identity", "identities"};
-    
-    return check_stack (stack, subject_alt_path);
-  }
-
-  bool
-  subject_handler (SList<string> stack)
-  {
-    string[] subject_path = {"subject", "trust-anchor", "identity", "identities"};
-    
-    return check_stack (stack, subject_path);
-  }
-  
-  bool
-  ca_cert_handler (SList<string> stack)
-  {
-    string[] ca_path = {"ca-cert", "trust-anchor", "identity", "identities"};
-    
-    return check_stack (stack, ca_path);
-  }
-
-  bool
-  realm_handler (SList<string> stack)
-  {
-    string[] realm_path = {"realm", "identity", "identities"};
-    
-    return check_stack (stack, realm_path);
-  }
-
-  bool
-  password_handler (SList<string> stack)
-  {
-    string[] password_path = {"password", "identity", "identities"};
-    
-    return check_stack (stack, password_path);
-  }
-
-  bool
-  user_handler (SList<string> stack)
-  {
-    string[] user_path = {"user", "identity", "identities"};
-    
-    return check_stack (stack, user_path);
-  }
-
-  bool
-  display_name_handler (SList<string> stack)
-  {
-    string[] display_name_path = {"display-name", "identity", "identities"};
-    
-    return check_stack (stack, display_name_path);
-  }
-  
-  public void
-  start_element_func (MarkupParseContext context,
-                      string element_name,
-                      string[] attribute_names,
-                      string[] attribute_values) throws MarkupError
-  {
-    if (element_name == "identity")
-    {
-      IdCard[] tmp_cards = cards;
-
-      cards = new IdCard[tmp_cards.length + 1];
-      for (int i=0; i<tmp_cards.length; i++)
-      {
-        cards[i] = tmp_cards[i];
-      }
-      card = new IdCard();
-      cards[tmp_cards.length] = card;
-    }
-    else if (element_name == "rule")
-    {
-      Rule[] tmp_rules = card.rules;
-      card.rules = new Rule[tmp_rules.length + 1];
-      for (int i=0; i<tmp_rules.length; i++)
-      {
-        card.rules[i] = tmp_rules[i];
-      }
-      
-      card.rules[tmp_rules.length] = Rule();
-    }
-  }
-
-  public void
-  text_element_func (MarkupParseContext context,
-                     string             text,
-                     size_t             text_len) throws MarkupError
-  {
-    unowned SList<string> stack = context.get_element_stack ();
-    
-    if (text_len < 1)
-      return;
-    
-    if (stack.nth_data(0) == "display-name" && display_name_handler (stack))
-    {
-      card.display_name = text;
-    }
-    else if (stack.nth_data(0) == "user" && user_handler (stack))
-    {
-      card.username = text;
+        if (stack.length() < reference.length)
+            return false;
+
+        for (int i = 0; i < reference.length; i++)
+        {
+            if (stack.nth_data(i) != reference[i])
+                return false;
+        }
+
+        return true;
     }
-    else if (stack.nth_data(0) == "password" && password_handler (stack))
+
+    bool always_confirm_handler(SList<string> stack)
     {
-      card.password = text;
+        string[] always_confirm_path = {"always-confirm", "rule", "selection-rules", "identity", "identities"};
+
+        return check_stack(stack, always_confirm_path);
     }
-    else if (stack.nth_data(0) == "realm" && realm_handler (stack))
+
+    bool
+    pattern_handler(SList<string> stack)
     {
-      card.issuer = text;
+        string[] pattern_path = {"pattern", "rule", "selection-rules", "identity", "identities"};
+
+        return check_stack(stack, pattern_path);
     }
-    else if (stack.nth_data(0) == "service")
+
+    bool server_cert_handler(SList<string> stack)
     {
-      string[] services = card.services;
-      card.services = new string[services.length + 1];
-      for (int i = 0; i<services.length; i++)
-      {
-        card.services[i] = services[i];
-      }
-      card.services[services.length] = text;
+        string[] server_cert_path = {"server-cert", "trust-anchor", "identity", "identities"};
+
+        return check_stack(stack, server_cert_path);
     }
-    /* Rules */
-    else if (stack.nth_data(0) == "pattern" && pattern_handler (stack))
+
+    bool subject_alt_handler(SList<string> stack)
     {
-      /* use temp array to workaround valac 0.10 bug accessing array property length */ 
-      var temp = card.rules;
-      card.rules[temp.length - 1].pattern = text;
+        string[] subject_alt_path = {"subject-alt", "trust-anchor", "identity", "identities"};
+
+        return check_stack(stack, subject_alt_path);
     }
-    else if (stack.nth_data(0) == "always-confirm" && always_confirm_handler (stack))
+
+    bool subject_handler(SList<string> stack)
     {
-      if (text == "true" || text == "false") {
-        /* use temp array to workaround valac 0.10 bug accessing array property length*/
-        var temp = card.rules;
-        card.rules[temp.length - 1].always_confirm = text;
-      }
+        string[] subject_path = {"subject", "trust-anchor", "identity", "identities"};
+
+        return check_stack(stack, subject_path);
     }
-    /*Trust anchor*/
-    else if (stack.nth_data(0) == "ca-cert" && ca_cert_handler (stack))
+
+    bool ca_cert_handler(SList<string> stack)
     {
-      card.trust_anchor.ca_cert = text;
+        string[] ca_path = {"ca-cert", "trust-anchor", "identity", "identities"};
+
+        return check_stack(stack, ca_path);
     }
-    else if (stack.nth_data(0) == "subject" && subject_handler (stack))
+
+    bool realm_handler(SList<string> stack)
     {
-      card.trust_anchor.subject = text;
+        string[] realm_path = {"realm", "identity", "identities"};
+
+        return check_stack(stack, realm_path);
     }
-    else if (stack.nth_data(0) == "subject-alt" && subject_alt_handler (stack))
+
+    bool password_handler(SList<string> stack)
     {
-      card.trust_anchor.subject_alt = text;
+        string[] password_path = {"password", "identity", "identities"};
+
+        return check_stack(stack, password_path);
     }
-    else if (stack.nth_data(0) == "server-cert" && server_cert_handler (stack))
+
+    bool user_handler(SList<string> stack)
     {
-      card.trust_anchor.server_cert = text;
+        string[] user_path = {"user", "identity", "identities"};
+
+        return check_stack(stack, user_path);
     }
-  }
-
-  class Parser
-  {
-    private MarkupParser parser;
-    private string       text;
-    private string       path;
-    public Parser (string path)
+
+    bool display_name_handler(SList<string> stack)
     {
-      text = "";
-      this.path = path;
-
-      var file = File.new_for_path (path);
-    
-      try
-      {
-        var dis = new DataInputStream (file.read ());
-        string line;
-        while ((line = dis.read_line (null)) != null)
-          text += line;
-      }
-      catch (GLib.Error e)
-      {
-        error ("Could not retreive file size");
-      }
-      
-      parser = {start_element_func, null, text_element_func, null, null};
+        string[] display_name_path = {"display-name", "identity", "identities"};
+
+        return check_stack(stack, display_name_path);
     }
-    
-    public void
-    parse ()
+
+    public class Parser : Object
     {
-      var ctx = new MarkupParseContext(parser, 0, null, null);
-      
-      try
-      {
-        ctx.parse (text, text.length);
-      }
-      catch (GLib.Error e)
-      {
-        error ("Could not parse %s, invalid content", path);
-      } 
+        private static MoonshotLogger logger = new MoonshotLogger("WebProvisioning");
+
+        private void start_element_func(MarkupParseContext context,
+                                        string element_name,
+                                        string[] attribute_names,
+                                        string[] attribute_values) throws MarkupError
+        {
+            if (element_name == "identity")
+            {
+                card = new IdCard();
+                _cards += card;
+
+                ta_ca_cert = "";
+                ta_server_cert = "";
+                ta_subject = "";
+                ta_subject_alt = "";
+            }
+            else if (element_name == "rule")
+            {
+                card.add_rule(Rule());
+            }
+        }
+
+        private void end_element_func(MarkupParseContext context,
+                                      string element_name) throws MarkupError
+        {
+            if (element_name == "identity")
+            {
+                if (ta_ca_cert != "" || ta_server_cert != "") {
+                    var ta = new TrustAnchor(ta_ca_cert,
+                                             ta_server_cert,
+                                             ta_subject,
+                                             ta_subject_alt);
+                    // Set the datetime_added in moonshot-server.vala, since it doesn't get sent via IPC
+                    card.set_trust_anchor_from_store(ta);
+                }
+            }
+        }
+
+        private void
+        text_element_func(MarkupParseContext context,
+                          string             text,
+                          size_t             text_len) throws MarkupError {
+            unowned SList<string> stack = context.get_element_stack();
+
+            if (text_len < 1)
+                return;
+
+            if (stack.nth_data(0) == "display-name" && display_name_handler(stack))
+            {
+                card.display_name = text;
+            }
+            else if (stack.nth_data(0) == "user" && user_handler(stack))
+            {
+                card.username = text;
+            }
+            else if (stack.nth_data(0) == "password" && password_handler(stack))
+            {
+                card.password = text;
+            }
+            else if (stack.nth_data(0) == "realm" && realm_handler(stack))
+            {
+                card.issuer = text;
+            }
+            else if (stack.nth_data(0) == "service")
+            {
+                card.services.add(text);
+            }
+
+            /* Rules */
+            else if (stack.nth_data(0) == "pattern" && pattern_handler(stack))
+            {
+                /* use temp array to workaround valac 0.10 bug accessing array property length */
+                var temp = card.rules;
+                card.rules[temp.length - 1].pattern = text;
+            }
+            else if (stack.nth_data(0) == "always-confirm" && always_confirm_handler(stack))
+            {
+                if (text == "true" || text == "false") {
+                    /* use temp array to workaround valac 0.10 bug accessing array property length*/
+                    var temp = card.rules;
+                    card.rules[temp.length - 1].always_confirm = text;
+                }
+            }
+            else if (stack.nth_data(0) == "ca-cert" && ca_cert_handler(stack))
+            {
+                ta_ca_cert = text ?? "";
+            }
+            else if (stack.nth_data(0) == "server-cert" && server_cert_handler(stack))
+            {
+                ta_server_cert = text ?? "";
+            }
+            else if (stack.nth_data(0) == "subject" && subject_handler(stack))
+            {
+                ta_subject = text;
+            }
+            else if (stack.nth_data(0) == "subject-alt" && subject_alt_handler(stack))
+            {
+                ta_subject_alt = text;
+            }
+        }
+
+        private const MarkupParser parser = {
+            start_element_func, end_element_func, text_element_func, null, null
+        };
+
+        private MarkupParseContext ctx;
+
+        private string       text;
+        private string       path;
+
+        private string ta_ca_cert;
+        private string ta_server_cert;
+        private string ta_subject;
+        private string ta_subject_alt;
+
+        private IdCard card;
+        private IdCard[] _cards = {};
+
+        public IdCard[] cards {
+            get {return _cards;}
+            private set {_cards = value ?? new IdCard[0] ;}
+        }
+
+        public Parser(string path) {
+
+            ctx = new MarkupParseContext(parser, 0, this, null);
+
+            text = "";
+            this.path = path;
+
+            var file = File.new_for_path(path);
+
+            try
+            {
+                var dis = new DataInputStream(file.read());
+                string line;
+                while ((line = dis.read_line(null)) != null) {
+                    text += line;
+
+                    // Preserve newlines.
+                    //
+                    // This may add an extra newline at EOF. Maybe use
+                    // dis.read_upto("\n", ...) followed by dis.read_byte() instead?
+                    text += "\n";
+                }
+            }
+            catch(GLib.Error e)
+            {
+                error("Could not retreive file size");
+            }
+        }
+
+        public void parse() {
+            try
+            {
+                ctx.parse(text, text.length);
+            }
+            catch(GLib.Error e)
+            {
+                error("Could not parse %s, invalid content", path);
+            }
+        }
     }
-  }
 }
diff --git a/src/moonshot-server-linux.c b/src/moonshot-server-linux.c
new file mode 100644 (file)
index 0000000..edda2ca
--- /dev/null
@@ -0,0 +1,4164 @@
+/* moonshot-server-linux.c generated by valac 0.34.9, the Vala compiler
+ * generated from moonshot-server-linux.vala, do not modify */
+
+/*
+ * Copyright (c) 2011-2016, JANET(UK)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of JANET(UK) nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <stdio.h>
+#include <gee.h>
+
+
+#define TYPE_MOONSHOT_SERVER (moonshot_server_get_type ())
+#define MOONSHOT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_SERVER, MoonshotServer))
+#define MOONSHOT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_SERVER, MoonshotServerClass))
+#define IS_MOONSHOT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_SERVER))
+#define IS_MOONSHOT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_SERVER))
+#define MOONSHOT_SERVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_SERVER, MoonshotServerClass))
+
+typedef struct _MoonshotServer MoonshotServer;
+typedef struct _MoonshotServerClass MoonshotServerClass;
+typedef struct _MoonshotServerPrivate MoonshotServerPrivate;
+
+#define TYPE_IDENTITY_MANAGER_APP (identity_manager_app_get_type ())
+#define IDENTITY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_APP, IdentityManagerApp))
+#define IDENTITY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_APP, IdentityManagerAppClass))
+#define IS_IDENTITY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_APP))
+#define IS_IDENTITY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_APP))
+#define IDENTITY_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_APP, IdentityManagerAppClass))
+
+typedef struct _IdentityManagerApp IdentityManagerApp;
+typedef struct _IdentityManagerAppClass IdentityManagerAppClass;
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _identity_manager_app_unref0(var) ((var == NULL) ? NULL : (var = (identity_manager_app_unref (var), NULL)))
+typedef struct _IdentityManagerAppPrivate IdentityManagerAppPrivate;
+
+#define TYPE_IDENTITY_MANAGER_MODEL (identity_manager_model_get_type ())
+#define IDENTITY_MANAGER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModel))
+#define IDENTITY_MANAGER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModelClass))
+#define IS_IDENTITY_MANAGER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_MODEL))
+#define IS_IDENTITY_MANAGER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_MODEL))
+#define IDENTITY_MANAGER_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModelClass))
+
+typedef struct _IdentityManagerModel IdentityManagerModel;
+typedef struct _IdentityManagerModelClass IdentityManagerModelClass;
+
+#define TYPE_ID_CARD (id_card_get_type ())
+#define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
+#define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
+#define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
+#define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
+#define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
+
+typedef struct _IdCard IdCard;
+typedef struct _IdCardClass IdCardClass;
+
+#define TYPE_IDENTITY_MANAGER_VIEW (identity_manager_view_get_type ())
+#define IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerView))
+#define IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
+#define IS_IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_VIEW))
+#define IS_IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_VIEW))
+#define IDENTITY_MANAGER_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
+
+typedef struct _IdentityManagerView IdentityManagerView;
+typedef struct _IdentityManagerViewClass IdentityManagerViewClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _Block7Data Block7Data;
+
+#define TYPE_IDENTITY_REQUEST (identity_request_get_type ())
+#define IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_REQUEST, IdentityRequest))
+#define IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
+#define IS_IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_REQUEST))
+#define IS_IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_REQUEST))
+#define IDENTITY_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
+
+typedef struct _IdentityRequest IdentityRequest;
+typedef struct _IdentityRequestClass IdentityRequestClass;
+typedef struct _IdentityRequestPrivate IdentityRequestPrivate;
+
+#define TYPE_TRUST_ANCHOR (trust_anchor_get_type ())
+#define TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR, TrustAnchor))
+#define TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+#define IS_TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRUST_ANCHOR))
+#define IS_TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRUST_ANCHOR))
+#define TRUST_ANCHOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+
+typedef struct _TrustAnchor TrustAnchor;
+typedef struct _TrustAnchorClass TrustAnchorClass;
+typedef struct _MoonshotServerGetIdentityData MoonshotServerGetIdentityData;
+typedef struct _Block8Data Block8Data;
+typedef struct _MoonshotServerGetDefaultIdentityData MoonshotServerGetDefaultIdentityData;
+
+#define TYPE_RULE (rule_get_type ())
+typedef struct _Rule Rule;
+
+#define WEB_PROVISIONING_TYPE_PARSER (web_provisioning_parser_get_type ())
+#define WEB_PROVISIONING_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParser))
+#define WEB_PROVISIONING_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserClass))
+#define WEB_PROVISIONING_IS_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WEB_PROVISIONING_TYPE_PARSER))
+#define WEB_PROVISIONING_IS_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WEB_PROVISIONING_TYPE_PARSER))
+#define WEB_PROVISIONING_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserClass))
+
+typedef struct _WebProvisioningParser WebProvisioningParser;
+typedef struct _WebProvisioningParserClass WebProvisioningParserClass;
+typedef struct _Block9Data Block9Data;
+
+#define TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST (trust_anchor_confirmation_request_get_type ())
+#define TRUST_ANCHOR_CONFIRMATION_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST, TrustAnchorConfirmationRequest))
+#define TRUST_ANCHOR_CONFIRMATION_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST, TrustAnchorConfirmationRequestClass))
+#define IS_TRUST_ANCHOR_CONFIRMATION_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST))
+#define IS_TRUST_ANCHOR_CONFIRMATION_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST))
+#define TRUST_ANCHOR_CONFIRMATION_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST, TrustAnchorConfirmationRequestClass))
+
+typedef struct _TrustAnchorConfirmationRequest TrustAnchorConfirmationRequest;
+typedef struct _TrustAnchorConfirmationRequestClass TrustAnchorConfirmationRequestClass;
+typedef struct _TrustAnchorConfirmationRequestPrivate TrustAnchorConfirmationRequestPrivate;
+typedef struct _MoonshotServerConfirmCaCertificateData MoonshotServerConfirmCaCertificateData;
+
+struct _MoonshotServer {
+       GObject parent_instance;
+       MoonshotServerPrivate * priv;
+};
+
+struct _MoonshotServerClass {
+       GObjectClass parent_class;
+};
+
+struct _MoonshotServerPrivate {
+       gchar* app_name;
+       IdentityManagerApp* parent_app;
+};
+
+struct _IdentityManagerApp {
+       GTypeInstance parent_instance;
+       volatile int ref_count;
+       IdentityManagerAppPrivate * priv;
+       IdentityManagerModel* model;
+       IdCard* default_id_card;
+       gboolean explicitly_launched;
+       IdentityManagerView* view;
+};
+
+struct _IdentityManagerAppClass {
+       GTypeClass parent_class;
+       void (*finalize) (IdentityManagerApp *self);
+};
+
+struct _Block7Data {
+       int _ref_count_;
+       MoonshotServer* self;
+       gpointer _async_data_;
+};
+
+typedef void (*ReturnIdentityCallback) (IdentityRequest* request, void* user_data);
+struct _IdentityRequest {
+       GObject parent_instance;
+       IdentityRequestPrivate * priv;
+       IdCard* id_card;
+       gboolean complete;
+       gboolean select_default;
+       gchar* nai;
+       gchar* password;
+       gchar* service;
+       GSList* candidates;
+};
+
+struct _IdentityRequestClass {
+       GObjectClass parent_class;
+};
+
+struct _MoonshotServerGetIdentityData {
+       int _state_;
+       GObject* _source_object_;
+       GAsyncResult* _res_;
+       GSimpleAsyncResult* _async_result;
+       MoonshotServer* self;
+       gchar* nai;
+       gchar* password;
+       gchar* service;
+       gchar* nai_out;
+       gchar* password_out;
+       gchar* server_certificate_hash;
+       gchar* ca_certificate;
+       gchar* subject_name_constraint;
+       gchar* subject_alt_name_constraint;
+       gboolean result;
+       Block7Data* _data7_;
+       MoonshotLogger* _tmp0_;
+       const gchar* _tmp1_;
+       const gchar* _tmp2_;
+       const gchar* _tmp3_;
+       const gchar* _tmp4_;
+       gchar* _tmp5_;
+       gchar* _tmp6_;
+       IdentityRequest* request;
+       IdentityManagerApp* _tmp7_;
+       const gchar* _tmp8_;
+       const gchar* _tmp9_;
+       const gchar* _tmp10_;
+       IdentityRequest* _tmp11_;
+       MoonshotLogger* _tmp12_;
+       IdentityRequest* _tmp13_;
+       IdentityRequest* _tmp14_;
+       MoonshotLogger* _tmp15_;
+       MoonshotLogger* _tmp16_;
+       gchar* _tmp17_;
+       gchar* _tmp18_;
+       gchar* _tmp19_;
+       gchar* _tmp20_;
+       gchar* _tmp21_;
+       gchar* _tmp22_;
+       IdCard* id_card;
+       IdentityRequest* _tmp23_;
+       IdCard* _tmp24_;
+       IdCard* _tmp25_;
+       gboolean _tmp26_;
+       IdCard* _tmp27_;
+       IdCard* _tmp28_;
+       gboolean _tmp29_;
+       IdCard* _tmp30_;
+       const gchar* _tmp31_;
+       const gchar* _tmp32_;
+       gchar* _tmp33_;
+       gboolean _tmp34_;
+       IdentityRequest* _tmp35_;
+       const gchar* _tmp36_;
+       IdentityRequest* _tmp37_;
+       const gchar* _tmp38_;
+       IdentityRequest* _tmp39_;
+       const gchar* _tmp40_;
+       gchar* _tmp41_;
+       IdCard* _tmp42_;
+       const gchar* _tmp43_;
+       const gchar* _tmp44_;
+       gchar* _tmp45_;
+       IdCard* _tmp46_;
+       TrustAnchor* _tmp47_;
+       TrustAnchor* _tmp48_;
+       const gchar* _tmp49_;
+       const gchar* _tmp50_;
+       gchar* _tmp51_;
+       IdCard* _tmp52_;
+       TrustAnchor* _tmp53_;
+       TrustAnchor* _tmp54_;
+       const gchar* _tmp55_;
+       const gchar* _tmp56_;
+       gchar* _tmp57_;
+       IdCard* _tmp58_;
+       TrustAnchor* _tmp59_;
+       TrustAnchor* _tmp60_;
+       const gchar* _tmp61_;
+       const gchar* _tmp62_;
+       gchar* _tmp63_;
+       IdCard* _tmp64_;
+       TrustAnchor* _tmp65_;
+       TrustAnchor* _tmp66_;
+       const gchar* _tmp67_;
+       const gchar* _tmp68_;
+       gchar* _tmp69_;
+       const gchar* _tmp70_;
+       gchar* _tmp71_;
+       const gchar* _tmp72_;
+       gchar* _tmp73_;
+       const gchar* _tmp74_;
+       gchar* _tmp75_;
+       const gchar* _tmp76_;
+       gchar* _tmp77_;
+       const gchar* _tmp78_;
+       gchar* _tmp79_;
+       const gchar* _tmp80_;
+       gchar* _tmp81_;
+       MoonshotLogger* _tmp82_;
+       const gchar* _tmp83_;
+       const gchar* _tmp84_;
+       gchar* _tmp85_;
+       gchar* _tmp86_;
+       MoonshotLogger* _tmp87_;
+};
+
+struct _Block8Data {
+       int _ref_count_;
+       MoonshotServer* self;
+       gpointer _async_data_;
+};
+
+struct _MoonshotServerGetDefaultIdentityData {
+       int _state_;
+       GObject* _source_object_;
+       GAsyncResult* _res_;
+       GSimpleAsyncResult* _async_result;
+       MoonshotServer* self;
+       gchar* nai_out;
+       gchar* password_out;
+       gchar* server_certificate_hash;
+       gchar* ca_certificate;
+       gchar* subject_name_constraint;
+       gchar* subject_alt_name_constraint;
+       gboolean result;
+       Block8Data* _data8_;
+       MoonshotLogger* _tmp0_;
+       IdentityRequest* request;
+       IdentityManagerApp* _tmp1_;
+       IdentityRequest* _tmp2_;
+       IdentityRequest* _tmp3_;
+       IdentityRequest* _tmp4_;
+       gchar* _tmp5_;
+       gchar* _tmp6_;
+       gchar* _tmp7_;
+       gchar* _tmp8_;
+       gchar* _tmp9_;
+       gchar* _tmp10_;
+       IdentityRequest* _tmp11_;
+       IdCard* _tmp12_;
+       IdentityRequest* _tmp13_;
+       IdCard* _tmp14_;
+       const gchar* _tmp15_;
+       const gchar* _tmp16_;
+       gchar* _tmp17_;
+       IdentityRequest* _tmp18_;
+       IdCard* _tmp19_;
+       const gchar* _tmp20_;
+       const gchar* _tmp21_;
+       gchar* _tmp22_;
+       IdentityRequest* _tmp23_;
+       IdCard* _tmp24_;
+       TrustAnchor* _tmp25_;
+       TrustAnchor* _tmp26_;
+       const gchar* _tmp27_;
+       const gchar* _tmp28_;
+       gchar* _tmp29_;
+       IdentityRequest* _tmp30_;
+       IdCard* _tmp31_;
+       TrustAnchor* _tmp32_;
+       TrustAnchor* _tmp33_;
+       const gchar* _tmp34_;
+       const gchar* _tmp35_;
+       gchar* _tmp36_;
+       IdentityRequest* _tmp37_;
+       IdCard* _tmp38_;
+       TrustAnchor* _tmp39_;
+       TrustAnchor* _tmp40_;
+       const gchar* _tmp41_;
+       const gchar* _tmp42_;
+       gchar* _tmp43_;
+       IdentityRequest* _tmp44_;
+       IdCard* _tmp45_;
+       TrustAnchor* _tmp46_;
+       TrustAnchor* _tmp47_;
+       const gchar* _tmp48_;
+       const gchar* _tmp49_;
+       gchar* _tmp50_;
+       const gchar* _tmp51_;
+       gchar* _tmp52_;
+       const gchar* _tmp53_;
+       gchar* _tmp54_;
+       const gchar* _tmp55_;
+       gchar* _tmp56_;
+       const gchar* _tmp57_;
+       gchar* _tmp58_;
+       const gchar* _tmp59_;
+       gchar* _tmp60_;
+       const gchar* _tmp61_;
+       gchar* _tmp62_;
+       MoonshotLogger* _tmp63_;
+};
+
+struct _Rule {
+       gchar* pattern;
+       gchar* always_confirm;
+};
+
+struct _Block9Data {
+       int _ref_count_;
+       MoonshotServer* self;
+       gpointer _async_data_;
+};
+
+typedef void (*TrustAnchorConfirmationCallback) (TrustAnchorConfirmationRequest* request, void* user_data);
+struct _TrustAnchorConfirmationRequest {
+       GObject parent_instance;
+       TrustAnchorConfirmationRequestPrivate * priv;
+       gboolean confirmed;
+};
+
+struct _TrustAnchorConfirmationRequestClass {
+       GObjectClass parent_class;
+};
+
+struct _MoonshotServerConfirmCaCertificateData {
+       int _state_;
+       GObject* _source_object_;
+       GAsyncResult* _res_;
+       GSimpleAsyncResult* _async_result;
+       MoonshotServer* self;
+       gchar* nai;
+       gchar* realm;
+       gchar* ca_hash;
+       gint confirmed;
+       gboolean result;
+       Block9Data* _data9_;
+       MoonshotLogger* _tmp0_;
+       const gchar* _tmp1_;
+       const gchar* _tmp2_;
+       const gchar* _tmp3_;
+       const gchar* _tmp4_;
+       const gchar* _tmp5_;
+       const gchar* _tmp6_;
+       gchar* _tmp7_;
+       gchar* _tmp8_;
+       TrustAnchorConfirmationRequest* request;
+       IdentityManagerApp* _tmp9_;
+       const gchar* _tmp10_;
+       const gchar* _tmp11_;
+       const gchar* _tmp12_;
+       TrustAnchorConfirmationRequest* _tmp13_;
+       TrustAnchorConfirmationRequest* _tmp14_;
+       TrustAnchorConfirmationRequest* _tmp15_;
+       gint _tmp16_;
+       TrustAnchorConfirmationRequest* _tmp17_;
+       gboolean _tmp18_;
+       MoonshotLogger* _tmp19_;
+       gchar* _tmp20_;
+       gchar* _tmp21_;
+       gchar* _tmp22_;
+       gchar* _tmp23_;
+};
+
+
+static gpointer moonshot_server_parent_class = NULL;
+static MoonshotLogger* moonshot_server_logger;
+static MoonshotLogger* moonshot_server_logger = NULL;
+
+GType moonshot_server_get_type (void) G_GNUC_CONST;
+guint moonshot_server_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
+gpointer identity_manager_app_ref (gpointer instance);
+void identity_manager_app_unref (gpointer instance);
+GParamSpec* param_spec_identity_manager_app (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_identity_manager_app (GValue* value, gpointer v_object);
+void value_take_identity_manager_app (GValue* value, gpointer v_object);
+gpointer value_get_identity_manager_app (const GValue* value);
+GType identity_manager_app_get_type (void) G_GNUC_CONST;
+#define MOONSHOT_SERVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MOONSHOT_SERVER, MoonshotServerPrivate))
+enum  {
+       MOONSHOT_SERVER_DUMMY_PROPERTY
+};
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* get_logger (const gchar* name);
+MoonshotServer* moonshot_server_new (IdentityManagerApp* app);
+MoonshotServer* moonshot_server_construct (GType object_type, IdentityManagerApp* app);
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
+gboolean moonshot_server_show_ui (MoonshotServer* self);
+GType identity_manager_model_get_type (void) G_GNUC_CONST;
+GType id_card_get_type (void) G_GNUC_CONST;
+GType identity_manager_view_get_type (void) G_GNUC_CONST;
+void moonshot_logger_warn (MoonshotLogger* self, const gchar* message, GError* e);
+void identity_manager_app_show (IdentityManagerApp* self);
+static void moonshot_server_get_identity_data_free (gpointer _data);
+void moonshot_server_get_identity (MoonshotServer* self, const gchar* nai, const gchar* password, const gchar* service, GAsyncReadyCallback _callback_, gpointer _user_data_);
+gboolean moonshot_server_get_identity_finish (MoonshotServer* self, GAsyncResult* _res_, gchar** nai_out, gchar** password_out, gchar** server_certificate_hash, gchar** ca_certificate, gchar** subject_name_constraint, gchar** subject_alt_name_constraint);
+static gboolean moonshot_server_get_identity_co (MoonshotServerGetIdentityData* _data_);
+static Block7Data* block7_data_ref (Block7Data* _data7_);
+static void block7_data_unref (void * _userdata_);
+GType identity_request_get_type (void) G_GNUC_CONST;
+IdentityRequest* identity_request_new (IdentityManagerApp* app, const gchar* nai, const gchar* password, const gchar* service);
+IdentityRequest* identity_request_construct (GType object_type, IdentityManagerApp* app, const gchar* nai, const gchar* password, const gchar* service);
+void identity_request_set_callback (IdentityRequest* self, ReturnIdentityCallback cb, void* cb_target, GDestroyNotify cb_target_destroy_notify);
+static void __lambda19_ (Block7Data* _data7_, IdentityRequest* IdentityRequest);
+static void ___lambda19__return_identity_callback (IdentityRequest* request, gpointer self);
+gboolean identity_request_execute (IdentityRequest* self);
+gboolean id_card_is_no_identity (IdCard* self);
+const gchar* id_card_get_nai (IdCard* self);
+const gchar* id_card_get_password (IdCard* self);
+GType trust_anchor_get_type (void) G_GNUC_CONST;
+TrustAnchor* id_card_get_trust_anchor (IdCard* self);
+const gchar* trust_anchor_get_server_cert (TrustAnchor* self);
+const gchar* trust_anchor_get_ca_cert (TrustAnchor* self);
+const gchar* trust_anchor_get_subject (TrustAnchor* self);
+const gchar* trust_anchor_get_subject_alt (TrustAnchor* self);
+static void moonshot_server_get_default_identity_data_free (gpointer _data);
+void moonshot_server_get_default_identity (MoonshotServer* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
+gboolean moonshot_server_get_default_identity_finish (MoonshotServer* self, GAsyncResult* _res_, gchar** nai_out, gchar** password_out, gchar** server_certificate_hash, gchar** ca_certificate, gchar** subject_name_constraint, gchar** subject_alt_name_constraint);
+static gboolean moonshot_server_get_default_identity_co (MoonshotServerGetDefaultIdentityData* _data_);
+static Block8Data* block8_data_ref (Block8Data* _data8_);
+static void block8_data_unref (void * _userdata_);
+IdentityRequest* identity_request_new_default (IdentityManagerApp* app);
+IdentityRequest* identity_request_construct_default (GType object_type, IdentityManagerApp* app);
+static void __lambda20_ (Block8Data* _data8_, IdentityRequest* IdentityRequest);
+static void ___lambda20__return_identity_callback (IdentityRequest* request, gpointer self);
+gboolean moonshot_server_install_id_card (MoonshotServer* self, const gchar* display_name, const gchar* user_name, const gchar* password, const gchar* realm, gchar** rules_patterns, int rules_patterns_length1, gchar** rules_always_confirm, int rules_always_confirm_length1, gchar** services, int services_length1, const gchar* ca_cert, const gchar* subject, const gchar* subject_alt, const gchar* server_cert, gint force_flat_file_store);
+IdCard* id_card_new (void);
+IdCard* id_card_construct (GType object_type);
+void id_card_set_display_name (IdCard* self, const gchar* value);
+void id_card_set_username (IdCard* self, const gchar* value);
+void id_card_set_password (IdCard* self, const gchar* value);
+void id_card_set_store_password (IdCard* self, gboolean value);
+void id_card_set_issuer (IdCard* self, const gchar* value);
+void id_card_update_services (IdCard* self, gchar** services, int services_length1);
+TrustAnchor* trust_anchor_new (const gchar* ca_cert, const gchar* server_cert, const gchar* subject, const gchar* subject_alt);
+TrustAnchor* trust_anchor_construct (GType object_type, const gchar* ca_cert, const gchar* server_cert, const gchar* subject, const gchar* subject_alt);
+gboolean trust_anchor_is_empty (TrustAnchor* self);
+gchar* trust_anchor_format_datetime_now (void);
+void trust_anchor_set_datetime_added (TrustAnchor* self, const gchar* datetime);
+const gchar* id_card_get_display_name (IdCard* self);
+const gchar* trust_anchor_get_datetime_added (TrustAnchor* self);
+void id_card_set_trust_anchor_from_store (IdCard* self, TrustAnchor* ta);
+gchar* id_card_get_services_string (IdCard* self, const gchar* sep);
+GType rule_get_type (void) G_GNUC_CONST;
+Rule* rule_dup (const Rule* self);
+void rule_free (Rule* self);
+void rule_copy (const Rule* self, Rule* dest);
+void rule_destroy (Rule* self);
+void id_card_set_rules (IdCard* self, Rule* value, int value_length1);
+static void _vala_Rule_array_free (Rule* array, gint array_length);
+gboolean identity_manager_app_add_identity (IdentityManagerApp* self, IdCard* id, gboolean force_flat_file_store, GeeArrayList** old_duplicates);
+gint moonshot_server_install_from_file (MoonshotServer* self, const gchar* file_name);
+GType web_provisioning_parser_get_type (void) G_GNUC_CONST;
+WebProvisioningParser* web_provisioning_parser_new (const gchar* path);
+WebProvisioningParser* web_provisioning_parser_construct (GType object_type, const gchar* path);
+void web_provisioning_parser_parse (WebProvisioningParser* self);
+IdCard** web_provisioning_parser_get_cards (WebProvisioningParser* self, int* result_length1);
+Rule* id_card_get_rules (IdCard* self, int* result_length1);
+GeeArrayList* id_card_get_services (IdCard* self);
+const gchar* id_card_get_username (IdCard* self);
+const gchar* id_card_get_issuer (IdCard* self);
+static void moonshot_server_confirm_ca_certificate_data_free (gpointer _data);
+void moonshot_server_confirm_ca_certificate (MoonshotServer* self, const gchar* nai, const gchar* realm, const gchar* ca_hash, GAsyncReadyCallback _callback_, gpointer _user_data_);
+gboolean moonshot_server_confirm_ca_certificate_finish (MoonshotServer* self, GAsyncResult* _res_, gint* confirmed);
+static gboolean moonshot_server_confirm_ca_certificate_co (MoonshotServerConfirmCaCertificateData* _data_);
+static Block9Data* block9_data_ref (Block9Data* _data9_);
+static void block9_data_unref (void * _userdata_);
+GType trust_anchor_confirmation_request_get_type (void) G_GNUC_CONST;
+TrustAnchorConfirmationRequest* trust_anchor_confirmation_request_new (IdentityManagerApp* parent_app, const gchar* userid, const gchar* realm, const gchar* fingerprint);
+TrustAnchorConfirmationRequest* trust_anchor_confirmation_request_construct (GType object_type, IdentityManagerApp* parent_app, const gchar* userid, const gchar* realm, const gchar* fingerprint);
+void trust_anchor_confirmation_request_set_callback (TrustAnchorConfirmationRequest* self, TrustAnchorConfirmationCallback cb, void* cb_target, GDestroyNotify cb_target_destroy_notify);
+static void __lambda22_ (Block9Data* _data9_, TrustAnchorConfirmationRequest* TrustAnchorConfirmationRequest);
+static void ___lambda22__trust_anchor_confirmation_callback (TrustAnchorConfirmationRequest* request, gpointer self);
+gboolean trust_anchor_confirmation_request_execute (TrustAnchorConfirmationRequest* self);
+static void moonshot_server_finalize (GObject* obj);
+static void _dbus_moonshot_server_show_ui (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
+static void _dbus_moonshot_server_get_identity (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
+static void _dbus_moonshot_server_get_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer _user_data_);
+static void _dbus_moonshot_server_get_default_identity (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
+static void _dbus_moonshot_server_get_default_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer _user_data_);
+static void _dbus_moonshot_server_install_id_card (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
+static void _dbus_moonshot_server_install_from_file (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
+static void _dbus_moonshot_server_confirm_ca_certificate (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
+static void _dbus_moonshot_server_confirm_ca_certificate_ready (GObject * source_object, GAsyncResult * _res_, gpointer _user_data_);
+static void moonshot_server_dbus_interface_method_call (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* method_name, GVariant* parameters, GDBusMethodInvocation* invocation, gpointer user_data);
+static GVariant* moonshot_server_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data);
+static gboolean moonshot_server_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data);
+static void _moonshot_server_unregister_object (gpointer user_data);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_show_ui_result = {-1, "result", "b"};
+static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_show_ui_in[] = {NULL};
+static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_show_ui_out[] = {&_moonshot_server_dbus_arg_info_show_ui_result, NULL};
+static const GDBusMethodInfo _moonshot_server_dbus_method_info_show_ui = {-1, "ShowUi", (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_show_ui_in), (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_show_ui_out)};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_nai = {-1, "nai", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_password = {-1, "password", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_service = {-1, "service", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_nai_out = {-1, "nai_out", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_password_out = {-1, "password_out", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_server_certificate_hash = {-1, "server_certificate_hash", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_ca_certificate = {-1, "ca_certificate", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_subject_name_constraint = {-1, "subject_name_constraint", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_subject_alt_name_constraint = {-1, "subject_alt_name_constraint", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_result = {-1, "result", "b"};
+static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_get_identity_in[] = {&_moonshot_server_dbus_arg_info_get_identity_nai, &_moonshot_server_dbus_arg_info_get_identity_password, &_moonshot_server_dbus_arg_info_get_identity_service, NULL};
+static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_get_identity_out[] = {&_moonshot_server_dbus_arg_info_get_identity_nai_out, &_moonshot_server_dbus_arg_info_get_identity_password_out, &_moonshot_server_dbus_arg_info_get_identity_server_certificate_hash, &_moonshot_server_dbus_arg_info_get_identity_ca_certificate, &_moonshot_server_dbus_arg_info_get_identity_subject_name_constraint, &_moonshot_server_dbus_arg_info_get_identity_subject_alt_name_constraint, &_moonshot_server_dbus_arg_info_get_identity_result, NULL};
+static const GDBusMethodInfo _moonshot_server_dbus_method_info_get_identity = {-1, "GetIdentity", (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_get_identity_in), (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_get_identity_out)};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_nai_out = {-1, "nai_out", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_password_out = {-1, "password_out", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_server_certificate_hash = {-1, "server_certificate_hash", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_ca_certificate = {-1, "ca_certificate", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_subject_name_constraint = {-1, "subject_name_constraint", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_subject_alt_name_constraint = {-1, "subject_alt_name_constraint", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_result = {-1, "result", "b"};
+static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_get_default_identity_in[] = {NULL};
+static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_get_default_identity_out[] = {&_moonshot_server_dbus_arg_info_get_default_identity_nai_out, &_moonshot_server_dbus_arg_info_get_default_identity_password_out, &_moonshot_server_dbus_arg_info_get_default_identity_server_certificate_hash, &_moonshot_server_dbus_arg_info_get_default_identity_ca_certificate, &_moonshot_server_dbus_arg_info_get_default_identity_subject_name_constraint, &_moonshot_server_dbus_arg_info_get_default_identity_subject_alt_name_constraint, &_moonshot_server_dbus_arg_info_get_default_identity_result, NULL};
+static const GDBusMethodInfo _moonshot_server_dbus_method_info_get_default_identity = {-1, "GetDefaultIdentity", (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_get_default_identity_in), (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_get_default_identity_out)};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_display_name = {-1, "display_name", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_user_name = {-1, "user_name", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_password = {-1, "password", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_realm = {-1, "realm", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_rules_patterns = {-1, "rules_patterns", "as"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_rules_always_confirm = {-1, "rules_always_confirm", "as"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_services = {-1, "services", "as"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_ca_cert = {-1, "ca_cert", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_subject = {-1, "subject", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_subject_alt = {-1, "subject_alt", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_server_cert = {-1, "server_cert", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_force_flat_file_store = {-1, "force_flat_file_store", "i"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_result = {-1, "result", "b"};
+static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_install_id_card_in[] = {&_moonshot_server_dbus_arg_info_install_id_card_display_name, &_moonshot_server_dbus_arg_info_install_id_card_user_name, &_moonshot_server_dbus_arg_info_install_id_card_password, &_moonshot_server_dbus_arg_info_install_id_card_realm, &_moonshot_server_dbus_arg_info_install_id_card_rules_patterns, &_moonshot_server_dbus_arg_info_install_id_card_rules_always_confirm, &_moonshot_server_dbus_arg_info_install_id_card_services, &_moonshot_server_dbus_arg_info_install_id_card_ca_cert, &_moonshot_server_dbus_arg_info_install_id_card_subject, &_moonshot_server_dbus_arg_info_install_id_card_subject_alt, &_moonshot_server_dbus_arg_info_install_id_card_server_cert, &_moonshot_server_dbus_arg_info_install_id_card_force_flat_file_store, NULL};
+static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_install_id_card_out[] = {&_moonshot_server_dbus_arg_info_install_id_card_result, NULL};
+static const GDBusMethodInfo _moonshot_server_dbus_method_info_install_id_card = {-1, "InstallIdCard", (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_install_id_card_in), (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_install_id_card_out)};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_from_file_file_name = {-1, "file_name", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_from_file_result = {-1, "result", "i"};
+static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_install_from_file_in[] = {&_moonshot_server_dbus_arg_info_install_from_file_file_name, NULL};
+static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_install_from_file_out[] = {&_moonshot_server_dbus_arg_info_install_from_file_result, NULL};
+static const GDBusMethodInfo _moonshot_server_dbus_method_info_install_from_file = {-1, "InstallFromFile", (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_install_from_file_in), (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_install_from_file_out)};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_confirm_ca_certificate_nai = {-1, "nai", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_confirm_ca_certificate_realm = {-1, "realm", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_confirm_ca_certificate_ca_hash = {-1, "ca_hash", "s"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_confirm_ca_certificate_confirmed = {-1, "confirmed", "i"};
+static const GDBusArgInfo _moonshot_server_dbus_arg_info_confirm_ca_certificate_result = {-1, "result", "b"};
+static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_confirm_ca_certificate_in[] = {&_moonshot_server_dbus_arg_info_confirm_ca_certificate_nai, &_moonshot_server_dbus_arg_info_confirm_ca_certificate_realm, &_moonshot_server_dbus_arg_info_confirm_ca_certificate_ca_hash, NULL};
+static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_confirm_ca_certificate_out[] = {&_moonshot_server_dbus_arg_info_confirm_ca_certificate_confirmed, &_moonshot_server_dbus_arg_info_confirm_ca_certificate_result, NULL};
+static const GDBusMethodInfo _moonshot_server_dbus_method_info_confirm_ca_certificate = {-1, "ConfirmCaCertificate", (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_confirm_ca_certificate_in), (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_confirm_ca_certificate_out)};
+static const GDBusMethodInfo * const _moonshot_server_dbus_method_info[] = {&_moonshot_server_dbus_method_info_show_ui, &_moonshot_server_dbus_method_info_get_identity, &_moonshot_server_dbus_method_info_get_default_identity, &_moonshot_server_dbus_method_info_install_id_card, &_moonshot_server_dbus_method_info_install_from_file, &_moonshot_server_dbus_method_info_confirm_ca_certificate, NULL};
+static const GDBusSignalInfo * const _moonshot_server_dbus_signal_info[] = {NULL};
+static const GDBusPropertyInfo * const _moonshot_server_dbus_property_info[] = {NULL};
+static const GDBusInterfaceInfo _moonshot_server_dbus_interface_info = {-1, "org.janet.Moonshot", (GDBusMethodInfo **) (&_moonshot_server_dbus_method_info), (GDBusSignalInfo **) (&_moonshot_server_dbus_signal_info), (GDBusPropertyInfo **) (&_moonshot_server_dbus_property_info)};
+static const GDBusInterfaceVTable _moonshot_server_dbus_interface_vtable = {moonshot_server_dbus_interface_method_call, moonshot_server_dbus_interface_get_property, moonshot_server_dbus_interface_set_property};
+
+static gpointer _identity_manager_app_ref0 (gpointer self) {
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return self ? identity_manager_app_ref (self) : NULL;
+#line 664 "moonshot-server-linux.c"
+}
+
+
+MoonshotServer* moonshot_server_construct (GType object_type, IdentityManagerApp* app) {
+       MoonshotServer * self = NULL;
+       const gchar* _tmp0_ = NULL;
+       IdentityManagerApp* _tmp1_ = NULL;
+       MoonshotLogger* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
+       IdentityManagerApp* _tmp5_ = NULL;
+       IdentityManagerApp* _tmp6_ = NULL;
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_return_val_if_fail (app != NULL, NULL);
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       self = (MoonshotServer*) g_object_new (object_type, NULL);
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp1_ = app;
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_tmp1_ == NULL) {
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp0_ = "null";
+#line 687 "moonshot-server-linux.c"
+       } else {
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp0_ = "non-null";
+#line 691 "moonshot-server-linux.c"
+       }
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp2_ = moonshot_server_logger;
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp3_ = g_strconcat ("MoonshotServer.<constructor>; app=", _tmp0_, NULL);
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp4_ = _tmp3_;
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_logger_trace (_tmp2_, _tmp4_, NULL);
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_tmp4_);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp5_ = app;
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp6_ = _identity_manager_app_ref0 (_tmp5_);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _identity_manager_app_unref0 (self->priv->parent_app);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       self->priv->parent_app = _tmp6_;
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return self;
+#line 713 "moonshot-server-linux.c"
+}
+
+
+MoonshotServer* moonshot_server_new (IdentityManagerApp* app) {
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return moonshot_server_construct (TYPE_MOONSHOT_SERVER, app);
+#line 720 "moonshot-server-linux.c"
+}
+
+
+gboolean moonshot_server_show_ui (MoonshotServer* self) {
+       gboolean result = FALSE;
+       MoonshotLogger* _tmp0_ = NULL;
+       IdentityManagerApp* _tmp1_ = NULL;
+       IdentityManagerView* _tmp2_ = NULL;
+       IdentityManagerApp* _tmp6_ = NULL;
+       IdentityManagerApp* _tmp7_ = NULL;
+       MoonshotLogger* _tmp8_ = NULL;
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp0_ = moonshot_server_logger;
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_logger_trace (_tmp0_, "MoonshotServer.show_ui", NULL);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp1_ = self->priv->parent_app;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp2_ = _tmp1_->view;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_tmp2_ == NULL) {
+#line 744 "moonshot-server-linux.c"
+               FILE* _tmp3_ = NULL;
+               const gchar* _tmp4_ = NULL;
+               MoonshotLogger* _tmp5_ = NULL;
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp3_ = stderr;
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp4_ = self->priv->app_name;
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               fprintf (_tmp3_, _tmp4_, "show_ui: parent_app.view is null!\n");
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp5_ = moonshot_server_logger;
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               moonshot_logger_warn (_tmp5_, "show_ui: parent_app.view is null!", NULL);
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               result = FALSE;
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               return result;
+#line 762 "moonshot-server-linux.c"
+       }
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp6_ = self->priv->parent_app;
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       identity_manager_app_show (_tmp6_);
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp7_ = self->priv->parent_app;
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp7_->explicitly_launched = TRUE;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp8_ = moonshot_server_logger;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_logger_trace (_tmp8_, "MoonshotServer.show_ui: returning true", NULL);
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       result = TRUE;
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return result;
+#line 780 "moonshot-server-linux.c"
+}
+
+
+static void moonshot_server_get_identity_data_free (gpointer _data) {
+       MoonshotServerGetIdentityData* _data_;
+       _data_ = _data;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->nai);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->password);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->service);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (_data_->self);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_slice_free (MoonshotServerGetIdentityData, _data_);
+#line 797 "moonshot-server-linux.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 804 "moonshot-server-linux.c"
+}
+
+
+void moonshot_server_get_identity (MoonshotServer* self, const gchar* nai, const gchar* password, const gchar* service, GAsyncReadyCallback _callback_, gpointer _user_data_) {
+       MoonshotServerGetIdentityData* _data_;
+       MoonshotServer* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+       gchar* _tmp2_ = NULL;
+       const gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
+       const gchar* _tmp5_ = NULL;
+       gchar* _tmp6_ = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_ = g_slice_new0 (MoonshotServerGetIdentityData);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, moonshot_server_get_identity);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, moonshot_server_get_identity_data_free);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp0_ = _g_object_ref0 (self);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->self = _tmp0_;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp1_ = nai;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp2_ = g_strdup (_tmp1_);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->nai);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->nai = _tmp2_;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp3_ = password;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp4_ = g_strdup (_tmp3_);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->password);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->password = _tmp4_;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp5_ = service;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp6_ = g_strdup (_tmp5_);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->service);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->service = _tmp6_;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_server_get_identity_co (_data_);
+#line 853 "moonshot-server-linux.c"
+}
+
+
+gboolean moonshot_server_get_identity_finish (MoonshotServer* self, GAsyncResult* _res_, gchar** nai_out, gchar** password_out, gchar** server_certificate_hash, gchar** ca_certificate, gchar** subject_name_constraint, gchar** subject_alt_name_constraint) {
+       gboolean result;
+       MoonshotServerGetIdentityData* _data_;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (nai_out) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               *nai_out = _data_->nai_out;
+#line 866 "moonshot-server-linux.c"
+       } else {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->nai_out);
+#line 870 "moonshot-server-linux.c"
+       }
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->nai_out = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (password_out) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               *password_out = _data_->password_out;
+#line 878 "moonshot-server-linux.c"
+       } else {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->password_out);
+#line 882 "moonshot-server-linux.c"
+       }
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->password_out = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (server_certificate_hash) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               *server_certificate_hash = _data_->server_certificate_hash;
+#line 890 "moonshot-server-linux.c"
+       } else {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->server_certificate_hash);
+#line 894 "moonshot-server-linux.c"
+       }
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->server_certificate_hash = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (ca_certificate) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               *ca_certificate = _data_->ca_certificate;
+#line 902 "moonshot-server-linux.c"
+       } else {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->ca_certificate);
+#line 906 "moonshot-server-linux.c"
+       }
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->ca_certificate = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (subject_name_constraint) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               *subject_name_constraint = _data_->subject_name_constraint;
+#line 914 "moonshot-server-linux.c"
+       } else {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->subject_name_constraint);
+#line 918 "moonshot-server-linux.c"
+       }
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->subject_name_constraint = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (subject_alt_name_constraint) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               *subject_alt_name_constraint = _data_->subject_alt_name_constraint;
+#line 926 "moonshot-server-linux.c"
+       } else {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->subject_alt_name_constraint);
+#line 930 "moonshot-server-linux.c"
+       }
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->subject_alt_name_constraint = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       result = _data_->result;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return result;
+#line 938 "moonshot-server-linux.c"
+}
+
+
+static Block7Data* block7_data_ref (Block7Data* _data7_) {
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_atomic_int_inc (&_data7_->_ref_count_);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return _data7_;
+#line 947 "moonshot-server-linux.c"
+}
+
+
+static void block7_data_unref (void * _userdata_) {
+       Block7Data* _data7_;
+       _data7_ = (Block7Data*) _userdata_;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (g_atomic_int_dec_and_test (&_data7_->_ref_count_)) {
+#line 956 "moonshot-server-linux.c"
+               MoonshotServer* self;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               self = _data7_->self;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_object_unref0 (self);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_slice_free (Block7Data, _data7_);
+#line 964 "moonshot-server-linux.c"
+       }
+}
+
+
+static const gchar* string_to_string (const gchar* self) {
+       const gchar* result = NULL;
+#line 1420 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = self;
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 977 "moonshot-server-linux.c"
+}
+
+
+static void __lambda19_ (Block7Data* _data7_, IdentityRequest* IdentityRequest) {
+       MoonshotServer* self;
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       self = _data7_->self;
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_return_if_fail (IdentityRequest != NULL);
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_server_get_identity_co (_data7_->_async_data_);
+#line 989 "moonshot-server-linux.c"
+}
+
+
+static void ___lambda19__return_identity_callback (IdentityRequest* request, gpointer self) {
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       __lambda19_ (self, request);
+#line 996 "moonshot-server-linux.c"
+}
+
+
+static gboolean moonshot_server_get_identity_co (MoonshotServerGetIdentityData* _data_) {
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       switch (_data_->_state_) {
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               case 0:
+#line 1005 "moonshot-server-linux.c"
+               goto _state_0;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               case 1:
+#line 1009 "moonshot-server-linux.c"
+               goto _state_1;
+               default:
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_assert_not_reached ();
+#line 1014 "moonshot-server-linux.c"
+       }
+       _state_0:
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data7_ = g_slice_new0 (Block7Data);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data7_->_ref_count_ = 1;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data7_->self = g_object_ref (_data_->self);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data7_->_async_data_ = _data_;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp0_ = NULL;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp0_ = moonshot_server_logger;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp1_ = NULL;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp1_ = _data_->nai;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp2_ = NULL;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp2_ = string_to_string (_data_->_tmp1_);
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp3_ = NULL;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp3_ = _data_->service;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp4_ = NULL;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp4_ = string_to_string (_data_->_tmp3_);
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp5_ = NULL;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp5_ = g_strconcat ("MoonshotServer.get_identity: nai='", _data_->_tmp2_, "'; service='", _data_->_tmp4_, "'", NULL);
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp6_ = NULL;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp6_ = _data_->_tmp5_;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_logger_trace (_data_->_tmp0_, _data_->_tmp6_, NULL);
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->_tmp6_);
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp7_ = NULL;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp7_ = _data_->self->priv->parent_app;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp8_ = NULL;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp8_ = _data_->nai;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp9_ = NULL;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp9_ = _data_->password;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp10_ = NULL;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp10_ = _data_->service;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp11_ = NULL;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp11_ = identity_request_new (_data_->_tmp7_, _data_->_tmp8_, _data_->_tmp9_, _data_->_tmp10_);
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->request = _data_->_tmp11_;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp12_ = NULL;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp12_ = moonshot_server_logger;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_logger_trace (_data_->_tmp12_, "MoonshotServer.get_identity: Calling request.execute()", NULL);
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp13_ = NULL;
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp13_ = _data_->request;
+#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       identity_request_set_callback (_data_->_tmp13_, ___lambda19__return_identity_callback, block7_data_ref (_data_->_data7_), block7_data_unref);
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp14_ = NULL;
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp14_ = _data_->request;
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       identity_request_execute (_data_->_tmp14_);
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp15_ = NULL;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp15_ = moonshot_server_logger;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_logger_trace (_data_->_tmp15_, "MoonshotServer.get_identity: Back from request.execute()", NULL);
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_state_ = 1;
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return FALSE;
+#line 1107 "moonshot-server-linux.c"
+       _state_1:
+       ;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp16_ = NULL;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp16_ = moonshot_server_logger;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_logger_trace (_data_->_tmp16_, "MoonshotServer.get_identity: back from yield", NULL);
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp17_ = NULL;
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp17_ = g_strdup ("");
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->nai_out);
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->nai_out = _data_->_tmp17_;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp18_ = NULL;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp18_ = g_strdup ("");
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->password_out);
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->password_out = _data_->_tmp18_;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp19_ = NULL;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp19_ = g_strdup ("");
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->server_certificate_hash);
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->server_certificate_hash = _data_->_tmp19_;
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp20_ = NULL;
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp20_ = g_strdup ("");
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->ca_certificate);
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->ca_certificate = _data_->_tmp20_;
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp21_ = NULL;
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp21_ = g_strdup ("");
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->subject_name_constraint);
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->subject_name_constraint = _data_->_tmp21_;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp22_ = NULL;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp22_ = g_strdup ("");
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->subject_alt_name_constraint);
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->subject_alt_name_constraint = _data_->_tmp22_;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp23_ = NULL;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp23_ = _data_->request;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp24_ = NULL;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp24_ = _data_->_tmp23_->id_card;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp25_ = NULL;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp25_ = _g_object_ref0 (_data_->_tmp24_);
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->id_card = _data_->_tmp25_;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp27_ = NULL;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp27_ = _data_->id_card;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_data_->_tmp27_ != NULL) {
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp28_ = NULL;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp28_ = _data_->id_card;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp29_ = FALSE;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp29_ = id_card_is_no_identity (_data_->_tmp28_);
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp26_ = !_data_->_tmp29_;
+#line 1194 "moonshot-server-linux.c"
+       } else {
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp26_ = FALSE;
+#line 1198 "moonshot-server-linux.c"
+       }
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_data_->_tmp26_) {
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp30_ = NULL;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp30_ = _data_->id_card;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp31_ = NULL;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp31_ = id_card_get_nai (_data_->_tmp30_);
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp32_ = NULL;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp32_ = _data_->_tmp31_;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp33_ = NULL;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp33_ = g_strdup (_data_->_tmp32_);
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->nai_out);
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->nai_out = _data_->_tmp33_;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp35_ = NULL;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp35_ = _data_->request;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp36_ = NULL;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp36_ = _data_->_tmp35_->password;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp36_ != NULL) {
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp37_ = NULL;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp37_ = _data_->request;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp38_ = NULL;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp38_ = _data_->_tmp37_->password;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp34_ = g_strcmp0 (_data_->_tmp38_, "") != 0;
+#line 1242 "moonshot-server-linux.c"
+               } else {
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp34_ = FALSE;
+#line 1246 "moonshot-server-linux.c"
+               }
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp34_) {
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp39_ = NULL;
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp39_ = _data_->request;
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp40_ = NULL;
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp40_ = _data_->_tmp39_->password;
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp41_ = NULL;
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp41_ = g_strdup (_data_->_tmp40_);
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->password_out);
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->password_out = _data_->_tmp41_;
+#line 1266 "moonshot-server-linux.c"
+               } else {
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp42_ = NULL;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp42_ = _data_->id_card;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp43_ = NULL;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp43_ = id_card_get_password (_data_->_tmp42_);
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp44_ = NULL;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp44_ = _data_->_tmp43_;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp45_ = NULL;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp45_ = g_strdup (_data_->_tmp44_);
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->password_out);
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->password_out = _data_->_tmp45_;
+#line 1288 "moonshot-server-linux.c"
+               }
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp46_ = NULL;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp46_ = _data_->id_card;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp47_ = NULL;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp47_ = id_card_get_trust_anchor (_data_->_tmp46_);
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp48_ = NULL;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp48_ = _data_->_tmp47_;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp49_ = NULL;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp49_ = trust_anchor_get_server_cert (_data_->_tmp48_);
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp50_ = NULL;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp50_ = _data_->_tmp49_;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp51_ = NULL;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp51_ = g_strdup (_data_->_tmp50_);
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->server_certificate_hash);
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->server_certificate_hash = _data_->_tmp51_;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp52_ = NULL;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp52_ = _data_->id_card;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp53_ = NULL;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp53_ = id_card_get_trust_anchor (_data_->_tmp52_);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp54_ = NULL;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp54_ = _data_->_tmp53_;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp55_ = NULL;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp55_ = trust_anchor_get_ca_cert (_data_->_tmp54_);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp56_ = NULL;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp56_ = _data_->_tmp55_;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp57_ = NULL;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp57_ = g_strdup (_data_->_tmp56_);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->ca_certificate);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->ca_certificate = _data_->_tmp57_;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp58_ = NULL;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp58_ = _data_->id_card;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp59_ = NULL;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp59_ = id_card_get_trust_anchor (_data_->_tmp58_);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp60_ = NULL;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp60_ = _data_->_tmp59_;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp61_ = NULL;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp61_ = trust_anchor_get_subject (_data_->_tmp60_);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp62_ = NULL;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp62_ = _data_->_tmp61_;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp63_ = NULL;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp63_ = g_strdup (_data_->_tmp62_);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->subject_name_constraint);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->subject_name_constraint = _data_->_tmp63_;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp64_ = NULL;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp64_ = _data_->id_card;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp65_ = NULL;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp65_ = id_card_get_trust_anchor (_data_->_tmp64_);
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp66_ = NULL;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp66_ = _data_->_tmp65_;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp67_ = NULL;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp67_ = trust_anchor_get_subject_alt (_data_->_tmp66_);
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp68_ = NULL;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp68_ = _data_->_tmp67_;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp69_ = NULL;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp69_ = g_strdup (_data_->_tmp68_);
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->subject_alt_name_constraint);
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->subject_alt_name_constraint = _data_->_tmp69_;
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp70_ = NULL;
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp70_ = _data_->nai_out;
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp70_ == NULL) {
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp71_ = NULL;
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp71_ = g_strdup ("");
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->nai_out);
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->nai_out = _data_->_tmp71_;
+#line 1416 "moonshot-server-linux.c"
+               }
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp72_ = NULL;
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp72_ = _data_->password_out;
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp72_ == NULL) {
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp73_ = NULL;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp73_ = g_strdup ("");
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->password_out);
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->password_out = _data_->_tmp73_;
+#line 1432 "moonshot-server-linux.c"
+               }
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp74_ = NULL;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp74_ = _data_->server_certificate_hash;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp74_ == NULL) {
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp75_ = NULL;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp75_ = g_strdup ("");
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->server_certificate_hash);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->server_certificate_hash = _data_->_tmp75_;
+#line 1448 "moonshot-server-linux.c"
+               }
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp76_ = NULL;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp76_ = _data_->ca_certificate;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp76_ == NULL) {
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp77_ = NULL;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp77_ = g_strdup ("");
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->ca_certificate);
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->ca_certificate = _data_->_tmp77_;
+#line 1464 "moonshot-server-linux.c"
+               }
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp78_ = NULL;
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp78_ = _data_->subject_name_constraint;
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp78_ == NULL) {
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp79_ = NULL;
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp79_ = g_strdup ("");
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->subject_name_constraint);
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->subject_name_constraint = _data_->_tmp79_;
+#line 1480 "moonshot-server-linux.c"
+               }
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp80_ = NULL;
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp80_ = _data_->subject_alt_name_constraint;
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp80_ == NULL) {
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp81_ = NULL;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp81_ = g_strdup ("");
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->subject_alt_name_constraint);
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->subject_alt_name_constraint = _data_->_tmp81_;
+#line 1496 "moonshot-server-linux.c"
+               }
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp82_ = NULL;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp82_ = moonshot_server_logger;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp83_ = NULL;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp83_ = _data_->nai_out;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp84_ = NULL;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp84_ = string_to_string (_data_->_tmp83_);
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp85_ = NULL;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp85_ = g_strconcat ("MoonshotServer.get_identity: returning with nai_out=", _data_->_tmp84_, NULL);
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp86_ = NULL;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp86_ = _data_->_tmp85_;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               moonshot_logger_trace (_data_->_tmp82_, _data_->_tmp86_, NULL);
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->_tmp86_);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->result = TRUE;
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_object_unref0 (_data_->id_card);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_object_unref0 (_data_->request);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               block7_data_unref (_data_->_data7_);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_data7_ = NULL;
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_state_ == 0) {
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 1536 "moonshot-server-linux.c"
+               } else {
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       g_simple_async_result_complete (_data_->_async_result);
+#line 1540 "moonshot-server-linux.c"
+               }
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_object_unref (_data_->_async_result);
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               return FALSE;
+#line 1546 "moonshot-server-linux.c"
+       }
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp87_ = NULL;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp87_ = moonshot_server_logger;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_logger_trace (_data_->_tmp87_, "MoonshotServer.get_identity: returning false", NULL);
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->result = FALSE;
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (_data_->id_card);
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (_data_->request);
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       block7_data_unref (_data_->_data7_);
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data7_ = NULL;
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_data_->_state_ == 0) {
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 1568 "moonshot-server-linux.c"
+       } else {
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_simple_async_result_complete (_data_->_async_result);
+#line 1572 "moonshot-server-linux.c"
+       }
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_object_unref (_data_->_async_result);
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return FALSE;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (_data_->id_card);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (_data_->request);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       block7_data_unref (_data_->_data7_);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data7_ = NULL;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_data_->_state_ == 0) {
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 1590 "moonshot-server-linux.c"
+       } else {
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_simple_async_result_complete (_data_->_async_result);
+#line 1594 "moonshot-server-linux.c"
+       }
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_object_unref (_data_->_async_result);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return FALSE;
+#line 1600 "moonshot-server-linux.c"
+}
+
+
+static void moonshot_server_get_default_identity_data_free (gpointer _data) {
+       MoonshotServerGetDefaultIdentityData* _data_;
+       _data_ = _data;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (_data_->self);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_slice_free (MoonshotServerGetDefaultIdentityData, _data_);
+#line 1611 "moonshot-server-linux.c"
+}
+
+
+void moonshot_server_get_default_identity (MoonshotServer* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
+       MoonshotServerGetDefaultIdentityData* _data_;
+       MoonshotServer* _tmp0_ = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_ = g_slice_new0 (MoonshotServerGetDefaultIdentityData);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, moonshot_server_get_default_identity);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, moonshot_server_get_default_identity_data_free);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp0_ = _g_object_ref0 (self);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->self = _tmp0_;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_server_get_default_identity_co (_data_);
+#line 1630 "moonshot-server-linux.c"
+}
+
+
+gboolean moonshot_server_get_default_identity_finish (MoonshotServer* self, GAsyncResult* _res_, gchar** nai_out, gchar** password_out, gchar** server_certificate_hash, gchar** ca_certificate, gchar** subject_name_constraint, gchar** subject_alt_name_constraint) {
+       gboolean result;
+       MoonshotServerGetDefaultIdentityData* _data_;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (nai_out) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               *nai_out = _data_->nai_out;
+#line 1643 "moonshot-server-linux.c"
+       } else {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->nai_out);
+#line 1647 "moonshot-server-linux.c"
+       }
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->nai_out = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (password_out) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               *password_out = _data_->password_out;
+#line 1655 "moonshot-server-linux.c"
+       } else {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->password_out);
+#line 1659 "moonshot-server-linux.c"
+       }
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->password_out = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (server_certificate_hash) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               *server_certificate_hash = _data_->server_certificate_hash;
+#line 1667 "moonshot-server-linux.c"
+       } else {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->server_certificate_hash);
+#line 1671 "moonshot-server-linux.c"
+       }
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->server_certificate_hash = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (ca_certificate) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               *ca_certificate = _data_->ca_certificate;
+#line 1679 "moonshot-server-linux.c"
+       } else {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->ca_certificate);
+#line 1683 "moonshot-server-linux.c"
+       }
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->ca_certificate = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (subject_name_constraint) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               *subject_name_constraint = _data_->subject_name_constraint;
+#line 1691 "moonshot-server-linux.c"
+       } else {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->subject_name_constraint);
+#line 1695 "moonshot-server-linux.c"
+       }
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->subject_name_constraint = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (subject_alt_name_constraint) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               *subject_alt_name_constraint = _data_->subject_alt_name_constraint;
+#line 1703 "moonshot-server-linux.c"
+       } else {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->subject_alt_name_constraint);
+#line 1707 "moonshot-server-linux.c"
+       }
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->subject_alt_name_constraint = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       result = _data_->result;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return result;
+#line 1715 "moonshot-server-linux.c"
+}
+
+
+static Block8Data* block8_data_ref (Block8Data* _data8_) {
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_atomic_int_inc (&_data8_->_ref_count_);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return _data8_;
+#line 1724 "moonshot-server-linux.c"
+}
+
+
+static void block8_data_unref (void * _userdata_) {
+       Block8Data* _data8_;
+       _data8_ = (Block8Data*) _userdata_;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (g_atomic_int_dec_and_test (&_data8_->_ref_count_)) {
+#line 1733 "moonshot-server-linux.c"
+               MoonshotServer* self;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               self = _data8_->self;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_object_unref0 (self);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_slice_free (Block8Data, _data8_);
+#line 1741 "moonshot-server-linux.c"
+       }
+}
+
+
+static void __lambda20_ (Block8Data* _data8_, IdentityRequest* IdentityRequest) {
+       MoonshotServer* self;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       self = _data8_->self;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_return_if_fail (IdentityRequest != NULL);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_server_get_default_identity_co (_data8_->_async_data_);
+#line 1754 "moonshot-server-linux.c"
+}
+
+
+static void ___lambda20__return_identity_callback (IdentityRequest* request, gpointer self) {
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       __lambda20_ (self, request);
+#line 1761 "moonshot-server-linux.c"
+}
+
+
+static gboolean moonshot_server_get_default_identity_co (MoonshotServerGetDefaultIdentityData* _data_) {
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       switch (_data_->_state_) {
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               case 0:
+#line 1770 "moonshot-server-linux.c"
+               goto _state_0;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               case 1:
+#line 1774 "moonshot-server-linux.c"
+               goto _state_1;
+               default:
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_assert_not_reached ();
+#line 1779 "moonshot-server-linux.c"
+       }
+       _state_0:
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data8_ = g_slice_new0 (Block8Data);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data8_->_ref_count_ = 1;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data8_->self = g_object_ref (_data_->self);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data8_->_async_data_ = _data_;
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp0_ = NULL;
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp0_ = moonshot_server_logger;
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_logger_trace (_data_->_tmp0_, "MoonshotServer.get_default_identity", NULL);
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp1_ = NULL;
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp1_ = _data_->self->priv->parent_app;
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp2_ = NULL;
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp2_ = identity_request_new_default (_data_->_tmp1_);
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->request = _data_->_tmp2_;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp3_ = NULL;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp3_ = _data_->request;
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       identity_request_set_callback (_data_->_tmp3_, ___lambda20__return_identity_callback, block8_data_ref (_data_->_data8_), block8_data_unref);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp4_ = NULL;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp4_ = _data_->request;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       identity_request_execute (_data_->_tmp4_);
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_state_ = 1;
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return FALSE;
+#line 1822 "moonshot-server-linux.c"
+       _state_1:
+       ;
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp5_ = NULL;
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp5_ = g_strdup ("");
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->nai_out);
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->nai_out = _data_->_tmp5_;
+#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp6_ = NULL;
+#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp6_ = g_strdup ("");
+#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->password_out);
+#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->password_out = _data_->_tmp6_;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp7_ = NULL;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp7_ = g_strdup ("");
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->server_certificate_hash);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->server_certificate_hash = _data_->_tmp7_;
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp8_ = NULL;
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp8_ = g_strdup ("");
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->ca_certificate);
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->ca_certificate = _data_->_tmp8_;
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp9_ = NULL;
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp9_ = g_strdup ("");
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->subject_name_constraint);
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->subject_name_constraint = _data_->_tmp9_;
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp10_ = NULL;
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp10_ = g_strdup ("");
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->subject_alt_name_constraint);
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->subject_alt_name_constraint = _data_->_tmp10_;
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp11_ = NULL;
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp11_ = _data_->request;
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp12_ = NULL;
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp12_ = _data_->_tmp11_->id_card;
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_data_->_tmp12_ != NULL) {
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp13_ = NULL;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp13_ = _data_->request;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp14_ = NULL;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp14_ = _data_->_tmp13_->id_card;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp15_ = NULL;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp15_ = id_card_get_nai (_data_->_tmp14_);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp16_ = NULL;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp16_ = _data_->_tmp15_;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp17_ = NULL;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp17_ = g_strdup (_data_->_tmp16_);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->nai_out);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->nai_out = _data_->_tmp17_;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp18_ = NULL;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp18_ = _data_->request;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp19_ = NULL;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp19_ = _data_->_tmp18_->id_card;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp20_ = NULL;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp20_ = id_card_get_password (_data_->_tmp19_);
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp21_ = NULL;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp21_ = _data_->_tmp20_;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp22_ = NULL;
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp22_ = g_strdup (_data_->_tmp21_);
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->password_out);
+#line 153 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->password_out = _data_->_tmp22_;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp23_ = NULL;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp23_ = _data_->request;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp24_ = NULL;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp24_ = _data_->_tmp23_->id_card;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp25_ = NULL;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp25_ = id_card_get_trust_anchor (_data_->_tmp24_);
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp26_ = NULL;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp26_ = _data_->_tmp25_;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp27_ = NULL;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp27_ = trust_anchor_get_server_cert (_data_->_tmp26_);
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp28_ = NULL;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp28_ = _data_->_tmp27_;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp29_ = NULL;
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp29_ = g_strdup (_data_->_tmp28_);
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->server_certificate_hash);
+#line 155 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->server_certificate_hash = _data_->_tmp29_;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp30_ = NULL;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp30_ = _data_->request;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp31_ = NULL;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp31_ = _data_->_tmp30_->id_card;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp32_ = NULL;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp32_ = id_card_get_trust_anchor (_data_->_tmp31_);
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp33_ = NULL;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp33_ = _data_->_tmp32_;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp34_ = NULL;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp34_ = trust_anchor_get_ca_cert (_data_->_tmp33_);
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp35_ = NULL;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp35_ = _data_->_tmp34_;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp36_ = NULL;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp36_ = g_strdup (_data_->_tmp35_);
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->ca_certificate);
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->ca_certificate = _data_->_tmp36_;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp37_ = NULL;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp37_ = _data_->request;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp38_ = NULL;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp38_ = _data_->_tmp37_->id_card;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp39_ = NULL;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp39_ = id_card_get_trust_anchor (_data_->_tmp38_);
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp40_ = NULL;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp40_ = _data_->_tmp39_;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp41_ = NULL;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp41_ = trust_anchor_get_subject (_data_->_tmp40_);
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp42_ = NULL;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp42_ = _data_->_tmp41_;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp43_ = NULL;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp43_ = g_strdup (_data_->_tmp42_);
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->subject_name_constraint);
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->subject_name_constraint = _data_->_tmp43_;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp44_ = NULL;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp44_ = _data_->request;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp45_ = NULL;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp45_ = _data_->_tmp44_->id_card;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp46_ = NULL;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp46_ = id_card_get_trust_anchor (_data_->_tmp45_);
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp47_ = NULL;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp47_ = _data_->_tmp46_;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp48_ = NULL;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp48_ = trust_anchor_get_subject_alt (_data_->_tmp47_);
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp49_ = NULL;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp49_ = _data_->_tmp48_;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp50_ = NULL;
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp50_ = g_strdup (_data_->_tmp49_);
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_data_->subject_alt_name_constraint);
+#line 158 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->subject_alt_name_constraint = _data_->_tmp50_;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp51_ = NULL;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp51_ = _data_->nai_out;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp51_ == NULL) {
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp52_ = NULL;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp52_ = g_strdup ("");
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->nai_out);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->nai_out = _data_->_tmp52_;
+#line 2073 "moonshot-server-linux.c"
+               }
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp53_ = NULL;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp53_ = _data_->password_out;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp53_ == NULL) {
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp54_ = NULL;
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp54_ = g_strdup ("");
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->password_out);
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->password_out = _data_->_tmp54_;
+#line 2089 "moonshot-server-linux.c"
+               }
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp55_ = NULL;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp55_ = _data_->server_certificate_hash;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp55_ == NULL) {
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp56_ = NULL;
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp56_ = g_strdup ("");
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->server_certificate_hash);
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->server_certificate_hash = _data_->_tmp56_;
+#line 2105 "moonshot-server-linux.c"
+               }
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp57_ = NULL;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp57_ = _data_->ca_certificate;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp57_ == NULL) {
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp58_ = NULL;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp58_ = g_strdup ("");
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->ca_certificate);
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->ca_certificate = _data_->_tmp58_;
+#line 2121 "moonshot-server-linux.c"
+               }
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp59_ = NULL;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp59_ = _data_->subject_name_constraint;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp59_ == NULL) {
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp60_ = NULL;
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp60_ = g_strdup ("");
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->subject_name_constraint);
+#line 169 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->subject_name_constraint = _data_->_tmp60_;
+#line 2137 "moonshot-server-linux.c"
+               }
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp61_ = NULL;
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp61_ = _data_->subject_alt_name_constraint;
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_tmp61_ == NULL) {
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp62_ = NULL;
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->_tmp62_ = g_strdup ("");
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_free0 (_data_->subject_alt_name_constraint);
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _data_->subject_alt_name_constraint = _data_->_tmp62_;
+#line 2153 "moonshot-server-linux.c"
+               }
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp63_ = NULL;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp63_ = moonshot_server_logger;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               moonshot_logger_trace (_data_->_tmp63_, "MoonshotServer.get_default_identity: returning true", NULL);
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->result = TRUE;
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_object_unref0 (_data_->request);
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               block8_data_unref (_data_->_data8_);
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_data8_ = NULL;
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               if (_data_->_state_ == 0) {
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 2173 "moonshot-server-linux.c"
+               } else {
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       g_simple_async_result_complete (_data_->_async_result);
+#line 2177 "moonshot-server-linux.c"
+               }
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_object_unref (_data_->_async_result);
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               return FALSE;
+#line 2183 "moonshot-server-linux.c"
+       }
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->result = FALSE;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (_data_->request);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       block8_data_unref (_data_->_data8_);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data8_ = NULL;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_data_->_state_ == 0) {
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 2197 "moonshot-server-linux.c"
+       } else {
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_simple_async_result_complete (_data_->_async_result);
+#line 2201 "moonshot-server-linux.c"
+       }
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_object_unref (_data_->_async_result);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return FALSE;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (_data_->request);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       block8_data_unref (_data_->_data8_);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data8_ = NULL;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_data_->_state_ == 0) {
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 2217 "moonshot-server-linux.c"
+       } else {
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_simple_async_result_complete (_data_->_async_result);
+#line 2221 "moonshot-server-linux.c"
+       }
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_object_unref (_data_->_async_result);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return FALSE;
+#line 2227 "moonshot-server-linux.c"
+}
+
+
+static void _vala_Rule_array_free (Rule* array, gint array_length) {
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (array != NULL) {
+#line 2234 "moonshot-server-linux.c"
+               int i;
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               for (i = 0; i < array_length; i = i + 1) {
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       rule_destroy (&array[i]);
+#line 2240 "moonshot-server-linux.c"
+               }
+       }
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_free (array);
+#line 2245 "moonshot-server-linux.c"
+}
+
+
+gboolean moonshot_server_install_id_card (MoonshotServer* self, const gchar* display_name, const gchar* user_name, const gchar* password, const gchar* realm, gchar** rules_patterns, int rules_patterns_length1, gchar** rules_always_confirm, int rules_always_confirm_length1, gchar** services, int services_length1, const gchar* ca_cert, const gchar* subject, const gchar* subject_alt, const gchar* server_cert, gint force_flat_file_store) {
+       gboolean result = FALSE;
+       IdCard* idcard = NULL;
+       IdCard* _tmp0_ = NULL;
+       IdCard* _tmp1_ = NULL;
+       const gchar* _tmp2_ = NULL;
+       IdCard* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       IdCard* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       gboolean _tmp7_ = FALSE;
+       const gchar* _tmp8_ = NULL;
+       IdCard* _tmp11_ = NULL;
+       const gchar* _tmp12_ = NULL;
+       IdCard* _tmp13_ = NULL;
+       gchar** _tmp14_ = NULL;
+       gint _tmp14__length1 = 0;
+       TrustAnchor* ta = NULL;
+       const gchar* _tmp15_ = NULL;
+       const gchar* _tmp16_ = NULL;
+       const gchar* _tmp17_ = NULL;
+       const gchar* _tmp18_ = NULL;
+       TrustAnchor* _tmp19_ = NULL;
+       TrustAnchor* _tmp20_ = NULL;
+       gboolean _tmp21_ = FALSE;
+       IdCard* _tmp40_ = NULL;
+       TrustAnchor* _tmp41_ = NULL;
+       MoonshotLogger* _tmp42_ = NULL;
+       IdCard* _tmp43_ = NULL;
+       const gchar* _tmp44_ = NULL;
+       const gchar* _tmp45_ = NULL;
+       IdCard* _tmp46_ = NULL;
+       gchar* _tmp47_ = NULL;
+       gchar* _tmp48_ = NULL;
+       gchar* _tmp49_ = NULL;
+       gchar* _tmp50_ = NULL;
+       MoonshotLogger* _tmp51_ = NULL;
+       IdCard* _tmp52_ = NULL;
+       const gchar* _tmp53_ = NULL;
+       const gchar* _tmp54_ = NULL;
+       const gchar* _tmp55_ = NULL;
+       IdCard* _tmp56_ = NULL;
+       TrustAnchor* _tmp57_ = NULL;
+       TrustAnchor* _tmp58_ = NULL;
+       const gchar* _tmp59_ = NULL;
+       const gchar* _tmp60_ = NULL;
+       const gchar* _tmp61_ = NULL;
+       IdCard* _tmp62_ = NULL;
+       TrustAnchor* _tmp63_ = NULL;
+       TrustAnchor* _tmp64_ = NULL;
+       const gchar* _tmp65_ = NULL;
+       const gchar* _tmp66_ = NULL;
+       const gchar* _tmp67_ = NULL;
+       gchar* _tmp68_ = NULL;
+       gchar* _tmp69_ = NULL;
+       gchar** _tmp70_ = NULL;
+       gint _tmp70__length1 = 0;
+       gchar** _tmp71_ = NULL;
+       gint _tmp71__length1 = 0;
+       GeeArrayList* old_duplicates = NULL;
+       gboolean ret = FALSE;
+       IdentityManagerApp* _tmp92_ = NULL;
+       IdCard* _tmp93_ = NULL;
+       gint _tmp94_ = 0;
+       GeeArrayList* _tmp95_ = NULL;
+       gboolean _tmp96_ = FALSE;
+       GeeArrayList* _tmp97_ = NULL;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_return_val_if_fail (display_name != NULL, FALSE);
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_return_val_if_fail (user_name != NULL, FALSE);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp0_ = id_card_new ();
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       idcard = _tmp0_;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp1_ = idcard;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp2_ = display_name;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       id_card_set_display_name (_tmp1_, _tmp2_);
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp3_ = idcard;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp4_ = user_name;
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       id_card_set_username (_tmp3_, _tmp4_);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp5_ = idcard;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp6_ = password;
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       id_card_set_password (_tmp5_, _tmp6_);
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp8_ = password;
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_tmp8_ != NULL) {
+#line 2348 "moonshot-server-linux.c"
+               const gchar* _tmp9_ = NULL;
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp9_ = password;
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp7_ = g_strcmp0 (_tmp9_, "") != 0;
+#line 2354 "moonshot-server-linux.c"
+       } else {
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp7_ = FALSE;
+#line 2358 "moonshot-server-linux.c"
+       }
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_tmp7_) {
+#line 2362 "moonshot-server-linux.c"
+               IdCard* _tmp10_ = NULL;
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp10_ = idcard;
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               id_card_set_store_password (_tmp10_, TRUE);
+#line 2368 "moonshot-server-linux.c"
+       }
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp11_ = idcard;
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp12_ = realm;
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       id_card_set_issuer (_tmp11_, _tmp12_);
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp13_ = idcard;
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp14_ = services;
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp14__length1 = services_length1;
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       id_card_update_services (_tmp13_, _tmp14_, _tmp14__length1);
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp15_ = ca_cert;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp16_ = server_cert;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp17_ = subject;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp18_ = subject_alt;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp19_ = trust_anchor_new (_tmp15_, _tmp16_, _tmp17_, _tmp18_);
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       ta = _tmp19_;
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp20_ = ta;
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp21_ = trust_anchor_is_empty (_tmp20_);
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (!_tmp21_) {
+#line 2402 "moonshot-server-linux.c"
+               gchar* ta_datetime_added = NULL;
+               gchar* _tmp22_ = NULL;
+               TrustAnchor* _tmp23_ = NULL;
+               const gchar* _tmp24_ = NULL;
+               MoonshotLogger* _tmp25_ = NULL;
+               IdCard* _tmp26_ = NULL;
+               const gchar* _tmp27_ = NULL;
+               const gchar* _tmp28_ = NULL;
+               TrustAnchor* _tmp29_ = NULL;
+               const gchar* _tmp30_ = NULL;
+               const gchar* _tmp31_ = NULL;
+               TrustAnchor* _tmp32_ = NULL;
+               const gchar* _tmp33_ = NULL;
+               const gchar* _tmp34_ = NULL;
+               TrustAnchor* _tmp35_ = NULL;
+               const gchar* _tmp36_ = NULL;
+               const gchar* _tmp37_ = NULL;
+               gchar* _tmp38_ = NULL;
+               gchar* _tmp39_ = NULL;
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp22_ = trust_anchor_format_datetime_now ();
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               ta_datetime_added = _tmp22_;
+#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp23_ = ta;
+#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp24_ = ta_datetime_added;
+#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               trust_anchor_set_datetime_added (_tmp23_, _tmp24_);
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp25_ = moonshot_server_logger;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp26_ = idcard;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp27_ = id_card_get_display_name (_tmp26_);
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp28_ = _tmp27_;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp29_ = ta;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp30_ = trust_anchor_get_datetime_added (_tmp29_);
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp31_ = _tmp30_;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp32_ = ta;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp33_ = trust_anchor_get_ca_cert (_tmp32_);
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp34_ = _tmp33_;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp35_ = ta;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp36_ = trust_anchor_get_server_cert (_tmp35_);
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp37_ = _tmp36_;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp38_ = g_strdup_printf ("install_id_card : Set ta_datetime_added for '%s' to '%s'; ca_cert='%s'" \
+"; server_cert='%s'", _tmp28_, _tmp31_, _tmp34_, _tmp37_);
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp39_ = _tmp38_;
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               moonshot_logger_trace (_tmp25_, _tmp39_, NULL);
+#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (_tmp39_);
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_free0 (ta_datetime_added);
+#line 2468 "moonshot-server-linux.c"
+       }
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp40_ = idcard;
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp41_ = ta;
+#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       id_card_set_trust_anchor_from_store (_tmp40_, _tmp41_);
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp42_ = moonshot_server_logger;
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp43_ = idcard;
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp44_ = id_card_get_display_name (_tmp43_);
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp45_ = _tmp44_;
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp46_ = idcard;
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp47_ = id_card_get_services_string (_tmp46_, "; ");
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp48_ = _tmp47_;
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp49_ = g_strdup_printf ("install_id_card: Card '%s' has services: '%s'", _tmp45_, _tmp48_);
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp50_ = _tmp49_;
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_logger_trace (_tmp42_, _tmp50_, NULL);
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_tmp50_);
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_tmp48_);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp51_ = moonshot_server_logger;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp52_ = idcard;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp53_ = id_card_get_display_name (_tmp52_);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp54_ = _tmp53_;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp55_ = string_to_string (_tmp54_);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp56_ = idcard;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp57_ = id_card_get_trust_anchor (_tmp56_);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp58_ = _tmp57_;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp59_ = trust_anchor_get_ca_cert (_tmp58_);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp60_ = _tmp59_;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp61_ = string_to_string (_tmp60_);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp62_ = idcard;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp63_ = id_card_get_trust_anchor (_tmp62_);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp64_ = _tmp63_;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp65_ = trust_anchor_get_server_cert (_tmp64_);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp66_ = _tmp65_;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp67_ = string_to_string (_tmp66_);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp68_ = g_strconcat ("Installing IdCard named '", _tmp55_, "'; ca_cert='", _tmp61_, "'; server_cert='", _tmp67_, "'", NULL);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp69_ = _tmp68_;
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_logger_trace (_tmp51_, _tmp69_, NULL);
+#line 215 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_tmp69_);
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp70_ = rules_patterns;
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp70__length1 = rules_patterns_length1;
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp71_ = rules_always_confirm;
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp71__length1 = rules_always_confirm_length1;
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_tmp70__length1 == _tmp71__length1) {
+#line 2552 "moonshot-server-linux.c"
+               Rule* rules = NULL;
+               gchar** _tmp72_ = NULL;
+               gint _tmp72__length1 = 0;
+               Rule* _tmp73_ = NULL;
+               gint rules_length1 = 0;
+               gint _rules_size_ = 0;
+               IdCard* _tmp90_ = NULL;
+               Rule* _tmp91_ = NULL;
+               gint _tmp91__length1 = 0;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp72_ = rules_patterns;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp72__length1 = rules_patterns_length1;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp73_ = g_new0 (Rule, _tmp72__length1);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               rules = _tmp73_;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               rules_length1 = _tmp72__length1;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _rules_size_ = rules_length1;
+#line 2574 "moonshot-server-linux.c"
+               {
+                       gint i = 0;
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       i = 0;
+#line 2579 "moonshot-server-linux.c"
+                       {
+                               gboolean _tmp74_ = FALSE;
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp74_ = TRUE;
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               while (TRUE) {
+#line 2586 "moonshot-server-linux.c"
+                                       gint _tmp76_ = 0;
+                                       Rule* _tmp77_ = NULL;
+                                       gint _tmp77__length1 = 0;
+                                       Rule* _tmp78_ = NULL;
+                                       gint _tmp78__length1 = 0;
+                                       gint _tmp79_ = 0;
+                                       gchar** _tmp80_ = NULL;
+                                       gint _tmp80__length1 = 0;
+                                       gint _tmp81_ = 0;
+                                       const gchar* _tmp82_ = NULL;
+                                       gchar* _tmp83_ = NULL;
+                                       Rule* _tmp84_ = NULL;
+                                       gint _tmp84__length1 = 0;
+                                       gint _tmp85_ = 0;
+                                       gchar** _tmp86_ = NULL;
+                                       gint _tmp86__length1 = 0;
+                                       gint _tmp87_ = 0;
+                                       const gchar* _tmp88_ = NULL;
+                                       gchar* _tmp89_ = NULL;
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       if (!_tmp74_) {
+#line 2608 "moonshot-server-linux.c"
+                                               gint _tmp75_ = 0;
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                               _tmp75_ = i;
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                               i = _tmp75_ + 1;
+#line 2614 "moonshot-server-linux.c"
+                                       }
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp74_ = FALSE;
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp76_ = i;
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp77_ = rules;
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp77__length1 = rules_length1;
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       if (!(_tmp76_ < _tmp77__length1)) {
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                               break;
+#line 2628 "moonshot-server-linux.c"
+                                       }
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp78_ = rules;
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp78__length1 = rules_length1;
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp79_ = i;
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp80_ = rules_patterns;
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp80__length1 = rules_patterns_length1;
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp81_ = i;
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp82_ = _tmp80_[_tmp81_];
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp83_ = g_strdup (_tmp82_);
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _g_free0 (_tmp78_[_tmp79_].pattern);
+#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp78_[_tmp79_].pattern = _tmp83_;
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp84_ = rules;
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp84__length1 = rules_length1;
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp85_ = i;
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp86_ = rules_always_confirm;
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp86__length1 = rules_always_confirm_length1;
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp87_ = i;
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp88_ = _tmp86_[_tmp87_];
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp89_ = g_strdup (_tmp88_);
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _g_free0 (_tmp84_[_tmp85_].always_confirm);
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp84_[_tmp85_].always_confirm = _tmp89_;
+#line 2670 "moonshot-server-linux.c"
+                               }
+                       }
+               }
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp90_ = idcard;
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp91_ = rules;
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _tmp91__length1 = rules_length1;
+#line 228 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               id_card_set_rules (_tmp90_, _tmp91_, _tmp91__length1);
+#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               rules = (_vala_Rule_array_free (rules, rules_length1), NULL);
+#line 2684 "moonshot-server-linux.c"
+       }
+#line 231 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       old_duplicates = NULL;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp92_ = self->priv->parent_app;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp93_ = idcard;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp94_ = force_flat_file_store;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp96_ = identity_manager_app_add_identity (_tmp92_, _tmp93_, _tmp94_ != 0, &_tmp95_);
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (old_duplicates);
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       old_duplicates = _tmp95_;
+#line 232 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       ret = _tmp96_;
+#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp97_ = old_duplicates;
+#line 234 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_tmp97_ != NULL) {
+#line 2706 "moonshot-server-linux.c"
+               {
+                       GeeArrayList* _id_card_list = NULL;
+                       GeeArrayList* _tmp98_ = NULL;
+                       GeeArrayList* _tmp99_ = NULL;
+                       gint _id_card_size = 0;
+                       GeeArrayList* _tmp100_ = NULL;
+                       gint _tmp101_ = 0;
+                       gint _tmp102_ = 0;
+                       gint _id_card_index = 0;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _tmp98_ = old_duplicates;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _tmp99_ = _g_object_ref0 (_tmp98_);
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _id_card_list = _tmp99_;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _tmp100_ = _id_card_list;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _tmp101_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp100_);
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _tmp102_ = _tmp101_;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _id_card_size = _tmp102_;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _id_card_index = -1;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       while (TRUE) {
+#line 2734 "moonshot-server-linux.c"
+                               gint _tmp103_ = 0;
+                               gint _tmp104_ = 0;
+                               gint _tmp105_ = 0;
+                               IdCard* id_card = NULL;
+                               GeeArrayList* _tmp106_ = NULL;
+                               gint _tmp107_ = 0;
+                               gpointer _tmp108_ = NULL;
+                               FILE* _tmp109_ = NULL;
+                               IdCard* _tmp110_ = NULL;
+                               const gchar* _tmp111_ = NULL;
+                               const gchar* _tmp112_ = NULL;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp103_ = _id_card_index;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _id_card_index = _tmp103_ + 1;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp104_ = _id_card_index;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp105_ = _id_card_size;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               if (!(_tmp104_ < _tmp105_)) {
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       break;
+#line 2758 "moonshot-server-linux.c"
+                               }
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp106_ = _id_card_list;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp107_ = _id_card_index;
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp108_ = gee_abstract_list_get ((GeeAbstractList*) _tmp106_, _tmp107_);
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               id_card = (IdCard*) _tmp108_;
+#line 238 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp109_ = stdout;
+#line 238 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp110_ = id_card;
+#line 238 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp111_ = id_card_get_nai (_tmp110_);
+#line 238 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp112_ = _tmp111_;
+#line 238 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               fprintf (_tmp109_, "removed duplicate id for '%s'\n", _tmp112_);
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _g_object_unref0 (id_card);
+#line 2780 "moonshot-server-linux.c"
+                       }
+#line 237 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _g_object_unref0 (_id_card_list);
+#line 2784 "moonshot-server-linux.c"
+               }
+       }
+#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       result = ret;
+#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (old_duplicates);
+#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (ta);
+#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (idcard);
+#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return result;
+#line 2797 "moonshot-server-linux.c"
+}
+
+
+gint moonshot_server_install_from_file (MoonshotServer* self, const gchar* file_name) {
+       gint result = 0;
+       WebProvisioningParser* webp = NULL;
+       const gchar* _tmp0_ = NULL;
+       WebProvisioningParser* _tmp1_ = NULL;
+       WebProvisioningParser* _tmp2_ = NULL;
+       gboolean _result_ = FALSE;
+       gint installed_cards = 0;
+       WebProvisioningParser* _tmp3_ = NULL;
+       IdCard** _tmp4_ = NULL;
+       gint _tmp4__length1 = 0;
+       IdCard** _tmp5_ = NULL;
+       gint _tmp5__length1 = 0;
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_return_val_if_fail (self != NULL, 0);
+#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_return_val_if_fail (file_name != NULL, 0);
+#line 247 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp0_ = file_name;
+#line 247 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp1_ = web_provisioning_parser_new (_tmp0_);
+#line 247 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       webp = _tmp1_;
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp2_ = webp;
+#line 249 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       web_provisioning_parser_parse (_tmp2_);
+#line 250 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _result_ = FALSE;
+#line 251 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       installed_cards = 0;
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp3_ = webp;
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp4_ = web_provisioning_parser_get_cards (_tmp3_, &_tmp4__length1);
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp5_ = _tmp4_;
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp5__length1 = _tmp4__length1;
+#line 2840 "moonshot-server-linux.c"
+       {
+               IdCard** card_collection = NULL;
+               gint card_collection_length1 = 0;
+               gint _card_collection_size_ = 0;
+               gint card_it = 0;
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               card_collection = _tmp5_;
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               card_collection_length1 = _tmp5__length1;
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               for (card_it = 0; card_it < _tmp5__length1; card_it = card_it + 1) {
+#line 2852 "moonshot-server-linux.c"
+                       IdCard* _tmp6_ = NULL;
+                       IdCard* card = NULL;
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       _tmp6_ = _g_object_ref0 (card_collection[card_it]);
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                       card = _tmp6_;
+#line 2859 "moonshot-server-linux.c"
+                       {
+                               gchar** rules_patterns = NULL;
+                               gchar** _tmp7_ = NULL;
+                               gint rules_patterns_length1 = 0;
+                               gint _rules_patterns_size_ = 0;
+                               gchar** rules_always_confirm = NULL;
+                               gchar** _tmp8_ = NULL;
+                               gint rules_always_confirm_length1 = 0;
+                               gint _rules_always_confirm_size_ = 0;
+                               IdCard* _tmp9_ = NULL;
+                               Rule* _tmp10_ = NULL;
+                               gint _tmp10__length1 = 0;
+                               Rule* _tmp11_ = NULL;
+                               gint _tmp11__length1 = 0;
+                               gchar** svcs = NULL;
+                               IdCard* _tmp37_ = NULL;
+                               GeeArrayList* _tmp38_ = NULL;
+                               GeeArrayList* _tmp39_ = NULL;
+                               gint _tmp40_ = 0;
+                               gint _tmp41_ = 0;
+                               gchar** _tmp42_ = NULL;
+                               gint svcs_length1 = 0;
+                               gint _svcs_size_ = 0;
+                               MoonshotLogger* _tmp59_ = NULL;
+                               IdCard* _tmp60_ = NULL;
+                               const gchar* _tmp61_ = NULL;
+                               const gchar* _tmp62_ = NULL;
+                               const gchar* _tmp63_ = NULL;
+                               gchar* _tmp64_ = NULL;
+                               gchar* _tmp65_ = NULL;
+                               IdCard* _tmp66_ = NULL;
+                               const gchar* _tmp67_ = NULL;
+                               const gchar* _tmp68_ = NULL;
+                               IdCard* _tmp69_ = NULL;
+                               const gchar* _tmp70_ = NULL;
+                               const gchar* _tmp71_ = NULL;
+                               IdCard* _tmp72_ = NULL;
+                               const gchar* _tmp73_ = NULL;
+                               const gchar* _tmp74_ = NULL;
+                               IdCard* _tmp75_ = NULL;
+                               const gchar* _tmp76_ = NULL;
+                               const gchar* _tmp77_ = NULL;
+                               gchar** _tmp78_ = NULL;
+                               gint _tmp78__length1 = 0;
+                               gchar** _tmp79_ = NULL;
+                               gint _tmp79__length1 = 0;
+                               gchar** _tmp80_ = NULL;
+                               gint _tmp80__length1 = 0;
+                               IdCard* _tmp81_ = NULL;
+                               TrustAnchor* _tmp82_ = NULL;
+                               TrustAnchor* _tmp83_ = NULL;
+                               const gchar* _tmp84_ = NULL;
+                               const gchar* _tmp85_ = NULL;
+                               IdCard* _tmp86_ = NULL;
+                               TrustAnchor* _tmp87_ = NULL;
+                               TrustAnchor* _tmp88_ = NULL;
+                               const gchar* _tmp89_ = NULL;
+                               const gchar* _tmp90_ = NULL;
+                               IdCard* _tmp91_ = NULL;
+                               TrustAnchor* _tmp92_ = NULL;
+                               TrustAnchor* _tmp93_ = NULL;
+                               const gchar* _tmp94_ = NULL;
+                               const gchar* _tmp95_ = NULL;
+                               IdCard* _tmp96_ = NULL;
+                               TrustAnchor* _tmp97_ = NULL;
+                               TrustAnchor* _tmp98_ = NULL;
+                               const gchar* _tmp99_ = NULL;
+                               const gchar* _tmp100_ = NULL;
+                               gboolean _tmp101_ = FALSE;
+                               gboolean _tmp102_ = FALSE;
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp7_ = g_new0 (gchar*, 0 + 1);
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               rules_patterns = _tmp7_;
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               rules_patterns_length1 = 0;
+#line 254 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _rules_patterns_size_ = rules_patterns_length1;
+#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp8_ = g_new0 (gchar*, 0 + 1);
+#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               rules_always_confirm = _tmp8_;
+#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               rules_always_confirm_length1 = 0;
+#line 255 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _rules_always_confirm_size_ = rules_always_confirm_length1;
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp9_ = card;
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp10_ = id_card_get_rules (_tmp9_, &_tmp10__length1);
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp11_ = _tmp10_;
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp11__length1 = _tmp10__length1;
+#line 257 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               if (_tmp11__length1 > 0) {
+#line 2956 "moonshot-server-linux.c"
+                                       gint i = 0;
+                                       IdCard* _tmp12_ = NULL;
+                                       Rule* _tmp13_ = NULL;
+                                       gint _tmp13__length1 = 0;
+                                       Rule* _tmp14_ = NULL;
+                                       gint _tmp14__length1 = 0;
+                                       gchar** _tmp15_ = NULL;
+                                       IdCard* _tmp16_ = NULL;
+                                       Rule* _tmp17_ = NULL;
+                                       gint _tmp17__length1 = 0;
+                                       Rule* _tmp18_ = NULL;
+                                       gint _tmp18__length1 = 0;
+                                       gchar** _tmp19_ = NULL;
+                                       IdCard* _tmp20_ = NULL;
+                                       Rule* _tmp21_ = NULL;
+                                       gint _tmp21__length1 = 0;
+                                       Rule* _tmp22_ = NULL;
+                                       gint _tmp22__length1 = 0;
+#line 259 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       i = 0;
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp12_ = card;
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp13_ = id_card_get_rules (_tmp12_, &_tmp13__length1);
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp14_ = _tmp13_;
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp14__length1 = _tmp13__length1;
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp15_ = g_new0 (gchar*, _tmp14__length1 + 1);
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       rules_patterns = _tmp15_;
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       rules_patterns_length1 = _tmp14__length1;
+#line 260 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _rules_patterns_size_ = rules_patterns_length1;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp16_ = card;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp17_ = id_card_get_rules (_tmp16_, &_tmp17__length1);
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp18_ = _tmp17_;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp18__length1 = _tmp17__length1;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp19_ = g_new0 (gchar*, _tmp18__length1 + 1);
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL);
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       rules_always_confirm = _tmp19_;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       rules_always_confirm_length1 = _tmp18__length1;
+#line 261 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _rules_always_confirm_size_ = rules_always_confirm_length1;
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp20_ = card;
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp21_ = id_card_get_rules (_tmp20_, &_tmp21__length1);
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp22_ = _tmp21_;
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp22__length1 = _tmp21__length1;
+#line 3021 "moonshot-server-linux.c"
+                                       {
+                                               Rule* r_collection = NULL;
+                                               gint r_collection_length1 = 0;
+                                               gint _r_collection_size_ = 0;
+                                               gint r_it = 0;
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                               r_collection = _tmp22_;
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                               r_collection_length1 = _tmp22__length1;
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                               for (r_it = 0; r_it < _tmp22__length1; r_it = r_it + 1) {
+#line 3033 "moonshot-server-linux.c"
+                                                       Rule _tmp23_ = {0};
+                                                       Rule r = {0};
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       rule_copy (&r_collection[r_it], &_tmp23_);
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       r = _tmp23_;
+#line 3040 "moonshot-server-linux.c"
+                                                       {
+                                                               gchar** _tmp24_ = NULL;
+                                                               gint _tmp24__length1 = 0;
+                                                               gint _tmp25_ = 0;
+                                                               Rule _tmp26_ = {0};
+                                                               const gchar* _tmp27_ = NULL;
+                                                               gchar* _tmp28_ = NULL;
+                                                               gchar* _tmp29_ = NULL;
+                                                               gchar** _tmp30_ = NULL;
+                                                               gint _tmp30__length1 = 0;
+                                                               gint _tmp31_ = 0;
+                                                               Rule _tmp32_ = {0};
+                                                               const gchar* _tmp33_ = NULL;
+                                                               gchar* _tmp34_ = NULL;
+                                                               gchar* _tmp35_ = NULL;
+                                                               gint _tmp36_ = 0;
+#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp24_ = rules_patterns;
+#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp24__length1 = rules_patterns_length1;
+#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp25_ = i;
+#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp26_ = r;
+#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp27_ = _tmp26_.pattern;
+#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp28_ = g_strdup (_tmp27_);
+#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _g_free0 (_tmp24_[_tmp25_]);
+#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp24_[_tmp25_] = _tmp28_;
+#line 264 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp29_ = _tmp24_[_tmp25_];
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp30_ = rules_always_confirm;
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp30__length1 = rules_always_confirm_length1;
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp31_ = i;
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp32_ = r;
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp33_ = _tmp32_.always_confirm;
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp34_ = g_strdup (_tmp33_);
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _g_free0 (_tmp30_[_tmp31_]);
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp30_[_tmp31_] = _tmp34_;
+#line 265 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp35_ = _tmp30_[_tmp31_];
+#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp36_ = i;
+#line 266 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               i = _tmp36_ + 1;
+#line 262 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               rule_destroy (&r);
+#line 3099 "moonshot-server-linux.c"
+                                                       }
+                                               }
+                                       }
+                               }
+#line 276 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp37_ = card;
+#line 276 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp38_ = id_card_get_services (_tmp37_);
+#line 276 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp39_ = _tmp38_;
+#line 276 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp40_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp39_);
+#line 276 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp41_ = _tmp40_;
+#line 276 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp42_ = g_new0 (gchar*, _tmp41_ + 1);
+#line 276 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               svcs = _tmp42_;
+#line 276 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               svcs_length1 = _tmp41_;
+#line 276 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _svcs_size_ = svcs_length1;
+#line 3122 "moonshot-server-linux.c"
+                               {
+                                       gint i = 0;
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       i = 0;
+#line 3127 "moonshot-server-linux.c"
+                                       {
+                                               gboolean _tmp43_ = FALSE;
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                               _tmp43_ = TRUE;
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                               while (TRUE) {
+#line 3134 "moonshot-server-linux.c"
+                                                       gint _tmp45_ = 0;
+                                                       IdCard* _tmp46_ = NULL;
+                                                       GeeArrayList* _tmp47_ = NULL;
+                                                       GeeArrayList* _tmp48_ = NULL;
+                                                       gint _tmp49_ = 0;
+                                                       gint _tmp50_ = 0;
+                                                       gchar** _tmp51_ = NULL;
+                                                       gint _tmp51__length1 = 0;
+                                                       gint _tmp52_ = 0;
+                                                       IdCard* _tmp53_ = NULL;
+                                                       GeeArrayList* _tmp54_ = NULL;
+                                                       GeeArrayList* _tmp55_ = NULL;
+                                                       gint _tmp56_ = 0;
+                                                       gpointer _tmp57_ = NULL;
+                                                       gchar* _tmp58_ = NULL;
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       if (!_tmp43_) {
+#line 3152 "moonshot-server-linux.c"
+                                                               gint _tmp44_ = 0;
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               _tmp44_ = i;
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               i = _tmp44_ + 1;
+#line 3158 "moonshot-server-linux.c"
+                                                       }
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp43_ = FALSE;
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp45_ = i;
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp46_ = card;
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp47_ = id_card_get_services (_tmp46_);
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp48_ = _tmp47_;
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp49_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp48_);
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp50_ = _tmp49_;
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       if (!(_tmp45_ < _tmp50_)) {
+#line 277 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                               break;
+#line 3178 "moonshot-server-linux.c"
+                                                       }
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp51_ = svcs;
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp51__length1 = svcs_length1;
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp52_ = i;
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp53_ = card;
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp54_ = id_card_get_services (_tmp53_);
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp55_ = _tmp54_;
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp56_ = i;
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp57_ = gee_abstract_list_get ((GeeAbstractList*) _tmp55_, _tmp56_);
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _g_free0 (_tmp51_[_tmp52_]);
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp51_[_tmp52_] = (gchar*) _tmp57_;
+#line 278 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                                       _tmp58_ = _tmp51_[_tmp52_];
+#line 3202 "moonshot-server-linux.c"
+                                               }
+                                       }
+                               }
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp59_ = moonshot_server_logger;
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp60_ = card;
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp61_ = id_card_get_display_name (_tmp60_);
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp62_ = _tmp61_;
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp63_ = string_to_string (_tmp62_);
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp64_ = g_strconcat ("install_from_file: Adding card with display name '", _tmp63_, "'", NULL);
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp65_ = _tmp64_;
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               moonshot_logger_trace (_tmp59_, _tmp65_, NULL);
+#line 281 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _g_free0 (_tmp65_);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp66_ = card;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp67_ = id_card_get_display_name (_tmp66_);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp68_ = _tmp67_;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp69_ = card;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp70_ = id_card_get_username (_tmp69_);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp71_ = _tmp70_;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp72_ = card;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp73_ = id_card_get_password (_tmp72_);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp74_ = _tmp73_;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp75_ = card;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp76_ = id_card_get_issuer (_tmp75_);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp77_ = _tmp76_;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp78_ = rules_patterns;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp78__length1 = rules_patterns_length1;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp79_ = rules_always_confirm;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp79__length1 = rules_always_confirm_length1;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp80_ = svcs;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp80__length1 = svcs_length1;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp81_ = card;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp82_ = id_card_get_trust_anchor (_tmp81_);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp83_ = _tmp82_;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp84_ = trust_anchor_get_ca_cert (_tmp83_);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp85_ = _tmp84_;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp86_ = card;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp87_ = id_card_get_trust_anchor (_tmp86_);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp88_ = _tmp87_;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp89_ = trust_anchor_get_subject (_tmp88_);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp90_ = _tmp89_;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp91_ = card;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp92_ = id_card_get_trust_anchor (_tmp91_);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp93_ = _tmp92_;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp94_ = trust_anchor_get_subject_alt (_tmp93_);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp95_ = _tmp94_;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp96_ = card;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp97_ = id_card_get_trust_anchor (_tmp96_);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp98_ = _tmp97_;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp99_ = trust_anchor_get_server_cert (_tmp98_);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp100_ = _tmp99_;
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp101_ = moonshot_server_install_id_card (self, _tmp68_, _tmp71_, _tmp74_, _tmp77_, _tmp78_, _tmp78__length1, _tmp79_, _tmp79__length1, _tmp80_, _tmp80__length1, _tmp85_, _tmp90_, _tmp95_, _tmp100_, 0);
+#line 282 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _result_ = _tmp101_;
+#line 294 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _tmp102_ = _result_;
+#line 294 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               if (_tmp102_) {
+#line 3308 "moonshot-server-linux.c"
+                                       gint _tmp103_ = 0;
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       _tmp103_ = installed_cards;
+#line 295 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                                       installed_cards = _tmp103_ + 1;
+#line 3314 "moonshot-server-linux.c"
+                               }
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               svcs = (_vala_array_free (svcs, svcs_length1, (GDestroyNotify) g_free), NULL);
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL);
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
+#line 252 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+                               _g_object_unref0 (card);
+#line 3324 "moonshot-server-linux.c"
+                       }
+               }
+       }
+#line 298 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       result = installed_cards;
+#line 298 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (webp);
+#line 298 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return result;
+#line 3334 "moonshot-server-linux.c"
+}
+
+
+static void moonshot_server_confirm_ca_certificate_data_free (gpointer _data) {
+       MoonshotServerConfirmCaCertificateData* _data_;
+       _data_ = _data;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->nai);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->realm);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->ca_hash);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (_data_->self);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_slice_free (MoonshotServerConfirmCaCertificateData, _data_);
+#line 3351 "moonshot-server-linux.c"
+}
+
+
+void moonshot_server_confirm_ca_certificate (MoonshotServer* self, const gchar* nai, const gchar* realm, const gchar* ca_hash, GAsyncReadyCallback _callback_, gpointer _user_data_) {
+       MoonshotServerConfirmCaCertificateData* _data_;
+       MoonshotServer* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+       gchar* _tmp2_ = NULL;
+       const gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
+       const gchar* _tmp5_ = NULL;
+       gchar* _tmp6_ = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_ = g_slice_new0 (MoonshotServerConfirmCaCertificateData);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, moonshot_server_confirm_ca_certificate);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, moonshot_server_confirm_ca_certificate_data_free);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp0_ = _g_object_ref0 (self);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->self = _tmp0_;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp1_ = nai;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp2_ = g_strdup (_tmp1_);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->nai);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->nai = _tmp2_;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp3_ = realm;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp4_ = g_strdup (_tmp3_);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->realm);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->realm = _tmp4_;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp5_ = ca_hash;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp6_ = g_strdup (_tmp5_);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->ca_hash);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->ca_hash = _tmp6_;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_server_confirm_ca_certificate_co (_data_);
+#line 3400 "moonshot-server-linux.c"
+}
+
+
+gboolean moonshot_server_confirm_ca_certificate_finish (MoonshotServer* self, GAsyncResult* _res_, gint* confirmed) {
+       gboolean result;
+       MoonshotServerConfirmCaCertificateData* _data_;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (confirmed) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               *confirmed = _data_->confirmed;
+#line 3413 "moonshot-server-linux.c"
+       }
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       result = _data_->result;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return result;
+#line 3419 "moonshot-server-linux.c"
+}
+
+
+static Block9Data* block9_data_ref (Block9Data* _data9_) {
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_atomic_int_inc (&_data9_->_ref_count_);
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return _data9_;
+#line 3428 "moonshot-server-linux.c"
+}
+
+
+static void block9_data_unref (void * _userdata_) {
+       Block9Data* _data9_;
+       _data9_ = (Block9Data*) _userdata_;
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (g_atomic_int_dec_and_test (&_data9_->_ref_count_)) {
+#line 3437 "moonshot-server-linux.c"
+               MoonshotServer* self;
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               self = _data9_->self;
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _g_object_unref0 (self);
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_slice_free (Block9Data, _data9_);
+#line 3445 "moonshot-server-linux.c"
+       }
+}
+
+
+static void __lambda22_ (Block9Data* _data9_, TrustAnchorConfirmationRequest* TrustAnchorConfirmationRequest) {
+       MoonshotServer* self;
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       self = _data9_->self;
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_return_if_fail (TrustAnchorConfirmationRequest != NULL);
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_server_confirm_ca_certificate_co (_data9_->_async_data_);
+#line 3458 "moonshot-server-linux.c"
+}
+
+
+static void ___lambda22__trust_anchor_confirmation_callback (TrustAnchorConfirmationRequest* request, gpointer self) {
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       __lambda22_ (self, request);
+#line 3465 "moonshot-server-linux.c"
+}
+
+
+static gboolean moonshot_server_confirm_ca_certificate_co (MoonshotServerConfirmCaCertificateData* _data_) {
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       switch (_data_->_state_) {
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               case 0:
+#line 3474 "moonshot-server-linux.c"
+               goto _state_0;
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               case 1:
+#line 3478 "moonshot-server-linux.c"
+               goto _state_1;
+               default:
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_assert_not_reached ();
+#line 3483 "moonshot-server-linux.c"
+       }
+       _state_0:
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data9_ = g_slice_new0 (Block9Data);
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data9_->_ref_count_ = 1;
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data9_->self = g_object_ref (_data_->self);
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data9_->_async_data_ = _data_;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp0_ = NULL;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp0_ = moonshot_server_logger;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp1_ = NULL;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp1_ = _data_->nai;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp2_ = NULL;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp2_ = string_to_string (_data_->_tmp1_);
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp3_ = NULL;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp3_ = _data_->realm;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp4_ = NULL;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp4_ = string_to_string (_data_->_tmp3_);
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp5_ = NULL;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp5_ = _data_->ca_hash;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp6_ = NULL;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp6_ = string_to_string (_data_->_tmp5_);
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp7_ = NULL;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp7_ = g_strconcat ("MoonshotServer.confirm_ca_certificate: nai='", _data_->_tmp2_, "'; realm='", _data_->_tmp4_, "'; ca_hash='", _data_->_tmp6_, "'", NULL);
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp8_ = NULL;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp8_ = _data_->_tmp7_;
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_logger_trace (_data_->_tmp0_, _data_->_tmp8_, NULL);
+#line 306 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->_tmp8_);
+#line 308 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp9_ = NULL;
+#line 308 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp9_ = _data_->self->priv->parent_app;
+#line 308 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp10_ = NULL;
+#line 308 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp10_ = _data_->nai;
+#line 308 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp11_ = NULL;
+#line 308 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp11_ = _data_->realm;
+#line 308 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp12_ = NULL;
+#line 308 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp12_ = _data_->ca_hash;
+#line 308 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp13_ = NULL;
+#line 308 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp13_ = trust_anchor_confirmation_request_new (_data_->_tmp9_, _data_->_tmp10_, _data_->_tmp11_, _data_->_tmp12_);
+#line 308 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->request = _data_->_tmp13_;
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp14_ = NULL;
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp14_ = _data_->request;
+#line 309 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       trust_anchor_confirmation_request_set_callback (_data_->_tmp14_, ___lambda22__trust_anchor_confirmation_callback, block9_data_ref (_data_->_data9_), block9_data_unref);
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp15_ = NULL;
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp15_ = _data_->request;
+#line 310 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       trust_anchor_confirmation_request_execute (_data_->_tmp15_);
+#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_state_ = 1;
+#line 311 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return FALSE;
+#line 3572 "moonshot-server-linux.c"
+       _state_1:
+       ;
+#line 313 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp17_ = NULL;
+#line 313 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp17_ = _data_->request;
+#line 313 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp18_ = FALSE;
+#line 313 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp18_ = _data_->_tmp17_->confirmed;
+#line 313 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_data_->_tmp18_) {
+#line 313 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp16_ = 1;
+#line 3587 "moonshot-server-linux.c"
+       } else {
+#line 313 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               _data_->_tmp16_ = 0;
+#line 3591 "moonshot-server-linux.c"
+       }
+#line 313 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->confirmed = _data_->_tmp16_;
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp19_ = NULL;
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp19_ = moonshot_server_logger;
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp20_ = NULL;
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp20_ = g_strdup_printf ("%i", _data_->confirmed);
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp21_ = NULL;
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp21_ = _data_->_tmp20_;
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp22_ = NULL;
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp22_ = g_strconcat ("MoonshotServer.confirm_ca_certificate: confirmed=", _data_->_tmp21_, NULL);
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp23_ = NULL;
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_tmp23_ = _data_->_tmp22_;
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_logger_trace (_data_->_tmp19_, _data_->_tmp23_, NULL);
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->_tmp23_);
+#line 314 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (_data_->_tmp21_);
+#line 315 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->result = TRUE;
+#line 315 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (_data_->request);
+#line 315 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       block9_data_unref (_data_->_data9_);
+#line 315 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data9_ = NULL;
+#line 315 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_data_->_state_ == 0) {
+#line 315 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 3633 "moonshot-server-linux.c"
+       } else {
+#line 315 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_simple_async_result_complete (_data_->_async_result);
+#line 3637 "moonshot-server-linux.c"
+       }
+#line 315 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_object_unref (_data_->_async_result);
+#line 315 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return FALSE;
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_object_unref0 (_data_->request);
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       block9_data_unref (_data_->_data9_);
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _data_->_data9_ = NULL;
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       if (_data_->_state_ == 0) {
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 3653 "moonshot-server-linux.c"
+       } else {
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+               g_simple_async_result_complete (_data_->_async_result);
+#line 3657 "moonshot-server-linux.c"
+       }
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_object_unref (_data_->_async_result);
+#line 301 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       return FALSE;
+#line 3663 "moonshot-server-linux.c"
+}
+
+
+static void moonshot_server_class_init (MoonshotServerClass * klass) {
+       MoonshotLogger* _tmp0_ = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_server_parent_class = g_type_class_peek_parent (klass);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       g_type_class_add_private (klass, sizeof (MoonshotServerPrivate));
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       G_OBJECT_CLASS (klass)->finalize = moonshot_server_finalize;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp0_ = get_logger ("MoonshotServer");
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       moonshot_server_logger = _tmp0_;
+#line 3679 "moonshot-server-linux.c"
+}
+
+
+static void moonshot_server_instance_init (MoonshotServer * self) {
+       gchar* _tmp0_ = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       self->priv = MOONSHOT_SERVER_GET_PRIVATE (self);
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _tmp0_ = g_strdup ("Moonshot");
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       self->priv->app_name = _tmp0_;
+#line 3691 "moonshot-server-linux.c"
+}
+
+
+static void moonshot_server_finalize (GObject* obj) {
+       MoonshotServer * self;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MOONSHOT_SERVER, MoonshotServer);
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _g_free0 (self->priv->app_name);
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       _identity_manager_app_unref0 (self->priv->parent_app);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server-linux.vala"
+       G_OBJECT_CLASS (moonshot_server_parent_class)->finalize (obj);
+#line 3705 "moonshot-server-linux.c"
+}
+
+
+GType moonshot_server_get_type (void) {
+       static volatile gsize moonshot_server_type_id__volatile = 0;
+       if (g_once_init_enter (&moonshot_server_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (MoonshotServerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) moonshot_server_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MoonshotServer), 0, (GInstanceInitFunc) moonshot_server_instance_init, NULL };
+               GType moonshot_server_type_id;
+               moonshot_server_type_id = g_type_register_static (G_TYPE_OBJECT, "MoonshotServer", &g_define_type_info, 0);
+               g_type_set_qdata (moonshot_server_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) moonshot_server_register_object);
+               g_once_init_leave (&moonshot_server_type_id__volatile, moonshot_server_type_id);
+       }
+       return moonshot_server_type_id__volatile;
+}
+
+
+static void _dbus_moonshot_server_show_ui (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
+       GError* error = NULL;
+       GVariantIter _arguments_iter;
+       GDBusMessage* _reply_message = NULL;
+       GVariant* _reply;
+       GVariantBuilder _reply_builder;
+       gboolean result;
+       g_variant_iter_init (&_arguments_iter, _parameters_);
+       result = moonshot_server_show_ui (self);
+       _reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
+       g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
+       _reply = g_variant_builder_end (&_reply_builder);
+       g_dbus_message_set_body (_reply_message, _reply);
+       g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
+       g_object_unref (invocation);
+       g_object_unref (_reply_message);
+}
+
+
+static void _dbus_moonshot_server_get_identity (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
+       GVariantIter _arguments_iter;
+       gchar* nai = NULL;
+       GVariant* _tmp3_;
+       gchar* password = NULL;
+       GVariant* _tmp4_;
+       gchar* service = NULL;
+       GVariant* _tmp5_;
+       g_variant_iter_init (&_arguments_iter, _parameters_);
+       _tmp3_ = g_variant_iter_next_value (&_arguments_iter);
+       nai = g_variant_dup_string (_tmp3_, NULL);
+       g_variant_unref (_tmp3_);
+       _tmp4_ = g_variant_iter_next_value (&_arguments_iter);
+       password = g_variant_dup_string (_tmp4_, NULL);
+       g_variant_unref (_tmp4_);
+       _tmp5_ = g_variant_iter_next_value (&_arguments_iter);
+       service = g_variant_dup_string (_tmp5_, NULL);
+       g_variant_unref (_tmp5_);
+       moonshot_server_get_identity (self, nai, password, service, (GAsyncReadyCallback) _dbus_moonshot_server_get_identity_ready, invocation);
+       _g_free0 (nai);
+       _g_free0 (password);
+       _g_free0 (service);
+}
+
+
+static void _dbus_moonshot_server_get_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer _user_data_) {
+       GDBusMethodInvocation * invocation;
+       GError* error = NULL;
+       GDBusMessage* _reply_message = NULL;
+       GVariant* _reply;
+       GVariantBuilder _reply_builder;
+       gchar* nai_out = NULL;
+       gchar* password_out = NULL;
+       gchar* server_certificate_hash = NULL;
+       gchar* ca_certificate = NULL;
+       gchar* subject_name_constraint = NULL;
+       gchar* subject_alt_name_constraint = NULL;
+       gboolean result;
+       invocation = _user_data_;
+       result = moonshot_server_get_identity_finish ((MoonshotServer*) source_object, _res_, &nai_out, &password_out, &server_certificate_hash, &ca_certificate, &subject_name_constraint, &subject_alt_name_constraint);
+       _reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
+       g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (nai_out));
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (password_out));
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (server_certificate_hash));
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (ca_certificate));
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (subject_name_constraint));
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (subject_alt_name_constraint));
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
+       _reply = g_variant_builder_end (&_reply_builder);
+       g_dbus_message_set_body (_reply_message, _reply);
+       g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
+       g_object_unref (invocation);
+       g_object_unref (_reply_message);
+       _g_free0 (nai_out);
+       _g_free0 (password_out);
+       _g_free0 (server_certificate_hash);
+       _g_free0 (ca_certificate);
+       _g_free0 (subject_name_constraint);
+       _g_free0 (subject_alt_name_constraint);
+}
+
+
+static void _dbus_moonshot_server_get_default_identity (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
+       GVariantIter _arguments_iter;
+       g_variant_iter_init (&_arguments_iter, _parameters_);
+       moonshot_server_get_default_identity (self, (GAsyncReadyCallback) _dbus_moonshot_server_get_default_identity_ready, invocation);
+}
+
+
+static void _dbus_moonshot_server_get_default_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer _user_data_) {
+       GDBusMethodInvocation * invocation;
+       GError* error = NULL;
+       GDBusMessage* _reply_message = NULL;
+       GVariant* _reply;
+       GVariantBuilder _reply_builder;
+       gchar* nai_out = NULL;
+       gchar* password_out = NULL;
+       gchar* server_certificate_hash = NULL;
+       gchar* ca_certificate = NULL;
+       gchar* subject_name_constraint = NULL;
+       gchar* subject_alt_name_constraint = NULL;
+       gboolean result;
+       invocation = _user_data_;
+       result = moonshot_server_get_default_identity_finish ((MoonshotServer*) source_object, _res_, &nai_out, &password_out, &server_certificate_hash, &ca_certificate, &subject_name_constraint, &subject_alt_name_constraint);
+       _reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
+       g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (nai_out));
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (password_out));
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (server_certificate_hash));
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (ca_certificate));
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (subject_name_constraint));
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (subject_alt_name_constraint));
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
+       _reply = g_variant_builder_end (&_reply_builder);
+       g_dbus_message_set_body (_reply_message, _reply);
+       g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
+       g_object_unref (invocation);
+       g_object_unref (_reply_message);
+       _g_free0 (nai_out);
+       _g_free0 (password_out);
+       _g_free0 (server_certificate_hash);
+       _g_free0 (ca_certificate);
+       _g_free0 (subject_name_constraint);
+       _g_free0 (subject_alt_name_constraint);
+}
+
+
+static void _dbus_moonshot_server_install_id_card (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
+       GError* error = NULL;
+       GVariantIter _arguments_iter;
+       gchar* display_name = NULL;
+       GVariant* _tmp6_;
+       gchar* user_name = NULL;
+       GVariant* _tmp7_;
+       gchar* password = NULL;
+       GVariant* _tmp8_;
+       gchar* realm = NULL;
+       GVariant* _tmp9_;
+       gchar** rules_patterns = NULL;
+       int rules_patterns_length1 = 0;
+       GVariant* _tmp10_;
+       gchar** _tmp11_;
+       int _tmp11__length;
+       int _tmp11__size;
+       int _tmp11__length1;
+       GVariantIter _tmp12_;
+       GVariant* _tmp13_;
+       gchar** rules_always_confirm = NULL;
+       int rules_always_confirm_length1 = 0;
+       GVariant* _tmp14_;
+       gchar** _tmp15_;
+       int _tmp15__length;
+       int _tmp15__size;
+       int _tmp15__length1;
+       GVariantIter _tmp16_;
+       GVariant* _tmp17_;
+       gchar** services = NULL;
+       int services_length1 = 0;
+       GVariant* _tmp18_;
+       gchar** _tmp19_;
+       int _tmp19__length;
+       int _tmp19__size;
+       int _tmp19__length1;
+       GVariantIter _tmp20_;
+       GVariant* _tmp21_;
+       gchar* ca_cert = NULL;
+       GVariant* _tmp22_;
+       gchar* subject = NULL;
+       GVariant* _tmp23_;
+       gchar* subject_alt = NULL;
+       GVariant* _tmp24_;
+       gchar* server_cert = NULL;
+       GVariant* _tmp25_;
+       gint force_flat_file_store = 0;
+       GVariant* _tmp26_;
+       GDBusMessage* _reply_message = NULL;
+       GVariant* _reply;
+       GVariantBuilder _reply_builder;
+       gboolean result;
+       g_variant_iter_init (&_arguments_iter, _parameters_);
+       _tmp6_ = g_variant_iter_next_value (&_arguments_iter);
+       display_name = g_variant_dup_string (_tmp6_, NULL);
+       g_variant_unref (_tmp6_);
+       _tmp7_ = g_variant_iter_next_value (&_arguments_iter);
+       user_name = g_variant_dup_string (_tmp7_, NULL);
+       g_variant_unref (_tmp7_);
+       _tmp8_ = g_variant_iter_next_value (&_arguments_iter);
+       password = g_variant_dup_string (_tmp8_, NULL);
+       g_variant_unref (_tmp8_);
+       _tmp9_ = g_variant_iter_next_value (&_arguments_iter);
+       realm = g_variant_dup_string (_tmp9_, NULL);
+       g_variant_unref (_tmp9_);
+       _tmp10_ = g_variant_iter_next_value (&_arguments_iter);
+       _tmp11_ = g_new (gchar*, 5);
+       _tmp11__length = 0;
+       _tmp11__size = 4;
+       _tmp11__length1 = 0;
+       g_variant_iter_init (&_tmp12_, _tmp10_);
+       for (; (_tmp13_ = g_variant_iter_next_value (&_tmp12_)) != NULL; _tmp11__length1++) {
+               if (_tmp11__size == _tmp11__length) {
+                       _tmp11__size = 2 * _tmp11__size;
+                       _tmp11_ = g_renew (gchar*, _tmp11_, _tmp11__size + 1);
+               }
+               _tmp11_[_tmp11__length++] = g_variant_dup_string (_tmp13_, NULL);
+               g_variant_unref (_tmp13_);
+       }
+       rules_patterns_length1 = _tmp11__length1;
+       _tmp11_[_tmp11__length] = NULL;
+       rules_patterns = _tmp11_;
+       g_variant_unref (_tmp10_);
+       _tmp14_ = g_variant_iter_next_value (&_arguments_iter);
+       _tmp15_ = g_new (gchar*, 5);
+       _tmp15__length = 0;
+       _tmp15__size = 4;
+       _tmp15__length1 = 0;
+       g_variant_iter_init (&_tmp16_, _tmp14_);
+       for (; (_tmp17_ = g_variant_iter_next_value (&_tmp16_)) != NULL; _tmp15__length1++) {
+               if (_tmp15__size == _tmp15__length) {
+                       _tmp15__size = 2 * _tmp15__size;
+                       _tmp15_ = g_renew (gchar*, _tmp15_, _tmp15__size + 1);
+               }
+               _tmp15_[_tmp15__length++] = g_variant_dup_string (_tmp17_, NULL);
+               g_variant_unref (_tmp17_);
+       }
+       rules_always_confirm_length1 = _tmp15__length1;
+       _tmp15_[_tmp15__length] = NULL;
+       rules_always_confirm = _tmp15_;
+       g_variant_unref (_tmp14_);
+       _tmp18_ = g_variant_iter_next_value (&_arguments_iter);
+       _tmp19_ = g_new (gchar*, 5);
+       _tmp19__length = 0;
+       _tmp19__size = 4;
+       _tmp19__length1 = 0;
+       g_variant_iter_init (&_tmp20_, _tmp18_);
+       for (; (_tmp21_ = g_variant_iter_next_value (&_tmp20_)) != NULL; _tmp19__length1++) {
+               if (_tmp19__size == _tmp19__length) {
+                       _tmp19__size = 2 * _tmp19__size;
+                       _tmp19_ = g_renew (gchar*, _tmp19_, _tmp19__size + 1);
+               }
+               _tmp19_[_tmp19__length++] = g_variant_dup_string (_tmp21_, NULL);
+               g_variant_unref (_tmp21_);
+       }
+       services_length1 = _tmp19__length1;
+       _tmp19_[_tmp19__length] = NULL;
+       services = _tmp19_;
+       g_variant_unref (_tmp18_);
+       _tmp22_ = g_variant_iter_next_value (&_arguments_iter);
+       ca_cert = g_variant_dup_string (_tmp22_, NULL);
+       g_variant_unref (_tmp22_);
+       _tmp23_ = g_variant_iter_next_value (&_arguments_iter);
+       subject = g_variant_dup_string (_tmp23_, NULL);
+       g_variant_unref (_tmp23_);
+       _tmp24_ = g_variant_iter_next_value (&_arguments_iter);
+       subject_alt = g_variant_dup_string (_tmp24_, NULL);
+       g_variant_unref (_tmp24_);
+       _tmp25_ = g_variant_iter_next_value (&_arguments_iter);
+       server_cert = g_variant_dup_string (_tmp25_, NULL);
+       g_variant_unref (_tmp25_);
+       _tmp26_ = g_variant_iter_next_value (&_arguments_iter);
+       force_flat_file_store = g_variant_get_int32 (_tmp26_);
+       g_variant_unref (_tmp26_);
+       result = moonshot_server_install_id_card (self, display_name, user_name, password, realm, rules_patterns, rules_patterns_length1, rules_always_confirm, rules_always_confirm_length1, services, services_length1, ca_cert, subject, subject_alt, server_cert, force_flat_file_store);
+       _reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
+       g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
+       _reply = g_variant_builder_end (&_reply_builder);
+       g_dbus_message_set_body (_reply_message, _reply);
+       g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
+       g_object_unref (invocation);
+       g_object_unref (_reply_message);
+       _g_free0 (display_name);
+       _g_free0 (user_name);
+       _g_free0 (password);
+       _g_free0 (realm);
+       rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
+       rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL);
+       services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_free), NULL);
+       _g_free0 (ca_cert);
+       _g_free0 (subject);
+       _g_free0 (subject_alt);
+       _g_free0 (server_cert);
+}
+
+
+static void _dbus_moonshot_server_install_from_file (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
+       GError* error = NULL;
+       GVariantIter _arguments_iter;
+       gchar* file_name = NULL;
+       GVariant* _tmp27_;
+       GDBusMessage* _reply_message = NULL;
+       GVariant* _reply;
+       GVariantBuilder _reply_builder;
+       gint result;
+       g_variant_iter_init (&_arguments_iter, _parameters_);
+       _tmp27_ = g_variant_iter_next_value (&_arguments_iter);
+       file_name = g_variant_dup_string (_tmp27_, NULL);
+       g_variant_unref (_tmp27_);
+       result = moonshot_server_install_from_file (self, file_name);
+       _reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
+       g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_int32 (result));
+       _reply = g_variant_builder_end (&_reply_builder);
+       g_dbus_message_set_body (_reply_message, _reply);
+       g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
+       g_object_unref (invocation);
+       g_object_unref (_reply_message);
+       _g_free0 (file_name);
+}
+
+
+static void _dbus_moonshot_server_confirm_ca_certificate (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
+       GVariantIter _arguments_iter;
+       gchar* nai = NULL;
+       GVariant* _tmp28_;
+       gchar* realm = NULL;
+       GVariant* _tmp29_;
+       gchar* ca_hash = NULL;
+       GVariant* _tmp30_;
+       g_variant_iter_init (&_arguments_iter, _parameters_);
+       _tmp28_ = g_variant_iter_next_value (&_arguments_iter);
+       nai = g_variant_dup_string (_tmp28_, NULL);
+       g_variant_unref (_tmp28_);
+       _tmp29_ = g_variant_iter_next_value (&_arguments_iter);
+       realm = g_variant_dup_string (_tmp29_, NULL);
+       g_variant_unref (_tmp29_);
+       _tmp30_ = g_variant_iter_next_value (&_arguments_iter);
+       ca_hash = g_variant_dup_string (_tmp30_, NULL);
+       g_variant_unref (_tmp30_);
+       moonshot_server_confirm_ca_certificate (self, nai, realm, ca_hash, (GAsyncReadyCallback) _dbus_moonshot_server_confirm_ca_certificate_ready, invocation);
+       _g_free0 (nai);
+       _g_free0 (realm);
+       _g_free0 (ca_hash);
+}
+
+
+static void _dbus_moonshot_server_confirm_ca_certificate_ready (GObject * source_object, GAsyncResult * _res_, gpointer _user_data_) {
+       GDBusMethodInvocation * invocation;
+       GError* error = NULL;
+       GDBusMessage* _reply_message = NULL;
+       GVariant* _reply;
+       GVariantBuilder _reply_builder;
+       gint confirmed = 0;
+       gboolean result;
+       invocation = _user_data_;
+       result = moonshot_server_confirm_ca_certificate_finish ((MoonshotServer*) source_object, _res_, &confirmed);
+       _reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
+       g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_int32 (confirmed));
+       g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
+       _reply = g_variant_builder_end (&_reply_builder);
+       g_dbus_message_set_body (_reply_message, _reply);
+       g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
+       g_object_unref (invocation);
+       g_object_unref (_reply_message);
+}
+
+
+static void moonshot_server_dbus_interface_method_call (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* method_name, GVariant* parameters, GDBusMethodInvocation* invocation, gpointer user_data) {
+       gpointer* data;
+       gpointer object;
+       data = user_data;
+       object = data[0];
+       if (strcmp (method_name, "ShowUi") == 0) {
+               _dbus_moonshot_server_show_ui (object, parameters, invocation);
+       } else if (strcmp (method_name, "GetIdentity") == 0) {
+               _dbus_moonshot_server_get_identity (object, parameters, invocation);
+       } else if (strcmp (method_name, "GetDefaultIdentity") == 0) {
+               _dbus_moonshot_server_get_default_identity (object, parameters, invocation);
+       } else if (strcmp (method_name, "InstallIdCard") == 0) {
+               _dbus_moonshot_server_install_id_card (object, parameters, invocation);
+       } else if (strcmp (method_name, "InstallFromFile") == 0) {
+               _dbus_moonshot_server_install_from_file (object, parameters, invocation);
+       } else if (strcmp (method_name, "ConfirmCaCertificate") == 0) {
+               _dbus_moonshot_server_confirm_ca_certificate (object, parameters, invocation);
+       } else {
+               g_object_unref (invocation);
+       }
+}
+
+
+static GVariant* moonshot_server_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data) {
+       gpointer* data;
+       gpointer object;
+       data = user_data;
+       object = data[0];
+       return NULL;
+}
+
+
+static gboolean moonshot_server_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data) {
+       gpointer* data;
+       gpointer object;
+       data = user_data;
+       object = data[0];
+       return FALSE;
+}
+
+
+guint moonshot_server_register_object (gpointer object, GDBusConnection* connection, const gchar* path, GError** error) {
+       guint result;
+       gpointer *data;
+       data = g_new (gpointer, 3);
+       data[0] = g_object_ref (object);
+       data[1] = g_object_ref (connection);
+       data[2] = g_strdup (path);
+       result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_moonshot_server_dbus_interface_info), &_moonshot_server_dbus_interface_vtable, data, _moonshot_server_unregister_object, error);
+       if (!result) {
+               return 0;
+       }
+       return result;
+}
+
+
+static void _moonshot_server_unregister_object (gpointer user_data) {
+       gpointer* data;
+       data = user_data;
+       g_object_unref (data[0]);
+       g_object_unref (data[1]);
+       g_free (data[2]);
+       g_free (data);
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+       if ((array != NULL) && (destroy_func != NULL)) {
+               int i;
+               for (i = 0; i < array_length; i = i + 1) {
+                       if (((gpointer*) array)[i] != NULL) {
+                               destroy_func (((gpointer*) array)[i]);
+                       }
+               }
+       }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+       _vala_array_destroy (array, array_length, destroy_func);
+       g_free (array);
+}
+
+
+
diff --git a/src/moonshot-server-linux.vala b/src/moonshot-server-linux.vala
new file mode 100644 (file)
index 0000000..4aecef2
--- /dev/null
@@ -0,0 +1,317 @@
+/*
+ * Copyright (c) 2011-2016, JANET(UK)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of JANET(UK) nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+*/
+
+using Gee;
+
+[DBus (name = "org.janet.Moonshot")]
+public class MoonshotServer : Object {
+
+    static MoonshotLogger logger = get_logger("MoonshotServer");
+
+    private string app_name = "Moonshot";
+
+    private IdentityManagerApp parent_app;
+
+    public MoonshotServer(IdentityManagerApp app)
+    {
+        logger.trace("MoonshotServer.<constructor>; app=" + (app == null ? "null" : "non-null"));
+        this.parent_app = app;
+    }
+
+    public bool show_ui()
+    {
+        logger.trace("MoonshotServer.show_ui");
+
+        if (parent_app.view == null) {
+            stderr.printf(app_name, "show_ui: parent_app.view is null!\n");
+            logger.warn("show_ui: parent_app.view is null!");
+            return false;
+        }
+        parent_app.show();
+        parent_app.explicitly_launched = true;
+        logger.trace("MoonshotServer.show_ui: returning true");
+        return true;
+    }
+
+    public async bool get_identity(string nai,
+                                   string password,
+                                   string service,
+                                   out string nai_out,
+                                   out string password_out,
+                                   out string server_certificate_hash,
+                                   out string ca_certificate,
+                                   out string subject_name_constraint,
+                                   out string subject_alt_name_constraint)
+    {
+        logger.trace(@"MoonshotServer.get_identity: nai='$nai'; service='$service'");
+        var request = new IdentityRequest(parent_app,
+                                          nai,
+                                          password,
+                                          service);
+        logger.trace(@"MoonshotServer.get_identity: Calling request.execute()");
+        request.set_callback((IdentityRequest) => get_identity.callback());
+        request.execute();
+        logger.trace(@"MoonshotServer.get_identity: Back from request.execute()");
+        yield;
+        logger.trace(@"MoonshotServer.get_identity: back from yield");
+
+        nai_out = "";
+        password_out = "";
+        server_certificate_hash = "";
+        ca_certificate = "";
+        subject_name_constraint = "";
+        subject_alt_name_constraint = "";
+
+        var id_card = request.id_card;
+
+        if ((id_card != null) && (!id_card.is_no_identity())) {
+            nai_out = id_card.nai;
+            if ((request.password != null) && (request.password != ""))
+                password_out = request.password;
+            else
+                password_out = id_card.password;
+
+            server_certificate_hash = id_card.trust_anchor.server_cert;
+            ca_certificate = id_card.trust_anchor.ca_cert;
+            subject_name_constraint = id_card.trust_anchor.subject;
+            subject_alt_name_constraint = id_card.trust_anchor.subject_alt;
+
+            if (nai_out == null)
+                nai_out = "";
+            if (password_out == null)
+                password_out = "";
+            if (server_certificate_hash == null)
+                server_certificate_hash = "";
+            if (ca_certificate == null)
+                ca_certificate = "";
+            if (subject_name_constraint == null)
+                subject_name_constraint = "";
+            if (subject_alt_name_constraint == null)
+                subject_alt_name_constraint = "";
+
+            logger.trace(@"MoonshotServer.get_identity: returning with nai_out=$nai_out");
+
+            return true;
+        }
+
+        logger.trace("MoonshotServer.get_identity: returning false");
+        return false;
+    }
+
+    public async bool get_default_identity(out string nai_out,
+                                           out string password_out,
+                                           out string server_certificate_hash,
+                                           out string ca_certificate,
+                                           out string subject_name_constraint,
+                                           out string subject_alt_name_constraint)
+    {
+        logger.trace("MoonshotServer.get_default_identity");
+        var request = new IdentityRequest.default(parent_app);
+        request.set_callback((IdentityRequest) => get_default_identity.callback());
+        request.execute();
+        yield;
+
+        nai_out = "";
+        password_out = "";
+        server_certificate_hash = "";
+        ca_certificate = "";
+        subject_name_constraint = "";
+        subject_alt_name_constraint = "";
+
+        if (request.id_card != null)
+        {
+            nai_out = request.id_card.nai;
+            password_out = request.id_card.password;
+
+            server_certificate_hash = request.id_card.trust_anchor.server_cert;
+            ca_certificate = request.id_card.trust_anchor.ca_cert;
+            subject_name_constraint = request.id_card.trust_anchor.subject;
+            subject_alt_name_constraint = request.id_card.trust_anchor.subject_alt;
+
+            if (nai_out == null)
+                nai_out = "";
+            if (password_out == null)
+                password_out = "";
+            if (server_certificate_hash == null)
+                server_certificate_hash = "";
+            if (ca_certificate == null)
+                ca_certificate = "";
+            if (subject_name_constraint == null)
+                subject_name_constraint = "";
+            if (subject_alt_name_constraint == null)
+                subject_alt_name_constraint = "";
+
+            logger.trace("MoonshotServer.get_default_identity: returning true");
+            return true;
+        }
+
+        return false;
+    }
+
+    public bool install_id_card(string   display_name,
+                                string   user_name,
+                                string   ?password,
+                                string   ?realm,
+                                string[] ?rules_patterns,
+                                string[] ?rules_always_confirm,
+                                string[] ?services,
+                                string   ?ca_cert,
+                                string   ?subject,
+                                string   ?subject_alt,
+                                string   ?server_cert,
+                                int      force_flat_file_store)
+    {
+        IdCard idcard = new IdCard();
+
+        idcard.display_name = display_name;
+        idcard.username = user_name;
+        idcard.password = password;
+        if ((password != null) && (password != ""))
+            idcard.store_password = true;
+        idcard.issuer = realm;
+        idcard.update_services(services);
+        var ta = new TrustAnchor(ca_cert, server_cert, subject, subject_alt);
+
+        if (!ta.is_empty()) {
+            // We have to set the datetime_added here, because it isn't delivered via IPC.
+            string ta_datetime_added = TrustAnchor.format_datetime_now();
+            ta.set_datetime_added(ta_datetime_added);
+            logger.trace("install_id_card : Set ta_datetime_added for '%s' to '%s'; ca_cert='%s'; server_cert='%s'".printf(idcard.display_name, ta.datetime_added, ta.ca_cert, ta.server_cert));
+        }
+        idcard.set_trust_anchor_from_store(ta);
+
+        logger.trace("install_id_card: Card '%s' has services: '%s'"
+                     .printf(idcard.display_name, idcard.get_services_string("; ")));
+
+        logger.trace(@"Installing IdCard named '$(idcard.display_name)'; ca_cert='$(idcard.trust_anchor.ca_cert)'; server_cert='$(idcard.trust_anchor.server_cert)'");
+
+
+        if (rules_patterns.length == rules_always_confirm.length)
+        {
+            /* workaround Centos vala array property bug: use temp array */
+            Rule[] rules = new Rule[rules_patterns.length];
+         
+            for (int i = 0; i < rules.length; i++)
+            { 
+                rules[i].pattern = rules_patterns[i];
+                rules[i].always_confirm = rules_always_confirm[i];
+            }
+            idcard.rules = rules;
+        }
+
+        ArrayList<IdCard>? old_duplicates = null;
+        var ret = parent_app.add_identity(idcard, (force_flat_file_store != 0), out old_duplicates);
+
+        if (old_duplicates != null) {
+            // Printing to stdout here is ugly behavior; but it's old behavior that
+            // may be expected. (TODO: Do we need to keep this?)
+            foreach (IdCard id_card in old_duplicates) {
+                stdout.printf("removed duplicate id for '%s'\n", id_card.nai);
+            }
+        }
+        return ret;
+    }
+
+
+    public int install_from_file(string file_name)
+    {
+        var webp = new WebProvisioning.Parser(file_name);
+
+        webp.parse();
+        bool result = false;
+        int installed_cards = 0;
+        foreach (IdCard card in webp.cards)
+        {
+            string[] rules_patterns = {};
+            string[] rules_always_confirm = {};
+        
+            if (card.rules.length > 0)
+            {
+                int i = 0;
+                rules_patterns = new string[card.rules.length];
+                rules_always_confirm = new string[card.rules.length];
+                foreach (Rule r in card.rules)
+                {
+                    rules_patterns[i] = r.pattern;
+                    rules_always_confirm[i] = r.always_confirm;
+                    i++;
+                }
+            } 
+
+
+            // prevent a crash by holding the reference to otherwise
+            // unowned array(?)
+
+            // string[] svcs = card.services.to_array();
+            // string[] svcs = card.services.to_array()[:];
+            string[] svcs = new string[card.services.size];
+            for (int i = 0; i < card.services.size; i++) {
+                svcs[i] = card.services[i];
+            }
+
+            logger.trace(@"install_from_file: Adding card with display name '$(card.display_name)'");
+            result = install_id_card(card.display_name,
+                                     card.username,
+                                     card.password,
+                                     card.issuer,
+                                     rules_patterns,
+                                     rules_always_confirm,
+                                     svcs,
+                                     card.trust_anchor.ca_cert,
+                                     card.trust_anchor.subject,
+                                     card.trust_anchor.subject_alt,
+                                     card.trust_anchor.server_cert,
+                                     0);
+            if (result) {
+                installed_cards++;
+            }
+        }
+        return installed_cards;
+    }
+
+    public async bool confirm_ca_certificate(string nai,
+                                             string realm,
+                                             string ca_hash,
+                                             out int confirmed)
+    {
+        logger.trace(@"MoonshotServer.confirm_ca_certificate: nai='$nai'; realm='$realm'; ca_hash='$ca_hash'");
+
+        var request = new TrustAnchorConfirmationRequest(parent_app, nai, realm, ca_hash);
+        request.set_callback((TrustAnchorConfirmationRequest) => confirm_ca_certificate.callback());
+        request.execute();
+        yield;
+
+        confirmed = (request.confirmed ? 1 : 0);
+        logger.trace(@"MoonshotServer.confirm_ca_certificate: confirmed=$confirmed");
+        return true;
+    }
+}
diff --git a/src/moonshot-server.c b/src/moonshot-server.c
deleted file mode 100644 (file)
index 734ee20..0000000
+++ /dev/null
@@ -1,3119 +0,0 @@
-/* moonshot-server.c generated by valac 0.28.0, the Vala compiler
- * generated from moonshot-server.vala, do not modify */
-
-/*
- * Copyright (c) 2011-2014, JANET(UK)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of JANET(UK) nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
-*/
-
-#include <glib.h>
-#include <glib-object.h>
-#include <gio/gio.h>
-#include <gtk/gtk.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-#define TYPE_MOONSHOT_SERVER (moonshot_server_get_type ())
-#define MOONSHOT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_SERVER, MoonshotServer))
-#define MOONSHOT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_SERVER, MoonshotServerClass))
-#define IS_MOONSHOT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_SERVER))
-#define IS_MOONSHOT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_SERVER))
-#define MOONSHOT_SERVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_SERVER, MoonshotServerClass))
-
-typedef struct _MoonshotServer MoonshotServer;
-typedef struct _MoonshotServerClass MoonshotServerClass;
-typedef struct _MoonshotServerPrivate MoonshotServerPrivate;
-
-#define TYPE_IDENTITY_MANAGER_APP (identity_manager_app_get_type ())
-#define IDENTITY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_APP, IdentityManagerApp))
-#define IDENTITY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_APP, IdentityManagerAppClass))
-#define IS_IDENTITY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_APP))
-#define IS_IDENTITY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_APP))
-#define IDENTITY_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_APP, IdentityManagerAppClass))
-
-typedef struct _IdentityManagerApp IdentityManagerApp;
-typedef struct _IdentityManagerAppClass IdentityManagerAppClass;
-#define _identity_manager_app_unref0(var) ((var == NULL) ? NULL : (var = (identity_manager_app_unref (var), NULL)))
-typedef struct _IdentityManagerAppPrivate IdentityManagerAppPrivate;
-
-#define TYPE_IDENTITY_MANAGER_MODEL (identity_manager_model_get_type ())
-#define IDENTITY_MANAGER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModel))
-#define IDENTITY_MANAGER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModelClass))
-#define IS_IDENTITY_MANAGER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_MODEL))
-#define IS_IDENTITY_MANAGER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_MODEL))
-#define IDENTITY_MANAGER_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModelClass))
-
-typedef struct _IdentityManagerModel IdentityManagerModel;
-typedef struct _IdentityManagerModelClass IdentityManagerModelClass;
-
-#define TYPE_ID_CARD (id_card_get_type ())
-#define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
-#define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
-#define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
-#define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
-#define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
-
-typedef struct _IdCard IdCard;
-typedef struct _IdCardClass IdCardClass;
-
-#define TYPE_IDENTITY_MANAGER_VIEW (identity_manager_view_get_type ())
-#define IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerView))
-#define IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
-#define IS_IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_VIEW))
-#define IS_IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_VIEW))
-#define IDENTITY_MANAGER_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
-
-typedef struct _IdentityManagerView IdentityManagerView;
-typedef struct _IdentityManagerViewClass IdentityManagerViewClass;
-#define _g_free0(var) (var = (g_free (var), NULL))
-#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
-typedef struct _Block2Data Block2Data;
-
-#define TYPE_IDENTITY_REQUEST (identity_request_get_type ())
-#define IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_REQUEST, IdentityRequest))
-#define IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
-#define IS_IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_REQUEST))
-#define IS_IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_REQUEST))
-#define IDENTITY_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
-
-typedef struct _IdentityRequest IdentityRequest;
-typedef struct _IdentityRequestClass IdentityRequestClass;
-typedef struct _IdentityRequestPrivate IdentityRequestPrivate;
-
-#define TYPE_TRUST_ANCHOR (trust_anchor_get_type ())
-#define TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR, TrustAnchor))
-#define TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRUST_ANCHOR, TrustAnchorClass))
-#define IS_TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRUST_ANCHOR))
-#define IS_TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRUST_ANCHOR))
-#define TRUST_ANCHOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRUST_ANCHOR, TrustAnchorClass))
-
-typedef struct _TrustAnchor TrustAnchor;
-typedef struct _TrustAnchorClass TrustAnchorClass;
-typedef struct _MoonshotServerGetIdentityData MoonshotServerGetIdentityData;
-typedef struct _Block3Data Block3Data;
-typedef struct _MoonshotServerGetDefaultIdentityData MoonshotServerGetDefaultIdentityData;
-
-#define TYPE_RULE (rule_get_type ())
-typedef struct _Rule Rule;
-
-#define WEB_PROVISIONING_TYPE_PARSER (web_provisioning_parser_get_type ())
-#define WEB_PROVISIONING_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParser))
-#define WEB_PROVISIONING_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserClass))
-#define WEB_PROVISIONING_IS_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WEB_PROVISIONING_TYPE_PARSER))
-#define WEB_PROVISIONING_IS_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WEB_PROVISIONING_TYPE_PARSER))
-#define WEB_PROVISIONING_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserClass))
-
-typedef struct _WebProvisioningParser WebProvisioningParser;
-typedef struct _WebProvisioningParserClass WebProvisioningParserClass;
-#define _web_provisioning_parser_unref0(var) ((var == NULL) ? NULL : (var = (web_provisioning_parser_unref (var), NULL)))
-
-struct _MoonshotServer {
-       GObject parent_instance;
-       MoonshotServerPrivate * priv;
-};
-
-struct _MoonshotServerClass {
-       GObjectClass parent_class;
-};
-
-struct _MoonshotServerPrivate {
-       IdentityManagerApp* parent_app;
-};
-
-struct _IdentityManagerApp {
-       GTypeInstance parent_instance;
-       volatile int ref_count;
-       IdentityManagerAppPrivate * priv;
-       IdentityManagerModel* model;
-       IdCard* default_id_card;
-       gboolean explicitly_launched;
-       IdentityManagerView* view;
-};
-
-struct _IdentityManagerAppClass {
-       GTypeClass parent_class;
-       void (*finalize) (IdentityManagerApp *self);
-};
-
-struct _Block2Data {
-       int _ref_count_;
-       MoonshotServer* self;
-       gpointer _async_data_;
-};
-
-typedef void (*ReturnIdentityCallback) (IdentityRequest* request, void* user_data);
-struct _IdentityRequest {
-       GObject parent_instance;
-       IdentityRequestPrivate * priv;
-       IdCard* id_card;
-       gboolean complete;
-       gboolean select_default;
-       gchar* nai;
-       gchar* password;
-       gchar* service;
-       GSList* candidates;
-};
-
-struct _IdentityRequestClass {
-       GObjectClass parent_class;
-};
-
-struct _MoonshotServerGetIdentityData {
-       int _state_;
-       GObject* _source_object_;
-       GAsyncResult* _res_;
-       GSimpleAsyncResult* _async_result;
-       MoonshotServer* self;
-       gchar* nai;
-       gchar* password;
-       gchar* service;
-       gchar* nai_out;
-       gchar* password_out;
-       gchar* server_certificate_hash;
-       gchar* ca_certificate;
-       gchar* subject_name_constraint;
-       gchar* subject_alt_name_constraint;
-       gboolean result;
-       Block2Data* _data2_;
-       IdentityRequest* request;
-       IdentityManagerApp* _tmp0_;
-       const gchar* _tmp1_;
-       const gchar* _tmp2_;
-       const gchar* _tmp3_;
-       IdentityRequest* _tmp4_;
-       IdentityRequest* _tmp5_;
-       IdentityRequest* _tmp6_;
-       gchar* _tmp7_;
-       gchar* _tmp8_;
-       gchar* _tmp9_;
-       gchar* _tmp10_;
-       gchar* _tmp11_;
-       gchar* _tmp12_;
-       IdCard* id_card;
-       IdentityRequest* _tmp13_;
-       IdCard* _tmp14_;
-       IdCard* _tmp15_;
-       gboolean _tmp16_;
-       IdCard* _tmp17_;
-       IdCard* _tmp18_;
-       const gchar* _tmp19_;
-       const gchar* _tmp20_;
-       IdCard* _tmp21_;
-       const gchar* _tmp22_;
-       const gchar* _tmp23_;
-       gchar* _tmp24_;
-       gboolean _tmp25_;
-       IdentityRequest* _tmp26_;
-       const gchar* _tmp27_;
-       IdentityRequest* _tmp28_;
-       const gchar* _tmp29_;
-       IdentityRequest* _tmp30_;
-       const gchar* _tmp31_;
-       gchar* _tmp32_;
-       IdCard* _tmp33_;
-       const gchar* _tmp34_;
-       const gchar* _tmp35_;
-       gchar* _tmp36_;
-       IdCard* _tmp37_;
-       TrustAnchor* _tmp38_;
-       TrustAnchor* _tmp39_;
-       const gchar* _tmp40_;
-       const gchar* _tmp41_;
-       gchar* _tmp42_;
-       IdCard* _tmp43_;
-       TrustAnchor* _tmp44_;
-       TrustAnchor* _tmp45_;
-       const gchar* _tmp46_;
-       const gchar* _tmp47_;
-       gchar* _tmp48_;
-       IdCard* _tmp49_;
-       TrustAnchor* _tmp50_;
-       TrustAnchor* _tmp51_;
-       const gchar* _tmp52_;
-       const gchar* _tmp53_;
-       gchar* _tmp54_;
-       IdCard* _tmp55_;
-       TrustAnchor* _tmp56_;
-       TrustAnchor* _tmp57_;
-       const gchar* _tmp58_;
-       const gchar* _tmp59_;
-       gchar* _tmp60_;
-       const gchar* _tmp61_;
-       gchar* _tmp62_;
-       const gchar* _tmp63_;
-       gchar* _tmp64_;
-       const gchar* _tmp65_;
-       gchar* _tmp66_;
-       const gchar* _tmp67_;
-       gchar* _tmp68_;
-       const gchar* _tmp69_;
-       gchar* _tmp70_;
-       const gchar* _tmp71_;
-       gchar* _tmp72_;
-};
-
-struct _Block3Data {
-       int _ref_count_;
-       MoonshotServer* self;
-       gpointer _async_data_;
-};
-
-struct _MoonshotServerGetDefaultIdentityData {
-       int _state_;
-       GObject* _source_object_;
-       GAsyncResult* _res_;
-       GSimpleAsyncResult* _async_result;
-       MoonshotServer* self;
-       gchar* nai_out;
-       gchar* password_out;
-       gchar* server_certificate_hash;
-       gchar* ca_certificate;
-       gchar* subject_name_constraint;
-       gchar* subject_alt_name_constraint;
-       gboolean result;
-       Block3Data* _data3_;
-       IdentityRequest* request;
-       IdentityManagerApp* _tmp0_;
-       IdentityRequest* _tmp1_;
-       IdentityRequest* _tmp2_;
-       IdentityRequest* _tmp3_;
-       gchar* _tmp4_;
-       gchar* _tmp5_;
-       gchar* _tmp6_;
-       gchar* _tmp7_;
-       gchar* _tmp8_;
-       gchar* _tmp9_;
-       IdentityRequest* _tmp10_;
-       IdCard* _tmp11_;
-       IdentityRequest* _tmp12_;
-       IdCard* _tmp13_;
-       const gchar* _tmp14_;
-       const gchar* _tmp15_;
-       gchar* _tmp16_;
-       IdentityRequest* _tmp17_;
-       IdCard* _tmp18_;
-       const gchar* _tmp19_;
-       const gchar* _tmp20_;
-       gchar* _tmp21_;
-       IdentityRequest* _tmp22_;
-       IdCard* _tmp23_;
-       TrustAnchor* _tmp24_;
-       TrustAnchor* _tmp25_;
-       const gchar* _tmp26_;
-       const gchar* _tmp27_;
-       gchar* _tmp28_;
-       IdentityRequest* _tmp29_;
-       IdCard* _tmp30_;
-       TrustAnchor* _tmp31_;
-       TrustAnchor* _tmp32_;
-       const gchar* _tmp33_;
-       const gchar* _tmp34_;
-       gchar* _tmp35_;
-       IdentityRequest* _tmp36_;
-       IdCard* _tmp37_;
-       TrustAnchor* _tmp38_;
-       TrustAnchor* _tmp39_;
-       const gchar* _tmp40_;
-       const gchar* _tmp41_;
-       gchar* _tmp42_;
-       IdentityRequest* _tmp43_;
-       IdCard* _tmp44_;
-       TrustAnchor* _tmp45_;
-       TrustAnchor* _tmp46_;
-       const gchar* _tmp47_;
-       const gchar* _tmp48_;
-       gchar* _tmp49_;
-       const gchar* _tmp50_;
-       gchar* _tmp51_;
-       const gchar* _tmp52_;
-       gchar* _tmp53_;
-       const gchar* _tmp54_;
-       gchar* _tmp55_;
-       const gchar* _tmp56_;
-       gchar* _tmp57_;
-       const gchar* _tmp58_;
-       gchar* _tmp59_;
-       const gchar* _tmp60_;
-       gchar* _tmp61_;
-};
-
-struct _Rule {
-       gchar* pattern;
-       gchar* always_confirm;
-};
-
-
-static gpointer moonshot_server_parent_class = NULL;
-extern IdCard** web_provisioning_cards;
-extern gint web_provisioning_cards_length1;
-
-GType moonshot_server_get_type (void) G_GNUC_CONST;
-guint moonshot_server_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
-gpointer identity_manager_app_ref (gpointer instance);
-void identity_manager_app_unref (gpointer instance);
-GParamSpec* param_spec_identity_manager_app (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
-void value_set_identity_manager_app (GValue* value, gpointer v_object);
-void value_take_identity_manager_app (GValue* value, gpointer v_object);
-gpointer value_get_identity_manager_app (const GValue* value);
-GType identity_manager_app_get_type (void) G_GNUC_CONST;
-#define MOONSHOT_SERVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MOONSHOT_SERVER, MoonshotServerPrivate))
-enum  {
-       MOONSHOT_SERVER_DUMMY_PROPERTY
-};
-MoonshotServer* moonshot_server_new (IdentityManagerApp* app);
-MoonshotServer* moonshot_server_construct (GType object_type, IdentityManagerApp* app);
-gboolean moonshot_server_show_ui (MoonshotServer* self);
-GType identity_manager_model_get_type (void) G_GNUC_CONST;
-GType id_card_get_type (void) G_GNUC_CONST;
-GType identity_manager_view_get_type (void) G_GNUC_CONST;
-void identity_manager_app_show (IdentityManagerApp* self);
-static void moonshot_server_get_identity_data_free (gpointer _data);
-void moonshot_server_get_identity (MoonshotServer* self, const gchar* nai, const gchar* password, const gchar* service, GAsyncReadyCallback _callback_, gpointer _user_data_);
-gboolean moonshot_server_get_identity_finish (MoonshotServer* self, GAsyncResult* _res_, gchar** nai_out, gchar** password_out, gchar** server_certificate_hash, gchar** ca_certificate, gchar** subject_name_constraint, gchar** subject_alt_name_constraint);
-static gboolean moonshot_server_get_identity_co (MoonshotServerGetIdentityData* _data_);
-static Block2Data* block2_data_ref (Block2Data* _data2_);
-static void block2_data_unref (void * _userdata_);
-GType identity_request_get_type (void) G_GNUC_CONST;
-IdentityRequest* identity_request_new (IdentityManagerApp* app, const gchar* nai, const gchar* password, const gchar* service);
-IdentityRequest* identity_request_construct (GType object_type, IdentityManagerApp* app, const gchar* nai, const gchar* password, const gchar* service);
-void identity_request_set_callback (IdentityRequest* self, ReturnIdentityCallback cb, void* cb_target, GDestroyNotify cb_target_destroy_notify);
-static void __lambda8_ (Block2Data* _data2_, IdentityRequest* IdentityRequest);
-static void ___lambda8__return_identity_callback (IdentityRequest* request, gpointer self);
-gboolean identity_request_execute (IdentityRequest* self);
-const gchar* id_card_get_display_name (IdCard* self);
-#define ID_CARD_NO_IDENTITY "No Identity"
-const gchar* id_card_get_nai (IdCard* self);
-const gchar* id_card_get_password (IdCard* self);
-GType trust_anchor_get_type (void) G_GNUC_CONST;
-TrustAnchor* id_card_get_trust_anchor (IdCard* self);
-const gchar* trust_anchor_get_server_cert (TrustAnchor* self);
-const gchar* trust_anchor_get_ca_cert (TrustAnchor* self);
-const gchar* trust_anchor_get_subject (TrustAnchor* self);
-const gchar* trust_anchor_get_subject_alt (TrustAnchor* self);
-static void moonshot_server_get_default_identity_data_free (gpointer _data);
-void moonshot_server_get_default_identity (MoonshotServer* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
-gboolean moonshot_server_get_default_identity_finish (MoonshotServer* self, GAsyncResult* _res_, gchar** nai_out, gchar** password_out, gchar** server_certificate_hash, gchar** ca_certificate, gchar** subject_name_constraint, gchar** subject_alt_name_constraint);
-static gboolean moonshot_server_get_default_identity_co (MoonshotServerGetDefaultIdentityData* _data_);
-static Block3Data* block3_data_ref (Block3Data* _data3_);
-static void block3_data_unref (void * _userdata_);
-IdentityRequest* identity_request_new_default (IdentityManagerApp* app);
-IdentityRequest* identity_request_construct_default (GType object_type, IdentityManagerApp* app);
-static void __lambda9_ (Block3Data* _data3_, IdentityRequest* IdentityRequest);
-static void ___lambda9__return_identity_callback (IdentityRequest* request, gpointer self);
-gboolean moonshot_server_install_id_card (MoonshotServer* self, const gchar* display_name, const gchar* user_name, const gchar* password, const gchar* realm, gchar** rules_patterns, int rules_patterns_length1, gchar** rules_always_confirm, int rules_always_confirm_length1, gchar** services, int services_length1, const gchar* ca_cert, const gchar* subject, const gchar* subject_alt, const gchar* server_cert, gint force_flat_file_store);
-IdCard* id_card_new (void);
-IdCard* id_card_construct (GType object_type);
-void id_card_set_display_name (IdCard* self, const gchar* value);
-void id_card_set_username (IdCard* self, const gchar* value);
-void id_card_set_password (IdCard* self, const gchar* value);
-void id_card_set_store_password (IdCard* self, gboolean value);
-void id_card_set_issuer (IdCard* self, const gchar* value);
-void id_card_set_services (IdCard* self, gchar** value, int value_length1);
-void trust_anchor_set_ca_cert (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_subject (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_subject_alt (TrustAnchor* self, const gchar* value);
-void trust_anchor_set_server_cert (TrustAnchor* self, const gchar* value);
-GType rule_get_type (void) G_GNUC_CONST;
-Rule* rule_dup (const Rule* self);
-void rule_free (Rule* self);
-void rule_copy (const Rule* self, Rule* dest);
-void rule_destroy (Rule* self);
-void id_card_set_rules (IdCard* self, Rule* value, int value_length1);
-static void _vala_Rule_array_free (Rule* array, gint array_length);
-gboolean identity_manager_app_add_identity (IdentityManagerApp* self, IdCard* id, gboolean force_flat_file_store);
-gint moonshot_server_install_from_file (MoonshotServer* self, const gchar* file_name);
-gpointer web_provisioning_parser_ref (gpointer instance);
-void web_provisioning_parser_unref (gpointer instance);
-GParamSpec* web_provisioning_param_spec_parser (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
-void web_provisioning_value_set_parser (GValue* value, gpointer v_object);
-void web_provisioning_value_take_parser (GValue* value, gpointer v_object);
-gpointer web_provisioning_value_get_parser (const GValue* value);
-GType web_provisioning_parser_get_type (void) G_GNUC_CONST;
-WebProvisioningParser* web_provisioning_parser_new (const gchar* path);
-WebProvisioningParser* web_provisioning_parser_construct (GType object_type, const gchar* path);
-void web_provisioning_parser_parse (WebProvisioningParser* self);
-Rule* id_card_get_rules (IdCard* self, int* result_length1);
-const gchar* id_card_get_username (IdCard* self);
-const gchar* id_card_get_issuer (IdCard* self);
-gchar** id_card_get_services (IdCard* self, int* result_length1);
-static void moonshot_server_finalize (GObject* obj);
-static void _dbus_moonshot_server_show_ui (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
-static void _dbus_moonshot_server_get_identity (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
-static void _dbus_moonshot_server_get_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer _user_data_);
-static void _dbus_moonshot_server_get_default_identity (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
-static void _dbus_moonshot_server_get_default_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer _user_data_);
-static void _dbus_moonshot_server_install_id_card (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
-static void _dbus_moonshot_server_install_from_file (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
-static void moonshot_server_dbus_interface_method_call (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* method_name, GVariant* parameters, GDBusMethodInvocation* invocation, gpointer user_data);
-static GVariant* moonshot_server_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data);
-static gboolean moonshot_server_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data);
-static void _moonshot_server_unregister_object (gpointer user_data);
-static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
-static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
-
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_show_ui_result = {-1, "result", "b"};
-static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_show_ui_in[] = {NULL};
-static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_show_ui_out[] = {&_moonshot_server_dbus_arg_info_show_ui_result, NULL};
-static const GDBusMethodInfo _moonshot_server_dbus_method_info_show_ui = {-1, "ShowUi", (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_show_ui_in), (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_show_ui_out)};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_nai = {-1, "nai", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_password = {-1, "password", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_service = {-1, "service", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_nai_out = {-1, "nai_out", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_password_out = {-1, "password_out", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_server_certificate_hash = {-1, "server_certificate_hash", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_ca_certificate = {-1, "ca_certificate", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_subject_name_constraint = {-1, "subject_name_constraint", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_subject_alt_name_constraint = {-1, "subject_alt_name_constraint", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_identity_result = {-1, "result", "b"};
-static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_get_identity_in[] = {&_moonshot_server_dbus_arg_info_get_identity_nai, &_moonshot_server_dbus_arg_info_get_identity_password, &_moonshot_server_dbus_arg_info_get_identity_service, NULL};
-static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_get_identity_out[] = {&_moonshot_server_dbus_arg_info_get_identity_nai_out, &_moonshot_server_dbus_arg_info_get_identity_password_out, &_moonshot_server_dbus_arg_info_get_identity_server_certificate_hash, &_moonshot_server_dbus_arg_info_get_identity_ca_certificate, &_moonshot_server_dbus_arg_info_get_identity_subject_name_constraint, &_moonshot_server_dbus_arg_info_get_identity_subject_alt_name_constraint, &_moonshot_server_dbus_arg_info_get_identity_result, NULL};
-static const GDBusMethodInfo _moonshot_server_dbus_method_info_get_identity = {-1, "GetIdentity", (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_get_identity_in), (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_get_identity_out)};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_nai_out = {-1, "nai_out", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_password_out = {-1, "password_out", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_server_certificate_hash = {-1, "server_certificate_hash", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_ca_certificate = {-1, "ca_certificate", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_subject_name_constraint = {-1, "subject_name_constraint", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_subject_alt_name_constraint = {-1, "subject_alt_name_constraint", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_get_default_identity_result = {-1, "result", "b"};
-static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_get_default_identity_in[] = {NULL};
-static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_get_default_identity_out[] = {&_moonshot_server_dbus_arg_info_get_default_identity_nai_out, &_moonshot_server_dbus_arg_info_get_default_identity_password_out, &_moonshot_server_dbus_arg_info_get_default_identity_server_certificate_hash, &_moonshot_server_dbus_arg_info_get_default_identity_ca_certificate, &_moonshot_server_dbus_arg_info_get_default_identity_subject_name_constraint, &_moonshot_server_dbus_arg_info_get_default_identity_subject_alt_name_constraint, &_moonshot_server_dbus_arg_info_get_default_identity_result, NULL};
-static const GDBusMethodInfo _moonshot_server_dbus_method_info_get_default_identity = {-1, "GetDefaultIdentity", (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_get_default_identity_in), (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_get_default_identity_out)};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_display_name = {-1, "display_name", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_user_name = {-1, "user_name", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_password = {-1, "password", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_realm = {-1, "realm", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_rules_patterns = {-1, "rules_patterns", "as"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_rules_always_confirm = {-1, "rules_always_confirm", "as"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_services = {-1, "services", "as"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_ca_cert = {-1, "ca_cert", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_subject = {-1, "subject", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_subject_alt = {-1, "subject_alt", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_server_cert = {-1, "server_cert", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_force_flat_file_store = {-1, "force_flat_file_store", "i"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_id_card_result = {-1, "result", "b"};
-static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_install_id_card_in[] = {&_moonshot_server_dbus_arg_info_install_id_card_display_name, &_moonshot_server_dbus_arg_info_install_id_card_user_name, &_moonshot_server_dbus_arg_info_install_id_card_password, &_moonshot_server_dbus_arg_info_install_id_card_realm, &_moonshot_server_dbus_arg_info_install_id_card_rules_patterns, &_moonshot_server_dbus_arg_info_install_id_card_rules_always_confirm, &_moonshot_server_dbus_arg_info_install_id_card_services, &_moonshot_server_dbus_arg_info_install_id_card_ca_cert, &_moonshot_server_dbus_arg_info_install_id_card_subject, &_moonshot_server_dbus_arg_info_install_id_card_subject_alt, &_moonshot_server_dbus_arg_info_install_id_card_server_cert, &_moonshot_server_dbus_arg_info_install_id_card_force_flat_file_store, NULL};
-static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_install_id_card_out[] = {&_moonshot_server_dbus_arg_info_install_id_card_result, NULL};
-static const GDBusMethodInfo _moonshot_server_dbus_method_info_install_id_card = {-1, "InstallIdCard", (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_install_id_card_in), (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_install_id_card_out)};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_from_file_file_name = {-1, "file_name", "s"};
-static const GDBusArgInfo _moonshot_server_dbus_arg_info_install_from_file_result = {-1, "result", "i"};
-static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_install_from_file_in[] = {&_moonshot_server_dbus_arg_info_install_from_file_file_name, NULL};
-static const GDBusArgInfo * const _moonshot_server_dbus_arg_info_install_from_file_out[] = {&_moonshot_server_dbus_arg_info_install_from_file_result, NULL};
-static const GDBusMethodInfo _moonshot_server_dbus_method_info_install_from_file = {-1, "InstallFromFile", (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_install_from_file_in), (GDBusArgInfo **) (&_moonshot_server_dbus_arg_info_install_from_file_out)};
-static const GDBusMethodInfo * const _moonshot_server_dbus_method_info[] = {&_moonshot_server_dbus_method_info_show_ui, &_moonshot_server_dbus_method_info_get_identity, &_moonshot_server_dbus_method_info_get_default_identity, &_moonshot_server_dbus_method_info_install_id_card, &_moonshot_server_dbus_method_info_install_from_file, NULL};
-static const GDBusSignalInfo * const _moonshot_server_dbus_signal_info[] = {NULL};
-static const GDBusPropertyInfo * const _moonshot_server_dbus_property_info[] = {NULL};
-static const GDBusInterfaceInfo _moonshot_server_dbus_interface_info = {-1, "org.janet.Moonshot", (GDBusMethodInfo **) (&_moonshot_server_dbus_method_info), (GDBusSignalInfo **) (&_moonshot_server_dbus_signal_info), (GDBusPropertyInfo **) (&_moonshot_server_dbus_property_info)};
-static const GDBusInterfaceVTable _moonshot_server_dbus_interface_vtable = {moonshot_server_dbus_interface_method_call, moonshot_server_dbus_interface_get_property, moonshot_server_dbus_interface_set_property};
-
-static gpointer _identity_manager_app_ref0 (gpointer self) {
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return self ? identity_manager_app_ref (self) : NULL;
-#line 540 "moonshot-server.c"
-}
-
-
-MoonshotServer* moonshot_server_construct (GType object_type, IdentityManagerApp* app) {
-       MoonshotServer * self = NULL;
-       IdentityManagerApp* _tmp0_ = NULL;
-       IdentityManagerApp* _tmp1_ = NULL;
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_return_val_if_fail (app != NULL, NULL);
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       self = (MoonshotServer*) g_object_new (object_type, NULL);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp0_ = app;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp1_ = _identity_manager_app_ref0 (_tmp0_);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _identity_manager_app_unref0 (self->priv->parent_app);
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       self->priv->parent_app = _tmp1_;
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return self;
-#line 562 "moonshot-server.c"
-}
-
-
-MoonshotServer* moonshot_server_new (IdentityManagerApp* app) {
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return moonshot_server_construct (TYPE_MOONSHOT_SERVER, app);
-#line 569 "moonshot-server.c"
-}
-
-
-gboolean moonshot_server_show_ui (MoonshotServer* self) {
-       gboolean result = FALSE;
-       IdentityManagerApp* _tmp0_ = NULL;
-       IdentityManagerView* _tmp1_ = NULL;
-       IdentityManagerApp* _tmp2_ = NULL;
-       IdentityManagerApp* _tmp3_ = NULL;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_return_val_if_fail (self != NULL, FALSE);
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp0_ = self->priv->parent_app;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp1_ = _tmp0_->view;
-#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (_tmp1_ == NULL) {
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               result = FALSE;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               return result;
-#line 591 "moonshot-server.c"
-       }
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp2_ = self->priv->parent_app;
-#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       identity_manager_app_show (_tmp2_);
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp3_ = self->priv->parent_app;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp3_->explicitly_launched = TRUE;
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       result = TRUE;
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return result;
-#line 605 "moonshot-server.c"
-}
-
-
-static void moonshot_server_get_identity_data_free (gpointer _data) {
-       MoonshotServerGetIdentityData* _data_;
-       _data_ = _data;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->nai);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->password);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->service);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_object_unref0 (_data_->self);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_slice_free (MoonshotServerGetIdentityData, _data_);
-#line 622 "moonshot-server.c"
-}
-
-
-static gpointer _g_object_ref0 (gpointer self) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return self ? g_object_ref (self) : NULL;
-#line 629 "moonshot-server.c"
-}
-
-
-void moonshot_server_get_identity (MoonshotServer* self, const gchar* nai, const gchar* password, const gchar* service, GAsyncReadyCallback _callback_, gpointer _user_data_) {
-       MoonshotServerGetIdentityData* _data_;
-       MoonshotServer* _tmp0_ = NULL;
-       const gchar* _tmp1_ = NULL;
-       gchar* _tmp2_ = NULL;
-       const gchar* _tmp3_ = NULL;
-       gchar* _tmp4_ = NULL;
-       const gchar* _tmp5_ = NULL;
-       gchar* _tmp6_ = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_ = g_slice_new0 (MoonshotServerGetIdentityData);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, moonshot_server_get_identity);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, moonshot_server_get_identity_data_free);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp0_ = _g_object_ref0 (self);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->self = _tmp0_;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp1_ = nai;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp2_ = g_strdup (_tmp1_);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->nai);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->nai = _tmp2_;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp3_ = password;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp4_ = g_strdup (_tmp3_);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->password);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->password = _tmp4_;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp5_ = service;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp6_ = g_strdup (_tmp5_);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->service);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->service = _tmp6_;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       moonshot_server_get_identity_co (_data_);
-#line 678 "moonshot-server.c"
-}
-
-
-gboolean moonshot_server_get_identity_finish (MoonshotServer* self, GAsyncResult* _res_, gchar** nai_out, gchar** password_out, gchar** server_certificate_hash, gchar** ca_certificate, gchar** subject_name_constraint, gchar** subject_alt_name_constraint) {
-       gboolean result;
-       MoonshotServerGetIdentityData* _data_;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (nai_out) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               *nai_out = _data_->nai_out;
-#line 691 "moonshot-server.c"
-       } else {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->nai_out);
-#line 695 "moonshot-server.c"
-       }
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->nai_out = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (password_out) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               *password_out = _data_->password_out;
-#line 703 "moonshot-server.c"
-       } else {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->password_out);
-#line 707 "moonshot-server.c"
-       }
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->password_out = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (server_certificate_hash) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               *server_certificate_hash = _data_->server_certificate_hash;
-#line 715 "moonshot-server.c"
-       } else {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->server_certificate_hash);
-#line 719 "moonshot-server.c"
-       }
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->server_certificate_hash = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (ca_certificate) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               *ca_certificate = _data_->ca_certificate;
-#line 727 "moonshot-server.c"
-       } else {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->ca_certificate);
-#line 731 "moonshot-server.c"
-       }
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->ca_certificate = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (subject_name_constraint) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               *subject_name_constraint = _data_->subject_name_constraint;
-#line 739 "moonshot-server.c"
-       } else {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->subject_name_constraint);
-#line 743 "moonshot-server.c"
-       }
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->subject_name_constraint = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (subject_alt_name_constraint) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               *subject_alt_name_constraint = _data_->subject_alt_name_constraint;
-#line 751 "moonshot-server.c"
-       } else {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->subject_alt_name_constraint);
-#line 755 "moonshot-server.c"
-       }
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->subject_alt_name_constraint = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       result = _data_->result;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return result;
-#line 763 "moonshot-server.c"
-}
-
-
-static Block2Data* block2_data_ref (Block2Data* _data2_) {
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_atomic_int_inc (&_data2_->_ref_count_);
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return _data2_;
-#line 772 "moonshot-server.c"
-}
-
-
-static void block2_data_unref (void * _userdata_) {
-       Block2Data* _data2_;
-       _data2_ = (Block2Data*) _userdata_;
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
-#line 781 "moonshot-server.c"
-               MoonshotServer* self;
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               self = _data2_->self;
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_object_unref0 (self);
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_slice_free (Block2Data, _data2_);
-#line 789 "moonshot-server.c"
-       }
-}
-
-
-static void __lambda8_ (Block2Data* _data2_, IdentityRequest* IdentityRequest) {
-       MoonshotServer* self;
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       self = _data2_->self;
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_return_if_fail (IdentityRequest != NULL);
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       moonshot_server_get_identity_co (_data2_->_async_data_);
-#line 802 "moonshot-server.c"
-}
-
-
-static void ___lambda8__return_identity_callback (IdentityRequest* request, gpointer self) {
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       __lambda8_ (self, request);
-#line 809 "moonshot-server.c"
-}
-
-
-static gboolean moonshot_server_get_identity_co (MoonshotServerGetIdentityData* _data_) {
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       switch (_data_->_state_) {
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               case 0:
-#line 818 "moonshot-server.c"
-               goto _state_0;
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               case 1:
-#line 822 "moonshot-server.c"
-               goto _state_1;
-               default:
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_assert_not_reached ();
-#line 827 "moonshot-server.c"
-       }
-       _state_0:
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_data2_ = g_slice_new0 (Block2Data);
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_data2_->_ref_count_ = 1;
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_data2_->self = g_object_ref (_data_->self);
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_data2_->_async_data_ = _data_;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp0_ = NULL;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp0_ = _data_->self->priv->parent_app;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp1_ = NULL;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp1_ = _data_->nai;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp2_ = NULL;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp2_ = _data_->password;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp3_ = NULL;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp3_ = _data_->service;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp4_ = NULL;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp4_ = identity_request_new (_data_->_tmp0_, _data_->_tmp1_, _data_->_tmp2_, _data_->_tmp3_);
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->request = _data_->_tmp4_;
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp5_ = NULL;
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp5_ = _data_->request;
-#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       identity_request_set_callback (_data_->_tmp5_, ___lambda8__return_identity_callback, block2_data_ref (_data_->_data2_), block2_data_unref);
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp6_ = NULL;
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp6_ = _data_->request;
-#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       identity_request_execute (_data_->_tmp6_);
-#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_state_ = 1;
-#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return FALSE;
-#line 876 "moonshot-server.c"
-       _state_1:
-       ;
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp7_ = NULL;
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp7_ = g_strdup ("");
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->nai_out);
-#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->nai_out = _data_->_tmp7_;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp8_ = NULL;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp8_ = g_strdup ("");
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->password_out);
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->password_out = _data_->_tmp8_;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp9_ = NULL;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp9_ = g_strdup ("");
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->server_certificate_hash);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->server_certificate_hash = _data_->_tmp9_;
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp10_ = NULL;
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp10_ = g_strdup ("");
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->ca_certificate);
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->ca_certificate = _data_->_tmp10_;
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp11_ = NULL;
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp11_ = g_strdup ("");
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->subject_name_constraint);
-#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->subject_name_constraint = _data_->_tmp11_;
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp12_ = NULL;
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp12_ = g_strdup ("");
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->subject_alt_name_constraint);
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->subject_alt_name_constraint = _data_->_tmp12_;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp13_ = NULL;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp13_ = _data_->request;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp14_ = NULL;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp14_ = _data_->_tmp13_->id_card;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp15_ = NULL;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp15_ = _g_object_ref0 (_data_->_tmp14_);
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->id_card = _data_->_tmp15_;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp17_ = NULL;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp17_ = _data_->id_card;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (_data_->_tmp17_ != NULL) {
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp18_ = NULL;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp18_ = _data_->id_card;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp19_ = NULL;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp19_ = id_card_get_display_name (_data_->_tmp18_);
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp20_ = NULL;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp20_ = _data_->_tmp19_;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp16_ = g_strcmp0 (_data_->_tmp20_, ID_CARD_NO_IDENTITY) != 0;
-#line 961 "moonshot-server.c"
-       } else {
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp16_ = FALSE;
-#line 965 "moonshot-server.c"
-       }
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (_data_->_tmp16_) {
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp21_ = NULL;
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp21_ = _data_->id_card;
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp22_ = NULL;
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp22_ = id_card_get_nai (_data_->_tmp21_);
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp23_ = NULL;
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp23_ = _data_->_tmp22_;
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp24_ = NULL;
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp24_ = g_strdup (_data_->_tmp23_);
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->nai_out);
-#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->nai_out = _data_->_tmp24_;
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp26_ = NULL;
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp26_ = _data_->request;
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp27_ = NULL;
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp27_ = _data_->_tmp26_->password;
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp27_ != NULL) {
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp28_ = NULL;
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp28_ = _data_->request;
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp29_ = NULL;
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp29_ = _data_->_tmp28_->password;
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp25_ = g_strcmp0 (_data_->_tmp29_, "") != 0;
-#line 1009 "moonshot-server.c"
-               } else {
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp25_ = FALSE;
-#line 1013 "moonshot-server.c"
-               }
-#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp25_) {
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp30_ = NULL;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp30_ = _data_->request;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp31_ = NULL;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp31_ = _data_->_tmp30_->password;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp32_ = NULL;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp32_ = g_strdup (_data_->_tmp31_);
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->password_out);
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->password_out = _data_->_tmp32_;
-#line 1033 "moonshot-server.c"
-               } else {
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp33_ = NULL;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp33_ = _data_->id_card;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp34_ = NULL;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp34_ = id_card_get_password (_data_->_tmp33_);
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp35_ = NULL;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp35_ = _data_->_tmp34_;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp36_ = NULL;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp36_ = g_strdup (_data_->_tmp35_);
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->password_out);
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->password_out = _data_->_tmp36_;
-#line 1055 "moonshot-server.c"
-               }
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp37_ = NULL;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp37_ = _data_->id_card;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp38_ = NULL;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp38_ = id_card_get_trust_anchor (_data_->_tmp37_);
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp39_ = NULL;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp39_ = _data_->_tmp38_;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp40_ = NULL;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp40_ = trust_anchor_get_server_cert (_data_->_tmp39_);
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp41_ = NULL;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp41_ = _data_->_tmp40_;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp42_ = NULL;
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp42_ = g_strdup (_data_->_tmp41_);
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->server_certificate_hash);
-#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->server_certificate_hash = _data_->_tmp42_;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp43_ = NULL;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp43_ = _data_->id_card;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp44_ = NULL;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp44_ = id_card_get_trust_anchor (_data_->_tmp43_);
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp45_ = NULL;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp45_ = _data_->_tmp44_;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp46_ = NULL;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp46_ = trust_anchor_get_ca_cert (_data_->_tmp45_);
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp47_ = NULL;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp47_ = _data_->_tmp46_;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp48_ = NULL;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp48_ = g_strdup (_data_->_tmp47_);
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->ca_certificate);
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->ca_certificate = _data_->_tmp48_;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp49_ = NULL;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp49_ = _data_->id_card;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp50_ = NULL;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp50_ = id_card_get_trust_anchor (_data_->_tmp49_);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp51_ = NULL;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp51_ = _data_->_tmp50_;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp52_ = NULL;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp52_ = trust_anchor_get_subject (_data_->_tmp51_);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp53_ = NULL;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp53_ = _data_->_tmp52_;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp54_ = NULL;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp54_ = g_strdup (_data_->_tmp53_);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->subject_name_constraint);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->subject_name_constraint = _data_->_tmp54_;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp55_ = NULL;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp55_ = _data_->id_card;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp56_ = NULL;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp56_ = id_card_get_trust_anchor (_data_->_tmp55_);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp57_ = NULL;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp57_ = _data_->_tmp56_;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp58_ = NULL;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp58_ = trust_anchor_get_subject_alt (_data_->_tmp57_);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp59_ = NULL;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp59_ = _data_->_tmp58_;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp60_ = NULL;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp60_ = g_strdup (_data_->_tmp59_);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->subject_alt_name_constraint);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->subject_alt_name_constraint = _data_->_tmp60_;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp61_ = NULL;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp61_ = _data_->nai_out;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp61_ == NULL) {
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp62_ = NULL;
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp62_ = g_strdup ("");
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->nai_out);
-#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->nai_out = _data_->_tmp62_;
-#line 1183 "moonshot-server.c"
-               }
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp63_ = NULL;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp63_ = _data_->password_out;
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp63_ == NULL) {
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp64_ = NULL;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp64_ = g_strdup ("");
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->password_out);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->password_out = _data_->_tmp64_;
-#line 1199 "moonshot-server.c"
-               }
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp65_ = NULL;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp65_ = _data_->server_certificate_hash;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp65_ == NULL) {
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp66_ = NULL;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp66_ = g_strdup ("");
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->server_certificate_hash);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->server_certificate_hash = _data_->_tmp66_;
-#line 1215 "moonshot-server.c"
-               }
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp67_ = NULL;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp67_ = _data_->ca_certificate;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp67_ == NULL) {
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp68_ = NULL;
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp68_ = g_strdup ("");
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->ca_certificate);
-#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->ca_certificate = _data_->_tmp68_;
-#line 1231 "moonshot-server.c"
-               }
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp69_ = NULL;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp69_ = _data_->subject_name_constraint;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp69_ == NULL) {
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp70_ = NULL;
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp70_ = g_strdup ("");
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->subject_name_constraint);
-#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->subject_name_constraint = _data_->_tmp70_;
-#line 1247 "moonshot-server.c"
-               }
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp71_ = NULL;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp71_ = _data_->subject_alt_name_constraint;
-#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp71_ == NULL) {
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp72_ = NULL;
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp72_ = g_strdup ("");
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->subject_alt_name_constraint);
-#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->subject_alt_name_constraint = _data_->_tmp72_;
-#line 1263 "moonshot-server.c"
-               }
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->result = TRUE;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_object_unref0 (_data_->id_card);
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_object_unref0 (_data_->request);
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               block2_data_unref (_data_->_data2_);
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_data2_ = NULL;
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_state_ == 0) {
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       g_simple_async_result_complete_in_idle (_data_->_async_result);
-#line 1279 "moonshot-server.c"
-               } else {
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       g_simple_async_result_complete (_data_->_async_result);
-#line 1283 "moonshot-server.c"
-               }
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_object_unref (_data_->_async_result);
-#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               return FALSE;
-#line 1289 "moonshot-server.c"
-       }
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->result = FALSE;
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_object_unref0 (_data_->id_card);
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_object_unref0 (_data_->request);
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       block2_data_unref (_data_->_data2_);
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_data2_ = NULL;
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (_data_->_state_ == 0) {
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_simple_async_result_complete_in_idle (_data_->_async_result);
-#line 1305 "moonshot-server.c"
-       } else {
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_simple_async_result_complete (_data_->_async_result);
-#line 1309 "moonshot-server.c"
-       }
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_object_unref (_data_->_async_result);
-#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return FALSE;
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_object_unref0 (_data_->id_card);
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_object_unref0 (_data_->request);
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       block2_data_unref (_data_->_data2_);
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_data2_ = NULL;
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (_data_->_state_ == 0) {
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_simple_async_result_complete_in_idle (_data_->_async_result);
-#line 1327 "moonshot-server.c"
-       } else {
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_simple_async_result_complete (_data_->_async_result);
-#line 1331 "moonshot-server.c"
-       }
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_object_unref (_data_->_async_result);
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return FALSE;
-#line 1337 "moonshot-server.c"
-}
-
-
-static void moonshot_server_get_default_identity_data_free (gpointer _data) {
-       MoonshotServerGetDefaultIdentityData* _data_;
-       _data_ = _data;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_object_unref0 (_data_->self);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_slice_free (MoonshotServerGetDefaultIdentityData, _data_);
-#line 1348 "moonshot-server.c"
-}
-
-
-void moonshot_server_get_default_identity (MoonshotServer* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
-       MoonshotServerGetDefaultIdentityData* _data_;
-       MoonshotServer* _tmp0_ = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_ = g_slice_new0 (MoonshotServerGetDefaultIdentityData);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, moonshot_server_get_default_identity);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, moonshot_server_get_default_identity_data_free);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp0_ = _g_object_ref0 (self);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->self = _tmp0_;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       moonshot_server_get_default_identity_co (_data_);
-#line 1367 "moonshot-server.c"
-}
-
-
-gboolean moonshot_server_get_default_identity_finish (MoonshotServer* self, GAsyncResult* _res_, gchar** nai_out, gchar** password_out, gchar** server_certificate_hash, gchar** ca_certificate, gchar** subject_name_constraint, gchar** subject_alt_name_constraint) {
-       gboolean result;
-       MoonshotServerGetDefaultIdentityData* _data_;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (nai_out) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               *nai_out = _data_->nai_out;
-#line 1380 "moonshot-server.c"
-       } else {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->nai_out);
-#line 1384 "moonshot-server.c"
-       }
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->nai_out = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (password_out) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               *password_out = _data_->password_out;
-#line 1392 "moonshot-server.c"
-       } else {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->password_out);
-#line 1396 "moonshot-server.c"
-       }
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->password_out = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (server_certificate_hash) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               *server_certificate_hash = _data_->server_certificate_hash;
-#line 1404 "moonshot-server.c"
-       } else {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->server_certificate_hash);
-#line 1408 "moonshot-server.c"
-       }
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->server_certificate_hash = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (ca_certificate) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               *ca_certificate = _data_->ca_certificate;
-#line 1416 "moonshot-server.c"
-       } else {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->ca_certificate);
-#line 1420 "moonshot-server.c"
-       }
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->ca_certificate = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (subject_name_constraint) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               *subject_name_constraint = _data_->subject_name_constraint;
-#line 1428 "moonshot-server.c"
-       } else {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->subject_name_constraint);
-#line 1432 "moonshot-server.c"
-       }
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->subject_name_constraint = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (subject_alt_name_constraint) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               *subject_alt_name_constraint = _data_->subject_alt_name_constraint;
-#line 1440 "moonshot-server.c"
-       } else {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->subject_alt_name_constraint);
-#line 1444 "moonshot-server.c"
-       }
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->subject_alt_name_constraint = NULL;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       result = _data_->result;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return result;
-#line 1452 "moonshot-server.c"
-}
-
-
-static Block3Data* block3_data_ref (Block3Data* _data3_) {
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_atomic_int_inc (&_data3_->_ref_count_);
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return _data3_;
-#line 1461 "moonshot-server.c"
-}
-
-
-static void block3_data_unref (void * _userdata_) {
-       Block3Data* _data3_;
-       _data3_ = (Block3Data*) _userdata_;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
-#line 1470 "moonshot-server.c"
-               MoonshotServer* self;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               self = _data3_->self;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_object_unref0 (self);
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_slice_free (Block3Data, _data3_);
-#line 1478 "moonshot-server.c"
-       }
-}
-
-
-static void __lambda9_ (Block3Data* _data3_, IdentityRequest* IdentityRequest) {
-       MoonshotServer* self;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       self = _data3_->self;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_return_if_fail (IdentityRequest != NULL);
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       moonshot_server_get_default_identity_co (_data3_->_async_data_);
-#line 1491 "moonshot-server.c"
-}
-
-
-static void ___lambda9__return_identity_callback (IdentityRequest* request, gpointer self) {
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       __lambda9_ (self, request);
-#line 1498 "moonshot-server.c"
-}
-
-
-static gboolean moonshot_server_get_default_identity_co (MoonshotServerGetDefaultIdentityData* _data_) {
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       switch (_data_->_state_) {
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               case 0:
-#line 1507 "moonshot-server.c"
-               goto _state_0;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               case 1:
-#line 1511 "moonshot-server.c"
-               goto _state_1;
-               default:
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_assert_not_reached ();
-#line 1516 "moonshot-server.c"
-       }
-       _state_0:
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_data3_ = g_slice_new0 (Block3Data);
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_data3_->_ref_count_ = 1;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_data3_->self = g_object_ref (_data_->self);
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_data3_->_async_data_ = _data_;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp0_ = NULL;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp0_ = _data_->self->priv->parent_app;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp1_ = NULL;
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp1_ = identity_request_new_default (_data_->_tmp0_);
-#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->request = _data_->_tmp1_;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp2_ = NULL;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp2_ = _data_->request;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       identity_request_set_callback (_data_->_tmp2_, ___lambda9__return_identity_callback, block3_data_ref (_data_->_data3_), block3_data_unref);
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp3_ = NULL;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp3_ = _data_->request;
-#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       identity_request_execute (_data_->_tmp3_);
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_state_ = 1;
-#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return FALSE;
-#line 1553 "moonshot-server.c"
-       _state_1:
-       ;
-#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp4_ = NULL;
-#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp4_ = g_strdup ("");
-#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->nai_out);
-#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->nai_out = _data_->_tmp4_;
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp5_ = NULL;
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp5_ = g_strdup ("");
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->password_out);
-#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->password_out = _data_->_tmp5_;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp6_ = NULL;
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp6_ = g_strdup ("");
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->server_certificate_hash);
-#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->server_certificate_hash = _data_->_tmp6_;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp7_ = NULL;
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp7_ = g_strdup ("");
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->ca_certificate);
-#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->ca_certificate = _data_->_tmp7_;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp8_ = NULL;
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp8_ = g_strdup ("");
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->subject_name_constraint);
-#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->subject_name_constraint = _data_->_tmp8_;
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp9_ = NULL;
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp9_ = g_strdup ("");
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_free0 (_data_->subject_alt_name_constraint);
-#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->subject_alt_name_constraint = _data_->_tmp9_;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp10_ = NULL;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp10_ = _data_->request;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp11_ = NULL;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_tmp11_ = _data_->_tmp10_->id_card;
-#line 131 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (_data_->_tmp11_ != NULL) {
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp12_ = NULL;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp12_ = _data_->request;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp13_ = NULL;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp13_ = _data_->_tmp12_->id_card;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp14_ = NULL;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp14_ = id_card_get_nai (_data_->_tmp13_);
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp15_ = NULL;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp15_ = _data_->_tmp14_;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp16_ = NULL;
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp16_ = g_strdup (_data_->_tmp15_);
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->nai_out);
-#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->nai_out = _data_->_tmp16_;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp17_ = NULL;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp17_ = _data_->request;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp18_ = NULL;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp18_ = _data_->_tmp17_->id_card;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp19_ = NULL;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp19_ = id_card_get_password (_data_->_tmp18_);
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp20_ = NULL;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp20_ = _data_->_tmp19_;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp21_ = NULL;
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp21_ = g_strdup (_data_->_tmp20_);
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->password_out);
-#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->password_out = _data_->_tmp21_;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp22_ = NULL;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp22_ = _data_->request;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp23_ = NULL;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp23_ = _data_->_tmp22_->id_card;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp24_ = NULL;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp24_ = id_card_get_trust_anchor (_data_->_tmp23_);
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp25_ = NULL;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp25_ = _data_->_tmp24_;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp26_ = NULL;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp26_ = trust_anchor_get_server_cert (_data_->_tmp25_);
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp27_ = NULL;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp27_ = _data_->_tmp26_;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp28_ = NULL;
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp28_ = g_strdup (_data_->_tmp27_);
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->server_certificate_hash);
-#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->server_certificate_hash = _data_->_tmp28_;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp29_ = NULL;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp29_ = _data_->request;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp30_ = NULL;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp30_ = _data_->_tmp29_->id_card;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp31_ = NULL;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp31_ = id_card_get_trust_anchor (_data_->_tmp30_);
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp32_ = NULL;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp32_ = _data_->_tmp31_;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp33_ = NULL;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp33_ = trust_anchor_get_ca_cert (_data_->_tmp32_);
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp34_ = NULL;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp34_ = _data_->_tmp33_;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp35_ = NULL;
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp35_ = g_strdup (_data_->_tmp34_);
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->ca_certificate);
-#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->ca_certificate = _data_->_tmp35_;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp36_ = NULL;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp36_ = _data_->request;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp37_ = NULL;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp37_ = _data_->_tmp36_->id_card;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp38_ = NULL;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp38_ = id_card_get_trust_anchor (_data_->_tmp37_);
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp39_ = NULL;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp39_ = _data_->_tmp38_;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp40_ = NULL;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp40_ = trust_anchor_get_subject (_data_->_tmp39_);
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp41_ = NULL;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp41_ = _data_->_tmp40_;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp42_ = NULL;
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp42_ = g_strdup (_data_->_tmp41_);
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->subject_name_constraint);
-#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->subject_name_constraint = _data_->_tmp42_;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp43_ = NULL;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp43_ = _data_->request;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp44_ = NULL;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp44_ = _data_->_tmp43_->id_card;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp45_ = NULL;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp45_ = id_card_get_trust_anchor (_data_->_tmp44_);
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp46_ = NULL;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp46_ = _data_->_tmp45_;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp47_ = NULL;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp47_ = trust_anchor_get_subject_alt (_data_->_tmp46_);
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp48_ = NULL;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp48_ = _data_->_tmp47_;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp49_ = NULL;
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp49_ = g_strdup (_data_->_tmp48_);
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_free0 (_data_->subject_alt_name_constraint);
-#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->subject_alt_name_constraint = _data_->_tmp49_;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp50_ = NULL;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp50_ = _data_->nai_out;
-#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp50_ == NULL) {
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp51_ = NULL;
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp51_ = g_strdup ("");
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->nai_out);
-#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->nai_out = _data_->_tmp51_;
-#line 1804 "moonshot-server.c"
-               }
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp52_ = NULL;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp52_ = _data_->password_out;
-#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp52_ == NULL) {
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp53_ = NULL;
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp53_ = g_strdup ("");
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->password_out);
-#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->password_out = _data_->_tmp53_;
-#line 1820 "moonshot-server.c"
-               }
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp54_ = NULL;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp54_ = _data_->server_certificate_hash;
-#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp54_ == NULL) {
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp55_ = NULL;
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp55_ = g_strdup ("");
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->server_certificate_hash);
-#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->server_certificate_hash = _data_->_tmp55_;
-#line 1836 "moonshot-server.c"
-               }
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp56_ = NULL;
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp56_ = _data_->ca_certificate;
-#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp56_ == NULL) {
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp57_ = NULL;
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp57_ = g_strdup ("");
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->ca_certificate);
-#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->ca_certificate = _data_->_tmp57_;
-#line 1852 "moonshot-server.c"
-               }
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp58_ = NULL;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp58_ = _data_->subject_name_constraint;
-#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp58_ == NULL) {
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp59_ = NULL;
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp59_ = g_strdup ("");
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->subject_name_constraint);
-#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->subject_name_constraint = _data_->_tmp59_;
-#line 1868 "moonshot-server.c"
-               }
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp60_ = NULL;
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_tmp60_ = _data_->subject_alt_name_constraint;
-#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_tmp60_ == NULL) {
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp61_ = NULL;
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->_tmp61_ = g_strdup ("");
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _g_free0 (_data_->subject_alt_name_constraint);
-#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _data_->subject_alt_name_constraint = _data_->_tmp61_;
-#line 1884 "moonshot-server.c"
-               }
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->result = TRUE;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _g_object_unref0 (_data_->request);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               block3_data_unref (_data_->_data3_);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _data_->_data3_ = NULL;
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               if (_data_->_state_ == 0) {
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       g_simple_async_result_complete_in_idle (_data_->_async_result);
-#line 1898 "moonshot-server.c"
-               } else {
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       g_simple_async_result_complete (_data_->_async_result);
-#line 1902 "moonshot-server.c"
-               }
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_object_unref (_data_->_async_result);
-#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               return FALSE;
-#line 1908 "moonshot-server.c"
-       }
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->result = FALSE;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_object_unref0 (_data_->request);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       block3_data_unref (_data_->_data3_);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_data3_ = NULL;
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (_data_->_state_ == 0) {
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_simple_async_result_complete_in_idle (_data_->_async_result);
-#line 1922 "moonshot-server.c"
-       } else {
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_simple_async_result_complete (_data_->_async_result);
-#line 1926 "moonshot-server.c"
-       }
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_object_unref (_data_->_async_result);
-#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return FALSE;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_object_unref0 (_data_->request);
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       block3_data_unref (_data_->_data3_);
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _data_->_data3_ = NULL;
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (_data_->_state_ == 0) {
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_simple_async_result_complete_in_idle (_data_->_async_result);
-#line 1942 "moonshot-server.c"
-       } else {
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               g_simple_async_result_complete (_data_->_async_result);
-#line 1946 "moonshot-server.c"
-       }
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_object_unref (_data_->_async_result);
-#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return FALSE;
-#line 1952 "moonshot-server.c"
-}
-
-
-static void _vala_Rule_array_free (Rule* array, gint array_length) {
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (array != NULL) {
-#line 1959 "moonshot-server.c"
-               int i;
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               for (i = 0; i < array_length; i = i + 1) {
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       rule_destroy (&array[i]);
-#line 1965 "moonshot-server.c"
-               }
-       }
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_free (array);
-#line 1970 "moonshot-server.c"
-}
-
-
-gboolean moonshot_server_install_id_card (MoonshotServer* self, const gchar* display_name, const gchar* user_name, const gchar* password, const gchar* realm, gchar** rules_patterns, int rules_patterns_length1, gchar** rules_always_confirm, int rules_always_confirm_length1, gchar** services, int services_length1, const gchar* ca_cert, const gchar* subject, const gchar* subject_alt, const gchar* server_cert, gint force_flat_file_store) {
-       gboolean result = FALSE;
-       IdCard* idcard = NULL;
-       IdCard* _tmp0_ = NULL;
-       IdCard* _tmp1_ = NULL;
-       const gchar* _tmp2_ = NULL;
-       IdCard* _tmp3_ = NULL;
-       const gchar* _tmp4_ = NULL;
-       IdCard* _tmp5_ = NULL;
-       const gchar* _tmp6_ = NULL;
-       gboolean _tmp7_ = FALSE;
-       const gchar* _tmp8_ = NULL;
-       IdCard* _tmp11_ = NULL;
-       const gchar* _tmp12_ = NULL;
-       IdCard* _tmp13_ = NULL;
-       gchar** _tmp14_ = NULL;
-       gint _tmp14__length1 = 0;
-       IdCard* _tmp15_ = NULL;
-       TrustAnchor* _tmp16_ = NULL;
-       TrustAnchor* _tmp17_ = NULL;
-       const gchar* _tmp18_ = NULL;
-       IdCard* _tmp19_ = NULL;
-       TrustAnchor* _tmp20_ = NULL;
-       TrustAnchor* _tmp21_ = NULL;
-       const gchar* _tmp22_ = NULL;
-       IdCard* _tmp23_ = NULL;
-       TrustAnchor* _tmp24_ = NULL;
-       TrustAnchor* _tmp25_ = NULL;
-       const gchar* _tmp26_ = NULL;
-       IdCard* _tmp27_ = NULL;
-       TrustAnchor* _tmp28_ = NULL;
-       TrustAnchor* _tmp29_ = NULL;
-       const gchar* _tmp30_ = NULL;
-       gchar** _tmp31_ = NULL;
-       gint _tmp31__length1 = 0;
-       gchar** _tmp32_ = NULL;
-       gint _tmp32__length1 = 0;
-       IdentityManagerApp* _tmp53_ = NULL;
-       IdCard* _tmp54_ = NULL;
-       gint _tmp55_ = 0;
-       gboolean _tmp56_ = FALSE;
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_return_val_if_fail (self != NULL, FALSE);
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_return_val_if_fail (display_name != NULL, FALSE);
-#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_return_val_if_fail (user_name != NULL, FALSE);
-#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp0_ = id_card_new ();
-#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       idcard = _tmp0_;
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp1_ = idcard;
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp2_ = display_name;
-#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       id_card_set_display_name (_tmp1_, _tmp2_);
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp3_ = idcard;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp4_ = user_name;
-#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       id_card_set_username (_tmp3_, _tmp4_);
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp5_ = idcard;
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp6_ = password;
-#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       id_card_set_password (_tmp5_, _tmp6_);
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp8_ = password;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (_tmp8_ != NULL) {
-#line 2047 "moonshot-server.c"
-               const gchar* _tmp9_ = NULL;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _tmp9_ = password;
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _tmp7_ = g_strcmp0 (_tmp9_, "") != 0;
-#line 2053 "moonshot-server.c"
-       } else {
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _tmp7_ = FALSE;
-#line 2057 "moonshot-server.c"
-       }
-#line 178 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (_tmp7_) {
-#line 2061 "moonshot-server.c"
-               IdCard* _tmp10_ = NULL;
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _tmp10_ = idcard;
-#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               id_card_set_store_password (_tmp10_, TRUE);
-#line 2067 "moonshot-server.c"
-       }
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp11_ = idcard;
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp12_ = realm;
-#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       id_card_set_issuer (_tmp11_, _tmp12_);
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp13_ = idcard;
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp14_ = services;
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp14__length1 = services_length1;
-#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       id_card_set_services (_tmp13_, _tmp14_, _tmp14__length1);
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp15_ = idcard;
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp16_ = id_card_get_trust_anchor (_tmp15_);
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp17_ = _tmp16_;
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp18_ = ca_cert;
-#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       trust_anchor_set_ca_cert (_tmp17_, _tmp18_);
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp19_ = idcard;
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp20_ = id_card_get_trust_anchor (_tmp19_);
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp21_ = _tmp20_;
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp22_ = subject;
-#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       trust_anchor_set_subject (_tmp21_, _tmp22_);
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp23_ = idcard;
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp24_ = id_card_get_trust_anchor (_tmp23_);
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp25_ = _tmp24_;
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp26_ = subject_alt;
-#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       trust_anchor_set_subject_alt (_tmp25_, _tmp26_);
-#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp27_ = idcard;
-#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp28_ = id_card_get_trust_anchor (_tmp27_);
-#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp29_ = _tmp28_;
-#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp30_ = server_cert;
-#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       trust_anchor_set_server_cert (_tmp29_, _tmp30_);
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp31_ = rules_patterns;
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp31__length1 = rules_patterns_length1;
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp32_ = rules_always_confirm;
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp32__length1 = rules_always_confirm_length1;
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       if (_tmp31__length1 == _tmp32__length1) {
-#line 2133 "moonshot-server.c"
-               Rule* rules = NULL;
-               gchar** _tmp33_ = NULL;
-               gint _tmp33__length1 = 0;
-               Rule* _tmp34_ = NULL;
-               gint rules_length1 = 0;
-               gint _rules_size_ = 0;
-               IdCard* _tmp51_ = NULL;
-               Rule* _tmp52_ = NULL;
-               gint _tmp52__length1 = 0;
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _tmp33_ = rules_patterns;
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _tmp33__length1 = rules_patterns_length1;
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _tmp34_ = g_new0 (Rule, _tmp33__length1);
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               rules = _tmp34_;
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               rules_length1 = _tmp33__length1;
-#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _rules_size_ = rules_length1;
-#line 2155 "moonshot-server.c"
-               {
-                       gint i = 0;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       i = 0;
-#line 2160 "moonshot-server.c"
-                       {
-                               gboolean _tmp35_ = FALSE;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp35_ = TRUE;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               while (TRUE) {
-#line 2167 "moonshot-server.c"
-                                       gint _tmp37_ = 0;
-                                       Rule* _tmp38_ = NULL;
-                                       gint _tmp38__length1 = 0;
-                                       Rule* _tmp39_ = NULL;
-                                       gint _tmp39__length1 = 0;
-                                       gint _tmp40_ = 0;
-                                       gchar** _tmp41_ = NULL;
-                                       gint _tmp41__length1 = 0;
-                                       gint _tmp42_ = 0;
-                                       const gchar* _tmp43_ = NULL;
-                                       gchar* _tmp44_ = NULL;
-                                       Rule* _tmp45_ = NULL;
-                                       gint _tmp45__length1 = 0;
-                                       gint _tmp46_ = 0;
-                                       gchar** _tmp47_ = NULL;
-                                       gint _tmp47__length1 = 0;
-                                       gint _tmp48_ = 0;
-                                       const gchar* _tmp49_ = NULL;
-                                       gchar* _tmp50_ = NULL;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       if (!_tmp35_) {
-#line 2189 "moonshot-server.c"
-                                               gint _tmp36_ = 0;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                               _tmp36_ = i;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                               i = _tmp36_ + 1;
-#line 2195 "moonshot-server.c"
-                                       }
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp35_ = FALSE;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp37_ = i;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp38_ = rules;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp38__length1 = rules_length1;
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       if (!(_tmp37_ < _tmp38__length1)) {
-#line 192 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                               break;
-#line 2209 "moonshot-server.c"
-                                       }
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp39_ = rules;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp39__length1 = rules_length1;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp40_ = i;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp41_ = rules_patterns;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp41__length1 = rules_patterns_length1;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp42_ = i;
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp43_ = _tmp41_[_tmp42_];
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp44_ = g_strdup (_tmp43_);
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _g_free0 (_tmp39_[_tmp40_].pattern);
-#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp39_[_tmp40_].pattern = _tmp44_;
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp45_ = rules;
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp45__length1 = rules_length1;
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp46_ = i;
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp47_ = rules_always_confirm;
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp47__length1 = rules_always_confirm_length1;
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp48_ = i;
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp49_ = _tmp47_[_tmp48_];
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp50_ = g_strdup (_tmp49_);
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _g_free0 (_tmp45_[_tmp46_].always_confirm);
-#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp45_[_tmp46_].always_confirm = _tmp50_;
-#line 2251 "moonshot-server.c"
-                               }
-                       }
-               }
-#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _tmp51_ = idcard;
-#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _tmp52_ = rules;
-#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               _tmp52__length1 = rules_length1;
-#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               id_card_set_rules (_tmp51_, _tmp52_, _tmp52__length1);
-#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               rules = (_vala_Rule_array_free (rules, rules_length1), NULL);
-#line 2265 "moonshot-server.c"
-       }
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp53_ = self->priv->parent_app;
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp54_ = idcard;
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp55_ = force_flat_file_store;
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp56_ = identity_manager_app_add_identity (_tmp53_, _tmp54_, _tmp55_ != 0);
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       result = _tmp56_;
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _g_object_unref0 (idcard);
-#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return result;
-#line 2281 "moonshot-server.c"
-}
-
-
-gint moonshot_server_install_from_file (MoonshotServer* self, const gchar* file_name) {
-       gint result = 0;
-       WebProvisioningParser* webp = NULL;
-       const gchar* _tmp0_ = NULL;
-       WebProvisioningParser* _tmp1_ = NULL;
-       WebProvisioningParser* _tmp2_ = NULL;
-       gboolean _result_ = FALSE;
-       gint installed_cards = 0;
-       IdCard** _tmp3_ = NULL;
-       gint _tmp3__length1 = 0;
-#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_return_val_if_fail (self != NULL, 0);
-#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_return_val_if_fail (file_name != NULL, 0);
-#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp0_ = file_name;
-#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp1_ = web_provisioning_parser_new (_tmp0_);
-#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       webp = _tmp1_;
-#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp2_ = webp;
-#line 208 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       web_provisioning_parser_parse (_tmp2_);
-#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _result_ = FALSE;
-#line 210 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       installed_cards = 0;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp3_ = web_provisioning_cards;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _tmp3__length1 = web_provisioning_cards_length1;
-#line 2317 "moonshot-server.c"
-       {
-               IdCard** card_collection = NULL;
-               gint card_collection_length1 = 0;
-               gint _card_collection_size_ = 0;
-               gint card_it = 0;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               card_collection = _tmp3_;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               card_collection_length1 = _tmp3__length1;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-               for (card_it = 0; card_it < _tmp3__length1; card_it = card_it + 1) {
-#line 2329 "moonshot-server.c"
-                       IdCard* _tmp4_ = NULL;
-                       IdCard* card = NULL;
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       _tmp4_ = _g_object_ref0 (card_collection[card_it]);
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                       card = _tmp4_;
-#line 2336 "moonshot-server.c"
-                       {
-                               gchar** rules_patterns = NULL;
-                               gchar** _tmp5_ = NULL;
-                               gint rules_patterns_length1 = 0;
-                               gint _rules_patterns_size_ = 0;
-                               gchar** rules_always_confirm = NULL;
-                               gchar** _tmp6_ = NULL;
-                               gint rules_always_confirm_length1 = 0;
-                               gint _rules_always_confirm_size_ = 0;
-                               IdCard* _tmp7_ = NULL;
-                               Rule* _tmp8_ = NULL;
-                               gint _tmp8__length1 = 0;
-                               Rule* _tmp9_ = NULL;
-                               gint _tmp9__length1 = 0;
-                               IdCard* _tmp35_ = NULL;
-                               const gchar* _tmp36_ = NULL;
-                               const gchar* _tmp37_ = NULL;
-                               IdCard* _tmp38_ = NULL;
-                               const gchar* _tmp39_ = NULL;
-                               const gchar* _tmp40_ = NULL;
-                               IdCard* _tmp41_ = NULL;
-                               const gchar* _tmp42_ = NULL;
-                               const gchar* _tmp43_ = NULL;
-                               IdCard* _tmp44_ = NULL;
-                               const gchar* _tmp45_ = NULL;
-                               const gchar* _tmp46_ = NULL;
-                               gchar** _tmp47_ = NULL;
-                               gint _tmp47__length1 = 0;
-                               gchar** _tmp48_ = NULL;
-                               gint _tmp48__length1 = 0;
-                               IdCard* _tmp49_ = NULL;
-                               gchar** _tmp50_ = NULL;
-                               gint _tmp50__length1 = 0;
-                               gchar** _tmp51_ = NULL;
-                               gint _tmp51__length1 = 0;
-                               IdCard* _tmp52_ = NULL;
-                               TrustAnchor* _tmp53_ = NULL;
-                               TrustAnchor* _tmp54_ = NULL;
-                               const gchar* _tmp55_ = NULL;
-                               const gchar* _tmp56_ = NULL;
-                               IdCard* _tmp57_ = NULL;
-                               TrustAnchor* _tmp58_ = NULL;
-                               TrustAnchor* _tmp59_ = NULL;
-                               const gchar* _tmp60_ = NULL;
-                               const gchar* _tmp61_ = NULL;
-                               IdCard* _tmp62_ = NULL;
-                               TrustAnchor* _tmp63_ = NULL;
-                               TrustAnchor* _tmp64_ = NULL;
-                               const gchar* _tmp65_ = NULL;
-                               const gchar* _tmp66_ = NULL;
-                               IdCard* _tmp67_ = NULL;
-                               TrustAnchor* _tmp68_ = NULL;
-                               TrustAnchor* _tmp69_ = NULL;
-                               const gchar* _tmp70_ = NULL;
-                               const gchar* _tmp71_ = NULL;
-                               gboolean _tmp72_ = FALSE;
-                               gboolean _tmp73_ = FALSE;
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp5_ = g_new0 (gchar*, 0 + 1);
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               rules_patterns = _tmp5_;
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               rules_patterns_length1 = 0;
-#line 213 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _rules_patterns_size_ = rules_patterns_length1;
-#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp6_ = g_new0 (gchar*, 0 + 1);
-#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               rules_always_confirm = _tmp6_;
-#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               rules_always_confirm_length1 = 0;
-#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _rules_always_confirm_size_ = rules_always_confirm_length1;
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp7_ = card;
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp8_ = id_card_get_rules (_tmp7_, &_tmp8__length1);
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp9_ = _tmp8_;
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp9__length1 = _tmp8__length1;
-#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               if (_tmp9__length1 > 0) {
-#line 2420 "moonshot-server.c"
-                                       gint i = 0;
-                                       IdCard* _tmp10_ = NULL;
-                                       Rule* _tmp11_ = NULL;
-                                       gint _tmp11__length1 = 0;
-                                       Rule* _tmp12_ = NULL;
-                                       gint _tmp12__length1 = 0;
-                                       gchar** _tmp13_ = NULL;
-                                       IdCard* _tmp14_ = NULL;
-                                       Rule* _tmp15_ = NULL;
-                                       gint _tmp15__length1 = 0;
-                                       Rule* _tmp16_ = NULL;
-                                       gint _tmp16__length1 = 0;
-                                       gchar** _tmp17_ = NULL;
-                                       IdCard* _tmp18_ = NULL;
-                                       Rule* _tmp19_ = NULL;
-                                       gint _tmp19__length1 = 0;
-                                       Rule* _tmp20_ = NULL;
-                                       gint _tmp20__length1 = 0;
-#line 218 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       i = 0;
-#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp10_ = card;
-#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp11_ = id_card_get_rules (_tmp10_, &_tmp11__length1);
-#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp12_ = _tmp11_;
-#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp12__length1 = _tmp11__length1;
-#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp13_ = g_new0 (gchar*, _tmp12__length1 + 1);
-#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
-#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       rules_patterns = _tmp13_;
-#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       rules_patterns_length1 = _tmp12__length1;
-#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _rules_patterns_size_ = rules_patterns_length1;
-#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp14_ = card;
-#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp15_ = id_card_get_rules (_tmp14_, &_tmp15__length1);
-#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp16_ = _tmp15_;
-#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp16__length1 = _tmp15__length1;
-#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp17_ = g_new0 (gchar*, _tmp16__length1 + 1);
-#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL);
-#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       rules_always_confirm = _tmp17_;
-#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       rules_always_confirm_length1 = _tmp16__length1;
-#line 220 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _rules_always_confirm_size_ = rules_always_confirm_length1;
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp18_ = card;
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp19_ = id_card_get_rules (_tmp18_, &_tmp19__length1);
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp20_ = _tmp19_;
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp20__length1 = _tmp19__length1;
-#line 2485 "moonshot-server.c"
-                                       {
-                                               Rule* r_collection = NULL;
-                                               gint r_collection_length1 = 0;
-                                               gint _r_collection_size_ = 0;
-                                               gint r_it = 0;
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                               r_collection = _tmp20_;
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                               r_collection_length1 = _tmp20__length1;
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                               for (r_it = 0; r_it < _tmp20__length1; r_it = r_it + 1) {
-#line 2497 "moonshot-server.c"
-                                                       Rule _tmp21_ = {0};
-                                                       Rule r = {0};
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                       rule_copy (&r_collection[r_it], &_tmp21_);
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                       r = _tmp21_;
-#line 2504 "moonshot-server.c"
-                                                       {
-                                                               gchar** _tmp22_ = NULL;
-                                                               gint _tmp22__length1 = 0;
-                                                               gint _tmp23_ = 0;
-                                                               Rule _tmp24_ = {0};
-                                                               const gchar* _tmp25_ = NULL;
-                                                               gchar* _tmp26_ = NULL;
-                                                               gchar* _tmp27_ = NULL;
-                                                               gchar** _tmp28_ = NULL;
-                                                               gint _tmp28__length1 = 0;
-                                                               gint _tmp29_ = 0;
-                                                               Rule _tmp30_ = {0};
-                                                               const gchar* _tmp31_ = NULL;
-                                                               gchar* _tmp32_ = NULL;
-                                                               gchar* _tmp33_ = NULL;
-                                                               gint _tmp34_ = 0;
-#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp22_ = rules_patterns;
-#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp22__length1 = rules_patterns_length1;
-#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp23_ = i;
-#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp24_ = r;
-#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp25_ = _tmp24_.pattern;
-#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp26_ = g_strdup (_tmp25_);
-#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _g_free0 (_tmp22_[_tmp23_]);
-#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp22_[_tmp23_] = _tmp26_;
-#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp27_ = _tmp22_[_tmp23_];
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp28_ = rules_always_confirm;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp28__length1 = rules_always_confirm_length1;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp29_ = i;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp30_ = r;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp31_ = _tmp30_.always_confirm;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp32_ = g_strdup (_tmp31_);
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _g_free0 (_tmp28_[_tmp29_]);
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp28_[_tmp29_] = _tmp32_;
-#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp33_ = _tmp28_[_tmp29_];
-#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               _tmp34_ = i;
-#line 225 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               i = _tmp34_ + 1;
-#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                                               rule_destroy (&r);
-#line 2563 "moonshot-server.c"
-                                                       }
-                                               }
-                                       }
-                               }
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp35_ = card;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp36_ = id_card_get_display_name (_tmp35_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp37_ = _tmp36_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp38_ = card;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp39_ = id_card_get_username (_tmp38_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp40_ = _tmp39_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp41_ = card;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp42_ = id_card_get_password (_tmp41_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp43_ = _tmp42_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp44_ = card;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp45_ = id_card_get_issuer (_tmp44_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp46_ = _tmp45_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp47_ = rules_patterns;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp47__length1 = rules_patterns_length1;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp48_ = rules_always_confirm;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp48__length1 = rules_always_confirm_length1;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp49_ = card;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp50_ = id_card_get_services (_tmp49_, &_tmp50__length1);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp51_ = _tmp50_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp51__length1 = _tmp50__length1;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp52_ = card;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp53_ = id_card_get_trust_anchor (_tmp52_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp54_ = _tmp53_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp55_ = trust_anchor_get_ca_cert (_tmp54_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp56_ = _tmp55_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp57_ = card;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp58_ = id_card_get_trust_anchor (_tmp57_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp59_ = _tmp58_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp60_ = trust_anchor_get_subject (_tmp59_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp61_ = _tmp60_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp62_ = card;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp63_ = id_card_get_trust_anchor (_tmp62_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp64_ = _tmp63_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp65_ = trust_anchor_get_subject_alt (_tmp64_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp66_ = _tmp65_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp67_ = card;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp68_ = id_card_get_trust_anchor (_tmp67_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp69_ = _tmp68_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp70_ = trust_anchor_get_server_cert (_tmp69_);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp71_ = _tmp70_;
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp72_ = moonshot_server_install_id_card (self, _tmp37_, _tmp40_, _tmp43_, _tmp46_, _tmp47_, _tmp47__length1, _tmp48_, _tmp48__length1, _tmp51_, _tmp51__length1, _tmp56_, _tmp61_, _tmp66_, _tmp71_, 0);
-#line 229 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _result_ = _tmp72_;
-#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _tmp73_ = _result_;
-#line 241 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               if (_tmp73_) {
-#line 2656 "moonshot-server.c"
-                                       gint _tmp74_ = 0;
-#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       _tmp74_ = installed_cards;
-#line 242 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                                       installed_cards = _tmp74_ + 1;
-#line 2662 "moonshot-server.c"
-                               }
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL);
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
-#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-                               _g_object_unref0 (card);
-#line 2670 "moonshot-server.c"
-                       }
-               }
-       }
-#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       result = installed_cards;
-#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _web_provisioning_parser_unref0 (webp);
-#line 245 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       return result;
-#line 2680 "moonshot-server.c"
-}
-
-
-static void moonshot_server_class_init (MoonshotServerClass * klass) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       moonshot_server_parent_class = g_type_class_peek_parent (klass);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       g_type_class_add_private (klass, sizeof (MoonshotServerPrivate));
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       G_OBJECT_CLASS (klass)->finalize = moonshot_server_finalize;
-#line 2691 "moonshot-server.c"
-}
-
-
-static void moonshot_server_instance_init (MoonshotServer * self) {
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       self->priv = MOONSHOT_SERVER_GET_PRIVATE (self);
-#line 2698 "moonshot-server.c"
-}
-
-
-static void moonshot_server_finalize (GObject* obj) {
-       MoonshotServer * self;
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MOONSHOT_SERVER, MoonshotServer);
-#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       _identity_manager_app_unref0 (self->priv->parent_app);
-#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-server.vala"
-       G_OBJECT_CLASS (moonshot_server_parent_class)->finalize (obj);
-#line 2710 "moonshot-server.c"
-}
-
-
-GType moonshot_server_get_type (void) {
-       static volatile gsize moonshot_server_type_id__volatile = 0;
-       if (g_once_init_enter (&moonshot_server_type_id__volatile)) {
-               static const GTypeInfo g_define_type_info = { sizeof (MoonshotServerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) moonshot_server_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MoonshotServer), 0, (GInstanceInitFunc) moonshot_server_instance_init, NULL };
-               GType moonshot_server_type_id;
-               moonshot_server_type_id = g_type_register_static (G_TYPE_OBJECT, "MoonshotServer", &g_define_type_info, 0);
-               g_type_set_qdata (moonshot_server_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) moonshot_server_register_object);
-               g_once_init_leave (&moonshot_server_type_id__volatile, moonshot_server_type_id);
-       }
-       return moonshot_server_type_id__volatile;
-}
-
-
-static void _dbus_moonshot_server_show_ui (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
-       GError* error = NULL;
-       GVariantIter _arguments_iter;
-       GDBusMessage* _reply_message;
-       GVariant* _reply;
-       GVariantBuilder _reply_builder;
-       gboolean result;
-       g_variant_iter_init (&_arguments_iter, _parameters_);
-       result = moonshot_server_show_ui (self);
-       _reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
-       g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
-       _reply = g_variant_builder_end (&_reply_builder);
-       g_dbus_message_set_body (_reply_message, _reply);
-       g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
-       g_object_unref (invocation);
-       g_object_unref (_reply_message);
-}
-
-
-static void _dbus_moonshot_server_get_identity (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
-       GVariantIter _arguments_iter;
-       gchar* nai = NULL;
-       GVariant* _tmp1_;
-       gchar* password = NULL;
-       GVariant* _tmp2_;
-       gchar* service = NULL;
-       GVariant* _tmp3_;
-       g_variant_iter_init (&_arguments_iter, _parameters_);
-       _tmp1_ = g_variant_iter_next_value (&_arguments_iter);
-       nai = g_variant_dup_string (_tmp1_, NULL);
-       g_variant_unref (_tmp1_);
-       _tmp2_ = g_variant_iter_next_value (&_arguments_iter);
-       password = g_variant_dup_string (_tmp2_, NULL);
-       g_variant_unref (_tmp2_);
-       _tmp3_ = g_variant_iter_next_value (&_arguments_iter);
-       service = g_variant_dup_string (_tmp3_, NULL);
-       g_variant_unref (_tmp3_);
-       moonshot_server_get_identity (self, nai, password, service, (GAsyncReadyCallback) _dbus_moonshot_server_get_identity_ready, invocation);
-       _g_free0 (nai);
-       _g_free0 (password);
-       _g_free0 (service);
-}
-
-
-static void _dbus_moonshot_server_get_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer _user_data_) {
-       GDBusMethodInvocation * invocation;
-       GError* error = NULL;
-       GDBusMessage* _reply_message;
-       GVariant* _reply;
-       GVariantBuilder _reply_builder;
-       gchar* nai_out = NULL;
-       gchar* password_out = NULL;
-       gchar* server_certificate_hash = NULL;
-       gchar* ca_certificate = NULL;
-       gchar* subject_name_constraint = NULL;
-       gchar* subject_alt_name_constraint = NULL;
-       gboolean result;
-       invocation = _user_data_;
-       result = moonshot_server_get_identity_finish ((MoonshotServer*) source_object, _res_, &nai_out, &password_out, &server_certificate_hash, &ca_certificate, &subject_name_constraint, &subject_alt_name_constraint);
-       _reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
-       g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (nai_out));
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (password_out));
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (server_certificate_hash));
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (ca_certificate));
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (subject_name_constraint));
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (subject_alt_name_constraint));
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
-       _reply = g_variant_builder_end (&_reply_builder);
-       g_dbus_message_set_body (_reply_message, _reply);
-       _g_free0 (nai_out);
-       _g_free0 (password_out);
-       _g_free0 (server_certificate_hash);
-       _g_free0 (ca_certificate);
-       _g_free0 (subject_name_constraint);
-       _g_free0 (subject_alt_name_constraint);
-       g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
-       g_object_unref (invocation);
-       g_object_unref (_reply_message);
-}
-
-
-static void _dbus_moonshot_server_get_default_identity (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
-       GVariantIter _arguments_iter;
-       g_variant_iter_init (&_arguments_iter, _parameters_);
-       moonshot_server_get_default_identity (self, (GAsyncReadyCallback) _dbus_moonshot_server_get_default_identity_ready, invocation);
-}
-
-
-static void _dbus_moonshot_server_get_default_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer _user_data_) {
-       GDBusMethodInvocation * invocation;
-       GError* error = NULL;
-       GDBusMessage* _reply_message;
-       GVariant* _reply;
-       GVariantBuilder _reply_builder;
-       gchar* nai_out = NULL;
-       gchar* password_out = NULL;
-       gchar* server_certificate_hash = NULL;
-       gchar* ca_certificate = NULL;
-       gchar* subject_name_constraint = NULL;
-       gchar* subject_alt_name_constraint = NULL;
-       gboolean result;
-       invocation = _user_data_;
-       result = moonshot_server_get_default_identity_finish ((MoonshotServer*) source_object, _res_, &nai_out, &password_out, &server_certificate_hash, &ca_certificate, &subject_name_constraint, &subject_alt_name_constraint);
-       _reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
-       g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (nai_out));
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (password_out));
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (server_certificate_hash));
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (ca_certificate));
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (subject_name_constraint));
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_string (subject_alt_name_constraint));
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
-       _reply = g_variant_builder_end (&_reply_builder);
-       g_dbus_message_set_body (_reply_message, _reply);
-       _g_free0 (nai_out);
-       _g_free0 (password_out);
-       _g_free0 (server_certificate_hash);
-       _g_free0 (ca_certificate);
-       _g_free0 (subject_name_constraint);
-       _g_free0 (subject_alt_name_constraint);
-       g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
-       g_object_unref (invocation);
-       g_object_unref (_reply_message);
-}
-
-
-static void _dbus_moonshot_server_install_id_card (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
-       GError* error = NULL;
-       GVariantIter _arguments_iter;
-       gchar* display_name = NULL;
-       GVariant* _tmp4_;
-       gchar* user_name = NULL;
-       GVariant* _tmp5_;
-       gchar* password = NULL;
-       GVariant* _tmp6_;
-       gchar* realm = NULL;
-       GVariant* _tmp7_;
-       gchar** rules_patterns = NULL;
-       int rules_patterns_length1 = 0;
-       GVariant* _tmp8_;
-       gchar** _tmp9_;
-       int _tmp9__length;
-       int _tmp9__size;
-       int _tmp9__length1;
-       GVariantIter _tmp10_;
-       GVariant* _tmp11_;
-       gchar** rules_always_confirm = NULL;
-       int rules_always_confirm_length1 = 0;
-       GVariant* _tmp12_;
-       gchar** _tmp13_;
-       int _tmp13__length;
-       int _tmp13__size;
-       int _tmp13__length1;
-       GVariantIter _tmp14_;
-       GVariant* _tmp15_;
-       gchar** services = NULL;
-       int services_length1 = 0;
-       GVariant* _tmp16_;
-       gchar** _tmp17_;
-       int _tmp17__length;
-       int _tmp17__size;
-       int _tmp17__length1;
-       GVariantIter _tmp18_;
-       GVariant* _tmp19_;
-       gchar* ca_cert = NULL;
-       GVariant* _tmp20_;
-       gchar* subject = NULL;
-       GVariant* _tmp21_;
-       gchar* subject_alt = NULL;
-       GVariant* _tmp22_;
-       gchar* server_cert = NULL;
-       GVariant* _tmp23_;
-       gint force_flat_file_store = 0;
-       GVariant* _tmp24_;
-       GDBusMessage* _reply_message;
-       GVariant* _reply;
-       GVariantBuilder _reply_builder;
-       gboolean result;
-       g_variant_iter_init (&_arguments_iter, _parameters_);
-       _tmp4_ = g_variant_iter_next_value (&_arguments_iter);
-       display_name = g_variant_dup_string (_tmp4_, NULL);
-       g_variant_unref (_tmp4_);
-       _tmp5_ = g_variant_iter_next_value (&_arguments_iter);
-       user_name = g_variant_dup_string (_tmp5_, NULL);
-       g_variant_unref (_tmp5_);
-       _tmp6_ = g_variant_iter_next_value (&_arguments_iter);
-       password = g_variant_dup_string (_tmp6_, NULL);
-       g_variant_unref (_tmp6_);
-       _tmp7_ = g_variant_iter_next_value (&_arguments_iter);
-       realm = g_variant_dup_string (_tmp7_, NULL);
-       g_variant_unref (_tmp7_);
-       _tmp8_ = g_variant_iter_next_value (&_arguments_iter);
-       _tmp9_ = g_new (gchar*, 5);
-       _tmp9__length = 0;
-       _tmp9__size = 4;
-       _tmp9__length1 = 0;
-       g_variant_iter_init (&_tmp10_, _tmp8_);
-       for (; (_tmp11_ = g_variant_iter_next_value (&_tmp10_)) != NULL; _tmp9__length1++) {
-               if (_tmp9__size == _tmp9__length) {
-                       _tmp9__size = 2 * _tmp9__size;
-                       _tmp9_ = g_renew (gchar*, _tmp9_, _tmp9__size + 1);
-               }
-               _tmp9_[_tmp9__length++] = g_variant_dup_string (_tmp11_, NULL);
-               g_variant_unref (_tmp11_);
-       }
-       rules_patterns_length1 = _tmp9__length1;
-       _tmp9_[_tmp9__length] = NULL;
-       rules_patterns = _tmp9_;
-       g_variant_unref (_tmp8_);
-       _tmp12_ = g_variant_iter_next_value (&_arguments_iter);
-       _tmp13_ = g_new (gchar*, 5);
-       _tmp13__length = 0;
-       _tmp13__size = 4;
-       _tmp13__length1 = 0;
-       g_variant_iter_init (&_tmp14_, _tmp12_);
-       for (; (_tmp15_ = g_variant_iter_next_value (&_tmp14_)) != NULL; _tmp13__length1++) {
-               if (_tmp13__size == _tmp13__length) {
-                       _tmp13__size = 2 * _tmp13__size;
-                       _tmp13_ = g_renew (gchar*, _tmp13_, _tmp13__size + 1);
-               }
-               _tmp13_[_tmp13__length++] = g_variant_dup_string (_tmp15_, NULL);
-               g_variant_unref (_tmp15_);
-       }
-       rules_always_confirm_length1 = _tmp13__length1;
-       _tmp13_[_tmp13__length] = NULL;
-       rules_always_confirm = _tmp13_;
-       g_variant_unref (_tmp12_);
-       _tmp16_ = g_variant_iter_next_value (&_arguments_iter);
-       _tmp17_ = g_new (gchar*, 5);
-       _tmp17__length = 0;
-       _tmp17__size = 4;
-       _tmp17__length1 = 0;
-       g_variant_iter_init (&_tmp18_, _tmp16_);
-       for (; (_tmp19_ = g_variant_iter_next_value (&_tmp18_)) != NULL; _tmp17__length1++) {
-               if (_tmp17__size == _tmp17__length) {
-                       _tmp17__size = 2 * _tmp17__size;
-                       _tmp17_ = g_renew (gchar*, _tmp17_, _tmp17__size + 1);
-               }
-               _tmp17_[_tmp17__length++] = g_variant_dup_string (_tmp19_, NULL);
-               g_variant_unref (_tmp19_);
-       }
-       services_length1 = _tmp17__length1;
-       _tmp17_[_tmp17__length] = NULL;
-       services = _tmp17_;
-       g_variant_unref (_tmp16_);
-       _tmp20_ = g_variant_iter_next_value (&_arguments_iter);
-       ca_cert = g_variant_dup_string (_tmp20_, NULL);
-       g_variant_unref (_tmp20_);
-       _tmp21_ = g_variant_iter_next_value (&_arguments_iter);
-       subject = g_variant_dup_string (_tmp21_, NULL);
-       g_variant_unref (_tmp21_);
-       _tmp22_ = g_variant_iter_next_value (&_arguments_iter);
-       subject_alt = g_variant_dup_string (_tmp22_, NULL);
-       g_variant_unref (_tmp22_);
-       _tmp23_ = g_variant_iter_next_value (&_arguments_iter);
-       server_cert = g_variant_dup_string (_tmp23_, NULL);
-       g_variant_unref (_tmp23_);
-       _tmp24_ = g_variant_iter_next_value (&_arguments_iter);
-       force_flat_file_store = g_variant_get_int32 (_tmp24_);
-       g_variant_unref (_tmp24_);
-       result = moonshot_server_install_id_card (self, display_name, user_name, password, realm, rules_patterns, rules_patterns_length1, rules_always_confirm, rules_always_confirm_length1, services, services_length1, ca_cert, subject, subject_alt, server_cert, force_flat_file_store);
-       _reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
-       g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
-       _reply = g_variant_builder_end (&_reply_builder);
-       g_dbus_message_set_body (_reply_message, _reply);
-       _g_free0 (display_name);
-       _g_free0 (user_name);
-       _g_free0 (password);
-       _g_free0 (realm);
-       rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
-       rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL);
-       services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_free), NULL);
-       _g_free0 (ca_cert);
-       _g_free0 (subject);
-       _g_free0 (subject_alt);
-       _g_free0 (server_cert);
-       g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
-       g_object_unref (invocation);
-       g_object_unref (_reply_message);
-}
-
-
-static void _dbus_moonshot_server_install_from_file (MoonshotServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
-       GError* error = NULL;
-       GVariantIter _arguments_iter;
-       gchar* file_name = NULL;
-       GVariant* _tmp25_;
-       GDBusMessage* _reply_message;
-       GVariant* _reply;
-       GVariantBuilder _reply_builder;
-       gint result;
-       g_variant_iter_init (&_arguments_iter, _parameters_);
-       _tmp25_ = g_variant_iter_next_value (&_arguments_iter);
-       file_name = g_variant_dup_string (_tmp25_, NULL);
-       g_variant_unref (_tmp25_);
-       result = moonshot_server_install_from_file (self, file_name);
-       _reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
-       g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
-       g_variant_builder_add_value (&_reply_builder, g_variant_new_int32 (result));
-       _reply = g_variant_builder_end (&_reply_builder);
-       g_dbus_message_set_body (_reply_message, _reply);
-       _g_free0 (file_name);
-       g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
-       g_object_unref (invocation);
-       g_object_unref (_reply_message);
-}
-
-
-static void moonshot_server_dbus_interface_method_call (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* method_name, GVariant* parameters, GDBusMethodInvocation* invocation, gpointer user_data) {
-       gpointer* data;
-       gpointer object;
-       data = user_data;
-       object = data[0];
-       if (strcmp (method_name, "ShowUi") == 0) {
-               _dbus_moonshot_server_show_ui (object, parameters, invocation);
-       } else if (strcmp (method_name, "GetIdentity") == 0) {
-               _dbus_moonshot_server_get_identity (object, parameters, invocation);
-       } else if (strcmp (method_name, "GetDefaultIdentity") == 0) {
-               _dbus_moonshot_server_get_default_identity (object, parameters, invocation);
-       } else if (strcmp (method_name, "InstallIdCard") == 0) {
-               _dbus_moonshot_server_install_id_card (object, parameters, invocation);
-       } else if (strcmp (method_name, "InstallFromFile") == 0) {
-               _dbus_moonshot_server_install_from_file (object, parameters, invocation);
-       } else {
-               g_object_unref (invocation);
-       }
-}
-
-
-static GVariant* moonshot_server_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data) {
-       gpointer* data;
-       gpointer object;
-       data = user_data;
-       object = data[0];
-       return NULL;
-}
-
-
-static gboolean moonshot_server_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data) {
-       gpointer* data;
-       gpointer object;
-       data = user_data;
-       object = data[0];
-       return FALSE;
-}
-
-
-guint moonshot_server_register_object (gpointer object, GDBusConnection* connection, const gchar* path, GError** error) {
-       guint result;
-       gpointer *data;
-       data = g_new (gpointer, 3);
-       data[0] = g_object_ref (object);
-       data[1] = g_object_ref (connection);
-       data[2] = g_strdup (path);
-       result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_moonshot_server_dbus_interface_info), &_moonshot_server_dbus_interface_vtable, data, _moonshot_server_unregister_object, error);
-       if (!result) {
-               return 0;
-       }
-       return result;
-}
-
-
-static void _moonshot_server_unregister_object (gpointer user_data) {
-       gpointer* data;
-       data = user_data;
-       g_object_unref (data[0]);
-       g_object_unref (data[1]);
-       g_free (data[2]);
-       g_free (data);
-}
-
-
-static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
-       if ((array != NULL) && (destroy_func != NULL)) {
-               int i;
-               for (i = 0; i < array_length; i = i + 1) {
-                       if (((gpointer*) array)[i] != NULL) {
-                               destroy_func (((gpointer*) array)[i]);
-                       }
-               }
-       }
-}
-
-
-static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
-       _vala_array_destroy (array, array_length, destroy_func);
-       g_free (array);
-}
-
-
-
diff --git a/src/moonshot-server.vala b/src/moonshot-server.vala
deleted file mode 100644 (file)
index 74288f7..0000000
+++ /dev/null
@@ -1,477 +0,0 @@
-/*
- * Copyright (c) 2011-2014, JANET(UK)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of JANET(UK) nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
-*/
-#if IPC_DBUS
-
-[DBus (name = "org.janet.Moonshot")]
-public class MoonshotServer : Object {
-
-    private IdentityManagerApp parent_app;
-
-    public MoonshotServer (IdentityManagerApp app)
-    {
-        this.parent_app = app;
-    }
-
-    public bool show_ui()
-    {
-        if (parent_app.view == null) {
-            return false;
-        }
-        parent_app.show();
-        parent_app.explicitly_launched = true;
-        return true;
-    }
-
-    public async bool get_identity (string nai,
-                                    string password,
-                                    string service,
-                                    out string nai_out,
-                                    out string password_out,
-                                    out string server_certificate_hash,
-                                    out string ca_certificate,
-                                    out string subject_name_constraint,
-                                    out string subject_alt_name_constraint)
-    {
-        var request = new IdentityRequest (parent_app,
-                                           nai,
-                                           password,
-                                           service);
-        request.set_callback ((IdentityRequest) => get_identity.callback());
-        request.execute ();
-        yield;
-
-        nai_out = "";
-        password_out = "";
-        server_certificate_hash = "";
-        ca_certificate = "";
-        subject_name_constraint = "";
-        subject_alt_name_constraint = "";
-
-        var id_card = request.id_card;
-
-        if ((id_card != null) && (id_card.display_name != IdCard.NO_IDENTITY)) {
-            nai_out = id_card.nai;
-            if ((request.password!=null) && (request.password != ""))
-                password_out = request.password;
-            else
-                password_out = id_card.password;
-
-            server_certificate_hash = id_card.trust_anchor.server_cert;
-            ca_certificate = id_card.trust_anchor.ca_cert;
-            subject_name_constraint = id_card.trust_anchor.subject;
-            subject_alt_name_constraint = id_card.trust_anchor.subject_alt;
-
-            if (nai_out == null)
-                nai_out = "";
-            if (password_out == null)
-                password_out = "";
-            if (server_certificate_hash == null)
-                server_certificate_hash = "";
-            if (ca_certificate == null)
-                ca_certificate = "";
-            if (subject_name_constraint == null)
-                subject_name_constraint = "";
-            if (subject_alt_name_constraint == null)
-                subject_alt_name_constraint = "";
-
-            return true;
-        }
-
-        return false;
-    }
-
-    public async bool get_default_identity (out string nai_out,
-                                            out string password_out,
-                                            out string server_certificate_hash,
-                                            out string ca_certificate,
-                                            out string subject_name_constraint,
-                                            out string subject_alt_name_constraint)
-    {
-        var request = new IdentityRequest.default (parent_app);
-        request.set_callback ((IdentityRequest) => get_default_identity.callback());
-        request.execute ();
-        yield;
-
-        nai_out = "";
-        password_out = "";
-        server_certificate_hash = "";
-        ca_certificate = "";
-        subject_name_constraint = "";
-        subject_alt_name_constraint = "";
-
-        if (request.id_card != null)
-        {
-            nai_out = request.id_card.nai;
-            password_out = request.id_card.password;
-
-            server_certificate_hash = request.id_card.trust_anchor.server_cert;
-            ca_certificate = request.id_card.trust_anchor.ca_cert;
-            subject_name_constraint = request.id_card.trust_anchor.subject;
-            subject_alt_name_constraint = request.id_card.trust_anchor.subject_alt;
-
-            if (nai_out == null)
-                nai_out = "";
-            if (password_out == null)
-                password_out = "";
-            if (server_certificate_hash == null)
-                server_certificate_hash = "";
-            if (ca_certificate == null)
-                ca_certificate = "";
-            if (subject_name_constraint == null)
-                subject_name_constraint = "";
-            if (subject_alt_name_constraint == null)
-                subject_alt_name_constraint = "";
-
-            return true;
-        }
-
-        return false;
-    }
-
-    public bool install_id_card (string   display_name,
-                                 string   user_name,
-                                 string   ?password,
-                                 string   ?realm,
-                                 string[] ?rules_patterns,
-                                 string[] ?rules_always_confirm,
-                                 string[] ?services,
-                                 string   ?ca_cert,
-                                 string   ?subject,
-                                 string   ?subject_alt,
-                                 string   ?server_cert,
-                                 int      force_flat_file_store)
-    {
-      IdCard idcard = new IdCard ();
-
-      idcard.display_name = display_name;
-      idcard.username = user_name;
-      idcard.password = password;
-      if ((password != null) && (password != ""))
-        idcard.store_password = true;
-      idcard.issuer = realm;
-      idcard.services = services;
-      idcard.trust_anchor.ca_cert = ca_cert;
-      idcard.trust_anchor.subject = subject;
-      idcard.trust_anchor.subject_alt = subject_alt;
-      idcard.trust_anchor.server_cert = server_cert;
-
-      if (rules_patterns.length == rules_always_confirm.length)
-      {
-        /* workaround Centos vala array property bug: use temp array */
-        Rule[] rules = new Rule[rules_patterns.length];
-         
-        for (int i=0; i<rules.length; i++)
-        { 
-          rules[i].pattern = rules_patterns[i];
-          rules[i].always_confirm = rules_always_confirm[i];
-        }
-        idcard.rules = rules;
-      }
-
-      return parent_app.add_identity (idcard, force_flat_file_store!=0);
-    }
-
-
-    public int install_from_file (string file_name)
-    {
-    var webp = new WebProvisioning.Parser (file_name);
-
-    webp.parse();
-    bool result = false;
-    int installed_cards = 0;
-    foreach (IdCard card in WebProvisioning.cards)
-    {
-      string[] rules_patterns = {};
-      string[] rules_always_confirm = {};
-        
-      if (card.rules.length > 0)
-      {
-        int i = 0;
-        rules_patterns = new string[card.rules.length];
-        rules_always_confirm = new string[card.rules.length];
-        foreach (Rule r in card.rules)
-        {
-          rules_patterns[i] = r.pattern;
-          rules_always_confirm[i] = r.always_confirm;
-          i++;
-        }
-      } 
-
-      result = install_id_card (card.display_name,
-                                card.username,
-                                card.password,
-                                card.issuer,
-                                rules_patterns,
-                                rules_always_confirm,
-                                card.services,
-                                card.trust_anchor.ca_cert,
-                                card.trust_anchor.subject,
-                                card.trust_anchor.subject_alt,
-                                card.trust_anchor.server_cert,
-                                0);
-      if (result) {
-        installed_cards++;
-      }
-    }
-    return installed_cards;
-  }
-}
-
-
-#elif IPC_MSRPC
-
-using Rpc;
-using MoonshotRpcInterface;
-
-/* This class must be a singleton, because we use a global RPC
- * binding handle. I cannot picture a situation where more than
- * one instance of the same interface would be needed so this
- * shouldn't be a problem.
- *
- * Shutdown is automatically done by the RPC runtime when the
- * process ends
- */
-public class MoonshotServer : Object {
-    private static IdentityManagerApp parent_app;
-
-    private static MoonshotServer instance = null;
-
-    public static void start (IdentityManagerApp app)
-    {
-        parent_app = app;
-        Rpc.server_start (MoonshotRpcInterface.spec, "/org/janet/Moonshot", Rpc.Flags.PER_USER);
-    }
-
-    public static MoonshotServer get_instance ()
-    {
-        if (instance == null)
-            instance = new MoonshotServer ();
-        return instance;
-    }
-
-    [CCode (cname = "moonshot_get_identity_rpc")]
-    public static void get_identity (Rpc.AsyncCall call,
-                                     string nai,
-                                     string password,
-                                     string service,
-                                     ref string nai_out,
-                                     ref string password_out,
-                                     ref string server_certificate_hash,
-                                     ref string ca_certificate,
-                                     ref string subject_name_constraint,
-                                     ref string subject_alt_name_constraint)
-    {
-        bool result = false;
-
-        var request = new IdentityRequest (parent_app,
-                                           nai,
-                                           password,
-                                           service);
-
-        // Pass execution to the main loop and block the RPC thread
-        request.mutex = new Mutex ();
-        request.cond = new Cond ();
-        request.set_callback (return_identity_cb);
-
-        request.mutex.lock ();
-        Idle.add (request.execute);
-
-        while (request.complete == false)
-            request.cond.wait (request.mutex);
-
-        nai_out = "";
-        password_out = "";
-        server_certificate_hash = "";
-        ca_certificate = "";
-        subject_name_constraint = "";
-        subject_alt_name_constraint = "";
-
-        var id_card = request.id_card;
-
-        if (id_card != null) {
-            // The strings are freed by the RPC runtime
-            nai_out = id_card.nai;
-            password_out = id_card.password;
-            server_certificate_hash = id_card.trust_anchor.server_cert;
-            ca_certificate = id_card.trust_anchor.ca_cert;
-            subject_name_constraint = id_card.trust_anchor.subject;
-            subject_alt_name_constraint = id_card.trust_anchor.subject_alt;
-
-            return_if_fail (nai_out != null);
-            return_if_fail (password_out != null);
-            return_if_fail (server_certificate_hash != null);
-            return_if_fail (ca_certificate != null);
-            return_if_fail (subject_name_constraint != null);
-            return_if_fail (subject_alt_name_constraint != null);
-
-            result = true;
-        }
-
-        // The outputs must be set before this function is called. For this
-        // reason they are 'ref' not 'out' parameters - Vala assigns to the
-        // 'out' parameters only at the end of the function, which is too
-        // late.
-        call.return (&result);
-
-        request.cond.signal ();
-        request.mutex.unlock ();
-    }
-
-    [CCode (cname = "moonshot_get_default_identity_rpc")]
-    public static void get_default_identity (Rpc.AsyncCall call,
-                                             ref string nai_out,
-                                             ref string password_out,
-                                             ref string server_certificate_hash,
-                                             ref string ca_certificate,
-                                             ref string subject_name_constraint,
-                                             ref string subject_alt_name_constraint)
-    {
-        bool result;
-
-        var request = new IdentityRequest.default (parent_app);
-        request.mutex = new Mutex ();
-        request.cond = new Cond ();
-        request.set_callback (return_identity_cb);
-
-        request.mutex.lock ();
-        Idle.add (request.execute);
-
-        while (request.complete == false)
-            request.cond.wait (request.mutex);
-
-        nai_out = "";
-        password_out = "";
-        server_certificate_hash = "";
-        ca_certificate = "";
-        subject_name_constraint = "";
-        subject_alt_name_constraint = "";
-
-        if (request.id_card != null)
-        {
-            nai_out = request.id_card.nai;
-            password_out = request.id_card.password;
-            server_certificate_hash = "certificate";
-
-            return_if_fail (nai_out != null);
-            return_if_fail (password_out != null);
-            return_if_fail (server_certificate_hash != null);
-            return_if_fail (ca_certificate != null);
-            return_if_fail (subject_name_constraint != null);
-            return_if_fail (subject_alt_name_constraint != null);
-
-            result = true;
-        }
-        else
-        {
-            result = false;
-        }
-
-        call.return (&result);
-
-        request.cond.signal ();
-        request.mutex.unlock ();
-    }
-
-    // Called from the main loop thread when an identity has
-    // been selected
-    static void return_identity_cb (IdentityRequest request) {
-        // Notify the RPC thread that the request is complete
-        request.mutex.lock ();
-        request.cond.signal ();
-
-        // Block the main loop until the RPC call has returned
-        // to avoid any races
-        request.cond.wait (request.mutex);
-        request.mutex.unlock ();
-    }
-
-    [CCode (cname = "moonshot_install_id_card_rpc")]
-    public static bool install_id_card (string     display_name,
-                                        string     user_name,
-                                        string     password,
-                                        string     realm,
-                                        string[]   rules_patterns,
-                                        string[]   rules_always_confirm,
-                                        string[]   services,
-                                        string     ca_cert,
-                                        string     subject,
-                                        string     subject_alt,
-                                        string     server_cert,
-                                        bool       force_flat_file_store)
-    {
-        IdCard idcard = new IdCard ();
-        bool success = false;
-        Mutex mutex = new Mutex();
-        Cond cond = new Cond();
-
-        idcard.display_name = display_name;
-        idcard.username = user_name;
-        idcard.password = password;
-        idcard.issuer = realm;
-        idcard.services = services;
-        idcard.trust_anchor.ca_cert = ca_cert;
-        idcard.trust_anchor.subject = subject;
-        idcard.trust_anchor.subject_alt = subject_alt;
-        idcard.trust_anchor.server_cert = server_cert;
-
-        if (rules_patterns.length == rules_always_confirm.length)
-        {
-            idcard.rules = new Rule[rules_patterns.length];
-         
-            for (int i=0; i<idcard.rules.length; i++)
-            { 
-                idcard.rules[i].pattern = rules_patterns[i];
-                idcard.rules[i].always_confirm = rules_always_confirm[i];
-            }
-        }
-
-        mutex.lock ();
-
-        // Defer addition to the main loop thread.
-        Idle.add (() => {
-            mutex.lock ();
-            success = parent_app.add_identity (idcard, force_flat_file_store);
-            cond.signal ();
-            mutex.unlock ();
-            return false;
-        });
-
-        cond.wait (mutex);
-        mutex.unlock ();
-
-        return success;
-    }
-
-}
-
-
-#endif
diff --git a/src/moonshot-settings.c b/src/moonshot-settings.c
new file mode 100644 (file)
index 0000000..50eb937
--- /dev/null
@@ -0,0 +1,1367 @@
+/* moonshot-settings.c generated by valac 0.34.9, the Vala compiler
+ * generated from moonshot-settings.vala, do not modify */
+
+/*
+ * Copyright (c) 2011-2016, JANET(UK)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of JANET(UK) nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_key_file_unref0(var) ((var == NULL) ? NULL : (var = (g_key_file_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+
+
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* logger (void);
+MoonshotLogger* get_logger (const gchar* name);
+#define KEY_FILE_NAME "moonshot-ui.config"
+GKeyFile* get_keyfile (void);
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
+void save_keyfile (GKeyFile* key_file);
+void moonshot_logger_error (MoonshotLogger* self, const gchar* message, GError* e);
+void set_bool_setting (const gchar* group_name, const gchar* key_name, gboolean value, GKeyFile* key_file);
+gboolean get_bool_setting (const gchar* group_name, const gchar* key_name, gboolean _default_, GKeyFile* key_file);
+void moonshot_logger_info (MoonshotLogger* self, const gchar* message, GError* e);
+void set_string_setting (const gchar* group_name, const gchar* key_name, const gchar* value, GKeyFile* key_file);
+gchar* get_string_setting (const gchar* group_name, const gchar* key_name, const gchar* _default_, GKeyFile* key_file);
+
+
+MoonshotLogger* logger (void) {
+       MoonshotLogger* result = NULL;
+       MoonshotLogger* _tmp0_ = NULL;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp0_ = get_logger ("MoonshotSettings");
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       result = _tmp0_;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       return result;
+#line 84 "moonshot-settings.c"
+}
+
+
+GKeyFile* get_keyfile (void) {
+       GKeyFile* result = NULL;
+       GKeyFile* key_file = NULL;
+       GKeyFile* _tmp0_ = NULL;
+       gchar* config_dir = NULL;
+       const gchar* _tmp1_ = NULL;
+       gchar* _tmp2_ = NULL;
+       MoonshotLogger* _tmp3_ = NULL;
+       MoonshotLogger* _tmp4_ = NULL;
+       const gchar* _tmp5_ = NULL;
+       gchar* _tmp6_ = NULL;
+       gchar* _tmp7_ = NULL;
+       GFile* dir = NULL;
+       const gchar* _tmp8_ = NULL;
+       GFile* _tmp9_ = NULL;
+       gchar* path = NULL;
+       GFile* _tmp10_ = NULL;
+       GFile* _tmp11_ = NULL;
+       GFile* _tmp12_ = NULL;
+       gchar* _tmp13_ = NULL;
+       gchar* _tmp14_ = NULL;
+       GError * _inner_error_ = NULL;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp0_ = g_key_file_new ();
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       key_file = _tmp0_;
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp1_ = g_get_user_config_dir ();
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp2_ = g_strdup (_tmp1_);
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       config_dir = _tmp2_;
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp3_ = logger ();
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp4_ = _tmp3_;
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp5_ = config_dir;
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp6_ = g_strconcat ("get_keyfile: config_dir=", _tmp5_, NULL);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp7_ = _tmp6_;
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       moonshot_logger_trace (_tmp4_, _tmp7_, NULL);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _g_free0 (_tmp7_);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _g_object_unref0 (_tmp4_);
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp8_ = config_dir;
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp9_ = g_file_new_for_path (_tmp8_);
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       dir = _tmp9_;
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp10_ = dir;
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp11_ = g_file_get_child (_tmp10_, KEY_FILE_NAME);
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp12_ = _tmp11_;
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp13_ = g_file_get_path (_tmp12_);
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp14_ = _tmp13_;
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _g_object_unref0 (_tmp12_);
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       path = _tmp14_;
+#line 156 "moonshot-settings.c"
+       {
+               gboolean _tmp15_ = FALSE;
+               GKeyFile* _tmp16_ = NULL;
+               const gchar* _tmp17_ = NULL;
+               gboolean _tmp18_ = FALSE;
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp16_ = key_file;
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp17_ = path;
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp18_ = g_key_file_load_from_file (_tmp16_, _tmp17_, G_KEY_FILE_NONE, &_inner_error_);
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp15_ = _tmp18_;
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       if (_inner_error_->domain == G_FILE_ERROR) {
+#line 174 "moonshot-settings.c"
+                               goto __catch11_g_file_error;
+                       }
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       if (_inner_error_->domain == G_KEY_FILE_ERROR) {
+#line 179 "moonshot-settings.c"
+                               goto __catch11_g_key_file_error;
+                       }
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_free0 (path);
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_object_unref0 (dir);
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_free0 (config_dir);
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_key_file_unref0 (key_file);
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       g_clear_error (&_inner_error_);
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       return NULL;
+#line 196 "moonshot-settings.c"
+               }
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               if (_tmp15_) {
+#line 200 "moonshot-settings.c"
+                       MoonshotLogger* _tmp19_ = NULL;
+                       MoonshotLogger* _tmp20_ = NULL;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp19_ = logger ();
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp20_ = _tmp19_;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       moonshot_logger_trace (_tmp20_, "get_keyfile: load_from_file returned successfully", NULL);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_object_unref0 (_tmp20_);
+#line 211 "moonshot-settings.c"
+               } else {
+                       MoonshotLogger* _tmp21_ = NULL;
+                       MoonshotLogger* _tmp22_ = NULL;
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp21_ = logger ();
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp22_ = _tmp21_;
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       moonshot_logger_trace (_tmp22_, "get_keyfile: load_from_file returned false", NULL);
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_object_unref0 (_tmp22_);
+#line 223 "moonshot-settings.c"
+               }
+       }
+       goto __finally11;
+       __catch11_g_file_error:
+       {
+               GError* e = NULL;
+               MoonshotLogger* _tmp23_ = NULL;
+               MoonshotLogger* _tmp24_ = NULL;
+               GError* _tmp25_ = NULL;
+               const gchar* _tmp26_ = NULL;
+               gchar* _tmp27_ = NULL;
+               gchar* _tmp28_ = NULL;
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               e = _inner_error_;
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _inner_error_ = NULL;
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp23_ = logger ();
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp24_ = _tmp23_;
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp25_ = e;
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp26_ = _tmp25_->message;
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp27_ = g_strconcat ("get_keyfile: FileError: ", _tmp26_, NULL);
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp28_ = _tmp27_;
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               moonshot_logger_trace (_tmp24_, _tmp28_, NULL);
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (_tmp28_);
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (_tmp24_);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_error_free0 (e);
+#line 260 "moonshot-settings.c"
+       }
+       goto __finally11;
+       __catch11_g_key_file_error:
+       {
+               GError* e = NULL;
+               MoonshotLogger* _tmp29_ = NULL;
+               MoonshotLogger* _tmp30_ = NULL;
+               GError* _tmp31_ = NULL;
+               const gchar* _tmp32_ = NULL;
+               gchar* _tmp33_ = NULL;
+               gchar* _tmp34_ = NULL;
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               e = _inner_error_;
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _inner_error_ = NULL;
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp29_ = logger ();
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp30_ = _tmp29_;
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp31_ = e;
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp32_ = _tmp31_->message;
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp33_ = g_strconcat ("get_keyfile: KeyFileError: ", _tmp32_, NULL);
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp34_ = _tmp33_;
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               moonshot_logger_trace (_tmp30_, _tmp34_, NULL);
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (_tmp34_);
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (_tmp30_);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_error_free0 (e);
+#line 296 "moonshot-settings.c"
+       }
+       __finally11:
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (path);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (dir);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (config_dir);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_key_file_unref0 (key_file);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_clear_error (&_inner_error_);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               return NULL;
+#line 315 "moonshot-settings.c"
+       }
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       result = key_file;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _g_free0 (path);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _g_object_unref0 (dir);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _g_free0 (config_dir);
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       return result;
+#line 327 "moonshot-settings.c"
+}
+
+
+static guint8* string_get_data (const gchar* self, int* result_length1) {
+       guint8* result;
+       guint8* res = NULL;
+       gint res_length1 = 0;
+       gint _res_size_ = 0;
+       gint _tmp0_ = 0;
+       gint _tmp1_ = 0;
+       gint _tmp2_ = 0;
+       guint8* _tmp3_ = NULL;
+       gint _tmp3__length1 = 0;
+       guint8* _tmp4_ = NULL;
+       gint _tmp4__length1 = 0;
+#line 1406 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1407 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       res = (guint8*) self;
+#line 1407 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       res_length1 = -1;
+#line 1407 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _res_size_ = res_length1;
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp0_ = strlen (self);
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp1_ = _tmp0_;
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       res_length1 = (gint) _tmp1_;
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp2_ = res_length1;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp3_ = res;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp3__length1 = res_length1;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp4_ = _tmp3_;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp4__length1 = _tmp3__length1;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (result_length1) {
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               *result_length1 = _tmp4__length1;
+#line 371 "moonshot-settings.c"
+       }
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = _tmp4_;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 377 "moonshot-settings.c"
+}
+
+
+void save_keyfile (GKeyFile* key_file) {
+       gchar* config_dir = NULL;
+       const gchar* _tmp0_ = NULL;
+       gchar* _tmp1_ = NULL;
+       GFile* dest = NULL;
+       gchar* data = NULL;
+       GKeyFile* _tmp10_ = NULL;
+       gchar* _tmp11_ = NULL;
+       GError * _inner_error_ = NULL;
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       g_return_if_fail (key_file != NULL);
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp0_ = g_get_user_config_dir ();
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       config_dir = _tmp1_;
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       dest = NULL;
+#line 400 "moonshot-settings.c"
+       {
+               GFile* dir = NULL;
+               GFile* _tmp2_ = NULL;
+               GFile* _tmp3_ = NULL;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp2_ = g_file_new_for_path (config_dir);
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               dir = _tmp2_;
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp3_ = g_file_get_child (dir, KEY_FILE_NAME);
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (dest);
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               dest = _tmp3_;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_file_make_directory_with_parents (dir, NULL, &_inner_error_);
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_object_unref0 (dir);
+#line 421 "moonshot-settings.c"
+                       goto __catch12_g_error;
+               }
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (dir);
+#line 426 "moonshot-settings.c"
+       }
+       goto __finally12;
+       __catch12_g_error:
+       {
+               GError* e = NULL;
+               MoonshotLogger* _tmp4_ = NULL;
+               MoonshotLogger* _tmp5_ = NULL;
+               GError* _tmp6_ = NULL;
+               const gchar* _tmp7_ = NULL;
+               gchar* _tmp8_ = NULL;
+               gchar* _tmp9_ = NULL;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               e = _inner_error_;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _inner_error_ = NULL;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp4_ = logger ();
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp5_ = _tmp4_;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp6_ = e;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp7_ = _tmp6_->message;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp8_ = g_strconcat ("save_keyfile: make_directory_with_parents threw error (this is usually" \
+" ignorable) : ", _tmp7_, NULL);
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp9_ = _tmp8_;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               moonshot_logger_trace (_tmp5_, _tmp9_, NULL);
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (_tmp9_);
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (_tmp5_);
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_error_free0 (e);
+#line 462 "moonshot-settings.c"
+       }
+       __finally12:
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (dest);
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (config_dir);
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_clear_error (&_inner_error_);
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               return;
+#line 477 "moonshot-settings.c"
+       }
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp10_ = key_file;
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp11_ = g_key_file_to_data (_tmp10_, NULL, NULL);
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       data = _tmp11_;
+#line 485 "moonshot-settings.c"
+       {
+               MoonshotLogger* _tmp12_ = NULL;
+               MoonshotLogger* _tmp13_ = NULL;
+               GFile* _tmp14_ = NULL;
+               gchar* _tmp15_ = NULL;
+               gchar* _tmp16_ = NULL;
+               gchar* _tmp17_ = NULL;
+               gchar* _tmp18_ = NULL;
+               gchar* new_etag = NULL;
+               GFile* _tmp19_ = NULL;
+               guint8* _tmp20_ = NULL;
+               gint _tmp20__length1 = 0;
+               guint8* _tmp21_ = NULL;
+               gint _tmp21__length1 = 0;
+               gchar* _tmp22_ = NULL;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp12_ = logger ();
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp13_ = _tmp12_;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp14_ = dest;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp15_ = g_file_get_path (_tmp14_);
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp16_ = _tmp15_;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp17_ = g_strdup_printf ("save_keyfile: saving to file path '%s'", _tmp16_);
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp18_ = _tmp17_;
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               moonshot_logger_trace (_tmp13_, _tmp18_, NULL);
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (_tmp18_);
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (_tmp16_);
+#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (_tmp13_);
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp19_ = dest;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp20_ = string_get_data (data, &_tmp20__length1);
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp21_ = _tmp20_;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp21__length1 = _tmp20__length1;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_file_replace_contents (_tmp19_, _tmp21_, (gsize) _tmp21__length1, NULL, FALSE, G_FILE_CREATE_REPLACE_DESTINATION | G_FILE_CREATE_PRIVATE, &_tmp22_, NULL, &_inner_error_);
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (new_etag);
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               new_etag = _tmp22_;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_free0 (new_etag);
+#line 541 "moonshot-settings.c"
+                       goto __catch13_g_error;
+               }
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (new_etag);
+#line 546 "moonshot-settings.c"
+       }
+       goto __finally13;
+       __catch13_g_error:
+       {
+               GError* e = NULL;
+               MoonshotLogger* _tmp23_ = NULL;
+               MoonshotLogger* _tmp24_ = NULL;
+               GError* _tmp25_ = NULL;
+               const gchar* _tmp26_ = NULL;
+               gchar* _tmp27_ = NULL;
+               gchar* _tmp28_ = NULL;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               e = _inner_error_;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _inner_error_ = NULL;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp23_ = logger ();
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp24_ = _tmp23_;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp25_ = e;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp26_ = _tmp25_->message;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp27_ = g_strconcat ("save_keyfile: error when writing to file: ", _tmp26_, NULL);
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp28_ = _tmp27_;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               moonshot_logger_error (_tmp24_, _tmp28_, NULL);
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (_tmp28_);
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (_tmp24_);
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_error_free0 (e);
+#line 582 "moonshot-settings.c"
+       }
+       __finally13:
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (data);
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (dest);
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (config_dir);
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_clear_error (&_inner_error_);
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               return;
+#line 599 "moonshot-settings.c"
+       }
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _g_free0 (data);
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _g_object_unref0 (dest);
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _g_free0 (config_dir);
+#line 607 "moonshot-settings.c"
+}
+
+
+void set_bool_setting (const gchar* group_name, const gchar* key_name, gboolean value, GKeyFile* key_file) {
+       GKeyFile* tmp_key_file = NULL;
+       GKeyFile* _tmp0_ = NULL;
+       GKeyFile* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       const gchar* _tmp5_ = NULL;
+       gboolean _tmp6_ = FALSE;
+       GKeyFile* _tmp7_ = NULL;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       g_return_if_fail (group_name != NULL);
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       g_return_if_fail (key_name != NULL);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       tmp_key_file = NULL;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp0_ = key_file;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (_tmp0_ == NULL) {
+#line 629 "moonshot-settings.c"
+               GKeyFile* _tmp1_ = NULL;
+               GKeyFile* _tmp2_ = NULL;
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp1_ = get_keyfile ();
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_key_file_unref0 (tmp_key_file);
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               tmp_key_file = _tmp1_;
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp2_ = tmp_key_file;
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               key_file = _tmp2_;
+#line 642 "moonshot-settings.c"
+       }
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp3_ = key_file;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp4_ = group_name;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp5_ = key_name;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp6_ = value;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       g_key_file_set_boolean (_tmp3_, _tmp4_, _tmp5_, _tmp6_);
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp7_ = tmp_key_file;
+#line 114 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (_tmp7_ != NULL) {
+#line 658 "moonshot-settings.c"
+               GKeyFile* _tmp8_ = NULL;
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp8_ = key_file;
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               save_keyfile (_tmp8_);
+#line 664 "moonshot-settings.c"
+       }
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _g_key_file_unref0 (tmp_key_file);
+#line 668 "moonshot-settings.c"
+}
+
+
+static const gchar* string_to_string (const gchar* self) {
+       const gchar* result = NULL;
+#line 1420 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = self;
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 680 "moonshot-settings.c"
+}
+
+
+gboolean get_bool_setting (const gchar* group_name, const gchar* key_name, gboolean _default_, GKeyFile* key_file) {
+       gboolean result = FALSE;
+       GKeyFile* tmp_key_file = NULL;
+       GKeyFile* _tmp0_ = NULL;
+       GKeyFile* _tmp3_ = NULL;
+       gboolean _tmp46_ = FALSE;
+       GError * _inner_error_ = NULL;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       g_return_val_if_fail (group_name != NULL, FALSE);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       g_return_val_if_fail (key_name != NULL, FALSE);
+#line 122 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       tmp_key_file = NULL;
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp0_ = key_file;
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (_tmp0_ == NULL) {
+#line 701 "moonshot-settings.c"
+               GKeyFile* _tmp1_ = NULL;
+               GKeyFile* _tmp2_ = NULL;
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp1_ = get_keyfile ();
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_key_file_unref0 (tmp_key_file);
+#line 125 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               tmp_key_file = _tmp1_;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp2_ = tmp_key_file;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               key_file = _tmp2_;
+#line 714 "moonshot-settings.c"
+       }
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp3_ = key_file;
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (_tmp3_ == NULL) {
+#line 720 "moonshot-settings.c"
+               gboolean _tmp4_ = FALSE;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp4_ = _default_;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               result = _tmp4_;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_key_file_unref0 (tmp_key_file);
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               return result;
+#line 730 "moonshot-settings.c"
+       }
+       {
+               gboolean _tmp5_ = FALSE;
+               GKeyFile* _tmp6_ = NULL;
+               const gchar* _tmp7_ = NULL;
+               const gchar* _tmp8_ = NULL;
+               gboolean _tmp9_ = FALSE;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp6_ = key_file;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp7_ = group_name;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp8_ = key_name;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp9_ = g_key_file_has_key (_tmp6_, _tmp7_, _tmp8_, &_inner_error_);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp5_ = _tmp9_;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 750 "moonshot-settings.c"
+                       gboolean _tmp10_ = FALSE;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       if (_inner_error_->domain == G_KEY_FILE_ERROR) {
+#line 754 "moonshot-settings.c"
+                               goto __catch14_g_key_file_error;
+                       }
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_key_file_unref0 (tmp_key_file);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       g_clear_error (&_inner_error_);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       return _tmp10_;
+#line 765 "moonshot-settings.c"
+               }
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               if (!_tmp5_) {
+#line 769 "moonshot-settings.c"
+                       MoonshotLogger* _tmp11_ = NULL;
+                       MoonshotLogger* _tmp12_ = NULL;
+                       const gchar* _tmp13_ = NULL;
+                       const gchar* _tmp14_ = NULL;
+                       const gchar* _tmp15_ = NULL;
+                       const gchar* _tmp16_ = NULL;
+                       gchar* _tmp17_ = NULL;
+                       gchar* _tmp18_ = NULL;
+                       gboolean _tmp19_ = FALSE;
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp11_ = logger ();
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp12_ = _tmp11_;
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp13_ = key_name;
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp14_ = string_to_string (_tmp13_);
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp15_ = group_name;
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp16_ = string_to_string (_tmp15_);
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp17_ = g_strconcat ("get_bool_setting : key file doesn't contain key '", _tmp14_, "' in group '", _tmp16_, "'", NULL);
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp18_ = _tmp17_;
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       moonshot_logger_info (_tmp12_, _tmp18_, NULL);
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_free0 (_tmp18_);
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_object_unref0 (_tmp12_);
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp19_ = _default_;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       result = _tmp19_;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_key_file_unref0 (tmp_key_file);
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       return result;
+#line 809 "moonshot-settings.c"
+               }
+       }
+       goto __finally14;
+       __catch14_g_key_file_error:
+       {
+               GError* e = NULL;
+               MoonshotLogger* _tmp20_ = NULL;
+               MoonshotLogger* _tmp21_ = NULL;
+               const gchar* _tmp22_ = NULL;
+               const gchar* _tmp23_ = NULL;
+               const gchar* _tmp24_ = NULL;
+               const gchar* _tmp25_ = NULL;
+               gchar* _tmp26_ = NULL;
+               gchar* _tmp27_ = NULL;
+               GError* _tmp28_ = NULL;
+               const gchar* _tmp29_ = NULL;
+               gchar* _tmp30_ = NULL;
+               gchar* _tmp31_ = NULL;
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               e = _inner_error_;
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _inner_error_ = NULL;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp20_ = logger ();
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp21_ = _tmp20_;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp22_ = key_name;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp23_ = string_to_string (_tmp22_);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp24_ = group_name;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp25_ = string_to_string (_tmp24_);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp26_ = g_strconcat ("get_bool_setting : KeyFileError checking if key '", _tmp23_, "' exists in group '", _tmp25_, "' (maybe ignorable?) : ", NULL);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp27_ = _tmp26_;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp28_ = e;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp29_ = _tmp28_->message;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp30_ = g_strconcat (_tmp27_, _tmp29_, NULL);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp31_ = _tmp30_;
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               moonshot_logger_info (_tmp21_, _tmp31_, NULL);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (_tmp31_);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (_tmp27_);
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (_tmp21_);
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_error_free0 (e);
+#line 866 "moonshot-settings.c"
+       }
+       __finally14:
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 871 "moonshot-settings.c"
+               gboolean _tmp32_ = FALSE;
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_key_file_unref0 (tmp_key_file);
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_clear_error (&_inner_error_);
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               return _tmp32_;
+#line 881 "moonshot-settings.c"
+       }
+       {
+               gboolean _tmp33_ = FALSE;
+               GKeyFile* _tmp34_ = NULL;
+               const gchar* _tmp35_ = NULL;
+               const gchar* _tmp36_ = NULL;
+               gboolean _tmp37_ = FALSE;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp34_ = key_file;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp35_ = group_name;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp36_ = key_name;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp37_ = g_key_file_get_boolean (_tmp34_, _tmp35_, _tmp36_, &_inner_error_);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp33_ = _tmp37_;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 901 "moonshot-settings.c"
+                       gboolean _tmp38_ = FALSE;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       if (_inner_error_->domain == G_KEY_FILE_ERROR) {
+#line 905 "moonshot-settings.c"
+                               goto __catch15_g_key_file_error;
+                       }
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_key_file_unref0 (tmp_key_file);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       g_clear_error (&_inner_error_);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       return _tmp38_;
+#line 916 "moonshot-settings.c"
+               }
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               result = _tmp33_;
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_key_file_unref0 (tmp_key_file);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               return result;
+#line 924 "moonshot-settings.c"
+       }
+       goto __finally15;
+       __catch15_g_key_file_error:
+       {
+               GError* e = NULL;
+               MoonshotLogger* _tmp39_ = NULL;
+               MoonshotLogger* _tmp40_ = NULL;
+               GError* _tmp41_ = NULL;
+               const gchar* _tmp42_ = NULL;
+               gchar* _tmp43_ = NULL;
+               gchar* _tmp44_ = NULL;
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               e = _inner_error_;
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _inner_error_ = NULL;
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp39_ = logger ();
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp40_ = _tmp39_;
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp41_ = e;
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp42_ = _tmp41_->message;
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp43_ = g_strconcat ("get_bool_setting got KeyFileError (may be ignorable) : ", _tmp42_, NULL);
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp44_ = _tmp43_;
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               moonshot_logger_info (_tmp40_, _tmp44_, NULL);
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (_tmp44_);
+#line 148 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (_tmp40_);
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_error_free0 (e);
+#line 960 "moonshot-settings.c"
+       }
+       __finally15:
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 965 "moonshot-settings.c"
+               gboolean _tmp45_ = FALSE;
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_key_file_unref0 (tmp_key_file);
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_clear_error (&_inner_error_);
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               return _tmp45_;
+#line 975 "moonshot-settings.c"
+       }
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp46_ = _default_;
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       result = _tmp46_;
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _g_key_file_unref0 (tmp_key_file);
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       return result;
+#line 985 "moonshot-settings.c"
+}
+
+
+void set_string_setting (const gchar* group_name, const gchar* key_name, const gchar* value, GKeyFile* key_file) {
+       GKeyFile* tmp_key_file = NULL;
+       GKeyFile* _tmp0_ = NULL;
+       GKeyFile* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       const gchar* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       GKeyFile* _tmp7_ = NULL;
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       g_return_if_fail (group_name != NULL);
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       g_return_if_fail (key_name != NULL);
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       g_return_if_fail (value != NULL);
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       tmp_key_file = NULL;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp0_ = key_file;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (_tmp0_ == NULL) {
+#line 1009 "moonshot-settings.c"
+               GKeyFile* _tmp1_ = NULL;
+               GKeyFile* _tmp2_ = NULL;
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp1_ = get_keyfile ();
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_key_file_unref0 (tmp_key_file);
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               tmp_key_file = _tmp1_;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp2_ = tmp_key_file;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               key_file = _tmp2_;
+#line 1022 "moonshot-settings.c"
+       }
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp3_ = key_file;
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp4_ = group_name;
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp5_ = key_name;
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp6_ = value;
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       g_key_file_set_string (_tmp3_, _tmp4_, _tmp5_, _tmp6_);
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp7_ = tmp_key_file;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (_tmp7_ != NULL) {
+#line 1038 "moonshot-settings.c"
+               GKeyFile* _tmp8_ = NULL;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp8_ = key_file;
+#line 166 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               save_keyfile (_tmp8_);
+#line 1044 "moonshot-settings.c"
+       }
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _g_key_file_unref0 (tmp_key_file);
+#line 1048 "moonshot-settings.c"
+}
+
+
+gchar* get_string_setting (const gchar* group_name, const gchar* key_name, const gchar* _default_, GKeyFile* key_file) {
+       gchar* result = NULL;
+       GKeyFile* tmp_key_file = NULL;
+       GKeyFile* _tmp0_ = NULL;
+       GKeyFile* _tmp3_ = NULL;
+       const gchar* _tmp45_ = NULL;
+       gchar* _tmp46_ = NULL;
+       GError * _inner_error_ = NULL;
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       g_return_val_if_fail (group_name != NULL, NULL);
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       g_return_val_if_fail (key_name != NULL, NULL);
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       g_return_val_if_fail (_default_ != NULL, NULL);
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       tmp_key_file = NULL;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp0_ = key_file;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (_tmp0_ == NULL) {
+#line 1072 "moonshot-settings.c"
+               GKeyFile* _tmp1_ = NULL;
+               GKeyFile* _tmp2_ = NULL;
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp1_ = get_keyfile ();
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_key_file_unref0 (tmp_key_file);
+#line 175 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               tmp_key_file = _tmp1_;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp2_ = tmp_key_file;
+#line 176 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               key_file = _tmp2_;
+#line 1085 "moonshot-settings.c"
+       }
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp3_ = key_file;
+#line 179 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (_tmp3_ == NULL) {
+#line 1091 "moonshot-settings.c"
+               const gchar* _tmp4_ = NULL;
+               gchar* _tmp5_ = NULL;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp4_ = _default_;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp5_ = g_strdup (_tmp4_);
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               result = _tmp5_;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_key_file_unref0 (tmp_key_file);
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               return result;
+#line 1104 "moonshot-settings.c"
+       }
+       {
+               gboolean _tmp6_ = FALSE;
+               GKeyFile* _tmp7_ = NULL;
+               const gchar* _tmp8_ = NULL;
+               const gchar* _tmp9_ = NULL;
+               gboolean _tmp10_ = FALSE;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp7_ = key_file;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp8_ = group_name;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp9_ = key_name;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp10_ = g_key_file_has_key (_tmp7_, _tmp8_, _tmp9_, &_inner_error_);
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp6_ = _tmp10_;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       if (_inner_error_->domain == G_KEY_FILE_ERROR) {
+#line 1126 "moonshot-settings.c"
+                               goto __catch16_g_key_file_error;
+                       }
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_key_file_unref0 (tmp_key_file);
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       g_clear_error (&_inner_error_);
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       return NULL;
+#line 1137 "moonshot-settings.c"
+               }
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               if (!_tmp6_) {
+#line 1141 "moonshot-settings.c"
+                       MoonshotLogger* _tmp11_ = NULL;
+                       MoonshotLogger* _tmp12_ = NULL;
+                       const gchar* _tmp13_ = NULL;
+                       const gchar* _tmp14_ = NULL;
+                       const gchar* _tmp15_ = NULL;
+                       const gchar* _tmp16_ = NULL;
+                       gchar* _tmp17_ = NULL;
+                       gchar* _tmp18_ = NULL;
+                       const gchar* _tmp19_ = NULL;
+                       gchar* _tmp20_ = NULL;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp11_ = logger ();
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp12_ = _tmp11_;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp13_ = key_name;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp14_ = string_to_string (_tmp13_);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp15_ = group_name;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp16_ = string_to_string (_tmp15_);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp17_ = g_strconcat ("get_string_setting : key file doesn't contain key '", _tmp14_, "' in group '", _tmp16_, "'", NULL);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp18_ = _tmp17_;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       moonshot_logger_info (_tmp12_, _tmp18_, NULL);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_free0 (_tmp18_);
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_object_unref0 (_tmp12_);
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp19_ = _default_;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _tmp20_ = g_strdup (_tmp19_);
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       result = _tmp20_;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_key_file_unref0 (tmp_key_file);
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       return result;
+#line 1184 "moonshot-settings.c"
+               }
+       }
+       goto __finally16;
+       __catch16_g_key_file_error:
+       {
+               GError* e = NULL;
+               MoonshotLogger* _tmp21_ = NULL;
+               MoonshotLogger* _tmp22_ = NULL;
+               const gchar* _tmp23_ = NULL;
+               const gchar* _tmp24_ = NULL;
+               const gchar* _tmp25_ = NULL;
+               const gchar* _tmp26_ = NULL;
+               gchar* _tmp27_ = NULL;
+               gchar* _tmp28_ = NULL;
+               GError* _tmp29_ = NULL;
+               const gchar* _tmp30_ = NULL;
+               gchar* _tmp31_ = NULL;
+               gchar* _tmp32_ = NULL;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               e = _inner_error_;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _inner_error_ = NULL;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp21_ = logger ();
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp22_ = _tmp21_;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp23_ = key_name;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp24_ = string_to_string (_tmp23_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp25_ = group_name;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp26_ = string_to_string (_tmp25_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp27_ = g_strconcat ("get_string_setting : KeyFileError checking if key '", _tmp24_, "' exists in group '", _tmp26_, "' (maybe ignorable?) : ", NULL);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp28_ = _tmp27_;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp29_ = e;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp30_ = _tmp29_->message;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp31_ = g_strconcat (_tmp28_, _tmp30_, NULL);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp32_ = _tmp31_;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               moonshot_logger_info (_tmp22_, _tmp32_, NULL);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (_tmp32_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (_tmp28_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (_tmp22_);
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_error_free0 (e);
+#line 1241 "moonshot-settings.c"
+       }
+       __finally16:
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_key_file_unref0 (tmp_key_file);
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_clear_error (&_inner_error_);
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               return NULL;
+#line 1254 "moonshot-settings.c"
+       }
+       {
+               gchar* _tmp33_ = NULL;
+               GKeyFile* _tmp34_ = NULL;
+               const gchar* _tmp35_ = NULL;
+               const gchar* _tmp36_ = NULL;
+               gchar* _tmp37_ = NULL;
+               gchar* _tmp38_ = NULL;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp34_ = key_file;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp35_ = group_name;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp36_ = key_name;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp37_ = g_key_file_get_string (_tmp34_, _tmp35_, _tmp36_, &_inner_error_);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp33_ = _tmp37_;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       if (_inner_error_->domain == G_KEY_FILE_ERROR) {
+#line 1277 "moonshot-settings.c"
+                               goto __catch17_g_key_file_error;
+                       }
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       _g_key_file_unref0 (tmp_key_file);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       g_clear_error (&_inner_error_);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+                       return NULL;
+#line 1288 "moonshot-settings.c"
+               }
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp38_ = _tmp33_;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp33_ = NULL;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               result = _tmp38_;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (_tmp33_);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_key_file_unref0 (tmp_key_file);
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               return result;
+#line 1302 "moonshot-settings.c"
+       }
+       goto __finally17;
+       __catch17_g_key_file_error:
+       {
+               GError* e = NULL;
+               MoonshotLogger* _tmp39_ = NULL;
+               MoonshotLogger* _tmp40_ = NULL;
+               GError* _tmp41_ = NULL;
+               const gchar* _tmp42_ = NULL;
+               gchar* _tmp43_ = NULL;
+               gchar* _tmp44_ = NULL;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               e = _inner_error_;
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _inner_error_ = NULL;
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp39_ = logger ();
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp40_ = _tmp39_;
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp41_ = e;
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp42_ = _tmp41_->message;
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp43_ = g_strconcat ("get_string_setting got KeyFileError (may be ignorable) : ", _tmp42_, NULL);
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _tmp44_ = _tmp43_;
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               moonshot_logger_info (_tmp40_, _tmp44_, NULL);
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_free0 (_tmp44_);
+#line 198 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_object_unref0 (_tmp40_);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_error_free0 (e);
+#line 1338 "moonshot-settings.c"
+       }
+       __finally17:
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               _g_key_file_unref0 (tmp_key_file);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               g_clear_error (&_inner_error_);
+#line 193 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+               return NULL;
+#line 1351 "moonshot-settings.c"
+       }
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp45_ = _default_;
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _tmp46_ = g_strdup (_tmp45_);
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       result = _tmp46_;
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       _g_key_file_unref0 (tmp_key_file);
+#line 200 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-settings.vala"
+       return result;
+#line 1363 "moonshot-settings.c"
+}
+
+
+
diff --git a/src/moonshot-settings.vala b/src/moonshot-settings.vala
new file mode 100644 (file)
index 0000000..4dea622
--- /dev/null
@@ -0,0 +1,201 @@
+/*
+ * Copyright (c) 2011-2016, JANET(UK)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of JANET(UK) nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+*/
+
+using Gtk;
+
+   
+private MoonshotLogger logger()
+{
+    return get_logger("MoonshotSettings");
+}
+
+static const string KEY_FILE_NAME="moonshot-ui.config";
+
+private KeyFile get_keyfile()
+{
+    KeyFile key_file = new KeyFile();
+    string config_dir = Environment.get_user_config_dir();
+    logger().trace("get_keyfile: config_dir=" + config_dir);
+
+    File dir = File.new_for_path(config_dir);
+    string path = dir.get_child(KEY_FILE_NAME).get_path();
+
+    try {
+        if (key_file.load_from_file(path, KeyFileFlags.NONE))
+            logger().trace("get_keyfile: load_from_file returned successfully");
+        else
+            logger().trace("get_keyfile: load_from_file returned false");            
+    }
+    catch (FileError e) {
+        logger().trace("get_keyfile: FileError: " + e.message);
+    }
+    catch (KeyFileError e) {
+        logger().trace("get_keyfile: KeyFileError: " + e.message);
+    }
+
+    return key_file;
+}
+
+
+private void save_keyfile(KeyFile key_file)
+{
+    string config_dir = Environment.get_user_config_dir();
+    File dest = null;
+
+    // Make the directory if it doesn't already exist; ignore errors.
+       try {
+               File dir = File.new_for_path(config_dir);
+        dest = dir.get_child(KEY_FILE_NAME);
+               dir.make_directory_with_parents();
+       } catch (Error e) {
+        logger().trace("save_keyfile: make_directory_with_parents threw error (this is usually ignorable) : " + e.message);
+       }
+
+    // It would be nice to use key_file.save_to_file, but the binding doesn't exist
+    // in earlier versions of valac
+    // key_file.save_to_file(path.get_path());
+
+    string data = key_file.to_data();
+    try {
+        logger().trace("save_keyfile: saving to file path '%s'".printf(dest.get_path()));
+        // FileOutputStream s = dest.create(FileCreateFlags.REPLACE_DESTINATION | FileCreateFlags.PRIVATE);
+        // var ds = new DataOutputStream(s);
+        // ds.put_string(data);
+        string new_etag;
+        dest.replace_contents(data.data, null, false, FileCreateFlags.REPLACE_DESTINATION | FileCreateFlags.PRIVATE, out new_etag);
+    }
+    catch(Error e) {
+        logger().error("save_keyfile: error when writing to file: " + e.message);
+    }
+
+    // streams close automatically
+}
+
+internal void set_bool_setting(string group_name, string key_name, bool value, KeyFile? key_file=null)
+{
+    KeyFile tmp_key_file = null;
+    if (key_file == null) {
+        // Use tmp_key_file to hold an owned reference (since key_file is unowned)
+        tmp_key_file = get_keyfile();
+        key_file = tmp_key_file;
+    }
+
+    key_file.set_boolean(group_name, key_name, value);
+
+    if (tmp_key_file != null) {
+        // This is a "one-shot" settings update; save it now.
+        save_keyfile(key_file);
+    }
+}
+
+internal bool get_bool_setting(string group_name, string key_name, bool default=false, KeyFile? key_file=null)
+{
+    KeyFile tmp_key_file = null;
+    if (key_file == null) {
+        // Use tmp_key_file to hold an owned reference (since key_file is unowned)
+        tmp_key_file = get_keyfile();
+        key_file = tmp_key_file;
+    }
+
+    if (key_file == null)
+        return default;
+
+    try {
+        if (!key_file.has_key(group_name, key_name))
+        {
+            logger().info(@"get_bool_setting : key file doesn't contain key '$key_name' in group '$group_name'");
+            return default;
+        }
+    }
+    catch(KeyFileError e) {
+        logger().info(@"get_bool_setting : KeyFileError checking if key '$key_name' exists in group '$group_name' (maybe ignorable?) : " + e.message);
+    }
+
+    try {
+        // throws KeyFileError if key is not found
+        return key_file.get_boolean(group_name, key_name);
+    }
+    catch (KeyFileError e) {
+        logger().info("get_bool_setting got KeyFileError (may be ignorable) : " + e.message);
+    }
+    return default;
+}
+
+
+internal void set_string_setting(string group_name, string key_name, string value, KeyFile? key_file=null)
+{
+    KeyFile tmp_key_file = null;
+    if (key_file == null) {
+        // Use tmp_key_file to hold an owned reference (since key_file is unowned)
+        tmp_key_file = get_keyfile();
+        key_file = tmp_key_file;
+    }
+
+    key_file.set_string(group_name, key_name, value);
+    if (tmp_key_file != null) {
+        // This is a "one-shot" settings update; save it now.
+        save_keyfile(key_file);
+    }
+}
+
+internal string get_string_setting(string group_name, string key_name, string default="", KeyFile? key_file=null)
+{
+    KeyFile tmp_key_file = null;
+    if (key_file == null) {
+        // Use tmp_key_file to hold an owned reference (since key_file is unowned)
+        tmp_key_file = get_keyfile();
+        key_file = tmp_key_file;
+    }
+
+    if (key_file == null)
+        return default;
+
+    try {
+        if (!key_file.has_key(group_name, key_name))
+        {
+            logger().info(@"get_string_setting : key file doesn't contain key '$key_name' in group '$group_name'");
+            return default;
+        }
+    }
+    catch(KeyFileError e) {
+        logger().info(@"get_string_setting : KeyFileError checking if key '$key_name' exists in group '$group_name' (maybe ignorable?) : " + e.message);
+    }
+
+    try {
+        // throws KeyFileError if key is not found
+        return key_file.get_string(group_name, key_name);
+    }
+    catch (KeyFileError e) {
+        logger().info("get_string_setting got KeyFileError (may be ignorable) : " + e.message);
+    }
+    return default;
+}
diff --git a/src/moonshot-trust-anchor-dialog.c b/src/moonshot-trust-anchor-dialog.c
new file mode 100644 (file)
index 0000000..c3fea5f
--- /dev/null
@@ -0,0 +1,1384 @@
+/* moonshot-trust-anchor-dialog.c generated by valac 0.34.9, the Vala compiler
+ * generated from moonshot-trust-anchor-dialog.vala, do not modify */
+
+/*
+ * Copyright (c) 2011-2016, JANET(UK)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of JANET(UK) nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+#include <float.h>
+#include <math.h>
+
+
+#define TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST (trust_anchor_confirmation_request_get_type ())
+#define TRUST_ANCHOR_CONFIRMATION_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST, TrustAnchorConfirmationRequest))
+#define TRUST_ANCHOR_CONFIRMATION_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST, TrustAnchorConfirmationRequestClass))
+#define IS_TRUST_ANCHOR_CONFIRMATION_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST))
+#define IS_TRUST_ANCHOR_CONFIRMATION_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST))
+#define TRUST_ANCHOR_CONFIRMATION_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST, TrustAnchorConfirmationRequestClass))
+
+typedef struct _TrustAnchorConfirmationRequest TrustAnchorConfirmationRequest;
+typedef struct _TrustAnchorConfirmationRequestClass TrustAnchorConfirmationRequestClass;
+typedef struct _TrustAnchorConfirmationRequestPrivate TrustAnchorConfirmationRequestPrivate;
+
+#define TYPE_IDENTITY_MANAGER_APP (identity_manager_app_get_type ())
+#define IDENTITY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_APP, IdentityManagerApp))
+#define IDENTITY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_APP, IdentityManagerAppClass))
+#define IS_IDENTITY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_APP))
+#define IS_IDENTITY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_APP))
+#define IDENTITY_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_APP, IdentityManagerAppClass))
+
+typedef struct _IdentityManagerApp IdentityManagerApp;
+typedef struct _IdentityManagerAppClass IdentityManagerAppClass;
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
+#define _identity_manager_app_unref0(var) ((var == NULL) ? NULL : (var = (identity_manager_app_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_ID_CARD (id_card_get_type ())
+#define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
+#define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
+#define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
+#define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
+#define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
+
+typedef struct _IdCard IdCard;
+typedef struct _IdCardClass IdCardClass;
+typedef struct _IdentityManagerAppPrivate IdentityManagerAppPrivate;
+
+#define TYPE_IDENTITY_MANAGER_MODEL (identity_manager_model_get_type ())
+#define IDENTITY_MANAGER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModel))
+#define IDENTITY_MANAGER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModelClass))
+#define IS_IDENTITY_MANAGER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_MODEL))
+#define IS_IDENTITY_MANAGER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_MODEL))
+#define IDENTITY_MANAGER_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModelClass))
+
+typedef struct _IdentityManagerModel IdentityManagerModel;
+typedef struct _IdentityManagerModelClass IdentityManagerModelClass;
+
+#define TYPE_IDENTITY_MANAGER_VIEW (identity_manager_view_get_type ())
+#define IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerView))
+#define IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
+#define IS_IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_VIEW))
+#define IS_IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_VIEW))
+#define IDENTITY_MANAGER_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
+
+typedef struct _IdentityManagerView IdentityManagerView;
+typedef struct _IdentityManagerViewClass IdentityManagerViewClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_TRUST_ANCHOR (trust_anchor_get_type ())
+#define TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR, TrustAnchor))
+#define TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+#define IS_TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRUST_ANCHOR))
+#define IS_TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRUST_ANCHOR))
+#define TRUST_ANCHOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+
+typedef struct _TrustAnchor TrustAnchor;
+typedef struct _TrustAnchorClass TrustAnchorClass;
+
+#define TRUST_ANCHOR_TYPE_TRUST_ANCHOR_TYPE (trust_anchor_trust_anchor_type_get_type ())
+
+#define TYPE_TRUST_ANCHOR_DIALOG (trust_anchor_dialog_get_type ())
+#define TRUST_ANCHOR_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR_DIALOG, TrustAnchorDialog))
+#define TRUST_ANCHOR_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRUST_ANCHOR_DIALOG, TrustAnchorDialogClass))
+#define IS_TRUST_ANCHOR_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRUST_ANCHOR_DIALOG))
+#define IS_TRUST_ANCHOR_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRUST_ANCHOR_DIALOG))
+#define TRUST_ANCHOR_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRUST_ANCHOR_DIALOG, TrustAnchorDialogClass))
+
+typedef struct _TrustAnchorDialog TrustAnchorDialog;
+typedef struct _TrustAnchorDialogClass TrustAnchorDialogClass;
+typedef struct _TrustAnchorDialogPrivate TrustAnchorDialogPrivate;
+
+typedef void (*TrustAnchorConfirmationCallback) (TrustAnchorConfirmationRequest* request, void* user_data);
+struct _TrustAnchorConfirmationRequest {
+       GObject parent_instance;
+       TrustAnchorConfirmationRequestPrivate * priv;
+       gboolean confirmed;
+};
+
+struct _TrustAnchorConfirmationRequestClass {
+       GObjectClass parent_class;
+};
+
+struct _TrustAnchorConfirmationRequestPrivate {
+       IdentityManagerApp* parent_app;
+       gchar* userid;
+       gchar* realm;
+       gchar* fingerprint;
+       TrustAnchorConfirmationCallback callback;
+       gpointer callback_target;
+       GDestroyNotify callback_target_destroy_notify;
+};
+
+struct _IdentityManagerApp {
+       GTypeInstance parent_instance;
+       volatile int ref_count;
+       IdentityManagerAppPrivate * priv;
+       IdentityManagerModel* model;
+       IdCard* default_id_card;
+       gboolean explicitly_launched;
+       IdentityManagerView* view;
+};
+
+struct _IdentityManagerAppClass {
+       GTypeClass parent_class;
+       void (*finalize) (IdentityManagerApp *self);
+};
+
+typedef enum  {
+       TRUST_ANCHOR_TRUST_ANCHOR_TYPE_EMPTY,
+       TRUST_ANCHOR_TRUST_ANCHOR_TYPE_CA_CERT,
+       TRUST_ANCHOR_TRUST_ANCHOR_TYPE_SERVER_CERT
+} TrustAnchorTrustAnchorType;
+
+struct _TrustAnchorDialog {
+       GtkDialog parent_instance;
+       TrustAnchorDialogPrivate * priv;
+       gboolean complete;
+};
+
+struct _TrustAnchorDialogClass {
+       GtkDialogClass parent_class;
+};
+
+
+static gpointer trust_anchor_confirmation_request_parent_class = NULL;
+static MoonshotLogger* trust_anchor_confirmation_request_logger;
+static MoonshotLogger* trust_anchor_confirmation_request_logger = NULL;
+static gpointer trust_anchor_dialog_parent_class = NULL;
+static GdkColor trust_anchor_dialog_white;
+static GdkColor trust_anchor_dialog_white = {0};
+
+GType trust_anchor_confirmation_request_get_type (void) G_GNUC_CONST;
+gpointer identity_manager_app_ref (gpointer instance);
+void identity_manager_app_unref (gpointer instance);
+GParamSpec* param_spec_identity_manager_app (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_identity_manager_app (GValue* value, gpointer v_object);
+void value_take_identity_manager_app (GValue* value, gpointer v_object);
+gpointer value_get_identity_manager_app (const GValue* value);
+GType identity_manager_app_get_type (void) G_GNUC_CONST;
+#define TRUST_ANCHOR_CONFIRMATION_REQUEST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST, TrustAnchorConfirmationRequestPrivate))
+enum  {
+       TRUST_ANCHOR_CONFIRMATION_REQUEST_DUMMY_PROPERTY
+};
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* get_logger (const gchar* name);
+TrustAnchorConfirmationRequest* trust_anchor_confirmation_request_new (IdentityManagerApp* parent_app, const gchar* userid, const gchar* realm, const gchar* fingerprint);
+TrustAnchorConfirmationRequest* trust_anchor_confirmation_request_construct (GType object_type, IdentityManagerApp* parent_app, const gchar* userid, const gchar* realm, const gchar* fingerprint);
+void trust_anchor_confirmation_request_set_callback (TrustAnchorConfirmationRequest* self, TrustAnchorConfirmationCallback cb, void* cb_target, GDestroyNotify cb_target_destroy_notify);
+gboolean trust_anchor_confirmation_request_execute (TrustAnchorConfirmationRequest* self);
+GType id_card_get_type (void) G_GNUC_CONST;
+GType identity_manager_model_get_type (void) G_GNUC_CONST;
+GType identity_manager_view_get_type (void) G_GNUC_CONST;
+IdCard* identity_manager_model_find_id_card (IdentityManagerModel* self, const gchar* nai, gboolean force_flat_file_store);
+gboolean identity_manager_app_get_use_flat_file_store (IdentityManagerApp* self);
+void moonshot_logger_warn (MoonshotLogger* self, const gchar* message, GError* e);
+static void trust_anchor_confirmation_request_return_confirmation (TrustAnchorConfirmationRequest* self, gboolean confirmed);
+GType trust_anchor_get_type (void) G_GNUC_CONST;
+TrustAnchor* id_card_get_trust_anchor (IdCard* self);
+gboolean trust_anchor_is_empty (TrustAnchor* self);
+GType trust_anchor_trust_anchor_type_get_type (void) G_GNUC_CONST;
+TrustAnchorTrustAnchorType trust_anchor_get_anchor_type (TrustAnchor* self);
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
+const gchar* trust_anchor_get_server_cert (TrustAnchor* self);
+gboolean identity_manager_app_get_headless (IdentityManagerApp* self);
+GType trust_anchor_dialog_get_type (void) G_GNUC_CONST;
+TrustAnchorDialog* trust_anchor_dialog_new (IdCard* card, const gchar* userid, const gchar* realm, const gchar* fingerprint);
+TrustAnchorDialog* trust_anchor_dialog_construct (GType object_type, IdCard* card, const gchar* userid, const gchar* realm, const gchar* fingerprint);
+void trust_anchor_update_server_fingerprint (TrustAnchor* self, const gchar* fingerprint);
+IdCard* identity_manager_model_update_card (IdentityManagerModel* self, IdCard* card);
+static gboolean __lambda21_ (TrustAnchorConfirmationRequest* self);
+static gboolean ___lambda21__gsource_func (gpointer self);
+static void trust_anchor_confirmation_request_finalize (GObject* obj);
+enum  {
+       TRUST_ANCHOR_DIALOG_DUMMY_PROPERTY
+};
+void make_color (guint16 red, guint16 green, guint16 blue, GdkColor* result);
+void set_bg_color (GtkWidget* w);
+const gchar* id_card_get_issuer (IdCard* self);
+GtkWidget* make_ta_fingerprint_widget (const gchar* server_cert, const gchar* label_text);
+static void trust_anchor_dialog_on_response (TrustAnchorDialog* self, GtkDialog* source, gint response_id);
+static void _trust_anchor_dialog_on_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
+static void trust_anchor_dialog_finalize (GObject* obj);
+
+
+static gpointer _identity_manager_app_ref0 (gpointer self) {
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       return self ? identity_manager_app_ref (self) : NULL;
+#line 252 "moonshot-trust-anchor-dialog.c"
+}
+
+
+TrustAnchorConfirmationRequest* trust_anchor_confirmation_request_construct (GType object_type, IdentityManagerApp* parent_app, const gchar* userid, const gchar* realm, const gchar* fingerprint) {
+       TrustAnchorConfirmationRequest * self = NULL;
+       IdentityManagerApp* _tmp0_ = NULL;
+       IdentityManagerApp* _tmp1_ = NULL;
+       const gchar* _tmp2_ = NULL;
+       gchar* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       gchar* _tmp5_ = NULL;
+       const gchar* _tmp6_ = NULL;
+       gchar* _tmp7_ = NULL;
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_val_if_fail (parent_app != NULL, NULL);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_val_if_fail (userid != NULL, NULL);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_val_if_fail (realm != NULL, NULL);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_val_if_fail (fingerprint != NULL, NULL);
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self = (TrustAnchorConfirmationRequest*) g_object_new (object_type, NULL);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp0_ = parent_app;
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp1_ = _identity_manager_app_ref0 (_tmp0_);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _identity_manager_app_unref0 (self->priv->parent_app);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->parent_app = _tmp1_;
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp2_ = userid;
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp3_ = g_strdup (_tmp2_);
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (self->priv->userid);
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->userid = _tmp3_;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp4_ = realm;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp5_ = g_strdup (_tmp4_);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (self->priv->realm);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->realm = _tmp5_;
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp6_ = fingerprint;
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp7_ = g_strdup (_tmp6_);
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (self->priv->fingerprint);
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->fingerprint = _tmp7_;
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       return self;
+#line 310 "moonshot-trust-anchor-dialog.c"
+}
+
+
+TrustAnchorConfirmationRequest* trust_anchor_confirmation_request_new (IdentityManagerApp* parent_app, const gchar* userid, const gchar* realm, const gchar* fingerprint) {
+#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       return trust_anchor_confirmation_request_construct (TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST, parent_app, userid, realm, fingerprint);
+#line 317 "moonshot-trust-anchor-dialog.c"
+}
+
+
+void trust_anchor_confirmation_request_set_callback (TrustAnchorConfirmationRequest* self, TrustAnchorConfirmationCallback cb, void* cb_target, GDestroyNotify cb_target_destroy_notify) {
+       TrustAnchorConfirmationCallback _tmp0_ = NULL;
+       void* _tmp0__target = NULL;
+       GDestroyNotify _tmp0__target_destroy_notify = NULL;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_if_fail (self != NULL);
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp0_ = cb;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp0__target = cb_target;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp0__target_destroy_notify = cb_target_destroy_notify;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       cb = NULL;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       cb_target = NULL;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       cb_target_destroy_notify = NULL;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       (self->priv->callback_target_destroy_notify == NULL) ? NULL : (self->priv->callback_target_destroy_notify (self->priv->callback_target), NULL);
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->callback = NULL;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->callback_target = NULL;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->callback_target_destroy_notify = NULL;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->callback = _tmp0_;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->callback_target = _tmp0__target;
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->callback_target_destroy_notify = _tmp0__target_destroy_notify;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       (cb_target_destroy_notify == NULL) ? NULL : (cb_target_destroy_notify (cb_target), NULL);
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       cb = NULL;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       cb_target = NULL;
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       cb_target_destroy_notify = NULL;
+#line 361 "moonshot-trust-anchor-dialog.c"
+}
+
+
+static const gchar* string_to_string (const gchar* self) {
+       const gchar* result = NULL;
+#line 1420 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = self;
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 373 "moonshot-trust-anchor-dialog.c"
+}
+
+
+gboolean trust_anchor_confirmation_request_execute (TrustAnchorConfirmationRequest* self) {
+       gboolean result = FALSE;
+       gchar* nai = NULL;
+       const gchar* _tmp0_ = NULL;
+       gchar* _tmp1_ = NULL;
+       gchar* _tmp2_ = NULL;
+       const gchar* _tmp3_ = NULL;
+       gchar* _tmp4_ = NULL;
+       gchar* _tmp5_ = NULL;
+       IdCard* card = NULL;
+       IdentityManagerApp* _tmp6_ = NULL;
+       IdentityManagerModel* _tmp7_ = NULL;
+       const gchar* _tmp8_ = NULL;
+       IdentityManagerApp* _tmp9_ = NULL;
+       gboolean _tmp10_ = FALSE;
+       gboolean _tmp11_ = FALSE;
+       IdCard* _tmp12_ = NULL;
+       IdCard* _tmp13_ = NULL;
+       gboolean _tmp19_ = FALSE;
+       IdCard* _tmp20_ = NULL;
+       TrustAnchor* _tmp21_ = NULL;
+       TrustAnchor* _tmp22_ = NULL;
+       gboolean _tmp23_ = FALSE;
+       MoonshotLogger* _tmp33_ = NULL;
+       IdCard* _tmp34_ = NULL;
+       TrustAnchor* _tmp35_ = NULL;
+       TrustAnchor* _tmp36_ = NULL;
+       const gchar* _tmp37_ = NULL;
+       const gchar* _tmp38_ = NULL;
+       const gchar* _tmp39_ = NULL;
+       gchar* _tmp40_ = NULL;
+       gchar* _tmp41_ = NULL;
+       IdCard* _tmp42_ = NULL;
+       TrustAnchor* _tmp43_ = NULL;
+       TrustAnchor* _tmp44_ = NULL;
+       const gchar* _tmp45_ = NULL;
+       const gchar* _tmp46_ = NULL;
+       const gchar* _tmp47_ = NULL;
+       IdentityManagerApp* _tmp53_ = NULL;
+       gboolean _tmp54_ = FALSE;
+       gboolean _tmp55_ = FALSE;
+       TrustAnchorDialog* dialog = NULL;
+       IdCard* _tmp57_ = NULL;
+       const gchar* _tmp58_ = NULL;
+       const gchar* _tmp59_ = NULL;
+       const gchar* _tmp60_ = NULL;
+       TrustAnchorDialog* _tmp61_ = NULL;
+       gint response = 0;
+       TrustAnchorDialog* _tmp62_ = NULL;
+       gint _tmp63_ = 0;
+       TrustAnchorDialog* _tmp64_ = NULL;
+       gboolean is_confirmed = FALSE;
+       gint _tmp65_ = 0;
+       gboolean _tmp66_ = FALSE;
+       gboolean _tmp77_ = FALSE;
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp0_ = self->priv->userid;
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp1_ = g_strconcat (_tmp0_, "@", NULL);
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp2_ = _tmp1_;
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp3_ = self->priv->realm;
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp4_ = g_strconcat (_tmp2_, _tmp3_, NULL);
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp5_ = _tmp4_;
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (_tmp2_);
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       nai = _tmp5_;
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp6_ = self->priv->parent_app;
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp7_ = _tmp6_->model;
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp8_ = nai;
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp9_ = self->priv->parent_app;
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp10_ = identity_manager_app_get_use_flat_file_store (_tmp9_);
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp11_ = _tmp10_;
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp12_ = identity_manager_model_find_id_card (_tmp7_, _tmp8_, _tmp11_);
+#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       card = _tmp12_;
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp13_ = card;
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       if (_tmp13_ == NULL) {
+#line 470 "moonshot-trust-anchor-dialog.c"
+               MoonshotLogger* _tmp14_ = NULL;
+               const gchar* _tmp15_ = NULL;
+               const gchar* _tmp16_ = NULL;
+               gchar* _tmp17_ = NULL;
+               gchar* _tmp18_ = NULL;
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp14_ = trust_anchor_confirmation_request_logger;
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp15_ = nai;
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp16_ = string_to_string (_tmp15_);
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp17_ = g_strconcat ("execute: Could not find ID card for NAI ", _tmp16_, "; returning false.", NULL);
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp18_ = _tmp17_;
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               moonshot_logger_warn (_tmp14_, _tmp18_, NULL);
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (_tmp18_);
+#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               trust_anchor_confirmation_request_return_confirmation (self, FALSE);
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               result = FALSE;
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_object_unref0 (card);
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (nai);
+#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               return result;
+#line 500 "moonshot-trust-anchor-dialog.c"
+       }
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp20_ = card;
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp21_ = id_card_get_trust_anchor (_tmp20_);
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp22_ = _tmp21_;
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp23_ = trust_anchor_is_empty (_tmp22_);
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       if (_tmp23_) {
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp19_ = TRUE;
+#line 514 "moonshot-trust-anchor-dialog.c"
+       } else {
+               IdCard* _tmp24_ = NULL;
+               TrustAnchor* _tmp25_ = NULL;
+               TrustAnchor* _tmp26_ = NULL;
+               TrustAnchorTrustAnchorType _tmp27_ = 0;
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp24_ = card;
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp25_ = id_card_get_trust_anchor (_tmp24_);
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp26_ = _tmp25_;
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp27_ = trust_anchor_get_anchor_type (_tmp26_);
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp19_ = _tmp27_ == TRUST_ANCHOR_TRUST_ANCHOR_TYPE_SERVER_CERT;
+#line 530 "moonshot-trust-anchor-dialog.c"
+       }
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       if (!_tmp19_) {
+#line 534 "moonshot-trust-anchor-dialog.c"
+               MoonshotLogger* _tmp28_ = NULL;
+               const gchar* _tmp29_ = NULL;
+               const gchar* _tmp30_ = NULL;
+               gchar* _tmp31_ = NULL;
+               gchar* _tmp32_ = NULL;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp28_ = trust_anchor_confirmation_request_logger;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp29_ = nai;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp30_ = string_to_string (_tmp29_);
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp31_ = g_strconcat ("execute: Trust anchor type for NAI ", _tmp30_, " is not empty or SERVER_CERT; returning true.", NULL);
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp32_ = _tmp31_;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               moonshot_logger_warn (_tmp28_, _tmp32_, NULL);
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (_tmp32_);
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               trust_anchor_confirmation_request_return_confirmation (self, TRUE);
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               result = FALSE;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_object_unref0 (card);
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (nai);
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               return result;
+#line 564 "moonshot-trust-anchor-dialog.c"
+       }
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp33_ = trust_anchor_confirmation_request_logger;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp34_ = card;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp35_ = id_card_get_trust_anchor (_tmp34_);
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp36_ = _tmp35_;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp37_ = trust_anchor_get_server_cert (_tmp36_);
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp38_ = _tmp37_;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp39_ = self->priv->fingerprint;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp40_ = g_strdup_printf ("execute: expected cert='%s'; fingerprint='%s'", _tmp38_, _tmp39_);
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp41_ = _tmp40_;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       moonshot_logger_trace (_tmp33_, _tmp41_, NULL);
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (_tmp41_);
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp42_ = card;
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp43_ = id_card_get_trust_anchor (_tmp42_);
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp44_ = _tmp43_;
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp45_ = trust_anchor_get_server_cert (_tmp44_);
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp46_ = _tmp45_;
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp47_ = self->priv->fingerprint;
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       if (g_strcmp0 (_tmp46_, _tmp47_) == 0) {
+#line 602 "moonshot-trust-anchor-dialog.c"
+               MoonshotLogger* _tmp48_ = NULL;
+               const gchar* _tmp49_ = NULL;
+               const gchar* _tmp50_ = NULL;
+               gchar* _tmp51_ = NULL;
+               gchar* _tmp52_ = NULL;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp48_ = trust_anchor_confirmation_request_logger;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp49_ = nai;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp50_ = string_to_string (_tmp49_);
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp51_ = g_strconcat ("execute: Fingerprint for ", _tmp50_, " matches stored value; returning true.", NULL);
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp52_ = _tmp51_;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               moonshot_logger_trace (_tmp48_, _tmp52_, NULL);
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (_tmp52_);
+#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               trust_anchor_confirmation_request_return_confirmation (self, TRUE);
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               result = FALSE;
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_object_unref0 (card);
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (nai);
+#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               return result;
+#line 632 "moonshot-trust-anchor-dialog.c"
+       }
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp53_ = self->priv->parent_app;
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp54_ = identity_manager_app_get_headless (_tmp53_);
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp55_ = _tmp54_;
+#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       if (_tmp55_) {
+#line 642 "moonshot-trust-anchor-dialog.c"
+               MoonshotLogger* _tmp56_ = NULL;
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp56_ = trust_anchor_confirmation_request_logger;
+#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               moonshot_logger_trace (_tmp56_, "execute: Running in headless mode; returning false.", NULL);
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               trust_anchor_confirmation_request_return_confirmation (self, FALSE);
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               result = FALSE;
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_object_unref0 (card);
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (nai);
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               return result;
+#line 658 "moonshot-trust-anchor-dialog.c"
+       }
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp57_ = card;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp58_ = self->priv->userid;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp59_ = self->priv->realm;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp60_ = self->priv->fingerprint;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp61_ = trust_anchor_dialog_new (_tmp57_, _tmp58_, _tmp59_, _tmp60_);
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_object_ref_sink (_tmp61_);
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       dialog = _tmp61_;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp62_ = dialog;
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp63_ = gtk_dialog_run ((GtkDialog*) _tmp62_);
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       response = _tmp63_;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp64_ = dialog;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_object_destroy ((GtkObject*) _tmp64_);
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp65_ = response;
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       is_confirmed = _tmp65_ == ((gint) GTK_RESPONSE_OK);
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp66_ = is_confirmed;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       if (_tmp66_) {
+#line 692 "moonshot-trust-anchor-dialog.c"
+               MoonshotLogger* _tmp67_ = NULL;
+               IdCard* _tmp68_ = NULL;
+               TrustAnchor* _tmp69_ = NULL;
+               TrustAnchor* _tmp70_ = NULL;
+               const gchar* _tmp71_ = NULL;
+               IdentityManagerApp* _tmp72_ = NULL;
+               IdentityManagerModel* _tmp73_ = NULL;
+               IdCard* _tmp74_ = NULL;
+               IdCard* _tmp75_ = NULL;
+               IdCard* _tmp76_ = NULL;
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp67_ = trust_anchor_confirmation_request_logger;
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               moonshot_logger_trace (_tmp67_, "execute: Fingerprint confirmed; updating stored value.", NULL);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp68_ = card;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp69_ = id_card_get_trust_anchor (_tmp68_);
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp70_ = _tmp69_;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp71_ = self->priv->fingerprint;
+#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               trust_anchor_update_server_fingerprint (_tmp70_, _tmp71_);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp72_ = self->priv->parent_app;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp73_ = _tmp72_->model;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp74_ = card;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp75_ = identity_manager_model_update_card (_tmp73_, _tmp74_);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp76_ = _tmp75_;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_object_unref0 (_tmp76_);
+#line 729 "moonshot-trust-anchor-dialog.c"
+       }
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp77_ = is_confirmed;
+#line 108 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       trust_anchor_confirmation_request_return_confirmation (self, _tmp77_);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       result = FALSE;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_object_unref0 (dialog);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_object_unref0 (card);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (nai);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       return result;
+#line 745 "moonshot-trust-anchor-dialog.c"
+}
+
+
+static gchar* bool_to_string (gboolean self) {
+       gchar* result = NULL;
+#line 37 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (self) {
+#line 753 "moonshot-trust-anchor-dialog.c"
+               gchar* _tmp0_ = NULL;
+#line 38 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp0_ = g_strdup ("true");
+#line 38 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               result = _tmp0_;
+#line 38 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return result;
+#line 761 "moonshot-trust-anchor-dialog.c"
+       } else {
+               gchar* _tmp1_ = NULL;
+#line 40 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp1_ = g_strdup ("false");
+#line 40 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               result = _tmp1_;
+#line 40 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               return result;
+#line 770 "moonshot-trust-anchor-dialog.c"
+       }
+}
+
+
+static gboolean __lambda21_ (TrustAnchorConfirmationRequest* self) {
+       gboolean result = FALSE;
+       MoonshotLogger* _tmp0_ = NULL;
+       TrustAnchorConfirmationCallback _tmp1_ = NULL;
+       void* _tmp1__target = NULL;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp0_ = trust_anchor_confirmation_request_logger;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       moonshot_logger_trace (_tmp0_, "return_confirmation[Idle handler]: invoking callback", NULL);
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp1_ = self->priv->callback;
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp1__target = self->priv->callback_target;
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp1_ (self, _tmp1__target);
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       result = FALSE;
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       return result;
+#line 794 "moonshot-trust-anchor-dialog.c"
+}
+
+
+static gboolean ___lambda21__gsource_func (gpointer self) {
+       gboolean result;
+       result = __lambda21_ ((TrustAnchorConfirmationRequest*) self);
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       return result;
+#line 803 "moonshot-trust-anchor-dialog.c"
+}
+
+
+static void trust_anchor_confirmation_request_return_confirmation (TrustAnchorConfirmationRequest* self, gboolean confirmed) {
+       TrustAnchorConfirmationCallback _tmp0_ = NULL;
+       void* _tmp0__target = NULL;
+       gboolean _tmp1_ = FALSE;
+       MoonshotLogger* _tmp2_ = NULL;
+       gboolean _tmp3_ = FALSE;
+       gchar* _tmp4_ = NULL;
+       gchar* _tmp5_ = NULL;
+       gchar* _tmp6_ = NULL;
+       gchar* _tmp7_ = NULL;
+#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_if_fail (self != NULL);
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp0_ = self->priv->callback;
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp0__target = self->priv->callback_target;
+#line 117 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_if_fail (_tmp0_ != NULL);
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp1_ = confirmed;
+#line 119 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->confirmed = _tmp1_;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp2_ = trust_anchor_confirmation_request_logger;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp3_ = confirmed;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp4_ = bool_to_string (_tmp3_);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp5_ = _tmp4_;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp6_ = g_strconcat ("return_confirmation: confirmed=", _tmp5_, NULL);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp7_ = _tmp6_;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       moonshot_logger_trace (_tmp2_, _tmp7_, NULL);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (_tmp7_);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (_tmp5_);
+#line 124 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, ___lambda21__gsource_func, g_object_ref (self), g_object_unref);
+#line 849 "moonshot-trust-anchor-dialog.c"
+}
+
+
+static void trust_anchor_confirmation_request_class_init (TrustAnchorConfirmationRequestClass * klass) {
+       MoonshotLogger* _tmp0_ = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       trust_anchor_confirmation_request_parent_class = g_type_class_peek_parent (klass);
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_type_class_add_private (klass, sizeof (TrustAnchorConfirmationRequestPrivate));
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       G_OBJECT_CLASS (klass)->finalize = trust_anchor_confirmation_request_finalize;
+#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp0_ = get_logger ("TrustAnchorConfirmationRequest");
+#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       trust_anchor_confirmation_request_logger = _tmp0_;
+#line 865 "moonshot-trust-anchor-dialog.c"
+}
+
+
+static void trust_anchor_confirmation_request_instance_init (TrustAnchorConfirmationRequest * self) {
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv = TRUST_ANCHOR_CONFIRMATION_REQUEST_GET_PRIVATE (self);
+#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->confirmed = FALSE;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->callback = NULL;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->callback_target = self;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->callback_target_destroy_notify = NULL;
+#line 880 "moonshot-trust-anchor-dialog.c"
+}
+
+
+static void trust_anchor_confirmation_request_finalize (GObject* obj) {
+       TrustAnchorConfirmationRequest * self;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TRUST_ANCHOR_CONFIRMATION_REQUEST, TrustAnchorConfirmationRequest);
+#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _identity_manager_app_unref0 (self->priv->parent_app);
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (self->priv->userid);
+#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (self->priv->realm);
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (self->priv->fingerprint);
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       (self->priv->callback_target_destroy_notify == NULL) ? NULL : (self->priv->callback_target_destroy_notify (self->priv->callback_target), NULL);
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->callback = NULL;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->callback_target = NULL;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->priv->callback_target_destroy_notify = NULL;
+#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       G_OBJECT_CLASS (trust_anchor_confirmation_request_parent_class)->finalize (obj);
+#line 906 "moonshot-trust-anchor-dialog.c"
+}
+
+
+GType trust_anchor_confirmation_request_get_type (void) {
+       static volatile gsize trust_anchor_confirmation_request_type_id__volatile = 0;
+       if (g_once_init_enter (&trust_anchor_confirmation_request_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (TrustAnchorConfirmationRequestClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) trust_anchor_confirmation_request_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TrustAnchorConfirmationRequest), 0, (GInstanceInitFunc) trust_anchor_confirmation_request_instance_init, NULL };
+               GType trust_anchor_confirmation_request_type_id;
+               trust_anchor_confirmation_request_type_id = g_type_register_static (G_TYPE_OBJECT, "TrustAnchorConfirmationRequest", &g_define_type_info, 0);
+               g_once_init_leave (&trust_anchor_confirmation_request_type_id__volatile, trust_anchor_confirmation_request_type_id);
+       }
+       return trust_anchor_confirmation_request_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 925 "moonshot-trust-anchor-dialog.c"
+}
+
+
+static void _trust_anchor_dialog_on_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) {
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       trust_anchor_dialog_on_response ((TrustAnchorDialog*) self, _sender, response_id);
+#line 932 "moonshot-trust-anchor-dialog.c"
+}
+
+
+TrustAnchorDialog* trust_anchor_dialog_construct (GType object_type, IdCard* card, const gchar* userid, const gchar* realm, const gchar* fingerprint) {
+       TrustAnchorDialog * self = NULL;
+       gchar* server_ta_label_text = NULL;
+       const gchar* _tmp0_ = NULL;
+       gchar* _tmp1_ = NULL;
+       const gchar* _tmp2_ = NULL;
+       const gchar* _tmp3_ = NULL;
+       const gchar* _tmp4_ = NULL;
+       GtkWidget* content_area = NULL;
+       GtkWidget* _tmp5_ = NULL;
+       GtkWidget* _tmp6_ = NULL;
+       GtkWidget* _tmp7_ = NULL;
+       GtkWidget* _tmp8_ = NULL;
+       GtkLabel* dialog_label = NULL;
+       GtkLabel* _tmp9_ = NULL;
+       GtkLabel* _tmp10_ = NULL;
+       gchar* label_markup = NULL;
+       IdCard* _tmp11_ = NULL;
+       TrustAnchor* _tmp12_ = NULL;
+       TrustAnchor* _tmp13_ = NULL;
+       const gchar* _tmp14_ = NULL;
+       const gchar* _tmp15_ = NULL;
+       GtkLabel* _tmp35_ = NULL;
+       const gchar* _tmp36_ = NULL;
+       GtkLabel* _tmp37_ = NULL;
+       GtkLabel* _tmp38_ = NULL;
+       GtkLabel* user_label = NULL;
+       const gchar* _tmp39_ = NULL;
+       const gchar* _tmp40_ = NULL;
+       gchar* _tmp41_ = NULL;
+       gchar* _tmp42_ = NULL;
+       GtkLabel* _tmp43_ = NULL;
+       GtkLabel* _tmp44_ = NULL;
+       GtkLabel* realm_label = NULL;
+       const gchar* _tmp45_ = NULL;
+       const gchar* _tmp46_ = NULL;
+       gchar* _tmp47_ = NULL;
+       gchar* _tmp48_ = NULL;
+       GtkLabel* _tmp49_ = NULL;
+       GtkLabel* _tmp50_ = NULL;
+       gchar* confirm_text = NULL;
+       const gchar* _tmp51_ = NULL;
+       const gchar* _tmp52_ = NULL;
+       gchar* _tmp53_ = NULL;
+       gchar* _tmp54_ = NULL;
+       const gchar* _tmp55_ = NULL;
+       gchar* _tmp56_ = NULL;
+       gchar* _tmp57_ = NULL;
+       GtkLabel* confirm_label = NULL;
+       GtkLabel* _tmp58_ = NULL;
+       GtkWidget* trust_anchor_display = NULL;
+       const gchar* _tmp59_ = NULL;
+       const gchar* _tmp60_ = NULL;
+       GtkWidget* _tmp61_ = NULL;
+       GtkVBox* vbox = NULL;
+       GtkVBox* _tmp62_ = NULL;
+       GtkLabel* _tmp63_ = NULL;
+       GtkWidget* _tmp64_ = NULL;
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_val_if_fail (card != NULL, NULL);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_val_if_fail (userid != NULL, NULL);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_val_if_fail (realm != NULL, NULL);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_val_if_fail (fingerprint != NULL, NULL);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self = (TrustAnchorDialog*) g_object_new (object_type, NULL);
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp0_ = _ ("Server's trust anchor certificate (SHA-256 fingerprint):");
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       server_ta_label_text = _tmp1_;
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp2_ = _ ("Trust Anchor");
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_window_set_title ((GtkWindow*) self, _tmp2_);
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_window_set_modal ((GtkWindow*) self, TRUE);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       set_bg_color ((GtkWidget*) self);
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp3_ = _ ("Cancel");
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp4_ = _ ("Confirm");
+#line 154 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_dialog_add_buttons ((GtkDialog*) self, _tmp3_, GTK_RESPONSE_CANCEL, _tmp4_, GTK_RESPONSE_OK, NULL);
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_dialog_set_default_response ((GtkDialog*) self, (gint) GTK_RESPONSE_CANCEL);
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp5_ = gtk_dialog_get_content_area ((GtkDialog*) self);
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       content_area = _tmp6_;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp7_ = content_area;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_box_set_spacing (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GTK_TYPE_BOX, GtkBox), 12);
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp8_ = content_area;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       set_bg_color (_tmp8_);
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp9_ = (GtkLabel*) gtk_label_new ("");
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_object_ref_sink (_tmp9_);
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       dialog_label = _tmp9_;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp10_ = dialog_label;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) _tmp10_, (gfloat) 0, (gfloat) 0);
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp11_ = card;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp12_ = id_card_get_trust_anchor (_tmp11_);
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp13_ = _tmp12_;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp14_ = trust_anchor_get_server_cert (_tmp13_);
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp15_ = _tmp14_;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       if (g_strcmp0 (_tmp15_, "") == 0) {
+#line 1062 "moonshot-trust-anchor-dialog.c"
+               const gchar* _tmp16_ = NULL;
+               gchar* _tmp17_ = NULL;
+               gchar* _tmp18_ = NULL;
+               gchar* _tmp19_ = NULL;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp16_ = _ ("You are using this identity for the first time with the following trus" \
+"t anchor:");
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp17_ = g_strconcat ("<span font-weight='heavy'>", _tmp16_, NULL);
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp18_ = _tmp17_;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp19_ = g_strconcat (_tmp18_, "</span>", NULL);
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (label_markup);
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               label_markup = _tmp19_;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (_tmp18_);
+#line 1081 "moonshot-trust-anchor-dialog.c"
+       } else {
+               const gchar* _tmp20_ = NULL;
+               IdCard* _tmp21_ = NULL;
+               const gchar* _tmp22_ = NULL;
+               const gchar* _tmp23_ = NULL;
+               gchar* _tmp24_ = NULL;
+               gchar* _tmp25_ = NULL;
+               gchar* _tmp26_ = NULL;
+               gchar* _tmp27_ = NULL;
+               const gchar* _tmp28_ = NULL;
+               gchar* _tmp29_ = NULL;
+               gchar* _tmp30_ = NULL;
+               const gchar* _tmp31_ = NULL;
+               gchar* _tmp32_ = NULL;
+               gchar* _tmp33_ = NULL;
+               gchar* _tmp34_ = NULL;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp20_ = _ ("WARNING: The certificate we received for the authentication server for" \
+" %s");
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp21_ = card;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp22_ = id_card_get_issuer (_tmp21_);
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp23_ = _tmp22_;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp24_ = g_strdup_printf (_tmp20_, _tmp23_);
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp25_ = _tmp24_;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp26_ = g_strconcat ("<span font-weight='heavy'>", _tmp25_, NULL);
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp27_ = _tmp26_;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp28_ = _ (" is different than expected.  Either the server certificate has change" \
+"d, or an");
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp29_ = g_strconcat (_tmp27_, _tmp28_, NULL);
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp30_ = _tmp29_;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp31_ = _ (" attack may be underway.  If you proceed to the wrong server, your log" \
+"in credentials may be compromised.");
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp32_ = g_strconcat (_tmp30_, _tmp31_, NULL);
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp33_ = _tmp32_;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _tmp34_ = g_strconcat (_tmp33_, "</span>", NULL);
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (label_markup);
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               label_markup = _tmp34_;
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (_tmp33_);
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (_tmp30_);
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (_tmp27_);
+#line 173 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               _g_free0 (_tmp25_);
+#line 1140 "moonshot-trust-anchor-dialog.c"
+       }
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp35_ = dialog_label;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp36_ = label_markup;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_label_set_markup (_tmp35_, _tmp36_);
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp37_ = dialog_label;
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_label_set_line_wrap (_tmp37_, TRUE);
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp38_ = dialog_label;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_label_set_width_chars (_tmp38_, 60);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp39_ = _ ("Username: ");
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp40_ = userid;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp41_ = g_strconcat (_tmp39_, _tmp40_, NULL);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp42_ = _tmp41_;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp43_ = (GtkLabel*) gtk_label_new (_tmp42_);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_object_ref_sink (_tmp43_);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp44_ = _tmp43_;
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (_tmp42_);
+#line 184 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       user_label = _tmp44_;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) user_label, (gfloat) 0, 0.5f);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp45_ = _ ("Realm: ");
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp46_ = realm;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp47_ = g_strconcat (_tmp45_, _tmp46_, NULL);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp48_ = _tmp47_;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp49_ = (GtkLabel*) gtk_label_new (_tmp48_);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_object_ref_sink (_tmp49_);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp50_ = _tmp49_;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (_tmp48_);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       realm_label = _tmp50_;
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) realm_label, (gfloat) 0, 0.5f);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp51_ = _ ("\n" \
+"Please check with your realm administrator for the correct fingerprint");
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp52_ = _ (" for your authentication server.  If it matches the above fingerprint,");
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp53_ = g_strconcat (_tmp51_, _tmp52_, NULL);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp54_ = _tmp53_;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp55_ = _ (" confirm the change.  If not, then cancel.");
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp56_ = g_strconcat (_tmp54_, _tmp55_, NULL);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp57_ = _tmp56_;
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (_tmp54_);
+#line 190 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       confirm_text = _tmp57_;
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp58_ = (GtkLabel*) gtk_label_new (confirm_text);
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_object_ref_sink (_tmp58_);
+#line 194 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       confirm_label = _tmp58_;
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) confirm_label, (gfloat) 0, 0.5f);
+#line 196 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_label_set_line_wrap (confirm_label, TRUE);
+#line 197 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_label_set_width_chars (confirm_label, 60);
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp59_ = fingerprint;
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp60_ = server_ta_label_text;
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp61_ = make_ta_fingerprint_widget (_tmp59_, _tmp60_);
+#line 199 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       trust_anchor_display = _tmp61_;
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp62_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_object_ref_sink (_tmp62_);
+#line 201 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       vbox = _tmp62_;
+#line 202 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_container_set_border_width ((GtkContainer*) vbox, (guint) 6);
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp63_ = dialog_label;
+#line 203 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) _tmp63_, TRUE, TRUE, (guint) 12);
+#line 204 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) user_label, TRUE, TRUE, (guint) 2);
+#line 205 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) realm_label, TRUE, TRUE, (guint) 2);
+#line 206 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) vbox, trust_anchor_display, TRUE, TRUE, (guint) 0);
+#line 207 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) confirm_label, TRUE, TRUE, (guint) 12);
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp64_ = content_area;
+#line 209 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, GTK_TYPE_CONTAINER, GtkContainer), (GtkWidget*) vbox);
+#line 211 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_container_set_border_width ((GtkContainer*) self, (guint) 6);
+#line 212 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_window_set_resizable ((GtkWindow*) self, FALSE);
+#line 214 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_signal_connect_object ((GtkDialog*) self, "response", (GCallback) _trust_anchor_dialog_on_response_gtk_dialog_response, self, 0);
+#line 216 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       gtk_widget_show_all ((GtkWidget*) self);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_object_unref0 (vbox);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_object_unref0 (trust_anchor_display);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_object_unref0 (confirm_label);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (confirm_text);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_object_unref0 (realm_label);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_object_unref0 (user_label);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (label_markup);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_object_unref0 (dialog_label);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_object_unref0 (content_area);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _g_free0 (server_ta_label_text);
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       return self;
+#line 1288 "moonshot-trust-anchor-dialog.c"
+}
+
+
+TrustAnchorDialog* trust_anchor_dialog_new (IdCard* card, const gchar* userid, const gchar* realm, const gchar* fingerprint) {
+#line 142 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       return trust_anchor_dialog_construct (TYPE_TRUST_ANCHOR_DIALOG, card, userid, realm, fingerprint);
+#line 1295 "moonshot-trust-anchor-dialog.c"
+}
+
+
+static void trust_anchor_dialog_on_response (TrustAnchorDialog* self, GtkDialog* source, gint response_id) {
+       gint _tmp0_ = 0;
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_if_fail (self != NULL);
+#line 219 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       g_return_if_fail (source != NULL);
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       _tmp0_ = response_id;
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       switch (_tmp0_) {
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               case GTK_RESPONSE_OK:
+#line 1311 "moonshot-trust-anchor-dialog.c"
+               {
+#line 223 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+                       self->complete = TRUE;
+#line 224 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+                       break;
+#line 1317 "moonshot-trust-anchor-dialog.c"
+               }
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               case GTK_RESPONSE_CANCEL:
+#line 1321 "moonshot-trust-anchor-dialog.c"
+               {
+#line 226 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+                       self->complete = TRUE;
+#line 227 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+                       break;
+#line 1327 "moonshot-trust-anchor-dialog.c"
+               }
+               default:
+#line 221 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+               break;
+#line 1332 "moonshot-trust-anchor-dialog.c"
+       }
+}
+
+
+static void trust_anchor_dialog_class_init (TrustAnchorDialogClass * klass) {
+       GdkColor _tmp0_ = {0};
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       trust_anchor_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       G_OBJECT_CLASS (klass)->finalize = trust_anchor_dialog_finalize;
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       make_color ((guint16) 65535, (guint16) 65535, (guint16) 65535, &_tmp0_);
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       trust_anchor_dialog_white = _tmp0_;
+#line 1347 "moonshot-trust-anchor-dialog.c"
+}
+
+
+static void trust_anchor_dialog_instance_init (TrustAnchorDialog * self) {
+#line 140 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self->complete = FALSE;
+#line 1354 "moonshot-trust-anchor-dialog.c"
+}
+
+
+static void trust_anchor_dialog_finalize (GObject* obj) {
+       TrustAnchorDialog * self;
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TRUST_ANCHOR_DIALOG, TrustAnchorDialog);
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-trust-anchor-dialog.vala"
+       G_OBJECT_CLASS (trust_anchor_dialog_parent_class)->finalize (obj);
+#line 1364 "moonshot-trust-anchor-dialog.c"
+}
+
+
+GType trust_anchor_dialog_get_type (void) {
+       static volatile gsize trust_anchor_dialog_type_id__volatile = 0;
+       if (g_once_init_enter (&trust_anchor_dialog_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (TrustAnchorDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) trust_anchor_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TrustAnchorDialog), 0, (GInstanceInitFunc) trust_anchor_dialog_instance_init, NULL };
+               GType trust_anchor_dialog_type_id;
+               trust_anchor_dialog_type_id = g_type_register_static (GTK_TYPE_DIALOG, "TrustAnchorDialog", &g_define_type_info, 0);
+               g_once_init_leave (&trust_anchor_dialog_type_id__volatile, trust_anchor_dialog_type_id);
+       }
+       return trust_anchor_dialog_type_id__volatile;
+}
+
+
+
diff --git a/src/moonshot-trust-anchor-dialog.vala b/src/moonshot-trust-anchor-dialog.vala
new file mode 100644 (file)
index 0000000..89ea6fc
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+ * Copyright (c) 2011-2016, JANET(UK)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of JANET(UK) nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+*/
+using Gtk;
+
+public delegate void TrustAnchorConfirmationCallback(TrustAnchorConfirmationRequest request);
+
+public class TrustAnchorConfirmationRequest : GLib.Object {
+    static MoonshotLogger logger = get_logger("TrustAnchorConfirmationRequest");
+
+    IdentityManagerApp parent_app;
+    string userid;
+    string realm;
+    string fingerprint;
+    public bool confirmed = false;
+
+    TrustAnchorConfirmationCallback callback = null;
+
+    public TrustAnchorConfirmationRequest(IdentityManagerApp parent_app,
+                                          string userid,
+                                          string realm,
+                                          string fingerprint)
+    {
+        this.parent_app = parent_app;
+        this.userid = userid;
+        this.realm = realm;
+        this.fingerprint = fingerprint;
+    }
+
+    public void set_callback(owned TrustAnchorConfirmationCallback cb)
+    {
+//        #if VALA_0_12
+            this.callback = ((owned) cb);
+//        #else
+//            this.callback = ((IdCard) => cb(IdCard));
+//        #endif
+    }
+
+    public bool execute() {
+
+        string nai = userid + "@" + realm;
+        IdCard? card = parent_app.model.find_id_card(nai, parent_app.use_flat_file_store);
+        if (card == null) {
+            logger.warn(@"execute: Could not find ID card for NAI $nai; returning false.");
+            return_confirmation(false);
+            return false;
+        }
+        
+        if (!(card.trust_anchor.is_empty() || card.trust_anchor.get_anchor_type() == TrustAnchor.TrustAnchorType.SERVER_CERT)) {
+            logger.warn(@"execute: Trust anchor type for NAI $nai is not empty or SERVER_CERT; returning true.");
+            return_confirmation(true);
+            return false;
+        }
+
+        logger.trace("execute: expected cert='%s'; fingerprint='%s'".printf(card.trust_anchor.server_cert, fingerprint));
+        if (card.trust_anchor.server_cert == fingerprint) {
+            logger.trace(@"execute: Fingerprint for $nai matches stored value; returning true.");
+            return_confirmation(true);
+            return false;
+        }
+
+        if (parent_app.headless) {
+            logger.trace(@"execute: Running in headless mode; returning false.");
+            return_confirmation(false);
+            return false;
+        }
+
+        var dialog = new TrustAnchorDialog(card, userid, realm, fingerprint);
+        var response = dialog.run();
+        dialog.destroy();
+        bool is_confirmed = (response == ResponseType.OK);
+
+        if (is_confirmed) {
+            logger.trace(@"execute: Fingerprint confirmed; updating stored value.");
+
+            card.trust_anchor.update_server_fingerprint(fingerprint);
+            parent_app.model.update_card(card);
+        }            
+
+        return_confirmation(is_confirmed);
+
+        /* This function works as a GSourceFunc, so it can be passed to
+         * the main loop from other threads
+         */
+        return false;
+    }
+
+    private void return_confirmation(bool confirmed) {
+        return_if_fail(callback != null);
+
+        this.confirmed = confirmed;
+        logger.trace(@"return_confirmation: confirmed=$confirmed");
+
+        // Send back the confirmation (we can't directly run the
+        // callback because we may be being called from a 'yield')
+        GLib.Idle.add(
+            () => {
+                logger.trace("return_confirmation[Idle handler]: invoking callback");
+                callback(this);
+                return false;
+            }
+            );
+    }
+}
+
+
+
+class TrustAnchorDialog : Dialog
+{
+    private static Gdk.Color white = make_color(65535, 65535, 65535);
+
+    public bool complete = false;
+
+    public TrustAnchorDialog(IdCard card,
+                             string userid,
+                             string realm,
+                             string fingerprint)
+    {
+        string server_ta_label_text = _("Server's trust anchor certificate (SHA-256 fingerprint):");
+
+        this.set_title(_("Trust Anchor"));
+        this.set_modal(true);
+//        this.set_transient_for(parent);
+        set_bg_color(this);
+
+        this.add_buttons(_("Cancel"), ResponseType.CANCEL,
+                         _("Confirm"), ResponseType.OK);
+
+        this.set_default_response(ResponseType.CANCEL);
+
+        var content_area = this.get_content_area();
+        ((Box) content_area).set_spacing(12);
+        set_bg_color(content_area);
+
+        Label dialog_label = new Label("");
+        dialog_label.set_alignment(0, 0);
+
+        string label_markup;
+        if (card.trust_anchor.server_cert == "") {
+            label_markup = "<span font-weight='heavy'>" 
+            + _("You are using this identity for the first time with the following trust anchor:") + "</span>";
+        }
+        else {
+            // The server's fingerprint isn't what we're expecting this server to provide.
+            label_markup = "<span font-weight='heavy'>" +
+            _("WARNING: The certificate we received for the authentication server for %s").printf(card.issuer)
+            + _(" is different than expected.  Either the server certificate has changed, or an")
+            + _(" attack may be underway.  If you proceed to the wrong server, your login credentials may be compromised.")
+            + "</span>";
+        }
+
+        dialog_label.set_markup(label_markup);
+        dialog_label.set_line_wrap(true);
+        dialog_label.set_width_chars(60);
+                                                   
+        var user_label = new Label(_("Username: ") + userid);
+        user_label.set_alignment(0, 0.5f);
+
+        var realm_label = new Label(_("Realm: ") + realm);
+        realm_label.set_alignment(0, 0.5f);
+
+        string confirm_text = _("\nPlease check with your realm administrator for the correct fingerprint")
+        + _(" for your authentication server.  If it matches the above fingerprint,")
+        + _(" confirm the change.  If not, then cancel.");
+
+        Label confirm_label = new Label(confirm_text);
+        confirm_label.set_alignment(0, 0.5f);
+        confirm_label.set_line_wrap(true);
+        confirm_label.set_width_chars(60);
+
+        var trust_anchor_display = make_ta_fingerprint_widget(fingerprint, server_ta_label_text);
+
+        var vbox = new VBox(false, 0);
+        vbox.set_border_width(6);
+        vbox.pack_start(dialog_label, true, true, 12);
+        vbox.pack_start(user_label, true, true, 2);
+        vbox.pack_start(realm_label, true, true, 2);
+        vbox.pack_start(trust_anchor_display, true, true, 0);
+        vbox.pack_start(confirm_label, true, true, 12);
+
+        ((Container) content_area).add(vbox);
+
+        this.set_border_width(6);
+        this.set_resizable(false);
+
+        this.response.connect(on_response);
+
+        this.show_all();
+    }
+
+    private void on_response(Dialog source, int response_id)
+    {
+        switch (response_id) {
+        case ResponseType.OK:
+            complete = true;
+            break;
+        case ResponseType.CANCEL:
+            complete = true;
+            break;
+        }
+    }
+}
index 0387ee1..38ae29e 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-utils.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-utils.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-utils.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <stdio.h>
 #include <glib/gstdio.h>
+#include <gdk/gdk.h>
+#include <atk/atk.h>
+#include <glib/gi18n-lib.h>
+#include <float.h>
+#include <math.h>
+#include <pango/pango.h>
 
 
 #define TYPE_ID_CARD (id_card_get_type ())
@@ -57,10 +63,13 @@ typedef struct _IdCardClass IdCardClass;
 #define _fclose0(var) ((var == NULL) ? NULL : (var = (fclose (var), NULL)))
 #define _g_free0(var) (var = (g_free (var), NULL))
 #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
+#define __vala_PangoFontDescription_free0(var) ((var == NULL) ? NULL : (var = (_vala_PangoFontDescription_free (var), NULL)))
 
 
 extern gboolean gtk_available;
 gboolean gtk_available = FALSE;
+extern GdkColor white;
+GdkColor white = {0};
 
 GdkPixbuf* find_icon_sized (const gchar* name, GtkIconSize icon_size);
 GdkPixbuf* find_icon (const gchar* name, gint size);
@@ -69,6 +78,13 @@ GdkPixbuf* get_pixbuf (IdCard* id);
 const gchar* GetUserName (void);
 const gchar* GetFlatStoreUsersFilePath (void);
 gboolean UserForcesFlatFileStore (void);
+void make_color (guint16 red, guint16 green, guint16 blue, GdkColor* result);
+void set_atk_relation (GtkWidget* widget, GtkWidget* target_widget, AtkRelationType relationship);
+GtkWidget* make_ta_fingerprint_widget (const gchar* server_cert, const gchar* label_text);
+gchar* colonize (const gchar* input, gint bytes_per_line);
+static void _vala_PangoFontDescription_free (PangoFontDescription* self);
+void clear_password_entry (GtkEntry* entry);
+void set_bg_color (GtkWidget* w);
 
 
 GdkPixbuf* find_icon_sized (const gchar* name, GtkIconSize icon_size) {
@@ -80,47 +96,47 @@ GdkPixbuf* find_icon_sized (const gchar* name, GtkIconSize icon_size) {
        gint _tmp2_ = 0;
        const gchar* _tmp3_ = NULL;
        GdkPixbuf* _tmp4_ = NULL;
-#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        g_return_val_if_fail (name != NULL, NULL);
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _tmp0_ = icon_size;
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        gtk_icon_size_lookup (_tmp0_, &_tmp1_, &_tmp2_);
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        width = _tmp1_;
-#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        height = _tmp2_;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _tmp3_ = name;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _tmp4_ = find_icon (_tmp3_, width);
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        result = _tmp4_;
-#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        return result;
-#line 102 "moonshot-utils.c"
+#line 118 "moonshot-utils.c"
 }
 
 
 GdkPixbuf* get_pixbuf (IdCard* id) {
        GdkPixbuf* result = NULL;
        GdkPixbuf* _tmp0_ = NULL;
-#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        g_return_val_if_fail (id != NULL, NULL);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _tmp0_ = find_icon ("avatar-default", 48);
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        result = _tmp0_;
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        return result;
-#line 117 "moonshot-utils.c"
+#line 133 "moonshot-utils.c"
 }
 
 
 static gpointer _g_object_ref0 (gpointer self) {
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        return self ? g_object_ref (self) : NULL;
-#line 124 "moonshot-utils.c"
+#line 140 "moonshot-utils.c"
 }
 
 
@@ -128,17 +144,17 @@ GdkPixbuf* find_icon (const gchar* name, gint size) {
        GdkPixbuf* result = NULL;
        gboolean _tmp0_ = FALSE;
        GError * _inner_error_ = NULL;
-#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        g_return_val_if_fail (name != NULL, NULL);
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _tmp0_ = gtk_available;
-#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        if (!_tmp0_) {
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                result = NULL;
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 62 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                return result;
-#line 142 "moonshot-utils.c"
+#line 158 "moonshot-utils.c"
        }
        {
                GtkIconTheme* icon_theme = NULL;
@@ -150,81 +166,81 @@ GdkPixbuf* find_icon (const gchar* name, gint size) {
                gint _tmp6_ = 0;
                GdkPixbuf* _tmp7_ = NULL;
                GdkPixbuf* _tmp8_ = NULL;
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp1_ = gtk_icon_theme_get_default ();
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp2_ = _g_object_ref0 (_tmp1_);
-#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                icon_theme = _tmp2_;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp4_ = icon_theme;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp5_ = name;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp6_ = size;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp7_ = gtk_icon_theme_load_icon (_tmp4_, _tmp5_, _tmp6_, GTK_ICON_LOOKUP_FORCE_SIZE, &_inner_error_);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp3_ = _tmp7_;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                if (G_UNLIKELY (_inner_error_ != NULL)) {
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                        _g_object_unref0 (icon_theme);
-#line 174 "moonshot-utils.c"
-                       goto __catch10_g_error;
+#line 190 "moonshot-utils.c"
+                       goto __catch20_g_error;
                }
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp8_ = _tmp3_;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp3_ = NULL;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                result = _tmp8_;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _g_object_unref0 (_tmp3_);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _g_object_unref0 (icon_theme);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                return result;
-#line 189 "moonshot-utils.c"
+#line 205 "moonshot-utils.c"
        }
-       goto __finally10;
-       __catch10_g_error:
+       goto __finally20;
+       __catch20_g_error:
        {
                GError* e = NULL;
                FILE* _tmp9_ = NULL;
                const gchar* _tmp10_ = NULL;
                GError* _tmp11_ = NULL;
                const gchar* _tmp12_ = NULL;
-#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                e = _inner_error_;
-#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _inner_error_ = NULL;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp9_ = stdout;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp10_ = name;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp11_ = e;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp12_ = _tmp11_->message;
-#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                fprintf (_tmp9_, "Error loading icon '%s': %s\n", _tmp10_, _tmp12_);
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                result = NULL;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _g_error_free0 (e);
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                return result;
-#line 219 "moonshot-utils.c"
+#line 235 "moonshot-utils.c"
        }
-       __finally10:
-#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       __finally20:
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        g_clear_error (&_inner_error_);
-#line 59 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        return NULL;
-#line 228 "moonshot-utils.c"
+#line 244 "moonshot-utils.c"
 }
 
 
@@ -233,93 +249,93 @@ static gchar* g_file_stream_read_line (FILE* self) {
        gint c = 0;
        GString* ret = NULL;
        GString* _tmp7_ = NULL;
-#line 3171 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3459 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        g_return_val_if_fail (self != NULL, NULL);
-#line 3173 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3461 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        ret = NULL;
-#line 3174 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3462 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        while (TRUE) {
-#line 243 "moonshot-utils.c"
+#line 259 "moonshot-utils.c"
                gint _tmp0_ = 0;
                gint _tmp1_ = 0;
                GString* _tmp2_ = NULL;
                gint _tmp4_ = 0;
                GString* _tmp5_ = NULL;
                gint _tmp6_ = 0;
-#line 3174 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3462 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp0_ = fgetc (self);
-#line 3174 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3462 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                c = _tmp0_;
-#line 3174 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3462 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp1_ = c;
-#line 3174 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3462 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                if (!(_tmp1_ != EOF)) {
-#line 3174 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3462 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        break;
-#line 260 "moonshot-utils.c"
+#line 276 "moonshot-utils.c"
                }
-#line 3175 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3463 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp2_ = ret;
-#line 3175 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3463 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                if (_tmp2_ == NULL) {
-#line 266 "moonshot-utils.c"
+#line 282 "moonshot-utils.c"
                        GString* _tmp3_ = NULL;
-#line 3176 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3464 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        _tmp3_ = g_string_new ("");
-#line 3176 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3464 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        _g_string_free0 (ret);
-#line 3176 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3464 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        ret = _tmp3_;
-#line 274 "moonshot-utils.c"
+#line 290 "moonshot-utils.c"
                }
-#line 3178 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3466 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp4_ = c;
-#line 3178 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3466 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                if (_tmp4_ == ((gint) '\n')) {
-#line 3179 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3467 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                        break;
-#line 282 "moonshot-utils.c"
+#line 298 "moonshot-utils.c"
                }
-#line 3181 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3469 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp5_ = ret;
-#line 3181 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3469 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp6_ = c;
-#line 3181 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3469 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                g_string_append_c ((GString*) _tmp5_, (gchar) _tmp6_);
-#line 290 "moonshot-utils.c"
+#line 306 "moonshot-utils.c"
        }
-#line 3183 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3471 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp7_ = ret;
-#line 3183 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3471 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        if (_tmp7_ == NULL) {
-#line 3184 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3472 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                result = NULL;
-#line 3184 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3472 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _g_string_free0 (ret);
-#line 3184 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3472 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                return result;
-#line 302 "moonshot-utils.c"
+#line 318 "moonshot-utils.c"
        } else {
                GString* _tmp8_ = NULL;
                const gchar* _tmp9_ = NULL;
                gchar* _tmp10_ = NULL;
-#line 3186 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3474 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp8_ = ret;
-#line 3186 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3474 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp9_ = ((GString*) _tmp8_)->str;
-#line 3186 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3474 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _tmp10_ = g_strdup (_tmp9_);
-#line 3186 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3474 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                result = _tmp10_;
-#line 3186 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3474 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                _g_string_free0 (ret);
-#line 3186 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3474 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
                return result;
-#line 319 "moonshot-utils.c"
+#line 335 "moonshot-utils.c"
        }
-#line 3171 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 3459 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _g_string_free0 (ret);
-#line 323 "moonshot-utils.c"
+#line 339 "moonshot-utils.c"
 }
 
 
@@ -336,100 +352,767 @@ gboolean UserForcesFlatFileStore (void) {
        FILE* _tmp5_ = NULL;
        FILE* _tmp6_ = NULL;
        gchar* flatstore_username = NULL;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _tmp0_ = GetUserName ();
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _tmp1_ = g_strdup (_tmp0_);
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        username = _tmp1_;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _tmp2_ = GetFlatStoreUsersFilePath ();
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _tmp3_ = g_strdup (_tmp2_);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        flatstore_users_filename = _tmp3_;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _tmp4_ = flatstore_users_filename;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _tmp5_ = g_fopen (_tmp4_, "r");
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        flatstore_users = _tmp5_;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _tmp6_ = flatstore_users;
-#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        if (_tmp6_ == NULL) {
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                result = FALSE;
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _fclose0 (flatstore_users);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _g_free0 (flatstore_users_filename);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _g_free0 (username);
-#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                return result;
-#line 372 "moonshot-utils.c"
+#line 388 "moonshot-utils.c"
        }
-#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        flatstore_username = NULL;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        while (TRUE) {
-#line 378 "moonshot-utils.c"
+#line 394 "moonshot-utils.c"
                FILE* _tmp7_ = NULL;
                gchar* _tmp8_ = NULL;
                const gchar* _tmp9_ = NULL;
                const gchar* _tmp10_ = NULL;
                const gchar* _tmp11_ = NULL;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp7_ = flatstore_users;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp8_ = g_file_stream_read_line (_tmp7_);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _g_free0 (flatstore_username);
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                flatstore_username = _tmp8_;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp9_ = flatstore_username;
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                if (!(_tmp9_ != NULL)) {
-#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                        break;
-#line 398 "moonshot-utils.c"
+#line 414 "moonshot-utils.c"
                }
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp10_ = username;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                _tmp11_ = flatstore_username;
-#line 97 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                if (g_strcmp0 (_tmp10_, _tmp11_) == 0) {
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                        result = TRUE;
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                        _g_free0 (flatstore_username);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                        _fclose0 (flatstore_users);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                        _g_free0 (flatstore_users_filename);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                        _g_free0 (username);
-#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
                        return result;
-#line 418 "moonshot-utils.c"
+#line 434 "moonshot-utils.c"
                }
        }
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        result = FALSE;
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _g_free0 (flatstore_username);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _fclose0 (flatstore_users);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _g_free0 (flatstore_users_filename);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
        _g_free0 (username);
-#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       return result;
+#line 449 "moonshot-utils.c"
+}
+
+
+void make_color (guint16 red, guint16 green, guint16 blue, GdkColor* result) {
+       GdkColor color = {0};
+       guint16 _tmp0_ = 0U;
+       guint16 _tmp1_ = 0U;
+       guint16 _tmp2_ = 0U;
+#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       memset (&color, 0, sizeof (GdkColor));
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp0_ = red;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       color.red = _tmp0_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp1_ = green;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       color.green = _tmp1_;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp2_ = blue;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       color.blue = _tmp2_;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       *result = color;
+#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       return;
+#line 476 "moonshot-utils.c"
+}
+
+
+void set_atk_relation (GtkWidget* widget, GtkWidget* target_widget, AtkRelationType relationship) {
+       AtkObject* atk_widget = NULL;
+       GtkWidget* _tmp0_ = NULL;
+       AtkObject* _tmp1_ = NULL;
+       AtkObject* _tmp2_ = NULL;
+       AtkObject* atk_target_widget = NULL;
+       GtkWidget* _tmp3_ = NULL;
+       AtkObject* _tmp4_ = NULL;
+       AtkObject* _tmp5_ = NULL;
+       AtkRelationType _tmp6_ = 0;
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       g_return_if_fail (widget != NULL);
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       g_return_if_fail (target_widget != NULL);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp0_ = widget;
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp1_ = gtk_widget_get_accessible (_tmp0_);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       atk_widget = _tmp2_;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp3_ = target_widget;
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp4_ = gtk_widget_get_accessible (_tmp3_);
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 121 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       atk_target_widget = _tmp5_;
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp6_ = relationship;
+#line 123 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       atk_object_add_relationship (atk_widget, _tmp6_, atk_target_widget);
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _g_object_unref0 (atk_target_widget);
+#line 118 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _g_object_unref0 (atk_widget);
+#line 518 "moonshot-utils.c"
+}
+
+
+static void _vala_PangoFontDescription_free (PangoFontDescription* self) {
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       g_boxed_free (pango_font_description_get_type (), self);
+#line 525 "moonshot-utils.c"
+}
+
+
+GtkWidget* make_ta_fingerprint_widget (const gchar* server_cert, const gchar* label_text) {
+       GtkWidget* result = NULL;
+       const gchar* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+       GtkLabel* fingerprint_label = NULL;
+       GtkLabel* _tmp3_ = NULL;
+       GtkTextView* fingerprint = NULL;
+       GtkTextView* _tmp4_ = NULL;
+       PangoFontDescription* fontdesc = NULL;
+       PangoFontDescription* _tmp5_ = NULL;
+       GtkTextBuffer* buffer = NULL;
+       GtkTextBuffer* _tmp6_ = NULL;
+       GtkTextBuffer* _tmp7_ = NULL;
+       const gchar* _tmp8_ = NULL;
+       gchar* _tmp9_ = NULL;
+       gchar* _tmp10_ = NULL;
+       GtkScrolledWindow* fingerprint_width_constraint = NULL;
+       GtkScrolledWindow* _tmp11_ = NULL;
+       GtkVBox* vbox = NULL;
+       GtkVBox* _tmp12_ = NULL;
+#line 127 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       g_return_val_if_fail (server_cert != NULL, NULL);
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp1_ = label_text;
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp0_ = _tmp1_;
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       if (_tmp0_ == NULL) {
+#line 557 "moonshot-utils.c"
+               const gchar* _tmp2_ = NULL;
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp2_ = _ ("SHA-256 fingerprint:");
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp0_ = _tmp2_;
+#line 563 "moonshot-utils.c"
+       }
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp3_ = (GtkLabel*) gtk_label_new (_tmp0_);
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       g_object_ref_sink (_tmp3_);
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       fingerprint_label = _tmp3_;
+#line 130 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_misc_set_alignment ((GtkMisc*) fingerprint_label, (gfloat) 0, 0.5f);
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp4_ = (GtkTextView*) gtk_text_view_new ();
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       g_object_ref_sink (_tmp4_);
+#line 132 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       fingerprint = _tmp4_;
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp5_ = pango_font_description_from_string ("monospace 10");
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       fontdesc = _tmp5_;
+#line 134 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_widget_modify_font ((GtkWidget*) fingerprint, fontdesc);
+#line 135 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_text_view_set_editable (fingerprint, FALSE);
+#line 136 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_text_view_set_left_margin (fingerprint, 3);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp6_ = gtk_text_view_get_buffer (fingerprint);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 137 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       buffer = _tmp7_;
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp8_ = server_cert;
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp9_ = colonize (_tmp8_, 16);
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp10_ = _tmp9_;
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_text_buffer_set_text (buffer, _tmp10_, -1);
+#line 138 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _g_free0 (_tmp10_);
+#line 139 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_text_view_set_wrap_mode (fingerprint, GTK_WRAP_WORD_CHAR);
+#line 141 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       set_atk_relation ((GtkWidget*) fingerprint_label, (GtkWidget*) fingerprint, ATK_RELATION_LABEL_FOR);
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp11_ = (GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL);
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       g_object_ref_sink (_tmp11_);
+#line 143 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       fingerprint_width_constraint = _tmp11_;
+#line 144 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_scrolled_window_set_policy (fingerprint_width_constraint, GTK_POLICY_NEVER, GTK_POLICY_NEVER);
+#line 145 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_scrolled_window_set_shadow_type (fingerprint_width_constraint, GTK_SHADOW_IN);
+#line 146 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_widget_set_size_request ((GtkWidget*) fingerprint_width_constraint, 360, 60);
+#line 147 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_scrolled_window_add_with_viewport (fingerprint_width_constraint, (GtkWidget*) fingerprint);
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp12_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       g_object_ref_sink (_tmp12_);
+#line 149 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       vbox = _tmp12_;
+#line 150 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) fingerprint_label, TRUE, TRUE, (guint) 2);
+#line 151 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) fingerprint_width_constraint, TRUE, TRUE, (guint) 2);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       result = (GtkWidget*) vbox;
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _g_object_unref0 (fingerprint_width_constraint);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _g_object_unref0 (buffer);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       __vala_PangoFontDescription_free0 (fontdesc);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _g_object_unref0 (fingerprint);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _g_object_unref0 (fingerprint_label);
+#line 152 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       return result;
+#line 647 "moonshot-utils.c"
+}
+
+
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+       gchar* result = NULL;
+       glong string_length = 0L;
+       gint _tmp0_ = 0;
+       gint _tmp1_ = 0;
+       glong _tmp2_ = 0L;
+       glong _tmp5_ = 0L;
+       gboolean _tmp8_ = FALSE;
+       glong _tmp9_ = 0L;
+       gboolean _tmp12_ = FALSE;
+       glong _tmp13_ = 0L;
+       glong _tmp16_ = 0L;
+       glong _tmp17_ = 0L;
+       glong _tmp18_ = 0L;
+       glong _tmp19_ = 0L;
+       glong _tmp20_ = 0L;
+       gchar* _tmp21_ = NULL;
+#line 1336 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1337 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp0_ = strlen (self);
+#line 1337 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp1_ = _tmp0_;
+#line 1337 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       string_length = (glong) _tmp1_;
+#line 1338 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp2_ = start;
+#line 1338 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (_tmp2_ < ((glong) 0)) {
+#line 680 "moonshot-utils.c"
+               glong _tmp3_ = 0L;
+               glong _tmp4_ = 0L;
+#line 1339 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp3_ = string_length;
+#line 1339 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp4_ = start;
+#line 1339 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               start = _tmp3_ + _tmp4_;
+#line 689 "moonshot-utils.c"
+       }
+#line 1341 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp5_ = end;
+#line 1341 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (_tmp5_ < ((glong) 0)) {
+#line 695 "moonshot-utils.c"
+               glong _tmp6_ = 0L;
+               glong _tmp7_ = 0L;
+#line 1342 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp6_ = string_length;
+#line 1342 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp7_ = end;
+#line 1342 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               end = _tmp6_ + _tmp7_;
+#line 704 "moonshot-utils.c"
+       }
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp9_ = start;
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (_tmp9_ >= ((glong) 0)) {
+#line 710 "moonshot-utils.c"
+               glong _tmp10_ = 0L;
+               glong _tmp11_ = 0L;
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp10_ = start;
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp11_ = string_length;
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp8_ = _tmp10_ <= _tmp11_;
+#line 719 "moonshot-utils.c"
+       } else {
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp8_ = FALSE;
+#line 723 "moonshot-utils.c"
+       }
+#line 1344 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (_tmp8_, NULL);
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp13_ = end;
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (_tmp13_ >= ((glong) 0)) {
+#line 731 "moonshot-utils.c"
+               glong _tmp14_ = 0L;
+               glong _tmp15_ = 0L;
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp14_ = end;
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp15_ = string_length;
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp12_ = _tmp14_ <= _tmp15_;
+#line 740 "moonshot-utils.c"
+       } else {
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               _tmp12_ = FALSE;
+#line 744 "moonshot-utils.c"
+       }
+#line 1345 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (_tmp12_, NULL);
+#line 1346 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp16_ = start;
+#line 1346 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp17_ = end;
+#line 1346 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (_tmp16_ <= _tmp17_, NULL);
+#line 1347 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp18_ = start;
+#line 1347 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp19_ = end;
+#line 1347 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp20_ = start;
+#line 1347 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp21_ = g_strndup (((gchar*) self) + _tmp18_, (gsize) (_tmp19_ - _tmp20_));
+#line 1347 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = _tmp21_;
+#line 1347 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        return result;
-#line 433 "moonshot-utils.c"
+#line 766 "moonshot-utils.c"
+}
+
+
+gchar* colonize (const gchar* input, gint bytes_per_line) {
+       gchar* result = NULL;
+       const gchar* _tmp0_ = NULL;
+       gint _tmp1_ = 0;
+       gint _tmp2_ = 0;
+       gchar* _result_ = NULL;
+       gchar* _tmp3_ = NULL;
+       gint i = 0;
+       gint line_bytes = 0;
+#line 156 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       g_return_val_if_fail (input != NULL, NULL);
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp0_ = input;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp1_ = strlen (_tmp0_);
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp2_ = _tmp1_;
+#line 157 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       g_return_if_fail ((_tmp2_ % 2) == 0);
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp3_ = g_strdup ("");
+#line 159 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _result_ = _tmp3_;
+#line 160 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       i = 0;
+#line 161 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       line_bytes = 0;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       while (TRUE) {
+#line 799 "moonshot-utils.c"
+               gint _tmp4_ = 0;
+               const gchar* _tmp5_ = NULL;
+               gint _tmp6_ = 0;
+               gint _tmp7_ = 0;
+               gint _tmp8_ = 0;
+               gint _tmp9_ = 0;
+               const gchar* _tmp15_ = NULL;
+               const gchar* _tmp16_ = NULL;
+               gint _tmp17_ = 0;
+               gint _tmp18_ = 0;
+               gchar* _tmp19_ = NULL;
+               gchar* _tmp20_ = NULL;
+               gchar* _tmp21_ = NULL;
+               gint _tmp22_ = 0;
+               gint _tmp23_ = 0;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp4_ = i;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp5_ = input;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp6_ = strlen (_tmp5_);
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp7_ = _tmp6_;
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               if (!(_tmp4_ < _tmp7_)) {
+#line 162 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                       break;
+#line 827 "moonshot-utils.c"
+               }
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp8_ = line_bytes;
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp9_ = bytes_per_line;
+#line 163 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               if (_tmp8_ == _tmp9_) {
+#line 835 "moonshot-utils.c"
+                       const gchar* _tmp10_ = NULL;
+                       gchar* _tmp11_ = NULL;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                       _tmp10_ = _result_;
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                       _tmp11_ = g_strconcat (_tmp10_, "\n", NULL);
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                       _g_free0 (_result_);
+#line 164 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                       _result_ = _tmp11_;
+#line 165 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                       line_bytes = 0;
+#line 848 "moonshot-utils.c"
+               } else {
+                       gint _tmp12_ = 0;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                       _tmp12_ = i;
+#line 167 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                       if (_tmp12_ > 0) {
+#line 855 "moonshot-utils.c"
+                               const gchar* _tmp13_ = NULL;
+                               gchar* _tmp14_ = NULL;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               _tmp13_ = _result_;
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               _tmp14_ = g_strconcat (_tmp13_, ":", NULL);
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               _g_free0 (_result_);
+#line 168 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               _result_ = _tmp14_;
+#line 866 "moonshot-utils.c"
+                       }
+               }
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp15_ = _result_;
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp16_ = input;
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp17_ = i;
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp18_ = i;
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp19_ = string_slice (_tmp16_, (glong) _tmp17_, (glong) (_tmp18_ + 2));
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp20_ = _tmp19_;
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp21_ = g_strconcat (_tmp15_, _tmp20_, NULL);
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _g_free0 (_result_);
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _result_ = _tmp21_;
+#line 170 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _g_free0 (_tmp20_);
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp22_ = i;
+#line 171 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               i = _tmp22_ + 2;
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               _tmp23_ = line_bytes;
+#line 172 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               line_bytes = _tmp23_ + 1;
+#line 897 "moonshot-utils.c"
+       }
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       result = _result_;
+#line 174 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       return result;
+#line 903 "moonshot-utils.c"
+}
+
+
+static guint8* string_get_data (const gchar* self, int* result_length1) {
+       guint8* result;
+       guint8* res = NULL;
+       gint res_length1 = 0;
+       gint _res_size_ = 0;
+       gint _tmp0_ = 0;
+       gint _tmp1_ = 0;
+       gint _tmp2_ = 0;
+       guint8* _tmp3_ = NULL;
+       gint _tmp3__length1 = 0;
+       guint8* _tmp4_ = NULL;
+       gint _tmp4__length1 = 0;
+#line 1406 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1407 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       res = (guint8*) self;
+#line 1407 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       res_length1 = -1;
+#line 1407 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _res_size_ = res_length1;
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp0_ = strlen (self);
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp1_ = _tmp0_;
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       res_length1 = (gint) _tmp1_;
+#line 1408 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp2_ = res_length1;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp3_ = res;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp3__length1 = res_length1;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp4_ = _tmp3_;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       _tmp4__length1 = _tmp3__length1;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       if (result_length1) {
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+               *result_length1 = _tmp4__length1;
+#line 947 "moonshot-utils.c"
+       }
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = _tmp4_;
+#line 1409 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 953 "moonshot-utils.c"
+}
+
+
+void clear_password_entry (GtkEntry* entry) {
+       gint len = 0;
+       GtkEntry* _tmp0_ = NULL;
+       const gchar* _tmp1_ = NULL;
+       gint _tmp2_ = 0;
+       gint _tmp3_ = 0;
+       gchar* random_chars = NULL;
+       gint _tmp4_ = 0;
+       gchar* _tmp5_ = NULL;
+       gint random_chars_length1 = 0;
+       gint _random_chars_size_ = 0;
+       gchar* _tmp14_ = NULL;
+       gint _tmp14__length1 = 0;
+       gint _tmp15_ = 0;
+       gchar _tmp16_ = '\0';
+       gchar* r = NULL;
+       gchar* _tmp17_ = NULL;
+       gint _tmp17__length1 = 0;
+       gchar* _tmp18_ = NULL;
+       GtkEntryBuffer* buf = NULL;
+       GtkEntry* _tmp19_ = NULL;
+       GtkEntryBuffer* _tmp20_ = NULL;
+       GtkEntryBuffer* _tmp21_ = NULL;
+       guint8* _tmp22_ = NULL;
+       gint _tmp22__length1 = 0;
+       guint8* _tmp23_ = NULL;
+       gint _tmp23__length1 = 0;
+       gint _tmp24_ = 0;
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       g_return_if_fail (entry != NULL);
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp0_ = entry;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp1_ = gtk_entry_get_text (_tmp0_);
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp2_ = strlen (_tmp1_);
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp3_ = _tmp2_;
+#line 180 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       len = _tmp3_;
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp4_ = len;
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp5_ = g_new0 (gchar, _tmp4_ + 1);
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       random_chars = _tmp5_;
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       random_chars_length1 = _tmp4_ + 1;
+#line 181 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _random_chars_size_ = random_chars_length1;
+#line 1007 "moonshot-utils.c"
+       {
+               gint i = 0;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+               i = 0;
+#line 1012 "moonshot-utils.c"
+               {
+                       gboolean _tmp6_ = FALSE;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                       _tmp6_ = TRUE;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                       while (TRUE) {
+#line 1019 "moonshot-utils.c"
+                               gint _tmp8_ = 0;
+                               gint _tmp9_ = 0;
+                               gchar* _tmp10_ = NULL;
+                               gint _tmp10__length1 = 0;
+                               gint _tmp11_ = 0;
+                               gint32 _tmp12_ = 0;
+                               gchar _tmp13_ = '\0';
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               if (!_tmp6_) {
+#line 1029 "moonshot-utils.c"
+                                       gint _tmp7_ = 0;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                                       _tmp7_ = i;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                                       i = _tmp7_ + 1;
+#line 1035 "moonshot-utils.c"
+                               }
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               _tmp6_ = FALSE;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               _tmp8_ = i;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               _tmp9_ = len;
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               if (!(_tmp8_ < _tmp9_)) {
+#line 182 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                                       break;
+#line 1047 "moonshot-utils.c"
+                               }
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               _tmp10_ = random_chars;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               _tmp10__length1 = random_chars_length1;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               _tmp11_ = i;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               _tmp12_ = g_random_int_range ((gint32) 40, (gint32) 127);
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               _tmp10_[_tmp11_] = (gchar) _tmp12_;
+#line 183 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+                               _tmp13_ = _tmp10_[_tmp11_];
+#line 1061 "moonshot-utils.c"
+                       }
+               }
+       }
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp14_ = random_chars;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp14__length1 = random_chars_length1;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp15_ = len;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp14_[_tmp15_] = (gchar) 0;
+#line 185 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp16_ = _tmp14_[_tmp15_];
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp17_ = random_chars;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp17__length1 = random_chars_length1;
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp18_ = g_strdup ((const gchar*) _tmp17_);
+#line 186 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       r = _tmp18_;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp19_ = entry;
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp20_ = gtk_entry_get_buffer (_tmp19_);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp21_ = _g_object_ref0 (_tmp20_);
+#line 187 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       buf = _tmp21_;
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp22_ = string_get_data (r, &_tmp22__length1);
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp23_ = _tmp22_;
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp23__length1 = _tmp22__length1;
+#line 188 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_entry_buffer_set_text (buf, _tmp23_, _tmp23__length1);
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _tmp24_ = len;
+#line 191 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       gtk_entry_buffer_delete_text (buf, (guint) 0, _tmp24_);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _g_object_unref0 (buf);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       _g_free0 (r);
+#line 177 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       random_chars = (g_free (random_chars), NULL);
+#line 1109 "moonshot-utils.c"
+}
+
+
+void set_bg_color (GtkWidget* w) {
+#line 195 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-utils.vala"
+       g_return_if_fail (w != NULL);
+#line 1116 "moonshot-utils.c"
 }
 
 
index 72df968..7652469 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
 */
+
+using Gtk;
+using Pango;
+
 #if OS_WIN32
-extern string? g_win32_get_package_installation_directory_of_module (void *module);
+extern string? g_win32_get_package_installation_directory_of_module(void *module);
 #endif
 
-public Gdk.Pixbuf? find_icon_sized (string name, Gtk.IconSize icon_size)
+public Gdk.Pixbuf? find_icon_sized(string name, Gtk.IconSize icon_size)
 {
     int width, height;
-    Gtk.icon_size_lookup (icon_size, out width, out height);
-    return find_icon (name, width);
+    Gtk.icon_size_lookup(icon_size, out width, out height);
+    return find_icon(name, width);
 }
 
 /* Portability hack: making Gtk icon themes work on Windows is
@@ -52,27 +56,27 @@ public Gdk.Pixbuf? get_pixbuf(IdCard id)
     return find_icon("avatar-default", 48);
 }
 
-public Gdk.Pixbuf? find_icon (string name, int size)
+public Gdk.Pixbuf? find_icon(string name, int size)
 {
     if (!gtk_available)
         return null;
     try
     {
-#if OS_WIN32
-        string? base_path = g_win32_get_package_installation_directory_of_module (null);
+        #if OS_WIN32
+        string? base_path = g_win32_get_package_installation_directory_of_module(null);
 
         // Hack to allow running within the source tree
-        int last_dir_index = base_path.last_index_of_char ('\\');
-        if (base_path.substring (last_dir_index) == "\\.libs" || base_path.substring (last_dir_index) == "src")
+        int last_dir_index = base_path.last_index_of_char('\\');
+        if (base_path.substring(last_dir_index) == "\\.libs" || base_path.substring(last_dir_index) == "src")
             base_path = base_path.slice(0, last_dir_index);
 
-        string? filename = Path.build_filename (base_path, "share", "icons", "%s.png".printf (name));
-        return new Gdk.Pixbuf.from_file_at_size (filename, size, size);
+        string? filename = Path.build_filename(base_path, "share", "icons", "%s.png".printf(name));
+        return new Gdk.Pixbuf.from_file_at_size(filename, size, size);
 
-#else
-        var icon_theme = Gtk.IconTheme.get_default ();
-        return icon_theme.load_icon (name, size, Gtk.IconLookupFlags.FORCE_SIZE);
-#endif
+        #else
+        var icon_theme = Gtk.IconTheme.get_default();
+        return icon_theme.load_icon(name, size, Gtk.IconLookupFlags.FORCE_SIZE);
+        #endif
     }
     catch (Error e)
     {
@@ -100,3 +104,103 @@ public bool UserForcesFlatFileStore()
     }
     return false;
 }
+
+internal Gdk.Color make_color(uint16 red, uint16 green, uint16 blue)
+{
+    Gdk.Color color = Gdk.Color();
+    color.red = red;
+    color.green = green;
+    color.blue = blue;
+
+    return color;
+}
+
+internal void set_atk_relation(Widget widget, Widget target_widget, Atk.RelationType relationship)
+{
+    var atk_widget = widget.get_accessible();
+    var atk_target_widget = target_widget.get_accessible();
+
+    atk_widget.add_relationship(relationship, atk_target_widget);
+}
+
+
+internal Widget make_ta_fingerprint_widget(string server_cert, string? label_text = null)
+{
+    var fingerprint_label = new Label(label_text ?? _("SHA-256 fingerprint:"));
+    fingerprint_label.set_alignment(0, 0.5f);
+
+    var fingerprint = new TextView();
+    var fontdesc = FontDescription.from_string("monospace 10");
+    fingerprint.modify_font(fontdesc);
+    fingerprint.set_editable(false);
+    fingerprint.set_left_margin(3);
+    var buffer = fingerprint.get_buffer();
+    buffer.set_text(colonize(server_cert, 16), -1);
+    fingerprint.wrap_mode = Gtk.WrapMode.WORD_CHAR;
+
+    set_atk_relation(fingerprint_label, fingerprint, Atk.RelationType.LABEL_FOR);
+
+    var fingerprint_width_constraint = new ScrolledWindow(null, null);
+    fingerprint_width_constraint.set_policy(PolicyType.NEVER, PolicyType.NEVER);
+    fingerprint_width_constraint.set_shadow_type(ShadowType.IN);
+    fingerprint_width_constraint.set_size_request(360, 60);
+    fingerprint_width_constraint.add_with_viewport(fingerprint);
+
+    var vbox = new VBox(false, 0);
+    vbox.pack_start(fingerprint_label, true, true, 2);
+    vbox.pack_start(fingerprint_width_constraint, true, true, 2);
+    return vbox;
+}
+
+    // Yeah, it doesn't mean "colonize" the way you might think... :-)
+internal static string colonize(string input, int bytes_per_line) {
+    return_if_fail(input.length % 2 == 0);
+
+    string result = "";
+    int i = 0;
+    int line_bytes = 0;
+    while (i < input.length) {
+        if (line_bytes == bytes_per_line) {
+            result += "\n";
+            line_bytes = 0;
+        }
+        else if (i > 0) {
+            result += ":";
+        }
+        result += input[i : i + 2];
+        i += 2;
+        line_bytes++;
+    }
+    return result;
+}
+
+internal static void clear_password_entry(Entry entry) {
+    
+    // Overwrite the entry with random data
+    var len = entry.get_text().length;
+    var random_chars = new char[len + 1];
+    for (int i = 0; i < len; i++) {
+        random_chars[i] = (char) Random.int_range(40, 127);
+    }
+    random_chars[len] = 0;
+    string r = (string) random_chars;
+    var buf = entry.get_buffer();
+    buf.set_text(r.data);
+
+    // Now delete the data
+    buf.delete_text(0, len);
+}
+
+static Gdk.Color white;
+static void set_bg_color(Widget w)
+{
+#if OS_WIN32
+
+    if (white == null) {
+        white = make_color(65535, 65535, 65535);
+    }
+
+    w.modify_bg(StateType.NORMAL, white);
+
+#endif
+}
diff --git a/src/moonshot-warning-dialog.c b/src/moonshot-warning-dialog.c
new file mode 100644 (file)
index 0000000..58c9a8f
--- /dev/null
@@ -0,0 +1,720 @@
+/* moonshot-warning-dialog.c generated by valac 0.34.9, the Vala compiler
+ * generated from moonshot-warning-dialog.vala, do not modify */
+
+/*
+ * Copyright (c) 2011-2016, JANET(UK)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of JANET(UK) nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_WARNING_DIALOG (warning_dialog_get_type ())
+#define WARNING_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WARNING_DIALOG, WarningDialog))
+#define WARNING_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WARNING_DIALOG, WarningDialogClass))
+#define IS_WARNING_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WARNING_DIALOG))
+#define IS_WARNING_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WARNING_DIALOG))
+#define WARNING_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WARNING_DIALOG, WarningDialogClass))
+
+typedef struct _WarningDialog WarningDialog;
+typedef struct _WarningDialogClass WarningDialogClass;
+typedef struct _WarningDialogPrivate WarningDialogPrivate;
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _ParamSpecWarningDialog ParamSpecWarningDialog;
+
+struct _WarningDialog {
+       GTypeInstance parent_instance;
+       volatile int ref_count;
+       WarningDialogPrivate * priv;
+};
+
+struct _WarningDialogClass {
+       GTypeClass parent_class;
+       void (*finalize) (WarningDialog *self);
+};
+
+struct _ParamSpecWarningDialog {
+       GParamSpec parent_instance;
+};
+
+
+static gpointer warning_dialog_parent_class = NULL;
+static MoonshotLogger* warning_dialog__logger;
+static MoonshotLogger* warning_dialog__logger = NULL;
+
+#define GROUP_NAME "WarningDialogs"
+gpointer warning_dialog_ref (gpointer instance);
+void warning_dialog_unref (gpointer instance);
+GParamSpec* param_spec_warning_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_warning_dialog (GValue* value, gpointer v_object);
+void value_take_warning_dialog (GValue* value, gpointer v_object);
+gpointer value_get_warning_dialog (const GValue* value);
+GType warning_dialog_get_type (void) G_GNUC_CONST;
+enum  {
+       WARNING_DIALOG_DUMMY_PROPERTY
+};
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+static MoonshotLogger* warning_dialog_logger (void);
+MoonshotLogger* get_logger (const gchar* name);
+gboolean warning_dialog_confirm (GtkWindow* parent, const gchar* message, const gchar* dialog_name);
+gboolean get_bool_setting (const gchar* group_name, const gchar* key_name, gboolean _default_, GKeyFile* key_file);
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
+void make_color (guint16 red, guint16 green, guint16 blue, GdkColor* result);
+void set_bg_color (GtkWidget* w);
+void set_bool_setting (const gchar* group_name, const gchar* key_name, gboolean value, GKeyFile* key_file);
+WarningDialog* warning_dialog_new (void);
+WarningDialog* warning_dialog_construct (GType object_type);
+static void warning_dialog_finalize (WarningDialog* obj);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 119 "moonshot-warning-dialog.c"
+}
+
+
+static MoonshotLogger* warning_dialog_logger (void) {
+       MoonshotLogger* result = NULL;
+       MoonshotLogger* _tmp0_ = NULL;
+       MoonshotLogger* _tmp2_ = NULL;
+       MoonshotLogger* _tmp3_ = NULL;
+#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp0_ = warning_dialog__logger;
+#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (_tmp0_ == NULL) {
+#line 132 "moonshot-warning-dialog.c"
+               MoonshotLogger* _tmp1_ = NULL;
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp1_ = get_logger ("WarningDialog");
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _g_object_unref0 (warning_dialog__logger);
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               warning_dialog__logger = _tmp1_;
+#line 140 "moonshot-warning-dialog.c"
+       }
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp2_ = warning_dialog__logger;
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       result = _tmp3_;
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       return result;
+#line 150 "moonshot-warning-dialog.c"
+}
+
+
+static const gchar* string_to_string (const gchar* self) {
+       const gchar* result = NULL;
+#line 1420 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = self;
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       return result;
+#line 162 "moonshot-warning-dialog.c"
+}
+
+
+gboolean warning_dialog_confirm (GtkWindow* parent, const gchar* message, const gchar* dialog_name) {
+       gboolean result = FALSE;
+       const gchar* _tmp0_ = NULL;
+       gboolean _tmp1_ = FALSE;
+       GdkColor white = {0};
+       GdkColor _tmp9_ = {0};
+       GtkMessageDialog* dialog = NULL;
+       GtkWindow* _tmp10_ = NULL;
+       GtkMessageDialog* _tmp11_ = NULL;
+       GtkWidget* content_area = NULL;
+       GtkMessageDialog* _tmp12_ = NULL;
+       GtkWidget* _tmp13_ = NULL;
+       GtkWidget* _tmp14_ = NULL;
+       GtkCheckButton* remember_checkbutton = NULL;
+       gboolean _tmp15_ = FALSE;
+       const gchar* _tmp16_ = NULL;
+       GtkMessageDialog* _tmp34_ = NULL;
+       const gchar* _tmp35_ = NULL;
+       GtkMessageDialog* _tmp36_ = NULL;
+       GtkWidget* _tmp37_ = NULL;
+       GtkWidget* _tmp38_ = NULL;
+       GtkMessageDialog* _tmp39_ = NULL;
+       const gchar* _tmp40_ = NULL;
+       gint ret = 0;
+       GtkMessageDialog* _tmp41_ = NULL;
+       gint _tmp42_ = 0;
+       gboolean _tmp43_ = FALSE;
+       gboolean _tmp44_ = FALSE;
+       gint _tmp45_ = 0;
+       GtkMessageDialog* _tmp51_ = NULL;
+       gint _tmp52_ = 0;
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       g_return_val_if_fail (parent != NULL, FALSE);
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       g_return_val_if_fail (message != NULL, FALSE);
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       g_return_val_if_fail (dialog_name != NULL, FALSE);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp0_ = dialog_name;
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp1_ = get_bool_setting (GROUP_NAME, _tmp0_, FALSE, NULL);
+#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (_tmp1_) {
+#line 209 "moonshot-warning-dialog.c"
+               MoonshotLogger* _tmp2_ = NULL;
+               MoonshotLogger* _tmp3_ = NULL;
+               const gchar* _tmp4_ = NULL;
+               const gchar* _tmp5_ = NULL;
+               const gchar* _tmp6_ = NULL;
+               gchar* _tmp7_ = NULL;
+               gchar* _tmp8_ = NULL;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp2_ = warning_dialog_logger ();
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp3_ = _tmp2_;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp4_ = string_to_string (GROUP_NAME);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp5_ = dialog_name;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp6_ = string_to_string (_tmp5_);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp7_ = g_strconcat ("confirm: Settings group ", _tmp4_, " has 'true' for key ", _tmp6_, "; skipping dialog and returning true.", NULL);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp8_ = _tmp7_;
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               moonshot_logger_trace (_tmp3_, _tmp8_, NULL);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _g_free0 (_tmp8_);
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _g_object_unref0 (_tmp3_);
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               result = TRUE;
+#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               return result;
+#line 241 "moonshot-warning-dialog.c"
+       }
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       make_color ((guint16) 65535, (guint16) 65535, (guint16) 65535, &_tmp9_);
+#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       white = _tmp9_;
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp10_ = parent;
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp11_ = (GtkMessageDialog*) gtk_message_dialog_new (_tmp10_, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_YES_NO, "%s", "");
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       g_object_ref_sink (_tmp11_);
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       dialog = _tmp11_;
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp12_ = dialog;
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp13_ = gtk_dialog_get_content_area ((GtkDialog*) _tmp12_);
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp14_ = _g_object_ref0 (_tmp13_);
+#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       content_area = _tmp14_;
+#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       remember_checkbutton = NULL;
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp16_ = dialog_name;
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (_tmp16_ != NULL) {
+#line 269 "moonshot-warning-dialog.c"
+               const gchar* _tmp17_ = NULL;
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp17_ = dialog_name;
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp15_ = g_strcmp0 (_tmp17_, "") != 0;
+#line 275 "moonshot-warning-dialog.c"
+       } else {
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp15_ = FALSE;
+#line 279 "moonshot-warning-dialog.c"
+       }
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (_tmp15_) {
+#line 283 "moonshot-warning-dialog.c"
+               const gchar* _tmp18_ = NULL;
+               GtkCheckButton* _tmp19_ = NULL;
+               GtkCheckButton* _tmp20_ = NULL;
+               GtkContainer* action_area = NULL;
+               GtkMessageDialog* _tmp21_ = NULL;
+               GtkWidget* _tmp22_ = NULL;
+               GtkContainer* _tmp23_ = NULL;
+               GtkButton* yes_button = NULL;
+               GtkMessageDialog* _tmp24_ = NULL;
+               GtkWidget* _tmp25_ = NULL;
+               GtkButton* _tmp26_ = NULL;
+               GtkButton* _tmp27_ = NULL;
+               GtkButton* _tmp28_ = NULL;
+               GtkWidget* message_area = NULL;
+               GtkMessageDialog* _tmp29_ = NULL;
+               GtkWidget* _tmp30_ = NULL;
+               GtkWidget* _tmp31_ = NULL;
+               GtkWidget* _tmp32_ = NULL;
+               GtkCheckButton* _tmp33_ = NULL;
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp18_ = _ ("Do not show this message again");
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp19_ = (GtkCheckButton*) gtk_check_button_new_with_label (_tmp18_);
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               g_object_ref_sink (_tmp19_);
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _g_object_unref0 (remember_checkbutton);
+#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               remember_checkbutton = _tmp19_;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp20_ = remember_checkbutton;
+#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               gtk_widget_set_receives_default ((GtkWidget*) _tmp20_, FALSE);
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp21_ = dialog;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp22_ = gtk_dialog_get_action_area ((GtkDialog*) _tmp21_);
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp23_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GTK_TYPE_CONTAINER, GtkContainer));
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               action_area = _tmp23_;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp24_ = dialog;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp25_ = gtk_dialog_get_widget_for_response ((GtkDialog*) _tmp24_, (gint) GTK_RESPONSE_YES);
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp26_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GTK_TYPE_BUTTON, GtkButton));
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               yes_button = _tmp26_;
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp27_ = yes_button;
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               gtk_widget_grab_default ((GtkWidget*) _tmp27_);
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp28_ = yes_button;
+#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               gtk_widget_grab_focus ((GtkWidget*) _tmp28_);
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp29_ = dialog;
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp30_ = gtk_message_dialog_get_message_area (_tmp29_);
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp31_ = _g_object_ref0 (_tmp30_);
+#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               message_area = _tmp31_;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp32_ = message_area;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp33_ = remember_checkbutton;
+#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               gtk_box_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GTK_TYPE_BOX, GtkBox), (GtkWidget*) _tmp33_, FALSE, FALSE, (guint) 12);
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _g_object_unref0 (message_area);
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _g_object_unref0 (yes_button);
+#line 69 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _g_object_unref0 (action_area);
+#line 361 "moonshot-warning-dialog.c"
+       }
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp34_ = dialog;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp35_ = _ ("Warning");
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       gtk_window_set_title ((GtkWindow*) _tmp34_, _tmp35_);
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp36_ = dialog;
+#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       set_bg_color ((GtkWidget*) _tmp36_);
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp37_ = content_area;
+#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       set_bg_color (_tmp37_);
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp38_ = content_area;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       gtk_widget_show_all (_tmp38_);
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp39_ = dialog;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp40_ = message;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       gtk_message_dialog_set_markup (_tmp39_, _tmp40_);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp41_ = dialog;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp42_ = gtk_dialog_run ((GtkDialog*) _tmp41_);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       ret = _tmp42_;
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp45_ = ret;
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (_tmp45_ == ((gint) GTK_RESPONSE_YES)) {
+#line 397 "moonshot-warning-dialog.c"
+               GtkCheckButton* _tmp46_ = NULL;
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp46_ = remember_checkbutton;
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp44_ = _tmp46_ != NULL;
+#line 403 "moonshot-warning-dialog.c"
+       } else {
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp44_ = FALSE;
+#line 407 "moonshot-warning-dialog.c"
+       }
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (_tmp44_) {
+#line 411 "moonshot-warning-dialog.c"
+               GtkCheckButton* _tmp47_ = NULL;
+               gboolean _tmp48_ = FALSE;
+               gboolean _tmp49_ = FALSE;
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp47_ = remember_checkbutton;
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp48_ = gtk_toggle_button_get_active ((GtkToggleButton*) _tmp47_);
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp49_ = _tmp48_;
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp43_ = _tmp49_;
+#line 423 "moonshot-warning-dialog.c"
+       } else {
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp43_ = FALSE;
+#line 427 "moonshot-warning-dialog.c"
+       }
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (_tmp43_) {
+#line 431 "moonshot-warning-dialog.c"
+               const gchar* _tmp50_ = NULL;
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               _tmp50_ = dialog_name;
+#line 109 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               set_bool_setting (GROUP_NAME, _tmp50_, TRUE, NULL);
+#line 437 "moonshot-warning-dialog.c"
+       }
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp51_ = dialog;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       gtk_object_destroy ((GtkObject*) _tmp51_);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _tmp52_ = ret;
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       result = _tmp52_ == ((gint) GTK_RESPONSE_YES);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _g_object_unref0 (remember_checkbutton);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _g_object_unref0 (content_area);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       _g_object_unref0 (dialog);
+#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       return result;
+#line 455 "moonshot-warning-dialog.c"
+}
+
+
+WarningDialog* warning_dialog_construct (GType object_type) {
+       WarningDialog* self = NULL;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       self = (WarningDialog*) g_type_create_instance (object_type);
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       return self;
+#line 465 "moonshot-warning-dialog.c"
+}
+
+
+WarningDialog* warning_dialog_new (void) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       return warning_dialog_construct (TYPE_WARNING_DIALOG);
+#line 472 "moonshot-warning-dialog.c"
+}
+
+
+static void value_warning_dialog_init (GValue* value) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       value->data[0].v_pointer = NULL;
+#line 479 "moonshot-warning-dialog.c"
+}
+
+
+static void value_warning_dialog_free_value (GValue* value) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (value->data[0].v_pointer) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               warning_dialog_unref (value->data[0].v_pointer);
+#line 488 "moonshot-warning-dialog.c"
+       }
+}
+
+
+static void value_warning_dialog_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (src_value->data[0].v_pointer) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               dest_value->data[0].v_pointer = warning_dialog_ref (src_value->data[0].v_pointer);
+#line 498 "moonshot-warning-dialog.c"
+       } else {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               dest_value->data[0].v_pointer = NULL;
+#line 502 "moonshot-warning-dialog.c"
+       }
+}
+
+
+static gpointer value_warning_dialog_peek_pointer (const GValue* value) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       return value->data[0].v_pointer;
+#line 510 "moonshot-warning-dialog.c"
+}
+
+
+static gchar* value_warning_dialog_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (collect_values[0].v_pointer) {
+#line 517 "moonshot-warning-dialog.c"
+               WarningDialog* object;
+               object = collect_values[0].v_pointer;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               if (object->parent_instance.g_class == NULL) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+                       return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 524 "moonshot-warning-dialog.c"
+               } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+                       return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 528 "moonshot-warning-dialog.c"
+               }
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               value->data[0].v_pointer = warning_dialog_ref (object);
+#line 532 "moonshot-warning-dialog.c"
+       } else {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               value->data[0].v_pointer = NULL;
+#line 536 "moonshot-warning-dialog.c"
+       }
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       return NULL;
+#line 540 "moonshot-warning-dialog.c"
+}
+
+
+static gchar* value_warning_dialog_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       WarningDialog** object_p;
+       object_p = collect_values[0].v_pointer;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (!object_p) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 551 "moonshot-warning-dialog.c"
+       }
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (!value->data[0].v_pointer) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               *object_p = NULL;
+#line 557 "moonshot-warning-dialog.c"
+       } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               *object_p = value->data[0].v_pointer;
+#line 561 "moonshot-warning-dialog.c"
+       } else {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               *object_p = warning_dialog_ref (value->data[0].v_pointer);
+#line 565 "moonshot-warning-dialog.c"
+       }
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       return NULL;
+#line 569 "moonshot-warning-dialog.c"
+}
+
+
+GParamSpec* param_spec_warning_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+       ParamSpecWarningDialog* spec;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       g_return_val_if_fail (g_type_is_a (object_type, TYPE_WARNING_DIALOG), NULL);
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       G_PARAM_SPEC (spec)->value_type = object_type;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       return G_PARAM_SPEC (spec);
+#line 583 "moonshot-warning-dialog.c"
+}
+
+
+gpointer value_get_warning_dialog (const GValue* value) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_WARNING_DIALOG), NULL);
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       return value->data[0].v_pointer;
+#line 592 "moonshot-warning-dialog.c"
+}
+
+
+void value_set_warning_dialog (GValue* value, gpointer v_object) {
+       WarningDialog* old;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_WARNING_DIALOG));
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       old = value->data[0].v_pointer;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (v_object) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_WARNING_DIALOG));
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               value->data[0].v_pointer = v_object;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               warning_dialog_ref (value->data[0].v_pointer);
+#line 612 "moonshot-warning-dialog.c"
+       } else {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               value->data[0].v_pointer = NULL;
+#line 616 "moonshot-warning-dialog.c"
+       }
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (old) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               warning_dialog_unref (old);
+#line 622 "moonshot-warning-dialog.c"
+       }
+}
+
+
+void value_take_warning_dialog (GValue* value, gpointer v_object) {
+       WarningDialog* old;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_WARNING_DIALOG));
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       old = value->data[0].v_pointer;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (v_object) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_WARNING_DIALOG));
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               value->data[0].v_pointer = v_object;
+#line 641 "moonshot-warning-dialog.c"
+       } else {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               value->data[0].v_pointer = NULL;
+#line 645 "moonshot-warning-dialog.c"
+       }
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (old) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               warning_dialog_unref (old);
+#line 651 "moonshot-warning-dialog.c"
+       }
+}
+
+
+static void warning_dialog_class_init (WarningDialogClass * klass) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       warning_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       ((WarningDialogClass *) klass)->finalize = warning_dialog_finalize;
+#line 661 "moonshot-warning-dialog.c"
+}
+
+
+static void warning_dialog_instance_init (WarningDialog * self) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       self->ref_count = 1;
+#line 668 "moonshot-warning-dialog.c"
+}
+
+
+static void warning_dialog_finalize (WarningDialog* obj) {
+       WarningDialog * self;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_WARNING_DIALOG, WarningDialog);
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       g_signal_handlers_destroy (self);
+#line 678 "moonshot-warning-dialog.c"
+}
+
+
+GType warning_dialog_get_type (void) {
+       static volatile gsize warning_dialog_type_id__volatile = 0;
+       if (g_once_init_enter (&warning_dialog_type_id__volatile)) {
+               static const GTypeValueTable g_define_type_value_table = { value_warning_dialog_init, value_warning_dialog_free_value, value_warning_dialog_copy_value, value_warning_dialog_peek_pointer, "p", value_warning_dialog_collect_value, "p", value_warning_dialog_lcopy_value };
+               static const GTypeInfo g_define_type_info = { sizeof (WarningDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) warning_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WarningDialog), 0, (GInstanceInitFunc) warning_dialog_instance_init, &g_define_type_value_table };
+               static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+               GType warning_dialog_type_id;
+               warning_dialog_type_id = g_type_register_fundamental (g_type_fundamental_next (), "WarningDialog", &g_define_type_info, &g_define_type_fundamental_info, 0);
+               g_once_init_leave (&warning_dialog_type_id__volatile, warning_dialog_type_id);
+       }
+       return warning_dialog_type_id__volatile;
+}
+
+
+gpointer warning_dialog_ref (gpointer instance) {
+       WarningDialog* self;
+       self = instance;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       g_atomic_int_inc (&self->ref_count);
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       return instance;
+#line 703 "moonshot-warning-dialog.c"
+}
+
+
+void warning_dialog_unref (gpointer instance) {
+       WarningDialog* self;
+       self = instance;
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+       if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               WARNING_DIALOG_GET_CLASS (self)->finalize (self);
+#line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-warning-dialog.vala"
+               g_type_free_instance ((GTypeInstance *) self);
+#line 716 "moonshot-warning-dialog.c"
+       }
+}
+
+
+
diff --git a/src/moonshot-warning-dialog.vala b/src/moonshot-warning-dialog.vala
new file mode 100644 (file)
index 0000000..b26d609
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2011-2016, JANET(UK)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of JANET(UK) nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+*/
+using Gtk;
+
+static const string GROUP_NAME="WarningDialogs";
+
+// MessageDialog doesn't allow subclassing, so we merely wrap the
+// constructor for it the dialog, and then run it, returning the result.
+class WarningDialog 
+{
+    private static MoonshotLogger _logger = null;
+    private static MoonshotLogger logger()
+        {
+            if (_logger == null) {
+                _logger = get_logger("WarningDialog");
+            }
+            return _logger;
+        }
+
+    public static bool confirm(Window parent, string message, string dialog_name)
+    {
+
+        if (get_bool_setting(GROUP_NAME, dialog_name, false))
+        {
+            logger().trace(@"confirm: Settings group $GROUP_NAME has 'true' for key $dialog_name; skipping dialog and returning true.");
+            return true;
+        }
+
+        Gdk.Color white = make_color(65535, 65535, 65535);
+
+        MessageDialog dialog = new Gtk.MessageDialog(parent,
+                                                     Gtk.DialogFlags.DESTROY_WITH_PARENT,
+                                                     Gtk.MessageType.WARNING,
+                                                     Gtk.ButtonsType.YES_NO,
+                                                     "%s", "");
+
+        var content_area = dialog.get_content_area();
+        CheckButton remember_checkbutton = null;
+
+        if (dialog_name != null && dialog_name != "")
+        {
+            remember_checkbutton = new CheckButton.with_label(_("Do not show this message again"));
+            // remember_checkbutton.set_focus_on_click(false);
+            // remember_checkbutton.set_can_focus(false);
+            // remember_checkbutton.has_focus = false;
+            remember_checkbutton.set_receives_default(false);
+            Container action_area = (Container) dialog.get_action_area();
+
+            Button yes_button = (Button) dialog.get_widget_for_response(ResponseType.YES);
+            yes_button.grab_default();
+            yes_button.grab_focus();
+
+// Not sure if 0.26 is the minimum for MessageDialog.get_message_area. 0.16 sure isn't :-(
+#if VALA_0_26
+            var message_area = dialog.get_message_area();
+            ((Box)message_area).pack_start(remember_checkbutton, false, false, 12);
+#else
+            HBox hbox = new HBox(false, 0);
+            hbox.pack_start(new HBox(false, 0), true, true, 20);
+            hbox.pack_start(remember_checkbutton, false, false, 12);
+            ((Box)content_area).pack_start(hbox, true, true, 12);
+#endif
+        }
+
+        // dialog.set_modal(true);
+        dialog.set_title(_("Warning"));
+        set_bg_color(dialog);
+
+        // ((Box) content_area).set_spacing(12);
+        set_bg_color(content_area);
+
+        content_area.show_all();
+
+        dialog.set_markup(message);
+
+        var ret = dialog.run();
+
+        if (ret == Gtk.ResponseType.YES && remember_checkbutton != null && remember_checkbutton.active)
+        {
+            set_bool_setting(GROUP_NAME, dialog_name, true);
+        }
+
+        dialog.destroy();
+        return (ret == Gtk.ResponseType.YES);
+    }
+}
index 71e3a9a..746012a 100644 (file)
@@ -1,8 +1,8 @@
-/* moonshot-webp-parser.c generated by valac 0.28.0, the Vala compiler
+/* moonshot-webp-parser.c generated by valac 0.34.9, the Vala compiler
  * generated from moonshot-webp-parser.vala, do not modify */
 
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 #include <glib/gi18n-lib.h>
 #include <glib/gstdio.h>
 #include <libmoonshot.h>
+#include <gee.h>
 
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 #define _g_free0(var) (var = (g_free (var), NULL))
 
 #define WEB_PROVISIONING_TYPE_PARSER (web_provisioning_parser_get_type ())
@@ -77,8 +89,6 @@ typedef struct _Rule Rule;
 typedef struct _TrustAnchor TrustAnchor;
 typedef struct _TrustAnchorClass TrustAnchorClass;
 #define _moonshot_error_free0(var) ((var == NULL) ? NULL : (var = (moonshot_error_free (var), NULL)))
-#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
-#define _web_provisioning_parser_unref0(var) ((var == NULL) ? NULL : (var = (web_provisioning_parser_unref (var), NULL)))
 
 struct _Rule {
        gchar* pattern;
@@ -86,21 +96,20 @@ struct _Rule {
 };
 
 
-extern IdCard** web_provisioning_cards;
-extern gint web_provisioning_cards_length1;
+extern MoonshotLogger* web_provisioning_logger;
+MoonshotLogger* web_provisioning_logger = NULL;
 
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
 gint web_provisioning_main (gchar** args, int args_length1);
-gpointer web_provisioning_parser_ref (gpointer instance);
-void web_provisioning_parser_unref (gpointer instance);
-GParamSpec* web_provisioning_param_spec_parser (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
-void web_provisioning_value_set_parser (GValue* value, gpointer v_object);
-void web_provisioning_value_take_parser (GValue* value, gpointer v_object);
-gpointer web_provisioning_value_get_parser (const GValue* value);
+MoonshotLogger* moonshot_logger_new (const gchar* name);
+MoonshotLogger* moonshot_logger_construct (GType object_type, const gchar* name);
 GType web_provisioning_parser_get_type (void) G_GNUC_CONST;
 WebProvisioningParser* web_provisioning_parser_new (const gchar* path);
 WebProvisioningParser* web_provisioning_parser_construct (GType object_type, const gchar* path);
 void web_provisioning_parser_parse (WebProvisioningParser* self);
+void moonshot_logger_trace (MoonshotLogger* self, const gchar* message, GError* e);
 GType id_card_get_type (void) G_GNUC_CONST;
+IdCard** web_provisioning_parser_get_cards (WebProvisioningParser* self, int* result_length1);
 GType rule_get_type (void) G_GNUC_CONST;
 Rule* rule_dup (const Rule* self);
 void rule_free (Rule* self);
@@ -108,8 +117,7 @@ void rule_copy (const Rule* self, Rule* dest);
 void rule_destroy (Rule* self);
 Rule* id_card_get_rules (IdCard* self, int* result_length1);
 static Rule* _vala_array_dup1 (Rule* self, int length);
-gchar** id_card_get_services (IdCard* self, int* result_length1);
-static gchar** _vala_array_dup2 (gchar** self, int length);
+GeeArrayList* id_card_get_services (IdCard* self);
 const gchar* id_card_get_display_name (IdCard* self);
 const gchar* id_card_get_username (IdCard* self);
 const gchar* id_card_get_password (IdCard* self);
@@ -129,760 +137,924 @@ static gunichar string_get_char (const gchar* self, glong index) {
        gunichar result = 0U;
        glong _tmp0_ = 0L;
        gunichar _tmp1_ = 0U;
-#line 1026 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1124 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        g_return_val_if_fail (self != NULL, 0U);
-#line 1027 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1125 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp0_ = index;
-#line 1027 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1125 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        _tmp1_ = g_utf8_get_char (((gchar*) self) + _tmp0_);
-#line 1027 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1125 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        result = _tmp1_;
-#line 1027 "/usr/share/vala-0.28/vapi/glib-2.0.vapi"
+#line 1125 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        return result;
-#line 143 "moonshot-webp-parser.c"
+#line 151 "moonshot-webp-parser.c"
 }
 
 
 static gpointer _g_object_ref0 (gpointer self) {
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
        return self ? g_object_ref (self) : NULL;
-#line 150 "moonshot-webp-parser.c"
+#line 158 "moonshot-webp-parser.c"
 }
 
 
 static Rule* _vala_array_dup1 (Rule* self, int length) {
        Rule* result;
        int i;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
        result = g_new0 (Rule, length);
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
        for (i = 0; i < length; i++) {
-#line 161 "moonshot-webp-parser.c"
+#line 169 "moonshot-webp-parser.c"
                Rule _tmp0_ = {0};
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                rule_copy (&self[i], &_tmp0_);
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                result[i] = _tmp0_;
-#line 167 "moonshot-webp-parser.c"
+#line 175 "moonshot-webp-parser.c"
        }
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
        return result;
-#line 171 "moonshot-webp-parser.c"
+#line 179 "moonshot-webp-parser.c"
 }
 
 
-static gchar** _vala_array_dup2 (gchar** self, int length) {
-       gchar** result;
-       int i;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       result = g_new0 (gchar*, length + 1);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       for (i = 0; i < length; i++) {
-#line 182 "moonshot-webp-parser.c"
-               gchar* _tmp0_ = NULL;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp0_ = g_strdup (self[i]);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               result[i] = _tmp0_;
-#line 188 "moonshot-webp-parser.c"
-       }
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+static const gchar* string_to_string (const gchar* self) {
+       const gchar* result = NULL;
+#line 1420 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
+       result = self;
+#line 1421 "/usr/share/vala-0.34/vapi/glib-2.0.vapi"
        return result;
-#line 192 "moonshot-webp-parser.c"
+#line 191 "moonshot-webp-parser.c"
 }
 
 
 static void _vala_Rule_array_free (Rule* array, gint array_length) {
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
        if (array != NULL) {
-#line 199 "moonshot-webp-parser.c"
+#line 198 "moonshot-webp-parser.c"
                int i;
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                for (i = 0; i < array_length; i = i + 1) {
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                        rule_destroy (&array[i]);
-#line 205 "moonshot-webp-parser.c"
+#line 204 "moonshot-webp-parser.c"
                }
        }
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
        g_free (array);
-#line 210 "moonshot-webp-parser.c"
+#line 209 "moonshot-webp-parser.c"
 }
 
 
 gint web_provisioning_main (gchar** args, int args_length1) {
        gint result = 0;
+       MoonshotLogger* _tmp0_ = NULL;
        gint arg_index = 0;
        gint force_flat_file_store = 0;
        gboolean bad_switch = FALSE;
-       gboolean _tmp17_ = FALSE;
        gboolean _tmp18_ = FALSE;
+       gboolean _tmp19_ = FALSE;
        gchar* webp_file = NULL;
-       gchar** _tmp25_ = NULL;
-       gint _tmp25__length1 = 0;
-       gint _tmp26_ = 0;
-       const gchar* _tmp27_ = NULL;
-       gchar* _tmp28_ = NULL;
-       const gchar* _tmp29_ = NULL;
-       gboolean _tmp30_ = FALSE;
+       gchar** _tmp26_ = NULL;
+       gint _tmp26__length1 = 0;
+       gint _tmp27_ = 0;
+       const gchar* _tmp28_ = NULL;
+       gchar* _tmp29_ = NULL;
+       const gchar* _tmp30_ = NULL;
+       gboolean _tmp31_ = FALSE;
        WebProvisioningParser* webp = NULL;
-       const gchar* _tmp34_ = NULL;
-       WebProvisioningParser* _tmp35_ = NULL;
+       const gchar* _tmp35_ = NULL;
        WebProvisioningParser* _tmp36_ = NULL;
-       IdCard** _tmp37_ = NULL;
-       gint _tmp37__length1 = 0;
+       WebProvisioningParser* _tmp37_ = NULL;
+       MoonshotLogger* _tmp38_ = NULL;
+       WebProvisioningParser* _tmp39_ = NULL;
+       IdCard** _tmp40_ = NULL;
+       gint _tmp40__length1 = 0;
+       IdCard** _tmp41_ = NULL;
+       gint _tmp41__length1 = 0;
+       gchar* _tmp42_ = NULL;
+       gchar* _tmp43_ = NULL;
+       gchar* _tmp44_ = NULL;
+       gchar* _tmp45_ = NULL;
+       WebProvisioningParser* _tmp46_ = NULL;
+       IdCard** _tmp47_ = NULL;
+       gint _tmp47__length1 = 0;
+       IdCard** _tmp48_ = NULL;
+       gint _tmp48__length1 = 0;
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp0_ = moonshot_logger_new ("WebProvisioning (WebpParser)");
 #line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _g_object_unref0 (web_provisioning_logger);
+#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       web_provisioning_logger = _tmp0_;
+#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
        arg_index = -1;
-#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
        force_flat_file_store = 0;
-#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
        bad_switch = FALSE;
-#line 241 "moonshot-webp-parser.c"
+#line 260 "moonshot-webp-parser.c"
        {
-               gboolean _tmp0_ = FALSE;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               gboolean _tmp1_ = FALSE;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                arg_index = 1;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp0_ = TRUE;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               _tmp1_ = TRUE;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                while (TRUE) {
-#line 250 "moonshot-webp-parser.c"
-                       gint _tmp2_ = 0;
-                       gchar** _tmp3_ = NULL;
-                       gint _tmp3__length1 = 0;
-                       gchar* arg = NULL;
+#line 269 "moonshot-webp-parser.c"
+                       gint _tmp3_ = 0;
                        gchar** _tmp4_ = NULL;
                        gint _tmp4__length1 = 0;
-                       gint _tmp5_ = 0;
-                       const gchar* _tmp6_ = NULL;
-                       gchar* _tmp7_ = NULL;
+                       gchar* arg = NULL;
+                       gchar** _tmp5_ = NULL;
+                       gint _tmp5__length1 = 0;
+                       gint _tmp6_ = 0;
+                       const gchar* _tmp7_ = NULL;
+                       gchar* _tmp8_ = NULL;
                        gunichar c = 0U;
-                       const gchar* _tmp8_ = NULL;
-                       gunichar _tmp9_ = 0U;
+                       const gchar* _tmp9_ = NULL;
                        gunichar _tmp10_ = 0U;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       if (!_tmp0_) {
-#line 266 "moonshot-webp-parser.c"
-                               gint _tmp1_ = 0;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp1_ = arg_index;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               arg_index = _tmp1_ + 1;
-#line 272 "moonshot-webp-parser.c"
-                       }
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       _tmp0_ = FALSE;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       _tmp2_ = arg_index;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       _tmp3_ = args;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       _tmp3__length1 = args_length1;
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       if (!(_tmp2_ < _tmp3__length1)) {
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               break;
-#line 286 "moonshot-webp-parser.c"
+                       gunichar _tmp11_ = 0U;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                       if (!_tmp1_) {
+#line 285 "moonshot-webp-parser.c"
+                               gint _tmp2_ = 0;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp2_ = arg_index;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               arg_index = _tmp2_ + 1;
+#line 291 "moonshot-webp-parser.c"
                        }
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                       _tmp1_ = FALSE;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                       _tmp3_ = arg_index;
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                        _tmp4_ = args;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       _tmp4__length1 = args_length1;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       _tmp5_ = arg_index;
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       _tmp6_ = _tmp4_[_tmp5_];
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       _tmp7_ = g_strdup (_tmp6_);
-#line 44 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       arg = _tmp7_;
 #line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       _tmp8_ = arg;
+                       _tmp4__length1 = args_length1;
 #line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       _tmp9_ = string_get_char (_tmp8_, (glong) 0);
+                       if (!(_tmp3_ < _tmp4__length1)) {
 #line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       c = _tmp9_;
+                               break;
+#line 305 "moonshot-webp-parser.c"
+                       }
 #line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       _tmp10_ = c;
+                       _tmp5_ = args;
 #line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       if (_tmp10_ == ((gunichar) '-')) {
-#line 310 "moonshot-webp-parser.c"
-                               const gchar* _tmp11_ = NULL;
-                               const gchar* _tmp12_ = NULL;
-                               gchar* _tmp13_ = NULL;
-                               const gchar* _tmp14_ = NULL;
-                               gunichar _tmp15_ = 0U;
-                               gunichar _tmp16_ = 0U;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp11_ = arg;
-#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp12_ = g_utf8_next_char (_tmp11_);
+                       _tmp5__length1 = args_length1;
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                       _tmp6_ = arg_index;
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                       _tmp7_ = _tmp5_[_tmp6_];
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                       _tmp8_ = g_strdup (_tmp7_);
+#line 46 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                       arg = _tmp8_;
 #line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp13_ = g_strdup (_tmp12_);
+                       _tmp9_ = arg;
 #line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _g_free0 (arg);
+                       _tmp10_ = string_get_char (_tmp9_, (glong) 0);
 #line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               arg = _tmp13_;
-#line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp14_ = arg;
+                       c = _tmp10_;
 #line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp15_ = string_get_char (_tmp14_, (glong) 0);
+                       _tmp11_ = c;
 #line 48 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               c = _tmp15_;
+                       if (_tmp11_ == ((gunichar) '-')) {
+#line 329 "moonshot-webp-parser.c"
+                               const gchar* _tmp12_ = NULL;
+                               const gchar* _tmp13_ = NULL;
+                               gchar* _tmp14_ = NULL;
+                               const gchar* _tmp15_ = NULL;
+                               gunichar _tmp16_ = 0U;
+                               gunichar _tmp17_ = 0U;
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp12_ = arg;
+#line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp13_ = g_utf8_next_char (_tmp12_);
 #line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp16_ = c;
+                               _tmp14_ = g_strdup (_tmp13_);
 #line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               switch (_tmp16_) {
+                               _g_free0 (arg);
 #line 49 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               arg = _tmp14_;
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp15_ = arg;
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp16_ = string_get_char (_tmp15_, (glong) 0);
+#line 50 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               c = _tmp16_;
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp17_ = c;
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               switch (_tmp17_) {
+#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                        case 'f':
-#line 339 "moonshot-webp-parser.c"
+#line 358 "moonshot-webp-parser.c"
                                        {
-#line 51 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                                force_flat_file_store = 1;
-#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                                break;
-#line 345 "moonshot-webp-parser.c"
+#line 364 "moonshot-webp-parser.c"
                                        }
                                        default:
                                        {
-#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 56 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                                bad_switch = TRUE;
-#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 57 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                                break;
-#line 353 "moonshot-webp-parser.c"
+#line 372 "moonshot-webp-parser.c"
                                        }
                                }
                        } else {
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                _g_free0 (arg);
-#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                break;
-#line 361 "moonshot-webp-parser.c"
+#line 380 "moonshot-webp-parser.c"
                        }
-#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                        _g_free0 (arg);
-#line 365 "moonshot-webp-parser.c"
+#line 384 "moonshot-webp-parser.c"
                }
        }
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _tmp18_ = bad_switch;
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       if (_tmp18_) {
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp17_ = TRUE;
-#line 374 "moonshot-webp-parser.c"
-       } else {
-               gint _tmp19_ = 0;
-               gchar** _tmp20_ = NULL;
-               gint _tmp20__length1 = 0;
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp19_ = arg_index;
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp20_ = args;
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp20__length1 = args_length1;
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp17_ = _tmp19_ != (_tmp20__length1 - 1);
-#line 387 "moonshot-webp-parser.c"
-       }
-#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       if (_tmp17_) {
-#line 391 "moonshot-webp-parser.c"
-               FILE* _tmp21_ = NULL;
-               const gchar* _tmp22_ = NULL;
-               gchar** _tmp23_ = NULL;
-               gint _tmp23__length1 = 0;
-               const gchar* _tmp24_ = NULL;
 #line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp21_ = stdout;
+       _tmp19_ = bad_switch;
 #line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp22_ = _ ("Usage %s [-f] WEB_PROVISIONING_FILE\n" \
-" -f: add identities to flat file store.\n");
+       if (_tmp19_) {
 #line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp23_ = args;
+               _tmp18_ = TRUE;
+#line 393 "moonshot-webp-parser.c"
+       } else {
+               gint _tmp20_ = 0;
+               gchar** _tmp21_ = NULL;
+               gint _tmp21__length1 = 0;
 #line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp23__length1 = args_length1;
+               _tmp20_ = arg_index;
 #line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp24_ = _tmp23_[0];
+               _tmp21_ = args;
 #line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               fprintf (_tmp21_, _tmp22_, _tmp24_);
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               result = -1;
-#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               return result;
-#line 413 "moonshot-webp-parser.c"
+               _tmp21__length1 = args_length1;
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               _tmp18_ = _tmp20_ != (_tmp21__length1 - 1);
+#line 406 "moonshot-webp-parser.c"
        }
+#line 63 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       if (_tmp18_) {
+#line 410 "moonshot-webp-parser.c"
+               FILE* _tmp22_ = NULL;
+               const gchar* _tmp23_ = NULL;
+               gchar** _tmp24_ = NULL;
+               gint _tmp24__length1 = 0;
+               const gchar* _tmp25_ = NULL;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               _tmp22_ = stdout;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               _tmp23_ = _ ("Usage %s [-f] WEB_PROVISIONING_FILE\n" \
+" -f: add identities to flat file store.\n");
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               _tmp24_ = args;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               _tmp24__length1 = args_length1;
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               _tmp25_ = _tmp24_[0];
+#line 65 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               fprintf (_tmp22_, _tmp23_, _tmp25_);
 #line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _tmp25_ = args;
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _tmp25__length1 = args_length1;
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _tmp26_ = arg_index;
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _tmp27_ = _tmp25_[_tmp26_];
-#line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _tmp28_ = g_strdup (_tmp27_);
+               result = -1;
 #line 66 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       webp_file = _tmp28_;
+               return result;
+#line 432 "moonshot-webp-parser.c"
+       }
 #line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _tmp29_ = webp_file;
+       _tmp26_ = args;
 #line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _tmp30_ = g_file_test (_tmp29_, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR);
+       _tmp26__length1 = args_length1;
 #line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       if (!_tmp30_) {
-#line 433 "moonshot-webp-parser.c"
-               FILE* _tmp31_ = NULL;
-               const gchar* _tmp32_ = NULL;
-               const gchar* _tmp33_ = NULL;
-#line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp31_ = stdout;
+       _tmp27_ = arg_index;
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp28_ = _tmp26_[_tmp27_];
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp29_ = g_strdup (_tmp28_);
+#line 68 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       webp_file = _tmp29_;
 #line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp32_ = _ ("%s does not exist\n");
+       _tmp30_ = webp_file;
 #line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               _tmp33_ = webp_file;
+       _tmp31_ = g_file_test (_tmp30_, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR);
 #line 70 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               fprintf (_tmp31_, _tmp32_, _tmp33_);
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       if (!_tmp31_) {
+#line 452 "moonshot-webp-parser.c"
+               FILE* _tmp32_ = NULL;
+               const gchar* _tmp33_ = NULL;
+               const gchar* _tmp34_ = NULL;
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               _tmp32_ = stdout;
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               _tmp33_ = _ ("%s does not exist\n");
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               _tmp34_ = webp_file;
+#line 72 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               fprintf (_tmp32_, _tmp33_, _tmp34_);
+#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                result = -1;
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                _g_free0 (webp_file);
-#line 71 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                return result;
-#line 451 "moonshot-webp-parser.c"
+#line 470 "moonshot-webp-parser.c"
        }
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _tmp34_ = webp_file;
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _tmp35_ = web_provisioning_parser_new (_tmp34_);
-#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       webp = _tmp35_;
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _tmp36_ = webp;
-#line 75 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       web_provisioning_parser_parse (_tmp36_);
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp35_ = webp_file;
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp36_ = web_provisioning_parser_new (_tmp35_);
+#line 76 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       webp = _tmp36_;
 #line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _tmp37_ = web_provisioning_cards;
+       _tmp37_ = webp;
 #line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _tmp37__length1 = web_provisioning_cards_length1;
-#line 467 "moonshot-webp-parser.c"
+       web_provisioning_parser_parse (_tmp37_);
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp38_ = web_provisioning_logger;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp39_ = webp;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp40_ = web_provisioning_parser_get_cards (_tmp39_, &_tmp40__length1);
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp41_ = _tmp40_;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp41__length1 = _tmp40__length1;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp42_ = g_strdup_printf ("%i", _tmp41__length1);
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp43_ = _tmp42_;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp44_ = g_strconcat ("Have ", _tmp43_, " IdCards", NULL);
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp45_ = _tmp44_;
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       moonshot_logger_trace (_tmp38_, _tmp45_, NULL);
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _g_free0 (_tmp45_);
+#line 78 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _g_free0 (_tmp43_);
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp46_ = webp;
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp47_ = web_provisioning_parser_get_cards (_tmp46_, &_tmp47__length1);
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp48_ = _tmp47_;
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _tmp48__length1 = _tmp47__length1;
+#line 514 "moonshot-webp-parser.c"
        {
                IdCard** card_collection = NULL;
                gint card_collection_length1 = 0;
                gint _card_collection_size_ = 0;
                gint card_it = 0;
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               card_collection = _tmp37_;
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               card_collection_length1 = _tmp37__length1;
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-               for (card_it = 0; card_it < _tmp37__length1; card_it = card_it + 1) {
-#line 479 "moonshot-webp-parser.c"
-                       IdCard* _tmp38_ = NULL;
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               card_collection = _tmp48_;
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               card_collection_length1 = _tmp48__length1;
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+               for (card_it = 0; card_it < _tmp48__length1; card_it = card_it + 1) {
+#line 526 "moonshot-webp-parser.c"
+                       IdCard* _tmp49_ = NULL;
                        IdCard* card = NULL;
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       _tmp38_ = _g_object_ref0 (card_collection[card_it]);
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                       card = _tmp38_;
-#line 486 "moonshot-webp-parser.c"
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                       _tmp49_ = _g_object_ref0 (card_collection[card_it]);
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                       card = _tmp49_;
+#line 533 "moonshot-webp-parser.c"
                        {
+                               IdCard* _tmp50_ = NULL;
                                MoonshotError* _error_ = NULL;
                                gchar** rules_patterns = NULL;
-                               gchar** _tmp39_ = NULL;
+                               gchar** _tmp52_ = NULL;
                                gint rules_patterns_length1 = 0;
                                gint _rules_patterns_size_ = 0;
                                gchar** rules_always_confirm = NULL;
-                               gchar** _tmp40_ = NULL;
+                               gchar** _tmp53_ = NULL;
                                gint rules_always_confirm_length1 = 0;
                                gint _rules_always_confirm_size_ = 0;
                                Rule* rules = NULL;
-                               IdCard* _tmp41_ = NULL;
-                               Rule* _tmp42_ = NULL;
-                               gint _tmp42__length1 = 0;
-                               Rule* _tmp43_ = NULL;
-                               gint _tmp43__length1 = 0;
-                               Rule* _tmp44_ = NULL;
-                               gint _tmp44__length1 = 0;
+                               IdCard* _tmp54_ = NULL;
+                               Rule* _tmp55_ = NULL;
+                               gint _tmp55__length1 = 0;
+                               Rule* _tmp56_ = NULL;
+                               gint _tmp56__length1 = 0;
+                               Rule* _tmp57_ = NULL;
+                               gint _tmp57__length1 = 0;
                                gint rules_length1 = 0;
                                gint _rules_size_ = 0;
-                               gchar** services = NULL;
-                               IdCard* _tmp45_ = NULL;
-                               gchar** _tmp46_ = NULL;
-                               gint _tmp46__length1 = 0;
-                               gchar** _tmp47_ = NULL;
-                               gint _tmp47__length1 = 0;
-                               gchar** _tmp48_ = NULL;
-                               gint _tmp48__length1 = 0;
-                               gint services_length1 = 0;
-                               gint _services_size_ = 0;
-                               Rule* _tmp49_ = NULL;
-                               gint _tmp49__length1 = 0;
-                               IdCard* _tmp69_ = NULL;
-                               const gchar* _tmp70_ = NULL;
-                               const gchar* _tmp71_ = NULL;
-                               IdCard* _tmp72_ = NULL;
-                               const gchar* _tmp73_ = NULL;
-                               const gchar* _tmp74_ = NULL;
-                               IdCard* _tmp75_ = NULL;
-                               const gchar* _tmp76_ = NULL;
-                               const gchar* _tmp77_ = NULL;
-                               IdCard* _tmp78_ = NULL;
-                               const gchar* _tmp79_ = NULL;
-                               const gchar* _tmp80_ = NULL;
-                               gchar** _tmp81_ = NULL;
-                               gint _tmp81__length1 = 0;
-                               gchar** _tmp82_ = NULL;
-                               gint _tmp82__length1 = 0;
-                               gchar** _tmp83_ = NULL;
-                               gint _tmp83__length1 = 0;
-                               IdCard* _tmp84_ = NULL;
-                               TrustAnchor* _tmp85_ = NULL;
-                               TrustAnchor* _tmp86_ = NULL;
-                               const gchar* _tmp87_ = NULL;
-                               const gchar* _tmp88_ = NULL;
-                               IdCard* _tmp89_ = NULL;
-                               TrustAnchor* _tmp90_ = NULL;
-                               TrustAnchor* _tmp91_ = NULL;
-                               const gchar* _tmp92_ = NULL;
-                               const gchar* _tmp93_ = NULL;
-                               IdCard* _tmp94_ = NULL;
-                               TrustAnchor* _tmp95_ = NULL;
-                               TrustAnchor* _tmp96_ = NULL;
-                               const gchar* _tmp97_ = NULL;
-                               const gchar* _tmp98_ = NULL;
-                               IdCard* _tmp99_ = NULL;
-                               TrustAnchor* _tmp100_ = NULL;
-                               TrustAnchor* _tmp101_ = NULL;
+                               gchar** svcs = NULL;
+                               IdCard* _tmp58_ = NULL;
+                               GeeArrayList* _tmp59_ = NULL;
+                               GeeArrayList* _tmp60_ = NULL;
+                               gint _tmp61_ = 0;
+                               gint _tmp62_ = 0;
+                               gchar** _tmp63_ = NULL;
+                               gint svcs_length1 = 0;
+                               gint _svcs_size_ = 0;
+                               Rule* _tmp80_ = NULL;
+                               gint _tmp80__length1 = 0;
+                               MoonshotLogger* _tmp100_ = NULL;
+                               IdCard* _tmp101_ = NULL;
                                const gchar* _tmp102_ = NULL;
                                const gchar* _tmp103_ = NULL;
-                               gint _tmp104_ = 0;
-                               MoonshotError* _tmp105_ = NULL;
-                               MoonshotError* _tmp106_ = NULL;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp39_ = g_new0 (gchar*, 0 + 1);
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               rules_patterns = _tmp39_;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               rules_patterns_length1 = 0;
-#line 80 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _rules_patterns_size_ = rules_patterns_length1;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp40_ = g_new0 (gchar*, 0 + 1);
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               rules_always_confirm = _tmp40_;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               rules_always_confirm_length1 = 0;
-#line 81 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _rules_always_confirm_size_ = rules_always_confirm_length1;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp41_ = card;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp42_ = id_card_get_rules (_tmp41_, &_tmp42__length1);
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp43_ = _tmp42_;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp43__length1 = _tmp42__length1;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp44_ = (_tmp43_ != NULL) ? _vala_array_dup1 (_tmp43_, _tmp43__length1) : ((gpointer) _tmp43_);
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp44__length1 = _tmp43__length1;
-#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               rules = _tmp44_;
+                               const gchar* _tmp104_ = NULL;
+                               gchar* _tmp105_ = NULL;
+                               gchar* _tmp106_ = NULL;
+                               IdCard* _tmp107_ = NULL;
+                               const gchar* _tmp108_ = NULL;
+                               const gchar* _tmp109_ = NULL;
+                               IdCard* _tmp110_ = NULL;
+                               const gchar* _tmp111_ = NULL;
+                               const gchar* _tmp112_ = NULL;
+                               IdCard* _tmp113_ = NULL;
+                               const gchar* _tmp114_ = NULL;
+                               const gchar* _tmp115_ = NULL;
+                               IdCard* _tmp116_ = NULL;
+                               const gchar* _tmp117_ = NULL;
+                               const gchar* _tmp118_ = NULL;
+                               gchar** _tmp119_ = NULL;
+                               gint _tmp119__length1 = 0;
+                               gchar** _tmp120_ = NULL;
+                               gint _tmp120__length1 = 0;
+                               gchar** _tmp121_ = NULL;
+                               gint _tmp121__length1 = 0;
+                               IdCard* _tmp122_ = NULL;
+                               TrustAnchor* _tmp123_ = NULL;
+                               TrustAnchor* _tmp124_ = NULL;
+                               const gchar* _tmp125_ = NULL;
+                               const gchar* _tmp126_ = NULL;
+                               IdCard* _tmp127_ = NULL;
+                               TrustAnchor* _tmp128_ = NULL;
+                               TrustAnchor* _tmp129_ = NULL;
+                               const gchar* _tmp130_ = NULL;
+                               const gchar* _tmp131_ = NULL;
+                               IdCard* _tmp132_ = NULL;
+                               TrustAnchor* _tmp133_ = NULL;
+                               TrustAnchor* _tmp134_ = NULL;
+                               const gchar* _tmp135_ = NULL;
+                               const gchar* _tmp136_ = NULL;
+                               IdCard* _tmp137_ = NULL;
+                               TrustAnchor* _tmp138_ = NULL;
+                               TrustAnchor* _tmp139_ = NULL;
+                               const gchar* _tmp140_ = NULL;
+                               const gchar* _tmp141_ = NULL;
+                               gint _tmp142_ = 0;
+                               MoonshotError* _tmp143_ = NULL;
+                               MoonshotError* _tmp144_ = NULL;
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp50_ = card;
+#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               if (_tmp50_ == NULL) {
+#line 618 "moonshot-webp-parser.c"
+                                       MoonshotLogger* _tmp51_ = NULL;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _tmp51_ = web_provisioning_logger;
+#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       moonshot_logger_trace (_tmp51_, "Skipping null IdCard", NULL);
 #line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               rules_length1 = _tmp44__length1;
+                                       _g_object_unref0 (card);
 #line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _rules_size_ = rules_length1;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp45_ = card;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp46_ = id_card_get_services (_tmp45_, &_tmp46__length1);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp47_ = _tmp46_;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp47__length1 = _tmp46__length1;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp48_ = (_tmp47_ != NULL) ? _vala_array_dup2 (_tmp47_, _tmp47__length1) : ((gpointer) _tmp47_);
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp48__length1 = _tmp47__length1;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               services = _tmp48_;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               services_length1 = _tmp48__length1;
-#line 85 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _services_size_ = services_length1;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp49_ = rules;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp49__length1 = rules_length1;
-#line 86 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               if (_tmp49__length1 > 0) {
-#line 618 "moonshot-webp-parser.c"
-                                       gint i = 0;
-                                       Rule* _tmp50_ = NULL;
-                                       gint _tmp50__length1 = 0;
-                                       gchar** _tmp51_ = NULL;
-                                       Rule* _tmp52_ = NULL;
-                                       gint _tmp52__length1 = 0;
-                                       gchar** _tmp53_ = NULL;
-                                       Rule* _tmp54_ = NULL;
-                                       gint _tmp54__length1 = 0;
+                                       continue;
+#line 628 "moonshot-webp-parser.c"
+                               }
 #line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       i = 0;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       _tmp50_ = rules;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       _tmp50__length1 = rules_length1;
-#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       _tmp51_ = g_new0 (gchar*, _tmp50__length1 + 1);
+                               _tmp52_ = g_new0 (gchar*, 0 + 1);
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               rules_patterns = _tmp52_;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               rules_patterns_length1 = 0;
+#line 88 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _rules_patterns_size_ = rules_patterns_length1;
 #line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
+                               _tmp53_ = g_new0 (gchar*, 0 + 1);
 #line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       rules_patterns = _tmp51_;
+                               rules_always_confirm = _tmp53_;
 #line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       rules_patterns_length1 = _tmp50__length1;
+                               rules_always_confirm_length1 = 0;
 #line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       _rules_patterns_size_ = rules_patterns_length1;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       _tmp52_ = rules;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       _tmp52__length1 = rules_length1;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       _tmp53_ = g_new0 (gchar*, _tmp52__length1 + 1);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL);
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       rules_always_confirm = _tmp53_;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       rules_always_confirm_length1 = _tmp52__length1;
-#line 90 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       _rules_always_confirm_size_ = rules_always_confirm_length1;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       _tmp54_ = rules;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       _tmp54__length1 = rules_length1;
-#line 662 "moonshot-webp-parser.c"
-                                       {
-                                               Rule* r_collection = NULL;
-                                               gint r_collection_length1 = 0;
-                                               gint _r_collection_size_ = 0;
-                                               gint r_it = 0;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                               r_collection = _tmp54_;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                               r_collection_length1 = _tmp54__length1;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                               for (r_it = 0; r_it < _tmp54__length1; r_it = r_it + 1) {
-#line 674 "moonshot-webp-parser.c"
-                                                       Rule _tmp55_ = {0};
-                                                       Rule r = {0};
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                       rule_copy (&r_collection[r_it], &_tmp55_);
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                       r = _tmp55_;
-#line 681 "moonshot-webp-parser.c"
-                                                       {
-                                                               gchar** _tmp56_ = NULL;
-                                                               gint _tmp56__length1 = 0;
-                                                               gint _tmp57_ = 0;
-                                                               Rule _tmp58_ = {0};
-                                                               const gchar* _tmp59_ = NULL;
-                                                               gchar* _tmp60_ = NULL;
-                                                               gchar* _tmp61_ = NULL;
-                                                               gchar** _tmp62_ = NULL;
-                                                               gint _tmp62__length1 = 0;
-                                                               gint _tmp63_ = 0;
-                                                               Rule _tmp64_ = {0};
-                                                               const gchar* _tmp65_ = NULL;
-                                                               gchar* _tmp66_ = NULL;
-                                                               gchar* _tmp67_ = NULL;
-                                                               gint _tmp68_ = 0;
+                               _rules_always_confirm_size_ = rules_always_confirm_length1;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp54_ = card;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp55_ = id_card_get_rules (_tmp54_, &_tmp55__length1);
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp56_ = _tmp55_;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp56__length1 = _tmp55__length1;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp57_ = (_tmp56_ != NULL) ? _vala_array_dup1 (_tmp56_, _tmp56__length1) : ((gpointer) _tmp56_);
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp57__length1 = _tmp56__length1;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               rules = _tmp57_;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               rules_length1 = _tmp57__length1;
+#line 92 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _rules_size_ = rules_length1;
 #line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp56_ = rules_patterns;
+                               _tmp58_ = card;
 #line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp56__length1 = rules_patterns_length1;
+                               _tmp59_ = id_card_get_services (_tmp58_);
 #line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp57_ = i;
+                               _tmp60_ = _tmp59_;
 #line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp58_ = r;
+                               _tmp61_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp60_);
 #line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp59_ = _tmp58_.pattern;
+                               _tmp62_ = _tmp61_;
 #line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp60_ = g_strdup (_tmp59_);
+                               _tmp63_ = g_new0 (gchar*, _tmp62_ + 1);
 #line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _g_free0 (_tmp56_[_tmp57_]);
+                               svcs = _tmp63_;
 #line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp56_[_tmp57_] = _tmp60_;
+                               svcs_length1 = _tmp62_;
 #line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp61_ = _tmp56_[_tmp57_];
+                               _svcs_size_ = svcs_length1;
+#line 682 "moonshot-webp-parser.c"
+                               {
+                                       gint i = 0;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       i = 0;
+#line 687 "moonshot-webp-parser.c"
+                                       {
+                                               gboolean _tmp64_ = FALSE;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                               _tmp64_ = TRUE;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                               while (TRUE) {
+#line 694 "moonshot-webp-parser.c"
+                                                       gint _tmp66_ = 0;
+                                                       IdCard* _tmp67_ = NULL;
+                                                       GeeArrayList* _tmp68_ = NULL;
+                                                       GeeArrayList* _tmp69_ = NULL;
+                                                       gint _tmp70_ = 0;
+                                                       gint _tmp71_ = 0;
+                                                       gchar** _tmp72_ = NULL;
+                                                       gint _tmp72__length1 = 0;
+                                                       gint _tmp73_ = 0;
+                                                       IdCard* _tmp74_ = NULL;
+                                                       GeeArrayList* _tmp75_ = NULL;
+                                                       GeeArrayList* _tmp76_ = NULL;
+                                                       gint _tmp77_ = 0;
+                                                       gpointer _tmp78_ = NULL;
+                                                       gchar* _tmp79_ = NULL;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       if (!_tmp64_) {
+#line 712 "moonshot-webp-parser.c"
+                                                               gint _tmp65_ = 0;
 #line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp62_ = rules_always_confirm;
+                                                               _tmp65_ = i;
 #line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp62__length1 = rules_always_confirm_length1;
+                                                               i = _tmp65_ + 1;
+#line 718 "moonshot-webp-parser.c"
+                                                       }
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       _tmp64_ = FALSE;
+#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       _tmp66_ = i;
 #line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp63_ = i;
+                                                       _tmp67_ = card;
 #line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp64_ = r;
+                                                       _tmp68_ = id_card_get_services (_tmp67_);
 #line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp65_ = _tmp64_.always_confirm;
+                                                       _tmp69_ = _tmp68_;
 #line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp66_ = g_strdup (_tmp65_);
+                                                       _tmp70_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp69_);
 #line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _g_free0 (_tmp62_[_tmp63_]);
+                                                       _tmp71_ = _tmp70_;
 #line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp62_[_tmp63_] = _tmp66_;
+                                                       if (!(_tmp66_ < _tmp71_)) {
 #line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp67_ = _tmp62_[_tmp63_];
+                                                               break;
+#line 738 "moonshot-webp-parser.c"
+                                                       }
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       _tmp72_ = svcs;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       _tmp72__length1 = svcs_length1;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       _tmp73_ = i;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       _tmp74_ = card;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       _tmp75_ = id_card_get_services (_tmp74_);
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       _tmp76_ = _tmp75_;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       _tmp77_ = i;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       _tmp78_ = gee_abstract_list_get ((GeeAbstractList*) _tmp76_, _tmp77_);
 #line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               _tmp68_ = i;
+                                                       _g_free0 (_tmp72_[_tmp73_]);
 #line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                                               i = _tmp68_ + 1;
-#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       _tmp72_[_tmp73_] = (gchar*) _tmp78_;
+#line 95 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       _tmp79_ = _tmp72_[_tmp73_];
+#line 762 "moonshot-webp-parser.c"
+                                               }
+                                       }
+                               }
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp80_ = rules;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp80__length1 = rules_length1;
+#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               if (_tmp80__length1 > 0) {
+#line 772 "moonshot-webp-parser.c"
+                                       gint i = 0;
+                                       Rule* _tmp81_ = NULL;
+                                       gint _tmp81__length1 = 0;
+                                       gchar** _tmp82_ = NULL;
+                                       Rule* _tmp83_ = NULL;
+                                       gint _tmp83__length1 = 0;
+                                       gchar** _tmp84_ = NULL;
+                                       Rule* _tmp85_ = NULL;
+                                       gint _tmp85__length1 = 0;
+#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       i = 0;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _tmp81_ = rules;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _tmp81__length1 = rules_length1;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _tmp82_ = g_new0 (gchar*, _tmp81__length1 + 1);
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       rules_patterns = _tmp82_;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       rules_patterns_length1 = _tmp81__length1;
+#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _rules_patterns_size_ = rules_patterns_length1;
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _tmp83_ = rules;
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _tmp83__length1 = rules_length1;
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _tmp84_ = g_new0 (gchar*, _tmp83__length1 + 1);
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL);
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       rules_always_confirm = _tmp84_;
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       rules_always_confirm_length1 = _tmp83__length1;
+#line 102 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _rules_always_confirm_size_ = rules_always_confirm_length1;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _tmp85_ = rules;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _tmp85__length1 = rules_length1;
+#line 816 "moonshot-webp-parser.c"
+                                       {
+                                               Rule* r_collection = NULL;
+                                               gint r_collection_length1 = 0;
+                                               gint _r_collection_size_ = 0;
+                                               gint r_it = 0;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                               r_collection = _tmp85_;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                               r_collection_length1 = _tmp85__length1;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                               for (r_it = 0; r_it < _tmp85__length1; r_it = r_it + 1) {
+#line 828 "moonshot-webp-parser.c"
+                                                       Rule _tmp86_ = {0};
+                                                       Rule r = {0};
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       rule_copy (&r_collection[r_it], &_tmp86_);
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                       r = _tmp86_;
+#line 835 "moonshot-webp-parser.c"
+                                                       {
+                                                               gchar** _tmp87_ = NULL;
+                                                               gint _tmp87__length1 = 0;
+                                                               gint _tmp88_ = 0;
+                                                               Rule _tmp89_ = {0};
+                                                               const gchar* _tmp90_ = NULL;
+                                                               gchar* _tmp91_ = NULL;
+                                                               gchar* _tmp92_ = NULL;
+                                                               gchar** _tmp93_ = NULL;
+                                                               gint _tmp93__length1 = 0;
+                                                               gint _tmp94_ = 0;
+                                                               Rule _tmp95_ = {0};
+                                                               const gchar* _tmp96_ = NULL;
+                                                               gchar* _tmp97_ = NULL;
+                                                               gchar* _tmp98_ = NULL;
+                                                               gint _tmp99_ = 0;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp87_ = rules_patterns;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp87__length1 = rules_patterns_length1;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp88_ = i;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp89_ = r;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp90_ = _tmp89_.pattern;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp91_ = g_strdup (_tmp90_);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _g_free0 (_tmp87_[_tmp88_]);
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp87_[_tmp88_] = _tmp91_;
+#line 105 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp92_ = _tmp87_[_tmp88_];
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp93_ = rules_always_confirm;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp93__length1 = rules_always_confirm_length1;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp94_ = i;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp95_ = r;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp96_ = _tmp95_.always_confirm;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp97_ = g_strdup (_tmp96_);
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _g_free0 (_tmp93_[_tmp94_]);
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp93_[_tmp94_] = _tmp97_;
+#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp98_ = _tmp93_[_tmp94_];
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               _tmp99_ = i;
+#line 107 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                                               i = _tmp99_ + 1;
+#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                                                rule_destroy (&r);
-#line 740 "moonshot-webp-parser.c"
+#line 894 "moonshot-webp-parser.c"
                                                        }
                                                }
                                        }
                                }
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp69_ = card;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp70_ = id_card_get_display_name (_tmp69_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp71_ = _tmp70_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp72_ = card;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp73_ = id_card_get_username (_tmp72_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp74_ = _tmp73_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp75_ = card;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp76_ = id_card_get_password (_tmp75_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp77_ = _tmp76_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp78_ = card;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp79_ = id_card_get_issuer (_tmp78_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp80_ = _tmp79_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp81_ = rules_patterns;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp81__length1 = rules_patterns_length1;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp82_ = rules_always_confirm;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp82__length1 = rules_always_confirm_length1;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp83_ = services;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp83__length1 = services_length1;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp84_ = card;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp85_ = id_card_get_trust_anchor (_tmp84_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp86_ = _tmp85_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp87_ = trust_anchor_get_ca_cert (_tmp86_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp88_ = _tmp87_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp89_ = card;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp90_ = id_card_get_trust_anchor (_tmp89_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp91_ = _tmp90_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp92_ = trust_anchor_get_subject (_tmp91_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp93_ = _tmp92_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp94_ = card;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp95_ = id_card_get_trust_anchor (_tmp94_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp96_ = _tmp95_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp97_ = trust_anchor_get_subject_alt (_tmp96_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp98_ = _tmp97_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp99_ = card;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp100_ = id_card_get_trust_anchor (_tmp99_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp101_ = _tmp100_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp102_ = trust_anchor_get_server_cert (_tmp101_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp100_ = web_provisioning_logger;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp101_ = card;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp102_ = id_card_get_display_name (_tmp101_);
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                _tmp103_ = _tmp102_;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp104_ = force_flat_file_store;
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               moonshot_install_id_card (_tmp71_, _tmp74_, _tmp77_, _tmp80_, _tmp81_, _tmp81__length1, _tmp82_, _tmp82__length1, _tmp83_, _tmp83__length1, _tmp88_, _tmp93_, _tmp98_, _tmp103_, _tmp104_, &_tmp105_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp104_ = string_to_string (_tmp103_);
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp105_ = g_strconcat ("Installing IdCard named '", _tmp104_, "'", NULL);
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp106_ = _tmp105_;
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               moonshot_logger_trace (_tmp100_, _tmp106_, NULL);
+#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _g_free0 (_tmp106_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp107_ = card;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp108_ = id_card_get_display_name (_tmp107_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp109_ = _tmp108_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp110_ = card;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp111_ = id_card_get_username (_tmp110_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp112_ = _tmp111_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp113_ = card;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp114_ = id_card_get_password (_tmp113_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp115_ = _tmp114_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp116_ = card;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp117_ = id_card_get_issuer (_tmp116_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp118_ = _tmp117_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp119_ = rules_patterns;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp119__length1 = rules_patterns_length1;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp120_ = rules_always_confirm;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp120__length1 = rules_always_confirm_length1;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp121_ = svcs;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp121__length1 = svcs_length1;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp122_ = card;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp123_ = id_card_get_trust_anchor (_tmp122_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp124_ = _tmp123_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp125_ = trust_anchor_get_ca_cert (_tmp124_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp126_ = _tmp125_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp127_ = card;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp128_ = id_card_get_trust_anchor (_tmp127_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp129_ = _tmp128_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp130_ = trust_anchor_get_subject (_tmp129_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp131_ = _tmp130_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp132_ = card;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp133_ = id_card_get_trust_anchor (_tmp132_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp134_ = _tmp133_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp135_ = trust_anchor_get_subject_alt (_tmp134_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp136_ = _tmp135_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp137_ = card;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp138_ = id_card_get_trust_anchor (_tmp137_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp139_ = _tmp138_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp140_ = trust_anchor_get_server_cert (_tmp139_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp141_ = _tmp140_;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp142_ = force_flat_file_store;
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               moonshot_install_id_card (_tmp109_, _tmp112_, _tmp115_, _tmp118_, _tmp119_, _tmp119__length1, _tmp120_, _tmp120__length1, _tmp121_, _tmp121__length1, _tmp126_, _tmp131_, _tmp136_, _tmp141_, _tmp142_, &_tmp143_);
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                _moonshot_error_free0 (_error_);
-#line 99 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _error_ = _tmp105_;
-#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               _tmp106_ = _error_;
-#line 113 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               if (_tmp106_ != NULL) {
-#line 833 "moonshot-webp-parser.c"
-                                       FILE* _tmp107_ = NULL;
-                                       MoonshotError* _tmp108_ = NULL;
-                                       const gchar* _tmp109_ = NULL;
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       _tmp107_ = stderr;
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       _tmp108_ = _error_;
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       _tmp109_ = _tmp108_->message;
-#line 115 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       fprintf (_tmp107_, "Error: %s", _tmp109_);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                                       services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_free), NULL);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 112 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _error_ = _tmp143_;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               _tmp144_ = _error_;
+#line 126 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               if (_tmp144_ != NULL) {
+#line 1005 "moonshot-webp-parser.c"
+                                       FILE* _tmp145_ = NULL;
+                                       MoonshotError* _tmp146_ = NULL;
+                                       const gchar* _tmp147_ = NULL;
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _tmp145_ = stderr;
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _tmp146_ = _error_;
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       _tmp147_ = _tmp146_->message;
+#line 128 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       fprintf (_tmp145_, "Error: %s", _tmp147_);
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                                       svcs = (_vala_array_free (svcs, svcs_length1, (GDestroyNotify) g_free), NULL);
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                        rules = (_vala_Rule_array_free (rules, rules_length1), NULL);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                        rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                        rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                        _moonshot_error_free0 (_error_);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                        _g_object_unref0 (card);
-#line 116 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 129 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                        continue;
-#line 859 "moonshot-webp-parser.c"
+#line 1031 "moonshot-webp-parser.c"
                                }
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-                               services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_free), NULL);
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+                               svcs = (_vala_array_free (svcs, svcs_length1, (GDestroyNotify) g_free), NULL);
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                rules = (_vala_Rule_array_free (rules, rules_length1), NULL);
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL);
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                _moonshot_error_free0 (_error_);
-#line 77 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
                                _g_object_unref0 (card);
-#line 873 "moonshot-webp-parser.c"
+#line 1045 "moonshot-webp-parser.c"
                        }
                }
        }
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
        result = 0;
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
-       _web_provisioning_parser_unref0 (webp);
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+       _g_object_unref0 (webp);
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
        _g_free0 (webp_file);
-#line 120 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
+#line 133 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
        return result;
-#line 885 "moonshot-webp-parser.c"
+#line 1057 "moonshot-webp-parser.c"
 }
 
 
@@ -892,7 +1064,7 @@ int main (int argc, char ** argv) {
 #endif
 #line 38 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-webp-parser.vala"
        return web_provisioning_main (argv, argc);
-#line 895 "moonshot-webp-parser.c"
+#line 1067 "moonshot-webp-parser.c"
 }
 
 
index 1fce688..de52aff 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2014, JANET(UK)
+ * Copyright (c) 2011-2016, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -33,90 +33,103 @@ using Moonshot;
 
 namespace WebProvisioning
 { 
+    private MoonshotLogger logger;
 
-
-  public static int main (string[] args)
-  {
-    int arg_index = -1;
-    int force_flat_file_store = 0;
-    bool bad_switch = false;
-    for (arg_index = 1; arg_index < args.length; arg_index++) {
-      string arg = args[arg_index];
-      unichar c = arg.get_char();
-      if (c=='-') {
-          arg = arg.next_char();
-          c = arg.get_char();
-          switch (c) {
-            case 'f':
-              force_flat_file_store = 1;
-              break;
-            default:
-              bad_switch = true;
-              break;
-          }
-      } else {
-        break; // arg is not a switch; presume it's the file
-      }
-    }
-    if (bad_switch || (arg_index != args.length - 1))
-    {
-      stdout.printf (_("Usage %s [-f] WEB_PROVISIONING_FILE\n -f: add identities to flat file store.\n"), args[0]);
-      return -1;
-    }
-    string webp_file = args[arg_index];
-    
-    if (!FileUtils.test (webp_file, FileTest.EXISTS | FileTest.IS_REGULAR))
+    public static int main(string[] args)
     {
-      stdout.printf (_("%s does not exist\n"), webp_file);
-      return -1;
-    }
-    
-    var webp = new Parser (webp_file);
-    webp.parse();
+        logger = new MoonshotLogger("WebProvisioning (WebpParser)");
+
+        int arg_index = -1;
+        int force_flat_file_store = 0;
+        bool bad_switch = false;
+        for (arg_index = 1; arg_index < args.length; arg_index++) {
+            string arg = args[arg_index];
+            unichar c = arg.get_char();
+            if (c == '-') {
+                arg = arg.next_char();
+                c = arg.get_char();
+                switch (c) {
+                case 'f':
+                    force_flat_file_store = 1;
+                    break;
+                default:
+                    bad_switch = true;
+                    break;
+                }
+            } else {
+                break; // arg is not a switch; presume it's the file
+            }
+        }
+        if (bad_switch || (arg_index != args.length - 1))
+        {
+            stdout.printf(_("Usage %s [-f] WEB_PROVISIONING_FILE\n -f: add identities to flat file store.\n"), args[0]);
+            return -1;
+        }
+        string webp_file = args[arg_index];
     
-    foreach (IdCard card in cards)
-    {
-      Moonshot.Error error;
-      string[] rules_patterns = {};
-      string[] rules_always_confirm = {};
-        
-      /* use temp arrays to workaround centos array property bug */
-      var rules = card.rules;
-      var services = card.services;
-      if (rules.length > 0)
-      {
-        int i = 0;
-        rules_patterns = new string[rules.length];
-        rules_always_confirm = new string[rules.length];
-        foreach (Rule r in rules)
+        if (!FileUtils.test(webp_file, FileTest.EXISTS | FileTest.IS_REGULAR))
         {
-          rules_patterns[i] = r.pattern;
-          rules_always_confirm[i] = r.always_confirm;
-          i++;
+            stdout.printf(_("%s does not exist\n"), webp_file);
+            return -1;
         }
-      }
+    
+        var webp = new Parser(webp_file);
+        webp.parse();
+        logger.trace(@"Have $(webp.cards.length) IdCards");
+        foreach (IdCard card in webp.cards)
+        {
 
-      Moonshot.install_id_card (card.display_name,
-                                card.username,
-                                card.password,
-                                card.issuer,
-                                rules_patterns,
-                                rules_always_confirm,
-                                services,
-                                card.trust_anchor.ca_cert,
-                                card.trust_anchor.subject,
-                                card.trust_anchor.subject_alt,
-                                card.trust_anchor.server_cert,
-                                force_flat_file_store,
-                                out error);
+            if (card == null) {
+                logger.trace(@"Skipping null IdCard");
+                continue;
+            }
 
-      if (error != null)
-      {
-        stderr.printf ("Error: %s", error.message);
-        continue;
-      }
-    }
+            Moonshot.Error error;
+            string[] rules_patterns = {};
+            string[] rules_always_confirm = {};
+        
+            /* use temp arrays to workaround centos array property bug */
+            var rules = card.rules;
+            string[] svcs = new string[card.services.size];
+            for (int i = 0; i < card.services.size; i++) {
+                svcs[i] = card.services[i];
+            }
+
+            if (rules.length > 0)
+            {
+                int i = 0;
+                rules_patterns = new string[rules.length];
+                rules_always_confirm = new string[rules.length];
+                foreach (Rule r in rules)
+                {
+                    rules_patterns[i] = r.pattern;
+                    rules_always_confirm[i] = r.always_confirm;
+                    i++;
+                }
+            }
+
+            logger.trace(@"Installing IdCard named '$(card.display_name)'");
+            Moonshot.install_id_card(card.display_name,
+                                     card.username,
+                                     card.password,
+                                     card.issuer,
+                                     rules_patterns,
+                                     rules_always_confirm,
+                                     svcs,
+                                     card.trust_anchor.ca_cert,
+                                     card.trust_anchor.subject,
+                                     card.trust_anchor.subject_alt,
+                                     card.trust_anchor.server_cert,
+                                     force_flat_file_store,
+                                     out error);
+
+            if (error != null)
+            {
+                stderr.printf("Error: %s", error.message);
+                continue;
+            }
+        }
     
-    return 0;
-  }
+        return 0;
+    }
 }
index 2c11172..e5279b9 100644 (file)
@@ -1,12 +1,21 @@
 <identities>
+    <identity>
+    <display-name>A Simple Card</display-name>
+    <user>user5</user>
+    <password></password>
+    <realm>painless-security.com</realm>
+    <services>
+    </services>
+  </identity>
+
   <identity>
     <display-name>Unique Name</display-name>
     <user>user1</user>
     <password></password>
-    <realm>foo.baz</realm>
+    <realm>painless-security.com</realm>
     <services>
-      <service>irc@jabber.project-moonshot.org</service>
-      <service>xmpp@jabber.project-moonshot.org</service>
+      <service>irc/painless-security.com</service>
+      <service>xmpp/painless-security.com</service>
     </services>
     <selection-rules>
       <rule>
         <always-confirm>true</always-confirm>
       </rule>
       <rule>
-        <pattern>imap@*moonshot.org</pattern>
+        <pattern>imap/*moonshot.org</pattern>
         <always-confirm>false</always-confirm>
       </rule>
     </selection-rules>
     <trust-anchor>
-      <ca-cert>ABCDEFGHIJKLMNOPQRSTUVWXYZ123455678910</ca-cert>
-      <subject>Foo</subject>
-      <subject-alt>Bar</subject-alt>
+     <!-- PEM encoded, minus header and footer -->
+      <ca-cert>MIIE9jCCA96gAwIBAgIJAJ6SVDCP6o2nMA0GCSqGSIb3DQEBBQUAMIGaMQswCQYD
+VQQGEwJVUzELMAkGA1UECBMCTUExDzANBgNVBAcTBk1hbGRlbjEaMBgGA1UEChMR
+UGFpbmxlc3MgU2VjdXJpdHkxLzAtBgkqhkiG9w0BCQEWIHBvc3RtYXN0ZXJAcGFp
+bmxlc3Mtc2VjdXJpdHkuY29tMSAwHgYDVQQDExdQYWlubGVzcyBTZWN1cml0eSwg
+SW5jLjAeFw0xNjA4MDExNjIxMDVaFw0xOTExMTQxNjIxMDVaMIGaMQswCQYDVQQG
+EwJVUzELMAkGA1UECBMCTUExDzANBgNVBAcTBk1hbGRlbjEaMBgGA1UEChMRUGFp
+bmxlc3MgU2VjdXJpdHkxLzAtBgkqhkiG9w0BCQEWIHBvc3RtYXN0ZXJAcGFpbmxl
+c3Mtc2VjdXJpdHkuY29tMSAwHgYDVQQDExdQYWlubGVzcyBTZWN1cml0eSwgSW5j
+LjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKPiSkw1y6zMJFjnoPjd
+5Bh9EA1NhQcoNxJAtgYEJtpH9a2tfjnXXncXpbIMIfMgv2VKRAxvKb+knCfSCRtU
+PM9i998+ZhJY9o6SSFomlMvdaClauPvBhQvQMmJmp1WINgMUHPpzsGlj04kkl7jw
+iK/oDxp1becikKc10Gr9W03aEJtOaiSqC45zeIgnz9GoQ2tJvz2DDBcddaaT1mSV
+n/lk4ahPC4XaJ08Jn1L6XkVVyDGD38Rwg7r1SFI7ByBFvvQh93Fa48Z7ik0I8s48
+U1euHak2gSJ4zfzLndvGy05qMjhRTlxQu+Rt1g7CS3CLcJqqYzWNrEJWpD8Wn7iA
+MIUCAwEAAaOCATswggE3MB0GA1UdDgQWBBR1qlvY7r2DqhHu5s+sCUPeqBcQuzCB
+zwYDVR0jBIHHMIHEgBR1qlvY7r2DqhHu5s+sCUPeqBcQu6GBoKSBnTCBmjELMAkG
+A1UEBhMCVVMxCzAJBgNVBAgTAk1BMQ8wDQYDVQQHEwZNYWxkZW4xGjAYBgNVBAoT
+EVBhaW5sZXNzIFNlY3VyaXR5MS8wLQYJKoZIhvcNAQkBFiBwb3N0bWFzdGVyQHBh
+aW5sZXNzLXNlY3VyaXR5LmNvbTEgMB4GA1UEAxMXUGFpbmxlc3MgU2VjdXJpdHks
+IEluYy6CCQCeklQwj+qNpzAMBgNVHRMEBTADAQH/MDYGA1UdHwQvMC0wK6ApoCeG
+JWh0dHA6Ly93d3cuZXhhbXBsZS5jb20vZXhhbXBsZV9jYS5jcmwwDQYJKoZIhvcN
+AQEFBQADggEBAB6J5Zxvq96SdIsfEajqU+pANBiA2VTZCpxfIMAKz8KfyzWzFvCM
+8epvYDliyOjw1zR9cYxhQqOcbPHrjLXheVvCePd3jCUOv+tt1Nw2gS2DiMuq37DO
+BZOTlPJ3m2NnvJVO3NjB2I+Pk9v3YlG6mkiVc9dNWgO20SqT2Y+KvHqA5Of8Cb/s
+uIBftctvGpIyEnqSmU7KB0nhIWe65Bsu60hjHHfX1qhJE7qGKbqNaHujssQ/SBXJ
+g7HUhtywv8z3TFoYW0MoBpKGM2Ojc9kQ8f0rYvUKTiD1UfjQoll/Io5xwKy7FXtn
+musuCxXeWkqDtw0clWg6vkf5Tb9v/JQ2PW0=</ca-cert>
+      <subject>Painless Security Server Certificate</subject>
       <!-- Or alternatively -->
-      <server-cert>ABCDEFGHIJKLMNOPQRSTUVWXYZ123455678910</server-cert>
+      <server-cert></server-cert>
     </trust-anchor>
   </identity>
   <identity>
     <display-name>Another Unique Name</display-name>
     <user>user2</user>
     <password></password>
-    <realm>foo.bar</realm>
+    <realm>painless-security.com</realm>
     <services>
-      <service>irc@jabber.project-moonshot.org</service>
-      <service>email@project-moonshot.org</service>
+      <service>irc/painless-security.com</service>
+      <service>email/painless-security.com</service>
     </services>
     <selection-rules>
       <rule>
-        <pattern>*@project-moonshot.org</pattern>
+        <pattern>*/painless-security.com</pattern>
         <always-confirm>true</always-confirm>
       </rule>
     </selection-rules>
     <trust-anchor>
-      <ca-cert>ABCDEFGHIJKLMNOPQRSTUVWXYZ123455678910</ca-cert>
-      <subject>Foo</subject>
-      <subject-alt>Bar</subject-alt>
-      <!-- Or alternatively -->
-      <server-cert>ABCDEFGHIJKLMNOPQRSTUVWXYZ123455678910</server-cert>
+      <ca-cert>
+      <!-- DER format, base64-encoded -->
+MIIE9jCCA96gAwIBAgIJANI5K4+KXvQyMA0GCSqGSIb3DQEBBQUAMIGaMQswCQYD
+VQQGEwJVUzELMAkGA1UECBMCTUExDzANBgNVBAcTBk1hbGRlbjEaMBgGA1UEChMR
+UGFpbmxlc3MgU2VjdXJpdHkxLzAtBgkqhkiG9w0BCQEWIHBvc3RtYXN0ZXJAcGFp
+bmxlc3Mtc2VjdXJpdHkuY29tMSAwHgYDVQQDExdQYWlubGVzcyBTZWN1cml0eSwg
+SW5jLjAeFw0xNjA4MzAxOTU4MjlaFw0xOTEyMTMxOTU4MjlaMIGaMQswCQYDVQQG
+EwJVUzELMAkGA1UECBMCTUExDzANBgNVBAcTBk1hbGRlbjEaMBgGA1UEChMRUGFp
+bmxlc3MgU2VjdXJpdHkxLzAtBgkqhkiG9w0BCQEWIHBvc3RtYXN0ZXJAcGFpbmxl
+c3Mtc2VjdXJpdHkuY29tMSAwHgYDVQQDExdQYWlubGVzcyBTZWN1cml0eSwgSW5j
+LjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ6tW6x+aO4n7VJu5W55
+DeNKn7+89oaaTgSRs6jg3C+RpTmXugPonh9+YRbuWpSNeru2eWGFNYFs01OjaDUw
+CxPcFDgF3xP/wAyCsI7WUgmkz8991PUGo9RxVbkDxMePHNaLGQVNz/+EJgK/Ycfy
+jYvenb/BGvcBmMftk2HsHio65ZsHsGMfW2Wcg/ehvKeDRZ3WR1ujhkzIFWdgdH3E
+u/yI2pHEfxQQ3PuYcQz43YZyIwhwzwnQG8qTK2jWkMF+wzRKRYfLdRD8nUUingvu
+IbngXLs71JqQHmbXzw1WTJClXtfF6R2VZuZ6PT8ZK1bDFPvTgnkUcAk70H+VnDM5
+K48CAwEAAaOCATswggE3MB0GA1UdDgQWBBQoFRKLJrZvkNmqvw8DNuTLPyru/DCB
+zwYDVR0jBIHHMIHEgBQoFRKLJrZvkNmqvw8DNuTLPyru/KGBoKSBnTCBmjELMAkG
+A1UEBhMCVVMxCzAJBgNVBAgTAk1BMQ8wDQYDVQQHEwZNYWxkZW4xGjAYBgNVBAoT
+EVBhaW5sZXNzIFNlY3VyaXR5MS8wLQYJKoZIhvcNAQkBFiBwb3N0bWFzdGVyQHBh
+aW5sZXNzLXNlY3VyaXR5LmNvbTEgMB4GA1UEAxMXUGFpbmxlc3MgU2VjdXJpdHks
+IEluYy6CCQDSOSuPil70MjAMBgNVHRMEBTADAQH/MDYGA1UdHwQvMC0wK6ApoCeG
+JWh0dHA6Ly93d3cuZXhhbXBsZS5jb20vZXhhbXBsZV9jYS5jcmwwDQYJKoZIhvcN
+AQEFBQADggEBAIN38UOXvwd89+a89V+/rjeN8JfpcjafLf0c2I3nex9OxBWji5bf
+cWTNfm1t9GpS4HhVT2tl5xdxyW5UrE9Q+oFadN0LxtRPbGU+Gvt4pVo8Pst6/2P8
+PA3/OA1UchIpZR6EWQQsws4esNLLwDbj48MkQdVCjpp1cVpFVmJUzYYFD9h9EMK2
+kxpGf5wfp9LI2A5/qACNQPBDfRsR+dcNBsBbmD1LulqputUPuKPXnVbHWL28VZUY
+PITHl2Ndbmk6znSu7ILef3CGyeXqTTj+Jo+5AQz3sneko6oMn8PqfRj1h0uUyykT
+lavp3iTNstQs/rdqdI+lPYMokDKXRSD3pK8=
+</ca-cert>
+      <subject>Painless Security Server Certificate</subject>
     </trust-anchor>
   </identity>
     <identity>
     <display-name>Yet Another Unique Name</display-name>
     <user>user3</user>
     <password></password>
-    <realm>foo.com</realm>
+    <realm>painless-security.com</realm>
     <services>
-      <service>irc@jabber.project-moonshot.org</service>
-      <service>email@project-moonshot.org</service>
+      <service>irc/painless-security.com</service>
+      <service>email/painless-security.com</service>
     </services>
     <trust-anchor>
-      <ca-cert>ABCDEFGHIJKLMNOPQRSTUVWXYZ123455678910</ca-cert>
-      <subject>Foo</subject>
-      <subject-alt>Bar</subject-alt>
-      <!-- Or alternatively -->
-      <server-cert>ABCDEFGHIJKLMNOPQRSTUVWXYZ123455678910</server-cert>
+      <server-cert>3838E17EC9A2A06D7B6030E3C5727E3466EAB4BB4159DCE7CF6297ADAFC8A56F</server-cert>
+    </trust-anchor>
+  </identity>
+    <identity>
+    <display-name>A Not Really Unique Name</display-name>
+    <user>user4</user>
+    <password></password>
+    <realm>painless-security.com</realm>
+    <services>
+      <service>ssh/painless-security.com</service>
+      <service>email/painless-security.com</service>
+    </services>
+    <trust-anchor>
+      <server-cert>4242424242424242424242424242424242424242424242424242424242424242</server-cert>
     </trust-anchor>
   </identity>
+
 </identities>