diff --git a/src/greeter.c b/src/greeter.c index 62b2100..93fff0b 100644 --- a/src/greeter.c +++ b/src/greeter.c @@ -44,7 +44,7 @@ #include #include "config.h" -#include "gresource/greeter-resources.h" +#include "greeter-resources.h" static GtkWidget *web_view; @@ -204,7 +204,7 @@ load_script(char *script) { static void page_loaded_handler(void) { load_script("/com/antergos/lightdm-webkit2-greeter/js/auto-binding-object.js"); - load_script("/com/antergos/lightdm-webkit2-greeter/js/heartbeat.js"); + load_script("/com/antergos/lightdm-webkit2-greeter/js/ThemeHeartbeat.js"); } diff --git a/src/gresource/greeter-resources.c b/src/gresource/greeter-resources.c deleted file mode 100644 index 40ae5ca..0000000 --- a/src/gresource/greeter-resources.c +++ /dev/null @@ -1,811 +0,0 @@ -#include - -#if defined (__ELF__) && ( __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)) -# define SECTION __attribute__ ((section (".gresource.greeter_resources"), aligned (8))) -#else -# define SECTION -#endif - -static const SECTION union { const guint8 data[5188]; const double alignment; void * const ptr;} greeter_resources_resource_data = { { - 0x47, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x28, 0x09, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x78, 0x4c, 0xe7, 0x14, - 0x03, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, - 0x03, 0x00, 0x4c, 0x00, 0x20, 0x01, 0x00, 0x00, - 0x28, 0x01, 0x00, 0x00, 0x73, 0xf8, 0xf6, 0x72, - 0x00, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, - 0x0c, 0x00, 0x76, 0x00, 0x38, 0x01, 0x00, 0x00, - 0xf5, 0x0a, 0x00, 0x00, 0xc2, 0xaf, 0x89, 0x0b, - 0x07, 0x00, 0x00, 0x00, 0xf5, 0x0a, 0x00, 0x00, - 0x04, 0x00, 0x4c, 0x00, 0xfc, 0x0a, 0x00, 0x00, - 0x00, 0x0b, 0x00, 0x00, 0x0c, 0xa6, 0xd8, 0x48, - 0x05, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, - 0x18, 0x00, 0x4c, 0x00, 0x18, 0x0b, 0x00, 0x00, - 0x20, 0x0b, 0x00, 0x00, 0x08, 0x98, 0x49, 0xe2, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x0b, 0x00, 0x00, - 0x16, 0x00, 0x76, 0x00, 0x38, 0x0b, 0x00, 0x00, - 0xdf, 0x13, 0x00, 0x00, 0xb4, 0xae, 0x96, 0xdb, - 0x02, 0x00, 0x00, 0x00, 0xdf, 0x13, 0x00, 0x00, - 0x09, 0x00, 0x4c, 0x00, 0xe8, 0x13, 0x00, 0x00, - 0xec, 0x13, 0x00, 0x00, 0x8c, 0x77, 0x10, 0x71, - 0x08, 0x00, 0x00, 0x00, 0xec, 0x13, 0x00, 0x00, - 0x09, 0x00, 0x76, 0x00, 0xf8, 0x13, 0x00, 0x00, - 0x34, 0x14, 0x00, 0x00, 0xd4, 0xb5, 0x02, 0x00, - 0xff, 0xff, 0xff, 0xff, 0x34, 0x14, 0x00, 0x00, - 0x01, 0x00, 0x4c, 0x00, 0x38, 0x14, 0x00, 0x00, - 0x3c, 0x14, 0x00, 0x00, 0xc4, 0x0d, 0xcd, 0xb1, - 0x03, 0x00, 0x00, 0x00, 0x3c, 0x14, 0x00, 0x00, - 0x04, 0x00, 0x4c, 0x00, 0x40, 0x14, 0x00, 0x00, - 0x44, 0x14, 0x00, 0x00, 0x6a, 0x73, 0x2f, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, - 0x74, 0x2e, 0x6a, 0x73, 0x00, 0x00, 0x00, 0x00, - 0xad, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2f, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x68, 0x65, - 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x2e, - 0x6a, 0x73, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a, - 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x32, 0x30, - 0x31, 0x36, 0x20, 0x41, 0x6e, 0x74, 0x65, 0x72, - 0x67, 0x6f, 0x73, 0x20, 0x44, 0x65, 0x76, 0x65, - 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x73, 0x20, 0x3c, - 0x64, 0x65, 0x76, 0x40, 0x61, 0x6e, 0x74, 0x65, - 0x72, 0x67, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, - 0x3e, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x69, 0x67, - 0x68, 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65, 0x62, - 0x6b, 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72, 0x65, - 0x65, 0x74, 0x65, 0x72, 0x2e, 0x0a, 0x20, 0x2a, - 0x0a, 0x20, 0x2a, 0x20, 0x6c, 0x69, 0x67, 0x68, - 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65, 0x62, 0x6b, - 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72, 0x65, 0x65, - 0x74, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x66, - 0x72, 0x65, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x77, 0x61, 0x72, 0x65, 0x3b, 0x20, 0x79, 0x6f, - 0x75, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x72, 0x65, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x6e, - 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x64, - 0x69, 0x66, 0x79, 0x0a, 0x20, 0x2a, 0x20, 0x69, - 0x74, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x47, 0x4e, 0x55, 0x20, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x6c, 0x20, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x20, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x20, 0x61, 0x73, 0x20, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x0a, 0x20, 0x2a, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x72, 0x65, 0x65, 0x20, - 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, - 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x3b, 0x20, 0x65, 0x69, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x33, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x2c, 0x20, 0x6f, 0x72, - 0x0a, 0x20, 0x2a, 0x20, 0x28, 0x61, 0x74, 0x20, - 0x79, 0x6f, 0x75, 0x72, 0x20, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x61, 0x6e, 0x79, - 0x20, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x20, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, - 0x20, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x6c, 0x69, - 0x67, 0x68, 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65, - 0x62, 0x6b, 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72, - 0x65, 0x65, 0x74, 0x65, 0x72, 0x20, 0x69, 0x73, - 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x68, 0x6f, 0x70, 0x65, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x2c, - 0x0a, 0x20, 0x2a, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x20, - 0x41, 0x4e, 0x59, 0x20, 0x57, 0x41, 0x52, 0x52, - 0x41, 0x4e, 0x54, 0x59, 0x3b, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x65, 0x76, - 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, - 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, - 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x79, 0x20, - 0x6f, 0x66, 0x0a, 0x20, 0x2a, 0x20, 0x4d, 0x45, - 0x52, 0x43, 0x48, 0x41, 0x4e, 0x54, 0x41, 0x42, - 0x49, 0x4c, 0x49, 0x54, 0x59, 0x20, 0x6f, 0x72, - 0x20, 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, - 0x20, 0x46, 0x4f, 0x52, 0x20, 0x41, 0x20, 0x50, - 0x41, 0x52, 0x54, 0x49, 0x43, 0x55, 0x4c, 0x41, - 0x52, 0x20, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, - 0x45, 0x2e, 0x20, 0x53, 0x65, 0x65, 0x20, 0x74, - 0x68, 0x65, 0x0a, 0x20, 0x2a, 0x20, 0x47, 0x4e, - 0x55, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x6c, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, - 0x65, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x2e, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, - 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x65, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x20, 0x61, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x53, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x37, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x3a, 0x0a, 0x20, - 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6c, 0x65, 0x67, - 0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, - 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x20, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x0a, 0x20, 0x2a, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x72, 0x69, 0x61, 0x6c, 0x20, 0x6f, 0x72, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x70, 0x72, 0x69, - 0x61, 0x74, 0x65, 0x20, 0x4c, 0x65, 0x67, 0x61, - 0x6c, 0x20, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, - 0x73, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x64, 0x0a, 0x20, 0x2a, 0x20, 0x62, - 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, - 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x2e, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a, - 0x20, 0x59, 0x6f, 0x75, 0x20, 0x73, 0x68, 0x6f, - 0x75, 0x6c, 0x64, 0x20, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x70, 0x79, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x47, 0x4e, 0x55, 0x20, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x6c, 0x20, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x0a, 0x20, 0x2a, 0x20, 0x61, 0x6c, - 0x6f, 0x6e, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x64, 0x6d, - 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x32, - 0x2d, 0x67, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, - 0x3b, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, - 0x2c, 0x20, 0x73, 0x65, 0x65, 0x20, 0x3c, 0x68, - 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, - 0x77, 0x2e, 0x67, 0x6e, 0x75, 0x2e, 0x6f, 0x72, - 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x73, 0x2f, 0x3e, 0x2e, 0x0a, 0x20, 0x2a, - 0x2f, 0x0a, 0x0a, 0x0a, 0x2f, 0x2a, 0x2a, 0x0a, - 0x20, 0x2a, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x72, 0x65, 0x65, 0x74, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x65, - 0x20, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, - 0x61, 0x74, 0x2e, 0x0a, 0x20, 0x2a, 0x0a, 0x20, - 0x2a, 0x20, 0x4f, 0x6e, 0x63, 0x65, 0x20, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, - 0x74, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x67, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x68, - 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, - 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, 0x0a, - 0x20, 0x2a, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, - 0x20, 0x35, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x2e, 0x20, 0x55, 0x70, 0x6f, 0x6e, - 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x68, 0x65, 0x61, - 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x20, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2c, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x72, 0x65, 0x65, - 0x74, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x0a, 0x20, 0x2a, 0x20, 0x74, 0x6f, 0x20, 0x65, - 0x6e, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x68, 0x65, - 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x20, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x2e, 0x0a, 0x20, - 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x49, 0x66, 0x20, - 0x61, 0x20, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, - 0x65, 0x61, 0x74, 0x20, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, - 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x72, 0x65, 0x65, 0x74, - 0x65, 0x72, 0x27, 0x73, 0x0a, 0x20, 0x2a, 0x20, - 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x74, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x20, 0x72, 0x75, 0x6e, 0x2c, 0x20, 0x69, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, - 0x73, 0x73, 0x75, 0x6d, 0x65, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, - 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, - 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x27, - 0x73, 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x0a, 0x20, 0x2a, 0x20, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x2e, - 0x0a, 0x20, 0x2a, 0x2f, 0x0a, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x20, 0x4c, 0x69, 0x67, 0x68, 0x74, - 0x44, 0x4d, 0x47, 0x72, 0x65, 0x65, 0x74, 0x65, - 0x72, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, - 0x61, 0x74, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x73, 0x20, 0x41, 0x75, 0x74, 0x6f, 0x42, - 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x0a, - 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x6f, 0x72, 0x28, 0x29, 0x20, 0x7b, - 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, - 0x27, 0x5f, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, - 0x62, 0x65, 0x61, 0x74, 0x27, 0x20, 0x69, 0x6e, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, - 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x09, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5f, 0x5f, - 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, - 0x74, 0x3b, 0x0a, 0x09, 0x09, 0x7d, 0x0a, 0x0a, - 0x09, 0x09, 0x73, 0x75, 0x70, 0x65, 0x72, 0x28, - 0x29, 0x3b, 0x0a, 0x0a, 0x09, 0x09, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x5f, 0x5f, 0x68, - 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, - 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x3b, - 0x0a, 0x09, 0x09, 0x74, 0x68, 0x69, 0x73, 0x2e, - 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, - 0x74, 0x20, 0x3d, 0x20, 0x27, 0x27, 0x3b, 0x0a, - 0x09, 0x09, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x68, - 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, - 0x73, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x0a, - 0x09, 0x09, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x5f, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x5f, - 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, - 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, - 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x68, 0x65, - 0x6d, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, - 0x62, 0x65, 0x61, 0x74, 0x28, 0x29, 0x20, 0x7b, - 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, - 0x27, 0x27, 0x20, 0x21, 0x3d, 0x3d, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x72, - 0x74, 0x62, 0x65, 0x61, 0x74, 0x20, 0x29, 0x20, - 0x7b, 0x0a, 0x09, 0x09, 0x09, 0x63, 0x6f, 0x6e, - 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, - 0x28, 0x20, 0x27, 0x48, 0x65, 0x61, 0x72, 0x74, - 0x62, 0x65, 0x61, 0x74, 0x20, 0x68, 0x61, 0x73, - 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, - 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x69, 0x6e, - 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x21, 0x27, 0x20, 0x29, 0x3b, 0x0a, 0x09, - 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x3b, 0x0a, 0x09, 0x09, 0x7d, 0x0a, 0x0a, 0x09, - 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, - 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x49, 0x6e, - 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x65, - 0x20, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, - 0x61, 0x74, 0x2e, 0x27, 0x29, 0x3b, 0x0a, 0x0a, - 0x09, 0x09, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, - 0x65, 0x6e, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x72, - 0x74, 0x62, 0x65, 0x61, 0x74, 0x28, 0x29, 0x3b, - 0x0a, 0x09, 0x09, 0x74, 0x68, 0x69, 0x73, 0x2e, - 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, - 0x74, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x74, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x28, - 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x6e, - 0x64, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, - 0x65, 0x61, 0x74, 0x2c, 0x20, 0x35, 0x30, 0x30, - 0x30, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x0a, - 0x09, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x68, 0x65, - 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x28, - 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x2b, 0x2b, - 0x74, 0x68, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, - 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x3b, - 0x0a, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, - 0x20, 0x74, 0x72, 0x75, 0x65, 0x20, 0x3d, 0x3d, - 0x3d, 0x20, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x64, - 0x6d, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, - 0x09, 0x09, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x28, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x68, 0x65, - 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x20, - 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x09, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x0a, 0x09, 0x09, - 0x7d, 0x0a, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, - 0x28, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x68, - 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, - 0x73, 0x20, 0x3c, 0x20, 0x35, 0x20, 0x29, 0x20, - 0x7b, 0x0a, 0x09, 0x09, 0x09, 0x63, 0x6f, 0x6e, - 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, - 0x28, 0x27, 0x53, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, - 0x65, 0x61, 0x74, 0x2e, 0x2e, 0x2e, 0x27, 0x29, - 0x3b, 0x0a, 0x09, 0x09, 0x7d, 0x0a, 0x0a, 0x09, - 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, - 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2e, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x73, 0x2e, 0x47, - 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x2e, 0x70, 0x6f, 0x73, - 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x28, 0x27, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, - 0x65, 0x61, 0x74, 0x27, 0x29, 0x3b, 0x0a, 0x09, - 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x0a, 0x6e, 0x65, - 0x77, 0x20, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x44, - 0x4d, 0x47, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, - 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, - 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x00, 0x00, 0x28, - 0x75, 0x75, 0x61, 0x79, 0x29, 0x63, 0x6f, 0x6d, - 0x2f, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x6c, 0x69, 0x67, 0x68, 0x74, 0x64, 0x6d, 0x2d, - 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x32, 0x2d, - 0x67, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, 0x2f, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x61, 0x75, 0x74, 0x6f, 0x2d, 0x62, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x2e, 0x6a, 0x73, 0x00, 0x00, - 0x97, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2f, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x2d, 0x62, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x2d, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x2e, 0x6a, 0x73, 0x0a, 0x20, 0x2a, 0x0a, - 0x20, 0x2a, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, - 0x32, 0x30, 0x31, 0x36, 0x20, 0x41, 0x6e, 0x74, - 0x65, 0x72, 0x67, 0x6f, 0x73, 0x20, 0x44, 0x65, - 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x73, - 0x20, 0x3c, 0x64, 0x65, 0x76, 0x40, 0x61, 0x6e, - 0x74, 0x65, 0x72, 0x67, 0x6f, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0x3e, 0x0a, 0x20, 0x2a, 0x0a, 0x20, - 0x2a, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6c, - 0x69, 0x67, 0x68, 0x74, 0x64, 0x6d, 0x2d, 0x77, - 0x65, 0x62, 0x6b, 0x69, 0x74, 0x32, 0x2d, 0x67, - 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, 0x2e, 0x0a, - 0x20, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x6c, 0x69, - 0x67, 0x68, 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65, - 0x62, 0x6b, 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72, - 0x65, 0x65, 0x74, 0x65, 0x72, 0x20, 0x69, 0x73, - 0x20, 0x66, 0x72, 0x65, 0x65, 0x20, 0x73, 0x6f, - 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x3b, 0x20, - 0x79, 0x6f, 0x75, 0x20, 0x63, 0x61, 0x6e, 0x20, - 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x69, 0x74, 0x20, - 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x79, 0x0a, 0x20, 0x2a, - 0x20, 0x69, 0x74, 0x20, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x47, 0x4e, 0x55, 0x20, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x4c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x61, 0x73, - 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x0a, 0x20, 0x2a, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x72, 0x65, - 0x65, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, - 0x72, 0x65, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x20, 0x65, - 0x69, 0x74, 0x68, 0x65, 0x72, 0x20, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x33, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2c, 0x20, - 0x6f, 0x72, 0x0a, 0x20, 0x2a, 0x20, 0x28, 0x61, - 0x74, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x61, - 0x6e, 0x79, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x72, - 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a, 0x20, - 0x6c, 0x69, 0x67, 0x68, 0x74, 0x64, 0x6d, 0x2d, - 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x32, 0x2d, - 0x67, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, 0x20, - 0x69, 0x73, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x6f, - 0x70, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, - 0x6c, 0x2c, 0x0a, 0x20, 0x2a, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, - 0x54, 0x20, 0x41, 0x4e, 0x59, 0x20, 0x57, 0x41, - 0x52, 0x52, 0x41, 0x4e, 0x54, 0x59, 0x3b, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, - 0x65, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, - 0x20, 0x77, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, - 0x79, 0x20, 0x6f, 0x66, 0x0a, 0x20, 0x2a, 0x20, - 0x4d, 0x45, 0x52, 0x43, 0x48, 0x41, 0x4e, 0x54, - 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x20, - 0x6f, 0x72, 0x20, 0x46, 0x49, 0x54, 0x4e, 0x45, - 0x53, 0x53, 0x20, 0x46, 0x4f, 0x52, 0x20, 0x41, - 0x20, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x55, - 0x4c, 0x41, 0x52, 0x20, 0x50, 0x55, 0x52, 0x50, - 0x4f, 0x53, 0x45, 0x2e, 0x20, 0x53, 0x65, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x2a, 0x20, - 0x47, 0x4e, 0x55, 0x20, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x6c, 0x20, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x64, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x2e, 0x0a, 0x20, 0x2a, 0x0a, - 0x20, 0x2a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, - 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x20, 0x74, 0x65, 0x72, 0x6d, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x20, - 0x61, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x53, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x37, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x3a, - 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6c, - 0x65, 0x67, 0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x74, - 0x69, 0x63, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x20, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x0a, - 0x20, 0x2a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x20, - 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x70, - 0x72, 0x69, 0x61, 0x74, 0x65, 0x20, 0x4c, 0x65, - 0x67, 0x61, 0x6c, 0x20, 0x4e, 0x6f, 0x74, 0x69, - 0x63, 0x65, 0x73, 0x20, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x64, 0x0a, 0x20, 0x2a, - 0x20, 0x62, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x74, 0x20, - 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x2a, 0x0a, - 0x20, 0x2a, 0x20, 0x59, 0x6f, 0x75, 0x20, 0x73, - 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x20, 0x61, 0x20, 0x63, 0x6f, - 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x47, 0x4e, 0x55, 0x20, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x50, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x0a, 0x20, 0x2a, 0x20, - 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x6c, 0x69, 0x67, 0x68, 0x74, - 0x64, 0x6d, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, - 0x74, 0x32, 0x2d, 0x67, 0x72, 0x65, 0x65, 0x74, - 0x65, 0x72, 0x3b, 0x20, 0x49, 0x66, 0x20, 0x6e, - 0x6f, 0x74, 0x2c, 0x20, 0x73, 0x65, 0x65, 0x20, - 0x3c, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6e, 0x75, 0x2e, - 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x3e, 0x2e, 0x0a, - 0x20, 0x2a, 0x2f, 0x0a, 0x0a, 0x0a, 0x2f, 0x2a, - 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x73, - 0x20, 0x60, 0x74, 0x68, 0x69, 0x73, 0x60, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x73, 0x2e, 0x0a, 0x20, - 0x2a, 0x20, 0x49, 0x74, 0x20, 0x69, 0x73, 0x20, - 0x6d, 0x61, 0x64, 0x65, 0x20, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x73, 0x63, 0x6f, - 0x70, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, - 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x67, 0x72, - 0x65, 0x65, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x6d, 0x65, 0x73, 0x20, 0x69, 0x66, 0x20, - 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2f, 0x77, - 0x61, 0x6e, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, - 0x2a, 0x2f, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x20, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x09, 0x2f, 0x2a, - 0x2a, 0x0a, 0x09, 0x20, 0x2a, 0x20, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, - 0x6e, 0x65, 0x77, 0x20, 0x7b, 0x40, 0x6c, 0x69, - 0x6e, 0x6b, 0x20, 0x41, 0x75, 0x74, 0x6f, 0x42, - 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x20, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x0a, - 0x09, 0x20, 0x2a, 0x2f, 0x0a, 0x09, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, - 0x72, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, - 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x5f, 0x62, - 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x68, 0x69, 0x73, - 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x0a, - 0x09, 0x2f, 0x2a, 0x2a, 0x0a, 0x09, 0x20, 0x2a, - 0x20, 0x42, 0x69, 0x6e, 0x64, 0x73, 0x20, 0x60, - 0x74, 0x68, 0x69, 0x73, 0x60, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, - 0x2e, 0x0a, 0x09, 0x20, 0x2a, 0x0a, 0x09, 0x20, - 0x2a, 0x20, 0x40, 0x70, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x0a, 0x09, 0x20, 0x2a, 0x2f, 0x0a, - 0x09, 0x5f, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, - 0x74, 0x68, 0x69, 0x73, 0x28, 0x29, 0x20, 0x7b, - 0x0a, 0x09, 0x09, 0x6c, 0x65, 0x74, 0x20, 0x65, - 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x5f, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, - 0x3d, 0x20, 0x5b, 0x27, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x27, - 0x2c, 0x20, 0x27, 0x5f, 0x5f, 0x62, 0x69, 0x6e, - 0x64, 0x5f, 0x74, 0x68, 0x69, 0x73, 0x27, 0x5d, - 0x3b, 0x0a, 0x0a, 0x09, 0x09, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x6f, - 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x64, 0x28, 0x20, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, - 0x09, 0x09, 0x09, 0x6c, 0x65, 0x74, 0x20, 0x5f, - 0x69, 0x73, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x65, 0x78, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x5f, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x2e, 0x66, - 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x28, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x20, 0x3d, 0x3e, 0x20, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x20, 0x3d, 0x3d, 0x3d, 0x20, - 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, - 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, - 0x29, 0x20, 0x3e, 0x20, 0x2d, 0x31, 0x2c, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x69, 0x73, 0x5f, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x3d, 0x20, - 0x27, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x27, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5b, 0x6d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x5d, 0x3b, 0x0a, 0x0a, - 0x09, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x20, 0x26, 0x26, 0x20, 0x21, - 0x5f, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x64, 0x3b, 0x0a, 0x09, 0x09, - 0x7d, 0x0a, 0x0a, 0x09, 0x09, 0x66, 0x6f, 0x72, - 0x20, 0x28, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x6f, - 0x62, 0x6a, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x3b, 0x20, 0x6f, 0x62, 0x6a, 0x3b, 0x20, - 0x6f, 0x62, 0x6a, 0x20, 0x3d, 0x20, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x67, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, - 0x65, 0x4f, 0x66, 0x28, 0x20, 0x6f, 0x62, 0x6a, - 0x20, 0x29, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, - 0x09, 0x09, 0x2f, 0x2f, 0x20, 0x48, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x6f, 0x75, 0x72, 0x20, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x73, 0x0a, 0x09, 0x09, 0x09, - 0x69, 0x66, 0x20, 0x28, 0x20, 0x27, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x27, 0x20, 0x3d, 0x3d, - 0x3d, 0x20, 0x6f, 0x62, 0x6a, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, - 0x72, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, - 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x62, - 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x09, 0x09, - 0x09, 0x7d, 0x0a, 0x0a, 0x09, 0x09, 0x09, 0x66, - 0x6f, 0x72, 0x20, 0x28, 0x20, 0x6c, 0x65, 0x74, - 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, - 0x6f, 0x66, 0x20, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x2e, 0x67, 0x65, 0x74, 0x4f, 0x77, 0x6e, - 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, 0x20, 0x6f, - 0x62, 0x6a, 0x20, 0x29, 0x20, 0x29, 0x20, 0x7b, - 0x0a, 0x09, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, - 0x28, 0x20, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x28, 0x20, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x2c, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x29, 0x20, 0x29, - 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, - 0x74, 0x68, 0x69, 0x73, 0x5b, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x5d, 0x20, 0x3d, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x5b, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x5d, 0x2e, 0x62, 0x69, 0x6e, 0x64, - 0x28, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x29, - 0x3b, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x7d, 0x0a, - 0x09, 0x09, 0x09, 0x7d, 0x0a, 0x09, 0x09, 0x7d, - 0x0a, 0x0a, 0x09, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, - 0x41, 0x75, 0x74, 0x6f, 0x42, 0x69, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x20, 0x3d, 0x20, 0x41, 0x75, 0x74, 0x6f, - 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3b, 0x0a, 0x00, - 0x00, 0x28, 0x75, 0x75, 0x61, 0x79, 0x29, 0x61, - 0x6e, 0x74, 0x65, 0x72, 0x67, 0x6f, 0x73, 0x2f, - 0x03, 0x00, 0x00, 0x00, 0x73, 0x74, 0x79, 0x6c, - 0x65, 0x2e, 0x63, 0x73, 0x73, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x0a, - 0x47, 0x74, 0x6b, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x20, 0x7b, 0x0a, 0x09, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, - 0x20, 0x23, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x3b, 0x0a, 0x7d, 0x0a, 0x00, 0x00, 0x28, 0x75, - 0x75, 0x61, 0x79, 0x29, 0x2f, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x63, 0x73, 0x73, 0x2f, - 0x06, 0x00, 0x00, 0x00 -} }; - -static GStaticResource static_resource = { greeter_resources_resource_data.data, sizeof (greeter_resources_resource_data.data), NULL, NULL, NULL }; -extern GResource *greeter_resources_get_resource (void); -GResource *greeter_resources_get_resource (void) -{ - return g_static_resource_get_resource (&static_resource); -} -/* - If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors and - destructors, in a sane way, including e.g. on library unload. If not you're on - your own. - - Some compilers need #pragma to handle this, which does not work with macros, - so the way you need to use this is (for constructors): - - #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA - #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor) - #endif - G_DEFINE_CONSTRUCTOR(my_constructor) - static void my_constructor(void) { - ... - } - -*/ - -#ifndef __GTK_DOC_IGNORE__ - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) - -#define G_HAS_CONSTRUCTORS 1 - -#define G_DEFINE_CONSTRUCTOR(_func) static void __attribute__((constructor)) _func (void); -#define G_DEFINE_DESTRUCTOR(_func) static void __attribute__((destructor)) _func (void); - -#elif defined (_MSC_VER) && (_MSC_VER >= 1500) -/* Visual studio 2008 and later has _Pragma */ - -#define G_HAS_CONSTRUCTORS 1 - -/* We do some weird things to avoid the constructors being optimized - * away on VS2015 if WholeProgramOptimization is enabled. First we - * make a reference to the array from the wrapper to make sure its - * references. Then we use a pragma to make sure the wrapper function - * symbol is always included at the link stage. Also, the symbols - * need to be extern (but not dllexport), even though they are not - * really used from another object file. - */ - -/* We need to account for differences between the mangling of symbols - * for Win32 (x86) and x64 programs, as symbols on Win32 are prefixed - * with an underscore but symbols on x64 are not. - */ -#ifdef _WIN64 -#define G_MSVC_SYMBOL_PREFIX "" -#else -#define G_MSVC_SYMBOL_PREFIX "_" -#endif - -#define G_DEFINE_CONSTRUCTOR(_func) G_MSVC_CTOR (_func, G_MSVC_SYMBOL_PREFIX) -#define G_DEFINE_DESTRUCTOR(_func) G_MSVC_DTOR (_func, G_MSVC_SYMBOL_PREFIX) - -#define G_MSVC_CTOR(_func,_sym_prefix) \ - static void _func(void); \ - extern int (* _array ## _func)(void); \ - int _func ## _wrapper(void) { _func(); g_slist_find (NULL, _array ## _func); return 0; } \ - __pragma(comment(linker,"/include:" _sym_prefix # _func "_wrapper")) \ - __pragma(section(".CRT$XCU",read)) \ - __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _wrapper; - -#define G_MSVC_DTOR(_func,_sym_prefix) \ - static void _func(void); \ - extern int (* _array ## _func)(void); \ - int _func ## _constructor(void) { atexit (_func); g_slist_find (NULL, _array ## _func); return 0; } \ - __pragma(comment(linker,"/include:" _sym_prefix # _func "_constructor")) \ - __pragma(section(".CRT$XCU",read)) \ - __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _constructor; - -#elif defined (_MSC_VER) - -#define G_HAS_CONSTRUCTORS 1 - -/* Pre Visual studio 2008 must use #pragma section */ -#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 -#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 - -#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ - section(".CRT$XCU",read) -#define G_DEFINE_CONSTRUCTOR(_func) \ - static void _func(void); \ - static int _func ## _wrapper(void) { _func(); return 0; } \ - __declspec(allocate(".CRT$XCU")) static int (*p)(void) = _func ## _wrapper; - -#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ - section(".CRT$XCU",read) -#define G_DEFINE_DESTRUCTOR(_func) \ - static void _func(void); \ - static int _func ## _constructor(void) { atexit (_func); return 0; } \ - __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor; - -#elif defined(__SUNPRO_C) - -/* This is not tested, but i believe it should work, based on: - * http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c - */ - -#define G_HAS_CONSTRUCTORS 1 - -#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 -#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 - -#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ - init(_func) -#define G_DEFINE_CONSTRUCTOR(_func) \ - static void _func(void); - -#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ - fini(_func) -#define G_DEFINE_DESTRUCTOR(_func) \ - static void _func(void); - -#else - -/* constructors not supported for this compiler */ - -#endif - -#endif /* __GTK_DOC_IGNORE__ */ - -#ifdef G_HAS_CONSTRUCTORS - -#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA -#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(resource_constructor) -#endif -G_DEFINE_CONSTRUCTOR(resource_constructor) -#ifdef G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA -#pragma G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(resource_destructor) -#endif -G_DEFINE_DESTRUCTOR(resource_destructor) - -#else -#warning "Constructor not supported on this compiler, linking in resources will not work" -#endif - -static void resource_constructor (void) -{ - g_static_resource_init (&static_resource); -} - -static void resource_destructor (void) -{ - g_static_resource_fini (&static_resource); -} diff --git a/src/gresource/greeter-resources.gresource.xml b/src/gresource/greeter-resources.gresource.xml index 5bcbef6..1f7629a 100644 --- a/src/gresource/greeter-resources.gresource.xml +++ b/src/gresource/greeter-resources.gresource.xml @@ -2,8 +2,8 @@ css/style.css - js/heartbeat.js - js/auto-binding-object.js + js/ThemeHeartbeat.js + js/ThemeUtils.js diff --git a/src/gresource/greeter-resources.h b/src/gresource/greeter-resources.h deleted file mode 100644 index a3271ed..0000000 --- a/src/gresource/greeter-resources.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef __RESOURCE_greeter_resources_H__ -#define __RESOURCE_greeter_resources_H__ - -#include - -extern GResource *greeter_resources_get_resource (void); -#endif diff --git a/src/gresource/js/heartbeat.js b/src/gresource/js/ThemeHeartbeat.js similarity index 95% rename from src/gresource/js/heartbeat.js rename to src/gresource/js/ThemeHeartbeat.js index 7557fc8..8ca58b0 100644 --- a/src/gresource/js/heartbeat.js +++ b/src/gresource/js/ThemeHeartbeat.js @@ -37,14 +37,14 @@ * subsequent checks run, it will assume that there has been an error in the theme's script * execution and fall back to the simple theme. */ -class GreeterHeartbeat { +class ThemeHeartbeat { constructor() { if ( '__heartbeat' in window ) { return __heartbeat; } - window.__heartbeat = GreeterUtils.bind_this(this); + window.__heartbeat = theme_utils.bind_this(this); this.heartbeat = ''; this.heartbeats = 0; @@ -82,4 +82,4 @@ class GreeterHeartbeat { } -new GreeterHeartbeat(); +new ThemeHeartbeat(); diff --git a/src/gresource/js/GreeterUtils.js b/src/gresource/js/ThemeUtils.js similarity index 83% rename from src/gresource/js/GreeterUtils.js rename to src/gresource/js/ThemeUtils.js index 502af1b..10fa3f1 100644 --- a/src/gresource/js/GreeterUtils.js +++ b/src/gresource/js/ThemeUtils.js @@ -30,15 +30,15 @@ /** * Provides various utility methods and can be used by greeter themes if needed. */ -class GreeterUtils { +class ThemeUtils extends __ThemeUtils { /** - * Binds `this` to `context` for all of a class's methods. + * Binds `this` to class, `context`, for all of the class's methods. * * @arg {function(new:*): Object} context An ES6 class (not an instance) with at least one method. * - * @return {Object} `context` with `this` bound to it for all of its methods. + * @return {function(new:*): Object} `context` with `this` bound to it for all of its methods. */ - static bind_this( context ) { + bind_this( context ) { let excluded_methods = ['constructor']; function not_excluded( _method, _context ) { @@ -63,5 +63,8 @@ class GreeterUtils { } } +window.theme_utils = new ThemeUtils(); -window.GreeterUtils = GreeterUtils; +/* -------->>> DEPRECATED! <<<-------- */ +window.greeterutil = window.theme_utils; +/* -------->>> DEPRECATED! <<<-------- */ diff --git a/src/gresource/js/WK2Greeter.js b/src/gresource/js/WK2Greeter.js deleted file mode 100644 index 156d0a2..0000000 --- a/src/gresource/js/WK2Greeter.js +++ /dev/null @@ -1,186 +0,0 @@ -/* - * WK2Greeter.js - * - * Copyright © 2016 Antergos Developers - * - * This file is part of lightdm-webkit2-greeter. - * - * lightdm-webkit2-greeter 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. - * - * lightdm-webkit2-greeter 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. - * - * The following additional terms are in effect as per Section 7 of the license: - * - * The preservation of all legal notices and author attributions in - * the material or in the Appropriate Legal Notices displayed - * by works containing it is required. - * - * You should have received a copy of the GNU General Public License - * along with lightdm-webkit2-greeter; If not, see . - */ - - - -/** - * @memberOf LightDM - */ -class WK2Greeter extends LightDMGreeter { - - constructor( bridge ) { - if ( 'lightdm' in window ) { - return window.lightdm; - } - - super(); - - window.lightdm = GreeterUtils.bind_this( this ); - this.bridge = bridge; - - return window.lightdm; - } - - get authentication_user() { - return this.bridge.get_string( 'authentication_user' ); - } - - get autologin_guest() { - return this.bridge.get_bool( 'autologin_guest' ); - } - - get autologin_timeout() { - return this.bridge.get_num( 'autologin_timeout' ); - } - - get autologin_user() { - return this.bridge.get_string( 'autologin_user' ); - } - - get can_hibernate() { - return this.bridge.get_bool( 'can_hibernate' ); - } - - get can_restart() { - return this.bridge.get_bool( 'can_restart' ); - } - - get can_shutdown() { - return this.bridge.get_bool( 'can_shutdown' ); - } - - get can_suspend() { - return this.bridge.get_bool( 'can_suspend' ); - } - - get default_session() { - return this.bridge.get_string( 'default_session' ); - } - - get has_guest_account() { - return this.bridge.get_bool( 'has_guest_account' ); - } - - get hide_users() { - return this.bridge.get_bool( 'hide_users' ); - } - - get hostname() { - return this.bridge.get_string( 'hostname' ); - } - - get in_authentication() { - return this.bridge.get_bool( 'in_authentication' ); - } - - get is_authenticated() { - return this.bridge.get_bool( 'is_authenticated' ); - } - - get language() { - return this.bridge.get_object( 'language' ); - } - - get languages() { - return this.bridge.get_objects( 'languages' ); - } - - get layout() { - return this.bridge.get_object( 'layout' ); - } - - set layout( value ) { - this._layout = value; - } - - get layouts() { - return this.bridge.get_objects( 'layouts' ); - } - - get lock_hint() { - return this.bridge.get_bool( 'lock_hint' ); - } - - get num_users() { - return this.users.length; - } - - get select_guest_hint() { - return this.bridge.get_bool( 'select_guest_hint' ); - } - - get select_user_hint() { - return this.bridge.get_string( 'select_user_hint' ); - } - - get sessions() { - return this.bridge.get_objects( 'sessions' ); - } - - get users() { - return this.bridge.get_objects( 'users' ); - } - - authenticate( username = null ) {} - - authenticate_as_guest() {} - - cancel_authentication() {} - - cancel_autologin() {} - - get_hint( name ) {} - - hibernate() { - return this._do_mocked_system_action('hibernate'); - } - - respond( response ) {} - - restart() { - return this._do_mocked_system_action('restart'); - } - - set_language( language ) {} - - shutdown() { - return this._do_mocked_system_action('shutdown'); - } - - start_session( session ) {} - - suspend() { - return this._do_mocked_system_action('suspend'); - } - -} - - -window.WK2Greeter = WK2Greeter; - - - diff --git a/src/gresource/js/base/LightDMGreeter.js b/src/gresource/js/base/LightDMGreeter.js deleted file mode 100644 index cf7bf86..0000000 --- a/src/gresource/js/base/LightDMGreeter.js +++ /dev/null @@ -1,303 +0,0 @@ -/* - * LightDMGreeter.js - * - * Copyright © 2016 Antergos Developers - * - * This file is part of lightdm-webkit2-greeter. - * - * lightdm-webkit2-greeter 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. - * - * lightdm-webkit2-greeter 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. - * - * The following additional terms are in effect as per Section 7 of the license: - * - * The preservation of all legal notices and author attributions in - * the material or in the Appropriate Legal Notices displayed - * by works containing it is required. - * - * You should have received a copy of the GNU General Public License - * along with lightdm-webkit2-greeter; If not, see . - */ - - -/** - * Base class for the greeter's JavaScript Theme API. Greeter themes will interact - * directly with an object derived from this class to facilitate the user log-in process. - * The greeter will automatically create an instance when it starts. - * The instance can be accessed using the global variable: `lightdm`. - * @memberOf LightDM - */ -class LightDMGreeter { - - constructor() { - if ( 'lightdm' in window ) { - return window.lightdm; - } - - window.lightdm = GreeterUtils.bind_this( this ); - - return window.lightdm; - } - - /** - * The username of the user being authenticated or {@link null} - * if there is no authentication in progress. - * @type {String|null} - * @readonly - */ - get authentication_user() {} - - /** - * Whether or not the guest account should be automatically logged - * into when the timer expires. - * @type {Boolean} - * @readonly - */ - get autologin_guest() {} - - /** - * The number of seconds to wait before automatically logging in. - * @type {Number} - * @readonly - */ - get autologin_timeout() {} - - /** - * The username with which to automatically log in when the timer expires. - * @type {String} - * @readonly - */ - get autologin_user() {} - - /** - * Whether or not the greeter can make the system hibernate. - * @type {Boolean} - * @readonly - */ - get can_hibernate() {} - - /** - * Whether or not the greeter can make the system restart. - * @type {Boolean} - * @readonly - */ - get can_restart() {} - - /** - * Whether or not the greeter can make the system shutdown. - * @type {Boolean} - * @readonly - */ - get can_shutdown() {} - - /** - * Whether or not the greeter can make the system suspend/sleep. - * @type {Boolean} - * @readonly - */ - get can_suspend() {} - - /** - * The name of the default session. - * @type {String} - * @readonly - */ - get default_session() {} - - /** - * Whether or not guest sessions are supported. - * @type {Boolean} - * @readonly - */ - get has_guest_account() {} - - /** - * Whether or not user accounts should be hidden. - * @type {Boolean} - * @readonly - */ - get hide_users() {} - - /** - * The system's hostname. - * @type {String} - * @readonly - */ - get hostname() {} - - /** - * Whether or not the greeter is in the process of authenticating. - * @type {Boolean} - * @readonly - */ - get in_authentication() {} - - /** - * Whether or not the greeter has successfully authenticated. - * @type {Boolean} - * @readonly - */ - get is_authenticated() {} - - /** - * The current language or {@link null} if no language. - * @type {LightDMLanguage|null} - * @readonly - */ - get language() {} - - /** - * A list of languages to present to the user. - * @type {LightDMLanguage[]} - * @readonly - */ - get languages() {} - - /** - * The currently active layout for the selected user. - * @type {LightDMLayout} - */ - get layout() {} - set layout( value ) {} - - /** - * A list of keyboard layouts to present to the user. - * @type {LightDMLayout[]} - * @readonly - */ - get layouts() {} - - /** - * Whether or not the greeter was started as a lock screen. - * @type {Boolean} - * @readonly - */ - get lock_hint() {} - - /** - * The number of users able to log in. - * @type {Number} - * @readonly - */ - get num_users() { - return this.users.length; - } - - /** - * Whether or not the guest account should be selected by default. - * @type {Boolean} - * @readonly - */ - get select_guest_hint() {} - - /** - * The username to select by default. - * @type {String} - * @readonly - */ - get select_user_hint() {} - - /** - * List of available sessions. - * @type {LightDMSession[]} - * @readonly - */ - get sessions() {} - - /** - * List of available users. - * @type {LightDMUser[]} - * @readonly - */ - get users() {} - - - /** - * Starts the authentication procedure for a user. - * - * @arg {String|null} username A username or {@link null} to prompt for a username. - */ - authenticate( username = null ) {} - - /** - * Starts the authentication procedure for the guest user. - */ - authenticate_as_guest() {} - - /** - * Cancel the user authentication that is currently in progress. - */ - cancel_authentication() {} - - /** - * Cancel the automatic login. - */ - cancel_autologin() {} - - /** - * Get the value of a hint. - * @arg {String} name The name of the hint to get. - * @returns {String|Boolean|Number|null} - */ - get_hint( name ) {} - - /** - * Triggers the system to hibernate. - * @returns {Boolean} {@link true} if hibernation initiated, otherwise {@link false} - */ - hibernate() { - return this._do_mocked_system_action('hibernate'); - } - - /** - * Provide a response to a prompt. - * @arg {*} response - */ - respond( response ) {} - - /** - * Triggers the system to restart. - * @returns {Boolean} {@link true} if restart initiated, otherwise {@link false} - */ - restart() { - return this._do_mocked_system_action('restart'); - } - - /** - * Set the language for the currently authenticated user. - * @arg {String} language The language in the form of a locale specification (e.g. 'de_DE.UTF-8') - * @returns {Boolean} {@link true} if successful, otherwise {@link false} - */ - set_language( language ) {} - - /** - * Triggers the system to shutdown. - * @returns {Boolean} {@link true} if shutdown initiated, otherwise {@link false} - */ - shutdown() {} - - /** - * Start a session for the authenticated user. - * @arg {String|null} session The session to log into or {@link null} to use the default. - * @returns {Boolean} {@link true} if successful, otherwise {@link false} - */ - start_session( session ) {} - - /** - * Triggers the system to suspend/sleep. - * @returns {Boolean} {@link true} if suspend/sleep initiated, otherwise {@link false} - */ - suspend() {} - -} - - -window.LightDMGreeter = LightDMGreeter; - - diff --git a/src/gresource/js/proxy.js b/src/gresource/js/proxy.js deleted file mode 100644 index 111a310..0000000 --- a/src/gresource/js/proxy.js +++ /dev/null @@ -1,43 +0,0 @@ -/* - * proxy.js - * - * Copyright © 2016 Antergos Developers - * - * This file is part of lightdm-webkit2-greeter. - * - * lightdm-webkit2-greeter 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. - * - * lightdm-webkit2-greeter 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. - * - * The following additional terms are in effect as per Section 7 of the license: - * - * The preservation of all legal notices and author attributions in - * the material or in the Appropriate Legal Notices displayed - * by works containing it is required. - * - * You should have received a copy of the GNU General Public License - * along with lightdm-webkit2-greeter; If not, see . - */ - - - -/** - * Factory function for creating proxy objects. - * - * @arg {Object} target The object to proxy. - * @arg {Object} handler The handler for `target`. - * - * @return {Object} An proxy object for `target`. - */ -let create_proxy = ( target, handler ) => { - -}; - - - diff --git a/src/gresource/meson.build b/src/gresource/meson.build deleted file mode 100644 index f69d706..0000000 --- a/src/gresource/meson.build +++ /dev/null @@ -1,7 +0,0 @@ -# =============================== # -# ------->>> GRESOURCE <<<------- # -# =============================== # - -gresource_headers = ['greeter-resources.h'] - -install_headers(gresource_headers, subdir : 'lightdm-webkit2-greeter') diff --git a/src/meson.build b/src/meson.build index 7fe2091..856c1a0 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,11 +1,24 @@ configure_file(output: 'config.h', configuration: conf) -gresource_sources = include_directories('gresource') -_ = get_option('with-webext-dir').split('"') -extdir = _[0] +with_webext_dir = get_option('with-webext-dir').split('"') +extdir = with_webext_dir[0] + +# ================================ # +# ------->>> GResources <<<------- # +# ================================ # + +gresources_dir = include_directories('gresource') +gnome = import('gnome') + +gresources = gnome.compile_resources( + 'greeter-resources', + 'gresource/greeter-resources.gresource.xml', + source_dir : 'gresource', + c_name : 'greeter_resources' +) # ======================================= # -# ------->>> Webkit2 Extension <<<------- # +# ------->>> WebKit2 Extension <<<------- # # ======================================= # webext_sources = ['webkit2-extension.c'] @@ -23,23 +36,12 @@ webext = library( # ------->>> Greeter <<<------- # # ============================= # -greeter_sources = ['gresource/greeter-resources.c', 'greeter.c'] +greeter_sources = [gresources, 'greeter.c'] greeter = executable( 'lightdm-webkit2-greeter', greeter_sources, dependencies: greeter_deps, - include_directories : gresource_sources, install: true ) - -# ===================================== # -# ------->>> Sub Directories <<<------- # -# ===================================== # - -subdirs = ['gresource'] - -foreach s : subdirs - subdir(s) -endforeach diff --git a/src/webkit2-extension.c b/src/webkit2-extension.c index a4dca34..b35e8ed 100644 --- a/src/webkit2-extension.c +++ b/src/webkit2-extension.c @@ -1495,7 +1495,7 @@ static const JSStaticFunction config_file_functions[] = { {NULL, NULL, 0}}; -static const JSStaticFunction greeter_util_functions[] = { +static const JSStaticFunction theme_utils_functions[] = { {"dirlist", get_dirlist_cb, kJSPropertyAttributeReadOnly}, {"txt2html", txt2html_cb, kJSPropertyAttributeReadOnly}, {NULL, NULL, 0}}; @@ -1560,13 +1560,13 @@ static const JSClassDefinition config_file_definition = { config_file_functions, /* Static functions */ }; -static const JSClassDefinition greeter_util_definition = { +static const JSClassDefinition theme_utils_definition = { 0, /* Version */ kJSClassAttributeNone, /* Attributes */ - "GreeterUtil", /* Class name */ + "__ThemeUtils", /* Class name */ NULL, /* Parent class */ NULL, /* Static values */ - greeter_util_functions, /* Static functions */ + theme_utils_functions, /* Static functions */ }; @@ -1584,7 +1584,7 @@ window_object_cleared_callback(WebKitScriptWorld *world, JSObjectRef gettext_object, lightdm_greeter_object, config_file_object, - greeter_util_object, + theme_utils_object, globalObject; gchar *lock_hint_message = "LockHint"; @@ -1600,7 +1600,7 @@ window_object_cleared_callback(WebKitScriptWorld *world, lightdm_layout_class = JSClassCreate(&lightdm_layout_definition); lightdm_session_class = JSClassCreate(&lightdm_session_definition); config_file_class = JSClassCreate(&config_file_definition); - greeter_util_class = JSClassCreate(&greeter_util_definition); + greeter_util_class = JSClassCreate(&theme_utils_definition); gettext_object = JSObjectMake(jsContext, gettext_class, NULL); JSObjectSetProperty(jsContext, @@ -1626,18 +1626,14 @@ window_object_cleared_callback(WebKitScriptWorld *world, kJSPropertyAttributeNone, NULL); - greeter_util_object = JSObjectMake(jsContext, greeter_util_class, NULL); + theme_utils_object = JSObjectMake(jsContext, greeter_util_class, NULL); JSObjectSetProperty(jsContext, globalObject, - JSStringCreateWithUTF8CString("greeter_util"), - greeter_util_object, + JSStringCreateWithUTF8CString("__ThemeUtils"), + theme_utils_object, kJSPropertyAttributeNone, NULL); - /* Keep previous variable name for backwards compatibility. Will remove at later date. */ - command = JSStringCreateWithUTF8CString("window.greeterutil = greeter_util;"); - JSEvaluateScript(jsContext, command, NULL, NULL, 0, NULL); - dom_document = webkit_web_page_get_dom_document(web_page); dom_window = webkit_dom_document_get_default_view(dom_document);