← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~raoul-snyman/openlp/songmaintenance into lp:openlp

 

Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/songmaintenance into lp:openlp.

Requested reviews:
    openlp.org Core (openlp-core)
-- 
https://code.launchpad.net/~raoul-snyman/openlp/songmaintenance/+merge/9264
Your team openlp.org Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/lib/rendermanager.py'
--- openlp/core/lib/rendermanager.py	2009-07-15 17:33:31 +0000
+++ openlp/core/lib/rendermanager.py	2009-07-23 20:20:49 +0000
@@ -53,7 +53,10 @@
         self.screen_list = screen_list
         self.theme_manager = theme_manager
         self.displays = len(screen_list)
-        self.current_display = screen_number
+        if (screen_number + 1) > len(screen_list):
+            self.current_display = 0
+        else:
+            self.current_display = screen_number
         self.renderer = Renderer()
         self.calculate_default(self.screen_list[self.current_display][u'size'])
         self.theme = u''

=== modified file 'openlp/core/resources.py'
--- openlp/core/resources.py	2009-07-18 05:43:50 +0000
+++ openlp/core/resources.py	2009-07-24 22:13:40 +0000
@@ -2,7 +2,7 @@
 
 # Resource object code
 #
-# Created: Sat Jul 18 06:20:33 2009
+# Created: Fri Jul 24 23:28:28 2009
 #      by: The Resource Compiler for PyQt (Qt v4.5.0)
 #
 # WARNING! All changes made in this file will be lost!
@@ -52405,6 +52405,569 @@
 \x1f\x00\xf7\xed\xe4\x0a\x00\x92\x24\x02\x70\x1c\xc7\x3f\xb4\x2c\
 \x21\xd5\x80\x04\x87\x89\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\
 \x60\x82\
+\x00\x00\x06\xba\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x37\x5c\x00\x00\x37\x5c\
+\x01\xcb\xc7\xa4\xb9\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\
+\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x06\x2c\x49\x44\x41\x54\x78\
+\xda\x85\x57\x4b\x6f\x5d\x35\x10\xfe\x6c\x9f\x73\xef\xcd\x0d\x6d\
+\x4a\x13\xa0\xb4\x85\x22\xa4\x0a\x15\x54\x45\xac\x10\x12\x08\x84\
+\xd4\x05\x88\x25\x0b\x24\xfe\x01\xac\xf8\x01\xa0\xee\x58\xb1\x62\
+\xcb\x0a\x21\xf1\x03\x50\x25\xda\x45\xc5\x86\x3d\x0b\xba\x80\x4a\
+\x05\xa1\xf0\x08\xaf\xa4\x49\x7b\x1f\xe7\xd8\x1e\x66\xc6\x76\x7d\
+\x4a\x6f\x84\x73\x27\x33\xb6\xe7\x7a\xbe\xf9\x66\xec\x28\xee\xf4\
+\xe9\xd3\x38\x3c\x3c\xc4\x60\x4c\x58\x36\x58\x46\x49\x5c\x03\x9c\
+\x62\xf1\x2d\x0b\x6b\x88\xb8\x2c\x36\x8b\x19\x08\xaa\xfd\x3f\x63\
+\x85\xd3\xda\xf9\xf3\xe7\xaf\x5d\xbc\x78\xf1\xd9\x48\x34\x03\x11\
+\xb5\xa3\x49\xb8\xf0\xf2\x5b\xd4\x8c\xa6\x32\xa5\x48\xac\x20\x26\
+\xd8\x56\x2d\x4a\xb5\xae\x89\x11\xd5\x4f\x16\x28\x04\x22\xe7\x4c\
+\xb8\xb9\xb3\x37\xbd\xf5\xdb\xe1\xc7\x87\x8b\xf8\xe9\xfa\xa4\xb5\
+\x4d\xeb\xe2\xd9\xe3\x06\xcd\x00\x08\xb1\x3c\xb9\xbd\xbd\xfd\xe2\
+\xe5\xcb\x97\xdd\x6c\x36\x7b\xb8\x69\x1a\x63\xad\xc5\x72\x31\x07\
+\x62\x0f\x63\x1d\x1a\xe7\xc0\x6b\x59\x8c\x6a\x63\x44\x0c\xc0\x9a\
+\x83\xe9\xdc\x1a\xd6\xbc\x27\x40\x4e\x1e\x9b\x84\xcf\xaf\x7d\xe7\
+\x3e\xf8\x62\xff\xf5\xfd\x1f\x7f\xfe\xf4\xa1\x53\xc7\x71\x7c\x3a\
+\x46\x87\x33\x05\x40\x1d\x57\xaf\x5e\xa5\x9d\x9d\x1d\xe2\x03\x59\
+\x2c\x75\x8b\x19\xb6\x5f\x7a\x03\x4f\x5c\x7c\x0d\x2d\x1d\xe0\x60\
+\x21\xe9\x17\x6f\xa5\x43\x83\x34\x96\xc5\x01\x77\x97\xa4\xc1\xa9\
+\x78\x90\xac\x9b\xb8\x7f\xb7\x77\xcf\x9d\x3b\xb9\xf9\x8d\x79\x05\
+\xfe\x54\x1b\x5f\x98\x7c\x85\x59\xff\x17\xcc\x7f\x18\x78\x86\xe5\
+\x46\xae\x2f\x19\x4e\x91\x62\xc4\xf6\x9b\xef\xe3\xd5\x77\x3e\x44\
+\xe3\x6f\xe3\x60\x69\x70\x73\xb7\xc7\xb8\x31\x12\xb8\x7c\x51\x83\
+\x3e\xfd\x88\xc3\xce\x5e\xc0\xa2\xe7\xf5\xb2\x91\x34\x59\x76\x98\
+\xb8\xb8\xa0\xe5\xde\x05\x5e\xf9\x09\xb6\x15\x8e\xe8\x01\x06\x84\
+\xca\xe9\x74\xaa\x76\xef\x03\xc2\x72\x81\x3b\xbd\xc3\x1f\xfb\x73\
+\x9c\x70\x4b\x6c\x4e\x5b\xfc\xd2\x78\x84\xc0\x28\x15\xbe\x91\x60\
+\x32\x67\x1f\x8f\xc7\xd6\x2d\x83\x88\x70\x16\x8a\x22\xbb\xe8\xe8\
+\x83\x89\x66\xb4\x15\x32\x37\xfa\xb1\xb8\x7f\x28\x73\xce\x39\x95\
+\xb2\x30\x19\xb5\xf8\x67\x06\xec\xb1\x58\x8e\xfa\xf8\x46\x8b\x00\
+\xe9\x01\x07\x93\x7b\xa0\xe5\x1a\xdc\xed\x0c\x3c\x59\xac\x4f\x1c\
+\x08\xa5\x2f\x74\x5f\xfd\x9c\x35\xc1\x22\x78\xab\xdf\x8e\xcc\x5a\
+\xc4\x4a\x06\xda\xb6\x05\x53\xaf\xb6\x93\x33\x5c\x83\x11\x53\xfe\
+\xf7\x9d\x88\xb5\xfd\x88\xa7\x36\x1d\x76\x0f\x22\x22\x25\xea\x65\
+\xb0\xd2\xac\x6f\xcf\x09\x1b\x6b\x06\x4b\x2f\x7b\xba\x93\x3f\x3a\
+\x02\x5b\x7e\x18\xcf\xae\x00\x40\xdc\xfd\x70\x2c\xda\xe9\x4e\x18\
+\x69\x85\x68\x06\x61\xf1\x0b\x03\xd8\xe7\x20\xe7\x36\x1b\x04\x32\
+\x92\x95\x82\x50\xb0\xd6\x0a\xcd\xf0\xd1\x60\x6d\x64\x15\x95\x4d\
+\xfb\x64\x8c\x6a\x6f\xad\x88\xae\x13\xcf\x1f\x00\xa0\x8e\x0c\x80\
+\xc5\xe5\x43\x59\x9a\x56\x6d\xf9\x19\xb7\x16\x3f\xec\x46\x3d\x78\
+\x7d\x6c\x41\xb8\x17\xe4\x9e\xff\xbc\xe7\xb2\xb5\x65\x4d\x75\xb9\
+\x96\x5e\x41\x94\x35\xfb\x20\x00\xcd\xba\xd1\xec\x5d\x72\xd2\x7e\
+\xe0\xb9\x96\xb3\x7e\xf1\x8f\x43\x66\xe1\xa4\x82\xac\x41\x32\x80\
+\x10\xe5\x86\x28\x63\x65\xbf\x80\xf4\x6c\x07\x99\x67\x59\xd9\x03\
+\x0a\x80\x88\xb4\x71\x2c\x59\x2d\x47\x09\xa2\xfb\x0c\x66\xd6\x01\
+\x5d\x00\x4e\x1d\xb7\xd8\x65\x30\xce\xd6\x76\x77\x06\x5a\x8a\x91\
+\x03\x82\xf6\x49\x3e\x3b\xd5\x3f\xa0\x8e\xa3\x19\x70\xac\x4d\x65\
+\x20\x07\xaf\xd2\x3a\x61\x01\x5c\x12\x83\x63\x13\x23\xa5\x18\x66\
+\xab\x0d\x0a\xf1\x63\x5b\x7e\x6c\x7a\x2d\x7b\xde\x0b\x2c\x95\x81\
+\xa3\x7a\xc0\x7b\x9f\x6f\x81\x00\x68\x87\x0c\x14\xa6\x34\xbb\x3b\
+\x4b\x60\x3a\xb2\xfa\xe2\x75\x5e\x6f\x5d\xdd\x8f\xe9\x75\xec\x83\
+\xce\x85\x1f\x69\x40\x65\x20\xe6\xe7\xb4\x59\xc1\x80\xdc\x82\xfa\
+\xd6\x0b\x80\x26\x31\x40\x19\x79\x79\x5d\x5c\x2e\xc5\xc6\x1a\x94\
+\x11\x8d\x20\xc1\xf2\x3e\xd5\xeb\x59\xae\x63\xdf\x87\x40\x3d\x27\
+\x37\x1d\x8f\x41\x47\x00\xd0\x47\xa8\xfc\x91\x61\x53\xcb\xa0\x71\
+\x85\x46\xa5\xb4\xbe\x80\x42\xf5\xd2\x0b\x00\x94\xc8\xba\x56\xbc\
+\x08\x0a\x80\x22\xa9\x7f\xdf\xf2\x59\x22\xca\xc8\x0a\x00\x1a\xbc\
+\xf4\x80\x76\xf5\xa0\x07\xa8\x94\x60\x00\xa0\x31\x09\xc0\x58\x4f\
+\x92\xce\x4f\x94\x93\x06\x2c\x49\x09\x12\x9d\xf4\xf9\xfb\xf2\x9b\
+\x56\x95\x80\xca\x9f\x5a\xd4\x86\x52\x00\xb5\x01\x2b\x03\xf9\x93\
+\x4a\xd1\x1b\x3c\x34\x22\xd1\x0a\xa6\x0b\xc9\xab\xfc\xb6\xc9\xe8\
+\x29\xad\x69\x42\x91\x68\xe5\x35\xcc\xf4\x9b\x62\xb3\xb8\x6c\x17\
+\x06\x44\x0f\xbf\x93\x32\x5e\x72\xd0\xb5\x16\x58\x78\x01\x41\xe8\
+\x0b\x08\x93\x35\xe3\x12\x00\xa5\x09\xed\x8a\x5b\x50\xea\x3f\x04\
+\x23\x3d\xa0\xce\x85\x15\x94\x03\x2b\x02\xcd\x30\x50\x92\xb1\x96\
+\xc1\x72\xad\x75\x9e\x00\x27\xd5\x1b\x2a\xf5\x63\xcb\x1c\x71\x0b\
+\x06\x74\x4b\xf6\xb9\x1f\x90\x7a\xa0\x80\xab\xb1\xcb\x4c\x7d\x7c\
+\x4c\x00\x1a\x0d\xce\x19\x5a\xc9\xf6\x5e\xb9\xba\xf2\xc5\x54\x8a\
+\xa3\x7b\xa0\x32\xe0\x06\x25\x28\x0c\xd4\xe0\x25\x9d\x62\xa8\x4f\
+\xcf\x20\x46\x8e\x60\x48\x1f\x24\x7d\x9e\x33\xf5\x5d\x52\x35\x81\
+\x46\x0e\x24\xa2\x21\x03\xc3\x86\xd3\xec\x91\x7d\xd4\x4b\x7c\x4d\
+\x0e\x4a\x15\x45\x59\x33\xaa\x85\x09\xab\x2c\x18\xd2\xfe\x20\x6b\
+\x2a\x80\xe1\xf8\xff\x1e\xe0\x39\xf4\x55\x8b\x20\x16\x23\x27\x29\
+\x06\x4a\x6c\x90\x68\x01\xa6\x65\xcd\x3a\xed\xf7\x5e\x12\x10\xf7\
+\x82\xdb\x64\x00\x54\xba\xf3\x68\x06\x74\xdf\xca\x01\x4e\xd3\x8b\
+\x91\xd4\xcf\xc4\x28\x5b\x35\x78\x9a\x48\xc0\xa2\x59\xd5\x3e\x8b\
+\x41\x4a\x47\xa5\x66\x3d\x6a\x28\xdd\x57\x00\x83\x41\xc2\x40\xa1\
+\xbf\xf4\x00\x01\x95\x81\x42\xbf\x36\x71\x0d\x34\xb8\x6e\xd5\x27\
+\xeb\xa8\x6b\x0a\xae\xab\xf1\x53\x6f\x54\x00\xb5\x04\x54\x4a\x60\
+\xf5\x29\x4e\x0c\x84\x18\x04\x05\x2f\xd6\xa6\xab\x99\x8a\x1e\x06\
+\x1d\x82\xb9\xcf\xb7\xbb\x2f\x5b\x5a\x01\x20\x72\x96\x5d\xd7\xc1\
+\x7b\xaf\x76\xf0\x01\x9e\x03\x9b\x90\x19\xa0\x1a\x58\x55\xb5\x8f\
+\x06\x54\x81\xf5\xa9\xa1\x53\x19\xbf\x78\xef\x2c\xec\xd6\xd6\xd6\
+\x30\xfe\x41\xdf\xf7\x87\x3c\x30\x9f\xcf\x89\x6d\x9a\x2f\x92\xf6\
+\x21\x50\x60\xf1\x22\x5e\xc4\xb3\xed\x93\x1d\x92\xdd\x8b\xad\x3a\
+\xad\xf7\xba\xef\x8b\x96\x44\x16\xa2\xbb\xc5\x1c\x6f\xbf\x7b\x26\
+\xb1\xbc\xbb\xbb\x2b\x9a\xae\x5f\xbf\x8e\x2b\x57\xae\xfc\xcd\xc1\
+\x6e\x09\x80\xc5\x62\x21\x81\xcd\x7c\xbe\x30\x5e\x12\x37\x8d\x09\
+\x70\x26\x1a\x91\x46\x25\x64\x1d\xa1\x3a\xed\xc1\xe5\x3d\xb5\xab\
+\x86\x43\xef\x05\x8e\x01\x35\x13\x7c\xf6\xc9\xaf\xe9\x1a\x32\xcd\
+\x96\xf5\xf8\xd2\xa5\x4b\xc7\x02\x8f\x8d\x8d\x8d\x6f\xb9\x04\xcf\
+\x33\x80\xdb\x81\x69\x8f\x7e\x61\xf7\x77\x7f\xc4\xb2\x39\x61\x62\
+\x3f\x23\x63\x6c\xf9\xdf\x8c\x4a\x29\x07\xaf\xa1\x32\x5c\xcb\x60\
+\x88\x15\x69\x97\x12\xb9\x3f\xbf\xff\xfa\xf7\x1b\x5f\x7e\xf4\xe8\
+\x68\xfd\x24\xba\xbb\xff\x1c\xb2\xc3\xd2\x94\xde\x63\x69\xb3\x8c\
+\x59\xb6\xf2\x1b\x21\xe0\x46\xb6\x19\xb5\x32\xa7\x18\x2c\x11\x03\
+\x26\x1a\xfe\xfb\x5d\xc0\xc4\xac\x43\x16\x9f\xa5\xcf\x32\x93\x12\
+\x67\x9f\x2e\xaf\x85\x7f\x01\x1c\x52\xf4\x0b\xb6\xf2\xad\xef\x00\
+\x00\x00\x22\x7a\x54\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\
+\x00\x78\xda\x2b\x2f\x2f\xd7\xcb\xcc\xcb\x2e\x4e\x4e\x2c\x48\xd5\
+\xcb\x2f\x4a\x07\x00\x36\xd8\x06\x58\x10\x53\xca\x5c\x00\x00\x00\
+\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x02\x9c\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\
+\x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x19\x49\x44\
+\x41\x54\x78\xda\x85\x90\x49\x68\x14\x41\x14\x86\xff\xea\x9e\x25\
+\x8a\xcb\x55\xec\x0e\x18\x15\x45\x04\x49\xbc\xc8\xe0\x41\x2f\x7a\
+\x17\x04\x15\x02\x62\xf0\x62\x60\xd4\x44\xe3\x32\x78\xc8\x21\x46\
+\x23\x18\x84\x0c\x06\xa2\x04\xdc\xc0\x60\xf4\x22\xb8\x44\x51\xf0\
+\x20\x9e\x3c\xe8\x68\x8f\x81\xc0\x08\x26\xb8\x1c\x9c\xc1\xc1\xb1\
+\xab\x7b\xe6\x59\xaf\xe8\x4a\x93\x31\xe0\x6b\xfe\xfe\xbb\xaa\xfa\
+\xff\xde\xa3\x04\x11\x81\x4b\x08\xd1\xaa\xcc\x51\xd2\x4b\xfc\xbf\
+\x38\x38\x9b\x30\x2b\xd7\x75\xd7\x7d\x9a\x9e\x7e\xee\xff\xf1\x45\
+\x84\x60\x28\xf4\xc3\x3b\xfa\x3b\xf6\x44\x32\x49\x4b\x5a\x5a\x76\
+\xcc\x03\x6c\xdb\x16\x81\x0c\xec\x5f\xd5\x2a\x2c\x4b\x28\xd9\x91\
+\x5b\x5a\xa2\x19\x90\x48\x10\xaf\x0c\xc0\x8c\xcd\x3f\x2b\x98\xc5\
+\x00\x76\x0e\x6a\x59\x91\x1b\x00\x7f\x73\xc5\x80\x68\x53\x4d\x12\
+\x01\x22\x71\xc0\x4c\x60\x14\x03\x84\xb5\x00\x60\x09\x1d\xd6\x10\
+\x15\x62\xf9\x52\xe2\xfa\xd8\x28\x3a\xf7\xef\x31\xfb\xec\x8b\x4f\
+\xc0\xdd\xb8\xab\xd1\xc3\xbb\x03\x08\xfc\x00\xdb\x37\x12\x66\xbc\
+\x65\xb0\xe3\x49\xf4\x79\xf3\x1d\x98\x03\x0d\x7a\x32\x39\x88\x95\
+\xfe\x63\xf4\x8d\xfc\xc4\xb1\x4e\x07\x5d\x47\xf2\x26\x64\xba\xeb\
+\xe2\x9d\xb8\x22\xc0\xd4\x83\x21\x2c\xad\x4d\xa1\x67\xf8\x3b\xf2\
+\xa7\x56\x23\x10\x2e\xda\xdb\x3b\x4c\x03\x33\x05\x2d\x7a\x89\x4f\
+\xef\x0f\x61\xb9\x7c\x81\xde\x2b\xdf\x30\x76\x6e\x0d\xbc\xaf\x0e\
+\x0e\x9f\xb8\x65\xba\xce\x3b\x11\xe1\x1f\xc0\xa3\x89\x0b\x58\x11\
+\xbe\xc6\xf1\xcb\x5f\x30\x7a\xd6\xc1\xc7\x39\x35\x7a\xef\x6d\xa4\
+\xd3\xe9\x66\x80\xa9\x18\xb0\xb5\xed\x47\x57\xfa\xf7\x33\x74\x5f\
+\x9c\xc1\x78\x7f\x1b\x3e\xcc\xb9\x38\xd4\x73\x03\xa9\x54\x0a\xa6\
+\x4a\xa5\x12\xa4\x94\xa8\xd7\xeb\x0c\x6d\x00\x90\x7a\x94\xee\x7d\
+\xad\xc3\xf7\xee\x8c\xf8\x9b\x37\xad\xa5\x97\xe3\xdb\x28\x7f\x7e\
+\x2f\x55\xab\x55\x0a\x82\x80\xc2\x30\x24\x15\xa0\x46\xa3\x41\x85\
+\x42\x41\x7b\xad\x56\xa3\x5c\xee\xcc\x4d\x00\x36\x83\xb3\x1d\x1b\
+\xf0\x7e\xf7\xae\x9d\xe1\xbb\xb7\xaf\x28\x3f\x78\x80\x2a\x95\x0a\
+\xa9\x4e\x0b\x00\x5c\x0c\xe0\x70\xdf\xe9\x93\x13\x3c\xbd\xb9\x87\
+\x55\x42\x88\xd9\x2d\xeb\x53\x9f\xaf\x5e\x3a\xd8\xdc\xd9\x74\xd7\
+\xf2\x3c\x4f\x66\x8f\x66\xaf\x01\x48\x72\x98\x25\xf8\x95\xc9\x64\
+\x9c\x62\xb1\x98\x2b\x97\xcb\x93\x00\x42\x25\x11\x09\xec\x46\xd1\
+\xd9\x1b\x95\x91\x88\xea\x2f\xfb\x5c\xf8\xbd\xf0\xc1\x4d\x21\x00\
+\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x02\xe8\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\x01\
+\x3a\xec\xe3\xe2\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x07\x16\
+\x12\x1e\x22\x20\x34\x3a\x31\x00\x00\x02\x68\x49\x44\x41\x54\x38\
+\xcb\x85\x90\x4b\x48\x54\x51\x18\xc7\x7f\xe7\xdc\x73\xee\x9d\x3b\
+\x5a\x93\x2f\xc2\x47\xa2\x3d\xa0\x22\x51\x2c\x48\xa3\x17\x18\x46\
+\x11\xb5\x29\x42\xd4\x1e\x86\x94\xd0\x32\x23\x88\x5a\x56\x8b\x08\
+\x37\x19\x84\x2d\x0a\x0b\x2a\x88\xa2\x08\xa2\x45\x24\xe4\x26\x22\
+\x51\x83\x32\x47\x8a\x92\x5e\x4c\x3a\xa2\x33\x77\xc6\x99\x7b\x5a\
+\x58\x91\x4d\x8f\xdf\xf2\xe3\xff\xfd\xbe\x87\x30\xc6\x20\x0a\x2a\
+\xba\x8a\xec\xaf\x07\xe2\xf1\x38\x63\xee\x12\x58\xd1\x48\xc8\x1b\
+\xa7\x71\xe0\x0a\x37\x97\xef\xe6\x4b\xd6\x7c\x7e\x30\x37\x11\xa5\
+\xa9\xff\x32\x8f\x8b\x6a\xce\x0e\x0e\x76\xb7\xab\x99\xb2\xbf\x78\
+\x63\xdd\x26\x8e\x9e\x3c\xfd\x33\xf8\xe1\x62\x27\x23\x3d\x61\xaa\
+\x87\xba\x58\xd1\x7d\x93\xc0\xc2\xc5\x4c\x7f\xfe\xc4\x8b\xa6\x5d\
+\xc4\xc6\xc2\xf8\xa1\xc2\x46\xa0\x5d\x18\x63\x10\x42\xdc\xae\x5c\
+\x55\xbb\x23\x16\x8d\x90\x2e\xa8\x26\x58\xd9\xc4\x74\xda\x67\x43\
+\xef\x25\x6a\x06\xef\x30\xe5\xe6\x70\xb7\xee\x08\x9b\x7b\x3a\xc9\
+\x9d\x18\x65\xa0\x7c\x2d\x57\xab\xf6\x8c\x7c\xbc\xd5\xba\x48\x7e\
+\x1f\xd8\x37\x2f\xbf\x90\x48\x2a\x1b\xdf\xc9\xc1\x0d\x15\x50\x56\
+\x5a\x42\x6f\xfd\x31\xfa\x57\x36\x90\x1f\x1f\x63\xff\xbd\xe3\x14\
+\x4d\x8c\x12\x5e\x5a\xcf\xc3\x1d\x67\x48\x26\xbd\x77\x00\x92\x5f\
+\xf0\x53\x29\x2c\x29\xf1\x8d\x24\x99\x82\xbc\x39\x0e\x7d\xab\x9b\
+\x11\x4e\x36\x2e\x60\x4b\xc5\xb3\x35\x2d\xd8\x8e\x83\xd6\x9a\x4c\
+\x81\x9f\xc6\xb2\x2c\x6c\xad\xf1\x52\x92\x7c\x6f\x9c\x83\xd7\xdb\
+\xc8\x4d\x4c\x32\x95\x57\x46\xc8\x4f\x71\xe8\xc6\x61\x8a\xa3\xef\
+\x51\xda\xce\x14\x18\x63\x50\x52\xe2\x68\x45\xbe\x37\x46\x73\x57\
+\x0b\x25\x91\xb7\x0c\x57\x6c\xe5\xf2\xbe\x0e\x1e\x2d\x2b\x25\x1c\
+\x9c\xe4\xd0\xb5\x56\x96\x4e\x8c\x06\x01\x14\xb3\x30\x58\x96\xc4\
+\xd6\x9a\xf5\x4f\x3a\x28\x8e\xbc\x61\xb0\x6a\x1b\xf7\x1b\xce\x41\
+\xda\xf0\xb4\xf9\x21\x00\xe3\x17\x2a\xd9\x39\xf4\xa0\x18\x4e\xcc\
+\x16\x48\x40\x29\x8b\x60\xc0\xe6\xe5\x96\xbd\xc4\xca\x37\xd0\x57\
+\xbd\x9d\x2c\x5b\x61\xfb\x06\xdf\x9f\xc9\x59\xeb\x4e\x71\xde\x59\
+\x30\xdc\xf6\xfb\x06\x52\x4a\x1c\x6d\x93\xed\x06\x48\xb8\xb5\xbc\
+\x2e\xa8\x25\x0b\x10\xc2\x10\x10\x02\xe3\x83\x0f\x0c\xaf\x6b\xc0\
+\x1a\x78\x6e\x32\x4e\x50\x5a\x33\x2f\x27\x87\x2c\xd7\xe1\x77\xa4\
+\x10\x80\xc1\x37\x06\x10\xd8\xf6\xcc\x13\x67\x09\xb4\xa5\x70\x03\
+\x01\x82\x4e\xa6\x00\xc0\x12\x06\xdf\x08\x0c\x06\xad\x9d\x4c\x81\
+\x52\x0a\x69\x0c\xae\x63\xf3\x37\x84\x30\x60\x04\xfa\x4f\x1b\x58\
+\xca\xc2\xf3\x62\x28\x65\xfd\x5d\xf0\x33\xab\x33\x05\x08\x89\x97\
+\xf0\x48\x24\xa7\xf9\x1f\x42\x58\xb3\x04\x6f\x26\x27\xc6\x89\x4f\
+\x45\x89\x7c\x8d\xf2\x2a\x3c\xf2\xcf\xe6\x64\x3a\x45\x2c\x1e\xff\
+\x08\xf0\x0d\xb5\xd2\xd7\x39\x77\xc6\x6b\x4e\x00\x00\x00\x00\x49\
+\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x03\x3e\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x03\x00\x00\x00\x28\x2d\x0f\x53\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\
+\x01\x00\x9a\x9c\x18\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\
+\x8e\x7c\xfb\x51\x93\x00\x00\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\
+\x25\x00\x00\x80\x83\x00\x00\xf9\xff\x00\x00\x80\xe9\x00\x00\x75\
+\x30\x00\x00\xea\x60\x00\x00\x3a\x98\x00\x00\x17\x6f\x92\x5f\xc5\
+\x46\x00\x00\x01\xb0\x50\x4c\x54\x45\x00\x00\x00\xff\xff\xff\xdf\
+\x98\x00\xe6\xa0\x0c\xe7\xa3\x10\xdf\x98\x00\xe6\xa2\x0e\xe7\xa2\
+\x10\xdf\x98\x00\xe5\xa0\x0d\xe3\x9d\x08\xe1\x9e\x01\xe1\x9f\x00\
+\xe1\x9f\x01\xe1\x9f\x0d\xe1\x9f\x12\xe3\xa1\x11\xe5\xa5\x1a\x00\
+\x56\xff\x10\x60\xef\x10\x60\xf2\x20\x99\xdd\x30\x80\xce\x50\x8b\
+\xb1\x50\xb2\xad\x8e\xb2\xa2\x8f\xad\x72\x8f\xb2\x9e\x9f\xbb\x66\
+\xc3\x4d\x02\xc4\x4f\x01\xcc\x5d\x03\xd4\x69\x02\xdc\x84\x0c\xdc\
+\x8d\x05\xe1\x90\x09\xe3\x9b\x0b\xe5\x99\x0a\xe5\xa8\x01\xe7\x9d\
+\x09\xe7\xad\x02\xe7\xae\x01\xe7\xaf\x01\xe7\xb0\x01\xe7\xb0\x03\
+\xe7\xb0\x09\xe7\xb0\x10\xe7\xb1\x1c\xe7\xb1\x1f\xe7\xb1\x33\xe7\
+\xb2\x38\xe7\xb2\x40\xe9\xb4\x43\xeb\xb6\x04\xeb\xb8\x45\xeb\xbb\
+\x20\xeb\xbc\x2d\xec\xb9\x48\xef\xbd\x3a\xef\xc4\x65\xf3\xb9\x17\
+\xf4\xb8\x14\xf5\xba\x13\xf7\xcd\x0e\xf7\xcf\x0d\xf7\xd1\x0f\xf7\
+\xd7\x18\xf7\xdc\x61\xf7\xe4\x91\xf7\xe6\xa5\xf8\xce\x11\xf8\xe7\
+\xbf\xfb\xc8\x1d\xfb\xca\x1b\xfb\xd8\x10\xfc\xcd\x1a\xfc\xfd\xac\
+\xfd\xd2\x17\xfd\xfa\x60\xfd\xfb\x7c\xfd\xfc\x7e\xfd\xfc\x84\xfd\
+\xfe\xd2\xfe\xf8\x20\xfe\xf8\x24\xfe\xf9\x37\xfe\xf9\x3b\xfe\xfa\
+\x47\xfe\xfa\x4f\xfe\xfc\x9c\xfe\xfc\xa3\xfe\xfe\xd9\xff\xd0\x1f\
+\xff\xd1\x1e\xff\xd2\x1d\xff\xd3\x1d\xff\xd4\x1c\xff\xd5\x1b\xff\
+\xd6\x1a\xff\xd6\x1b\xff\xd9\x18\xff\xda\x17\xff\xda\x22\xff\xda\
+\x24\xff\xdb\x19\xff\xdc\x16\xff\xdf\x19\xff\xdf\x41\xff\xe0\x12\
+\xff\xe2\x3c\xff\xe3\x10\xff\xe4\x19\xff\xe5\x0e\xff\xe6\x0e\xff\
+\xe7\x0d\xff\xe7\x61\xff\xe9\x20\xff\xea\x0a\xff\xea\x1a\xff\xeb\
+\x0a\xff\xed\x08\xff\xed\x67\xff\xef\x06\xff\xf0\x06\xff\xf1\x04\
+\xff\xf2\x5d\xff\xf2\x7c\xff\xf4\x53\xff\xf4\x82\xff\xf5\x03\xff\
+\xf6\x05\xff\xf7\x07\xff\xf8\x16\xff\xf8\x17\xff\xf8\x6c\xff\xf8\
+\x87\xff\xf9\x30\xff\xfa\x78\xff\xfb\x7d\xff\xfd\xaf\xff\xfd\xc0\
+\xff\xfe\xe1\xff\xff\xf2\xff\xff\xf5\xc6\x84\xb0\x01\x00\x00\x00\
+\x12\x74\x52\x4e\x53\x00\x00\x20\x20\x20\x60\x60\x60\x8f\x8f\x9f\
+\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xb4\xb2\xe3\xac\x00\x00\x00\xda\x49\
+\x44\x41\x54\x18\x95\x63\x60\x44\x03\x0c\x8c\x0c\x0c\x0c\x2c\x9c\
+\x82\x26\xc6\xfc\x1c\x4c\x40\x26\x58\x80\xdd\xd2\xbd\x3f\x3a\xaa\
+\xdb\xc5\x90\x15\x22\xc0\x66\xdd\x17\xe4\x13\x10\x11\xd2\x54\x6f\
+\xc1\x0a\x12\x60\x36\xeb\x8d\x0c\xf4\xf7\x0b\x6b\x6d\xac\x28\xd3\
+\x63\x02\x0a\x70\xb9\x76\x85\x4b\x4a\x87\x05\xcb\x48\x95\xe6\x39\
+\x71\x00\x05\x04\x7a\x3a\x42\x85\x44\x5a\x9a\x85\x85\x4a\x72\xf2\
+\x79\x81\x02\x46\xed\x6d\x9d\x62\x12\x8d\x35\xe2\xa2\x95\xc5\x19\
+\x3a\x40\x01\xc3\x86\x5a\xfd\xea\xaa\x8a\xf2\x22\x2f\xab\xec\x34\
+\x6d\xa0\x00\x5f\x5d\x81\x9c\x52\x51\x61\x5e\x8e\x8a\xac\x4d\x26\
+\x0f\x50\x80\xc3\x39\xcb\x4d\x55\x41\x5d\x59\x5e\xd1\xd3\xc3\x01\
+\x64\x28\x93\x41\x6e\x4a\x8a\xaf\x9d\xad\x77\x5c\x4c\x92\x1a\xc8\
+\x5a\x06\x56\xf3\xf4\xf8\xf8\xb8\xd8\x98\x98\x64\x53\x56\x88\xd3\
+\x59\x75\x1d\x33\x13\x13\x52\xed\x35\xa0\x4e\x67\x60\x60\xe2\xe0\
+\xd1\xd2\xe4\x86\x79\x0e\x0d\x00\x00\x00\x82\x2d\xeb\x05\xb0\x41\
+\x76\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x03\x75\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\x1b\xaf\x01\
+\x5e\x1a\x91\x1c\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd8\x0c\x1e\
+\x10\x24\x2d\xef\x9e\xe7\xec\x00\x00\x02\xf5\x49\x44\x41\x54\x38\
+\xcb\x95\x91\x6b\x48\x53\x01\x14\xc7\xff\x77\xbb\x7b\xdc\xeb\xa6\
+\xab\xe9\x36\x75\x99\xba\xf5\x70\xa5\x58\x1a\x4e\x4d\x66\x05\x16\
+\x45\xd9\x83\x90\xc4\x04\xa5\x2c\x0c\x8b\x48\xcb\x2c\x34\xb0\x8c\
+\xe8\x4b\x21\x51\x66\x41\x04\x3d\x3e\x34\xc3\xd4\x32\x34\xa2\xb2\
+\x22\x53\x33\xb3\xf2\x95\xaf\x34\x67\xee\xa1\x7b\x34\x77\xa7\xbb\
+\x7d\x52\x0a\xbf\xe8\xf9\x74\x38\xff\xf3\xfb\x7d\x38\x87\xc0\x02\
+\xeb\x86\x00\x51\x5e\x01\x21\xb7\x68\x85\xa2\x9a\xf6\xf3\xbb\xb0\
+\x20\xb8\xae\xe2\x8c\xc4\x56\x27\xed\x2e\x5c\x2a\x64\xcb\x78\x7c\
+\xb6\x8c\xa2\x6a\x38\xf3\x85\xef\xe5\x01\xd3\xa2\x8d\x0f\x3a\xe9\
+\x72\xb5\x7e\x51\x38\x0c\x9b\x04\xe0\x7a\x33\x8b\x89\xf9\x0a\x4c\
+\x2f\x42\x0f\xf6\xff\x49\xb8\x39\x8c\x14\xc8\x15\x0a\x70\x87\x8a\
+\x2c\xa6\xde\xaa\xc8\x79\xc1\x86\x67\xca\xd5\xae\x6f\xd9\x7f\x36\
+\xe9\x22\xd9\x70\x8d\x8a\xfd\x50\x95\xed\xa9\x7d\xfe\x32\x7d\xce\
+\x62\x4e\x34\x49\xe4\x44\x71\x85\xff\xce\xfa\xf4\xb4\x97\xbb\x23\
+\xfb\x6b\x51\xee\x6e\x76\x49\x90\x8a\x7d\x7a\x3d\x9c\xfd\x5e\x11\
+\x76\x65\x26\x27\x67\x9a\xc2\x9d\x1a\x0d\x25\x51\xd4\xa8\x96\x6b\
+\x82\xd6\xef\x62\x6e\xbc\xd3\xdf\x3c\x72\xf5\x13\xe0\xaf\xde\x52\
+\xfa\xb2\x15\x9a\x87\x15\x2d\xd0\x2a\x5d\xf8\xd5\x35\x36\xd1\x56\
+\xef\x2c\x9e\x23\x58\xac\x50\xe6\xaf\x8d\x4b\x0c\x9e\x9c\xe2\x80\
+\x71\xda\xb2\x49\xa9\xaa\xcc\xf6\x56\x14\x61\xb1\xd3\x19\xb9\x25\
+\x6f\x10\x2a\x31\x21\x50\x40\xa1\xe9\xc7\x0a\x1f\xf3\x60\xd7\x65\
+\x60\x22\xf3\x3f\xc1\xaa\x30\xf5\x92\xb5\x31\x31\xe0\x7a\x49\x61\
+\x33\x1a\xe0\x1c\xa9\x4c\xe2\xf1\xe9\xc2\xac\xb3\xdd\x70\x3b\xac\
+\x48\x48\xd6\xe1\xe8\x91\x7c\x70\x48\x01\x0a\x8f\x1f\x0a\x43\x6b\
+\x0b\x00\x60\xf6\x8d\x52\x6f\xfa\x8b\x87\x99\x84\xc7\xe5\x80\xc7\
+\x69\x61\x75\xb1\x63\xa7\x2e\xde\x65\xc4\x2d\xdf\x4c\x38\x91\xca\
+\x62\xdf\xd6\xed\xe0\xf2\x45\xe0\x90\x3c\xa4\xef\xdb\x63\x99\xe1\
+\x66\x05\x1f\xdf\xbe\x2e\x1e\x1f\xee\x64\xdc\xc6\x01\x08\x5d\x77\
+\x89\xc6\x1f\x22\xdf\xdb\x4f\xac\xd8\xab\x73\x21\x62\x19\xf7\xcb\
+\xef\x81\x8e\xdb\x6e\xfb\x08\x5c\xa6\x7e\xd4\xd4\x55\x7f\x9e\x23\
+\xa8\x6b\xfe\x69\x1c\x75\x0a\xcc\xcd\x6d\xaf\x60\x32\x35\x22\xf7\
+\x1a\x01\x75\x80\x0b\x29\x89\x4e\x87\xc5\xd8\x97\x62\x36\x5a\x1a\
+\x26\x46\x06\x31\xd0\xd3\x81\xe6\xc6\xf7\xa2\xd9\x23\x6e\xdb\x91\
+\xc9\x3b\x90\x91\x9a\xa9\x0a\x09\x3c\x2c\x93\x52\x8a\xf6\x66\x1a\
+\x6d\x13\x12\x88\x29\x3d\x8e\x25\x9b\x61\x73\x6f\xe8\x0a\x4a\x38\
+\x59\x29\x71\x74\x84\x0a\x25\xbe\xb0\xda\x1d\x58\xa3\x5e\x96\x75\
+\xe9\xfe\xa3\x24\xc3\xeb\xf2\x02\x32\x6d\x7f\xda\x39\x6d\x5c\x54\
+\x81\x58\x24\x00\x49\xf2\xc1\x23\xc7\x21\xa3\x7a\x70\x3e\x27\x08\
+\x94\x6f\x0a\x1b\x22\x8b\x8e\x5c\xa4\x5e\x41\xb8\xba\x06\x01\xb7\
+\x13\xc3\xdd\xdf\x31\xd4\xd3\xc3\x17\x4b\xa4\xcb\xd9\xe0\x95\xd7\
+\x38\xfe\xfe\x7e\xe9\x00\xe0\x9e\xf2\xc0\x6e\xb7\x23\xf7\x74\x09\
+\xc6\x1c\x32\x84\xc4\x97\x42\xa5\x2d\x20\x08\x1f\x25\xc1\x78\x38\
+\xf0\x88\x03\xe1\xf1\x56\xc2\x3c\x4d\x41\x16\xb1\x01\xd6\x71\x13\
+\x84\x14\x2d\xe7\xae\x8b\xdd\xcc\x00\xe0\xda\x6c\x0e\xe2\x43\x63\
+\x13\x01\xbe\x9c\xd1\x6e\x3c\x68\x9d\x74\x73\x7a\x07\x06\x87\xea\
+\x1b\x1a\x9a\xee\x8c\x5b\x9d\x96\x51\x3b\xc7\x61\xb0\xb2\x56\x81\
+\x6c\xa5\x41\x1e\x16\xdf\xde\xd9\xfd\xb3\xf2\x71\x6d\x6b\xde\x5f\
+\xe0\xbc\x32\xda\x82\x1f\x79\x91\x00\x00\x00\x00\x49\x45\x4e\x44\
+\xae\x42\x60\x82\
+\x00\x00\x02\x9a\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\
+\x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x17\x49\x44\
+\x41\x54\x38\x8d\xa5\x93\x3d\x68\x13\x71\x18\xc6\x9f\x37\xcd\x11\
+\x9b\x8f\x5e\x92\x4b\x52\xf3\x71\xf9\x20\xc1\xd2\x52\x3b\x1c\x15\
+\xc1\x82\xb5\x08\x35\x89\x10\x35\x38\x0b\x4e\x82\x60\x47\x89\x5b\
+\xea\xd4\x41\x08\x14\x1d\x1c\xd2\xbd\x08\xa5\x5c\x16\x17\x1d\x0c\
+\x38\x88\x20\x68\x87\x22\xd8\x56\x93\xab\x62\xed\xa9\x6d\x4c\xc9\
+\xe5\x7a\x7f\xa7\x0b\x67\xda\x45\xfa\x8c\xff\xf7\x7d\x7e\x3c\x2f\
+\x0f\x7f\x62\x8c\xe1\x24\xb2\x9d\xc8\xdd\x0f\x58\x21\x92\xde\xdc\
+\xbe\xf5\x7d\x95\xe3\x72\xfd\x8b\xab\x1c\x97\xfb\xf0\xe0\x7e\x73\
+\x85\x48\x3a\x16\xb0\x4c\x24\xf9\x27\xc7\x5e\x9d\x19\x1d\x0b\x46\
+\x8b\x59\xf9\x19\x51\xd6\x32\xcb\x85\xb3\xd3\x72\x3c\x18\x8c\x9e\
+\xbe\x32\x5d\x5f\xb6\x40\x7a\x00\x0d\x58\x4a\x4e\x9e\x77\x1d\x34\
+\xb7\x11\x4b\x8e\xda\xc3\xf9\x4b\xb5\x2a\x51\xbe\x42\x74\xcd\x79\
+\xf9\x42\x4d\x1c\x99\xb0\xb7\xb7\x1a\xc8\xcc\xe6\x9d\x1a\xb0\x64\
+\xfa\xec\x16\x40\x69\xad\xfe\xb2\x96\x1c\x3f\x67\x07\xb3\x21\x10\
+\x4e\xd9\x37\x2e\xb6\xe4\x5d\xc3\xa0\xd9\x44\xc6\xa6\x36\x14\x0c\
+\x38\x1d\xf8\xf6\xe2\xbd\xae\x01\x25\xd3\x47\xd6\x16\x9e\x12\x65\
+\x87\x47\xa2\x72\x4c\xcc\x70\x86\xc6\x60\xf3\xba\x71\xc0\x0c\x38\
+\x3b\x06\x1c\x89\x08\xb6\xde\xbe\xee\x2a\xef\x3e\x16\xee\x30\xf6\
+\xfc\x58\x00\x00\x2c\x12\x65\x23\x99\x61\x39\x12\x8c\x72\x87\x1a\
+\x81\x1c\x0e\xe8\xac\x83\xaf\xca\xa7\xee\xce\x97\x5f\x85\x39\x8b\
+\xf9\x9f\x13\x4c\x75\x00\x68\x5a\x17\xfa\xfa\x3a\xf4\x9f\x6d\x10\
+\x80\x01\x9f\x13\xcc\x73\x0a\x9d\xfe\xe5\xfe\x04\x0b\x44\x59\x31\
+\x21\xc8\xe3\xfb\x1d\x0e\x6a\x0b\x6d\xbf\x1b\x04\x60\x50\x6d\x01\
+\x7e\x37\xd6\x3c\x83\xdd\xc6\xe7\x9d\x42\xc9\x92\xa2\xd7\xc2\x3c\
+\x51\x4e\x4c\x45\xe4\xa9\x96\xce\x09\x6a\x0b\x2e\xc1\x8b\x27\x3c\
+\xcf\x16\x79\x2f\x73\x05\x7c\x10\xd4\x16\xa6\xfe\x1c\x72\x62\x3a\
+\x2e\x2f\xf0\xfc\xd5\x23\x00\x16\x0f\x3d\x9e\x19\xf2\x72\xa1\xdd\
+\xdf\x70\x07\xfc\xa8\x78\x79\x43\xd8\x54\x8a\xbe\xcd\xe6\xcd\x0a\
+\xcf\x1b\xee\xa0\x80\xd0\x0f\x15\x33\x9e\x21\x8e\x17\xc5\x47\xbd\
+\xd8\x8c\x31\x30\xc6\x50\x06\xa4\x6a\x22\xb6\xa7\x48\x67\x59\x39\
+\x9d\xd2\xe7\x80\xeb\xe6\xec\x2e\x50\x9c\x4f\xa7\x74\x45\x9a\x60\
+\xd5\x44\x6c\xaf\x0c\x48\xe6\xac\x07\x30\x21\x0f\x33\xd1\x8d\x7b\
+\xc0\x0d\xeb\xbb\x09\xa9\xe7\x73\xdb\x56\x33\x63\xec\x68\x8d\xff\
+\xab\x13\xff\xc6\xbf\x7b\x12\xeb\x18\x4c\xd6\x48\xe1\x00\x00\x00\
+\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x03\x44\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\
+\x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\xc1\x49\x44\
+\x41\x54\x78\xda\x85\x91\x5f\x48\x53\x61\x18\xc6\x9f\xef\xec\x6c\
+\x3b\xee\xbf\x6e\x39\x19\x6e\x2a\x88\x88\x18\x4c\xbd\x48\x28\x09\
+\xed\x26\xa2\x40\xc2\xba\x91\xba\x09\xeb\xb6\x6e\x44\x4a\xca\x75\
+\x11\x14\x98\x52\x44\x24\x19\x91\x41\xa6\x54\xa2\x58\x5b\xe5\x85\
+\x98\x62\x64\x13\xff\xa4\x35\x4d\xd1\xa1\x96\xe6\x64\x67\x9b\xfb\
+\x7b\xce\xd7\x11\xa7\x04\x81\xfe\xe0\xbb\xf9\xde\xe7\x79\xbf\xe7\
+\xfd\x5e\x50\x4a\xf7\x3d\x78\x82\x93\xd9\xce\xec\xaf\x55\xa3\x55\
+\xbe\xac\xf6\xac\x29\x3c\x42\xe5\x4e\x6d\x7f\xf3\x1d\x9c\xb7\xbf\
+\xb5\x0b\x0d\x53\x0d\x34\x2e\xc4\x69\xc3\x74\x03\xb5\xbb\xec\x02\
+\x6e\xe3\xdc\x56\x9d\xc1\x1e\x10\x42\x94\xd0\xa3\x9e\x67\x78\x66\
+\x70\xa5\x0b\x14\x22\x16\x37\xba\xc0\xb2\x3c\x03\x0d\x6e\x12\x89\
+\xbd\x5f\x07\x94\x78\x86\x50\x2c\x11\xa3\xa2\x28\xd2\x7f\xc1\x73\
+\x04\x01\x68\x18\xec\x8d\x00\x82\x00\xd7\xa5\x40\x85\x73\x5b\xea\
+\xf8\x42\x50\xfa\x81\x00\x14\x7e\x00\xdc\x7e\x0d\x64\x98\xc6\x63\
+\x51\x01\x71\x46\xdc\xbe\x70\x6e\x02\x23\x31\x88\x98\x95\xb2\x01\
+\x3c\x49\x46\xc5\xfd\x9a\xf2\x52\x8d\x31\x63\x30\xb8\x19\x66\xcc\
+\x66\xa3\xf7\xec\xb5\x56\x5b\xf2\x1f\x74\xb8\x82\xeb\xe6\x7c\xf9\
+\x85\x53\x9e\x3c\xdd\x3a\xc2\x31\x67\x64\xae\x25\xfc\x00\xb5\x92\
+\x37\xba\x9b\x40\x93\x6e\x71\xa9\x35\x29\x8c\xd9\x92\x8d\x54\x73\
+\x96\xb5\xe5\xd2\xd1\x83\x90\x90\x44\x3c\x9a\xe0\xa8\x74\xe6\xea\
+\x0c\x43\xb3\x8c\xd6\x2d\xe7\xea\xf8\xc3\xc7\xb6\xcc\x90\x60\x91\
+\x44\xcd\x52\x79\x45\x79\x19\xb8\x8c\x3c\xf8\xfd\x41\x8c\x0d\xb8\
+\x4e\x03\x98\x80\xc4\xc5\x12\x95\xc6\x60\x30\x30\x67\xaa\x1d\x50\
+\x6a\x4c\xe8\x68\x7b\x6a\x43\x12\x76\x77\x58\x99\xf8\x8b\xc8\xd8\
+\x1c\x06\x22\x12\xb1\x10\x7c\x7f\x3c\x2f\x90\xc4\x62\x62\xa3\x95\
+\xc7\x4f\xd0\x9c\x82\x22\xc2\x65\xe4\xa3\x6c\x66\x7c\x03\x49\x76\
+\x47\xf8\xf4\xee\x65\xc5\xd4\xd8\x18\x12\xc1\x35\x0c\x0f\x0c\xc4\
+\x6e\xf5\xae\x79\x90\xe4\x86\xd3\xef\x0b\x87\x02\x5e\x2a\xc4\x11\
+\x5e\x9d\x87\x7b\xdc\xbd\xf2\x5f\x83\xe6\x61\x2c\x32\x46\x2b\x3a\
+\x5e\xf7\x42\xa5\xd3\xc6\x3b\x3b\x3b\x15\xd8\xc1\xe1\x60\x78\x1f\
+\x3f\x34\xff\x6d\x14\x9f\xfb\xba\x31\xe7\x99\xe4\x90\x84\x94\x94\
+\x94\xc8\xeb\x6b\xaf\x7e\x31\x9a\x6d\x85\x66\x93\x4e\x16\xf4\x79\
+\xa1\x35\x59\xb1\xb2\xb4\xb0\xb9\xbe\xfc\xb3\x59\xc9\x2f\x65\xda\
+\x8a\x8f\x54\xa7\x25\xbc\x32\x4e\xad\x43\x4f\x7b\x07\x46\x07\xfb\
+\x50\x73\xaf\x47\x1c\x7f\x75\xb7\x8e\xbc\xe9\xee\x5f\x2b\xb2\x17\
+\x98\x52\xf5\xaa\xed\x48\x0c\x41\x22\x21\x20\x21\x88\xd8\x0c\x86\
+\xc1\xac\x0e\x43\x30\xe4\x41\x1b\x98\x00\xa2\x51\xb4\x36\x36\x61\
+\x61\x61\x12\x97\xdb\xdc\x88\x4e\xbf\x8f\xb3\x46\x63\xba\x89\x65\
+\x09\x24\x3d\x08\x03\x88\x22\x05\xdd\xd9\x8c\x5e\x0d\x7f\x20\x13\
+\xca\x14\x0d\xa8\x68\x01\xd4\x14\x19\x85\x87\x10\xe2\x52\x11\x0a\
+\xf0\x90\x36\x23\x27\x8d\x0f\x3b\x47\x72\x6d\xd6\xa2\xf4\x03\x7a\
+\x46\x26\x57\x40\x88\x0b\x80\x8c\x48\x09\xe2\x74\x79\x69\x3d\x3c\
+\xf7\x7d\xf2\x63\xbe\x4d\x5d\xac\xd5\xaa\xd3\x94\x9c\x4a\x11\x89\
+\x46\x84\x68\x24\xc2\xff\x5e\xf5\x2d\xb8\xfa\x7f\xd4\xfe\x05\xde\
+\x59\x81\xd8\xd5\x95\x4d\x17\x00\x00\x00\x00\x49\x45\x4e\x44\xae\
+\x42\x60\x82\
+\x00\x00\x03\x08\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\x01\
+\x3a\xec\xe3\xe2\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x07\x16\
+\x12\x1d\x10\xc3\xce\x38\x72\x00\x00\x02\x88\x49\x44\x41\x54\x38\
+\xcb\x7d\xd3\x5f\x68\xcd\x61\x1c\xc7\xf1\xf7\xf3\xfb\xfd\x9e\xdf\
+\xf9\xb3\xe1\xcc\x76\xc4\xb6\x46\x9a\xb2\x86\x49\x5a\x93\x38\x22\
+\xe4\x62\x2d\xc6\x26\x7f\xd7\xb4\xdd\x68\x29\x8d\x5a\x4a\x8c\x18\
+\xa5\x56\xb8\xd8\x86\x44\x49\x09\x0b\x29\x65\x4b\xb8\xd0\x2e\x36\
+\x84\x0e\x93\x8d\x19\x33\x9d\x63\xff\xce\x39\x3b\xff\x7e\x8f\x8b\
+\xad\xd5\x69\x87\xef\xe5\xf3\x7c\x9e\x57\x9f\x7a\xfa\x0a\xa5\x14\
+\xc2\xbd\xf4\x4a\xa6\xe9\x3f\x10\x0a\x85\xf8\xe3\x58\x04\x4b\x76\
+\xf3\xaf\xc9\x19\xed\xa3\xda\xff\x9c\x40\xfa\xbc\xa7\x6b\x33\x54\
+\xb1\x98\x00\xf2\x9f\xed\xda\xb2\xd2\x73\xf4\xf8\x59\xfe\x37\x56\
+\x3c\xcc\x82\x9f\xdb\x68\xac\xf0\x92\xf5\xc3\x02\x43\x7f\x3c\x01\
+\x08\xd1\x5a\xb0\x72\x55\x49\x70\xd8\x47\xdc\xbd\x02\x67\xc1\x1e\
+\xa2\x71\x8b\x48\x4c\x4d\x3d\x36\x0d\x8d\xea\xd5\x26\x9e\xdc\x00\
+\xfb\x0f\x9e\xa5\x6c\xae\x97\xac\xae\xe0\x2b\x63\xf2\xfe\xb5\x2b\
+\x63\x5e\x49\x9f\x2f\xcc\x4c\x5b\x1a\x8e\x59\x6e\xb2\x52\x25\xfd\
+\xfe\xf0\x14\x50\x9c\xd3\xce\xba\xd9\x9f\xe8\xf7\x97\x73\xad\xa5\
+\x89\xf0\x97\xfa\x58\x68\x63\x6b\xb9\x91\x50\x31\x16\x43\xd7\x34\
+\x2c\xa5\x11\x89\x41\xfa\x0c\x1b\x63\xe3\x71\xe6\xa7\x7c\xa5\x6e\
+\xfd\x00\x5b\x6b\xde\x30\xf8\xfb\x25\x2d\x0d\x9b\x69\x7e\xb7\xf3\
+\xf3\xcd\xfa\xfb\xdf\x12\x01\x2b\x8e\xae\xeb\x98\x52\x32\x1e\x83\
+\x99\x76\x1d\x8d\x30\xe7\x36\x75\x72\xe1\x46\x3f\x9f\x7a\x46\x69\
+\xaa\x73\xd2\xf1\xc3\x46\xbb\x37\xf0\x0b\x20\x01\x50\x4a\x61\x68\
+\x1a\x36\x39\x71\x1c\x89\xc3\xd1\xc2\x36\x7a\x7a\x87\xb8\x7d\xaf\
+\x93\xa2\xec\x30\xbd\xdd\x41\x1e\xa6\x94\x22\x8d\x1e\xa6\x01\xa0\
+\xd0\x75\x0d\x53\x4a\xec\x63\x3d\x14\x2e\xec\x63\xb9\xcb\xcb\xe6\
+\xba\x37\x2c\x74\xf9\xc8\xb2\x39\x68\xcd\x78\x81\x2e\xc0\x90\xdf\
+\xa7\x03\x1a\x60\x18\x3a\x4e\xbb\x49\x9e\x7a\xcf\xc1\xfc\x47\xec\
+\x3b\x11\x24\x1a\x18\x61\x4d\x89\x87\x8e\xec\x8b\x38\x01\x21\x04\
+\xd2\xb4\x25\x01\x34\x0d\x9b\x34\x49\x75\xd8\xa9\xca\x6d\xa6\xf1\
+\x56\x2a\x9d\x1f\x86\x39\x59\xa1\xd8\xe0\x29\xc6\xdb\x6d\xc7\x02\
+\x04\x60\x26\x03\x0c\x29\x71\xa5\xa5\x71\x29\xaf\x92\x97\x6f\x63\
+\x5c\x7d\x30\xc2\x0e\x4f\x98\xec\xdc\xc5\x9c\xef\x2f\x23\xc5\xa9\
+\xb0\x94\x02\x04\xa6\x69\x4e\x07\xa4\x6e\x70\xa4\xb0\x1b\x9f\xaf\
+\x83\xda\xcb\x69\xe4\x66\x86\x29\x5d\x07\x4f\x44\x03\x76\x69\xa2\
+\x0b\x85\xa5\x04\x0a\x85\x94\xc9\x1a\x18\x06\xca\x5d\xc4\xdb\x61\
+\x17\x33\x1c\x77\x39\x54\xe2\x67\x50\x55\x62\xa5\x2e\xc3\x31\x99\
+\x11\x42\x81\x12\xc8\x64\x0d\x74\x43\x47\x1a\x43\xcc\x71\x7c\xe6\
+\x74\x4d\x0e\xf6\x8c\x72\xda\xc4\xa9\x84\x90\x98\xca\xca\x24\xdf\
+\x28\x34\x6a\xeb\xce\x70\xec\xf0\x76\xba\xdc\x77\x18\x8f\x44\x81\
+\x68\xd2\xc5\x12\x42\x4f\x00\x7a\xc7\x46\x86\x08\x05\x86\x89\xe6\
+\xed\xe5\xfa\x60\x15\x0c\x7e\xfc\xe7\x56\x46\xe2\x31\x82\xa1\xd0\
+\x00\xc0\x5f\x20\x50\xec\x78\x0e\xd2\x32\x80\x00\x00\x00\x00\x49\
+\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x03\x5a\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\x1b\xaf\x01\
+\x5e\x1a\x91\x1c\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd8\x0c\x1e\
+\x10\x24\x17\x29\x92\x3e\x5e\x00\x00\x02\xda\x49\x44\x41\x54\x38\
+\xcb\x85\x91\x6b\x68\x53\x77\x18\xc6\x7f\xff\x73\x92\xe6\xe4\xd6\
+\xc6\x76\xb6\xcd\x22\x5d\x9a\x6a\xd3\x75\xb8\x3a\x2f\x73\x08\xf3\
+\xf6\x71\x6a\xf1\xcb\xa0\xd3\x2a\x4e\x36\x90\xae\x0e\x44\x90\x51\
+\x44\x44\x05\x41\xbc\xd4\x0f\xb2\xb9\x82\x83\x6d\xf4\x83\x28\x88\
+\xa8\x14\x8b\x46\xa5\xa2\xeb\x5a\x34\xf1\x96\xd4\xac\xd5\xb4\x5d\
+\xbc\xf4\x92\xd8\x6a\x93\x9c\x9c\x73\xf6\xc1\x45\xac\x52\x7d\xbe\
+\x3d\xef\x0b\x3f\x9e\xf7\x7d\x60\x0a\x1d\x02\xcf\x01\xb8\x7c\x08\
+\xfc\xaf\xcf\x9b\xc1\x7d\x10\x2e\x35\x43\x35\x80\x34\x15\xc0\x0e\
+\x6b\x15\x58\xac\x40\xe0\xd8\xff\x90\xdf\xc0\xad\x40\x40\x81\x25\
+\x76\xd8\xf4\x4e\x80\x15\xf6\xd9\xe0\x80\x05\xdc\x12\x04\xfe\x80\
+\x65\x12\x04\x2c\xe0\xb7\x41\xab\x02\x5b\x00\x04\xef\xd0\x71\x40\
+\x87\xfd\x06\x6c\xcd\xcd\x04\xb4\xca\xb0\xfe\x6b\xd0\xde\x0b\x00\
+\x38\x07\x1f\x66\xe0\x0e\xe0\x02\xd4\x3c\xf8\xec\xab\x97\x9e\xb7\
+\x4e\xd8\x3c\xdf\x24\x36\xcf\x93\x95\x9c\xef\x00\xb7\x19\x2e\xda\
+\xc0\x65\x83\xb0\x03\xcc\x0a\xb4\x77\x40\xd5\x6b\x89\x5e\x6a\xc7\
+\xea\xea\x6a\xab\xab\xf4\x6c\x45\x65\x75\x99\x86\xfa\x4b\x45\xd3\
+\xd1\x3d\x2a\x04\x74\xf0\x4b\xd0\x7a\x6c\x8e\xb2\xd7\x3b\x2a\xda\
+\xec\x13\x86\x67\xc1\x50\x2a\x9e\xaf\xb3\xbc\x06\xc2\xa6\x1c\xa0\
+\xb0\x74\xc6\x4f\x73\x17\x2d\xf5\xa6\xb2\x12\xa9\xf4\x58\xc3\xa3\
+\x02\xb3\xcb\x9d\x54\xfd\x02\x5a\xcf\xfb\xe4\xef\xe3\x16\x73\xaf\
+\x7d\xa6\xad\xa4\x3f\xbf\x8c\x44\xd7\x2d\x77\x5d\x7f\xaa\x11\x68\
+\x7c\x15\xbf\xfd\x70\x43\x60\x3c\x72\xc1\x98\x18\xb8\x69\x3c\x0d\
+\xb5\x19\x87\x1b\x96\xd7\x46\xa0\x3e\x02\xf2\x8f\x5f\x16\xcc\xda\
+\xb3\x75\x95\x31\xfe\x4f\x87\xf1\xfc\x61\x97\xb1\x6d\xc5\xec\x70\
+\x2f\x98\x26\xfd\xa0\x28\xdf\x76\x4b\xcf\xa4\xd0\xd3\xe3\x48\xe9\
+\xb1\x8c\xac\xbe\xb8\xe1\x87\x3f\xfd\xa0\x15\x97\x94\x26\xd7\xad\
+\xac\x55\xe5\x3c\x07\xb2\xc9\xc4\x37\x1b\xea\x7a\x7d\x90\x9d\x04\
+\xf8\xfb\xea\x95\xdd\x89\xc1\x48\x26\x3b\xdc\x47\xac\x27\x78\xba\
+\xb1\xe5\x7a\x7f\x6e\xb7\xfd\x44\xe4\xc9\xe8\x40\xdf\xaf\xea\x78\
+\x9c\xf4\xf0\x03\xda\xda\xcf\x04\xdf\x6a\xa1\xbd\xbb\x7f\xe8\xf1\
+\x84\x65\xa4\x33\x18\x66\x38\x65\x8e\xbd\x59\xe7\xd0\xd3\x78\x57\
+\x32\x1e\xe3\x61\x34\x4c\x77\xe7\x35\xc7\xab\x16\x56\xd4\x6e\x34\
+\x7f\xf7\xed\x9a\x8d\x15\xe5\x9e\x4d\xd3\x0b\x2d\x73\x06\xa3\xb7\
+\x29\xff\x64\xa1\x9a\x4c\x24\xce\xde\x0d\x85\x9a\x9d\xcf\xc3\x35\
+\x33\x6a\x96\x36\x3a\xc7\xc2\x3e\x73\xfe\x07\xf2\xbf\xb1\x3e\x4e\
+\xfd\xfe\x73\xa6\x6e\xd7\x89\x07\x8f\xae\xb4\x34\x99\xea\xd7\xd5\
+\xef\xfc\x62\xd1\xbc\x26\xa7\xc3\x02\x42\x50\x55\xe4\x01\x81\xb9\
+\xd8\x51\xb0\xda\x3a\xad\xa4\x56\x8d\x22\x0a\xbd\x95\x22\xdd\x13\
+\x03\x75\x82\xc1\xfb\xf7\x18\x88\x46\xf3\x9c\xae\xa2\x4a\xc3\x5b\
+\x75\xc4\xe4\x76\x4f\x5f\x0f\xa0\x66\x75\x24\xc0\xc8\x45\x13\x02\
+\x4d\x43\x12\x05\x1f\x91\xd1\x65\x74\xa7\x07\x64\x89\x11\xcd\x4a\
+\xf1\xa7\xcb\x78\x96\x18\x46\xb1\xda\x4a\xc4\x91\x96\x53\x3f\x7c\
+\xec\xf7\xae\xb2\xdb\x94\x99\x86\x61\x14\x6a\xba\x21\x49\x42\xa4\
+\x85\xe0\xf1\x68\x72\x2c\xd4\x13\xec\xea\x2e\xf3\xf9\x3e\xb7\x58\
+\xf2\xca\x65\x59\x38\x75\xdd\xd0\xd4\xac\xf6\x64\x64\x68\x24\x14\
+\xfc\xab\xf3\xe4\x7f\x6e\x1a\x12\x34\xb5\x87\x20\xf1\x00\x00\x00\
+\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x02\x7e\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\
+\x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\xfb\x49\x44\
+\x41\x54\x38\x8d\x95\x92\x4f\x6b\x1a\x51\x14\xc5\x7f\xef\xa9\x38\
+\xcd\x7a\x16\x5d\x14\xa4\xd0\x65\x9b\x92\x45\x05\x91\xe2\xae\xed\
+\xb6\x76\xd7\x64\x95\x0f\x60\x3f\x44\x0b\xfd\x43\xc1\x76\x15\x42\
+\x20\x10\xb2\xf6\x3b\xe8\xc2\x8a\x28\x86\x5a\x90\x11\x0c\x74\x21\
+\xb3\x10\xd4\x2c\x26\xe3\x8c\xa3\x73\xbb\x88\x63\x75\x48\x0a\x3d\
+\x70\x37\xef\x71\xce\x3d\xf7\xde\xa3\x80\x47\xc0\x2e\xff\x87\xae\
+\x88\x0c\x00\x92\xc0\xee\x68\x34\xaa\x84\x22\x68\xad\xd1\x5a\xa3\
+\x94\xda\x2a\x80\xcb\xc1\x80\x76\xbb\xcd\xde\xde\x1e\xd9\x6c\xf6\
+\x0d\x30\x00\xd0\x00\xa1\xfc\xbb\xdd\xd5\xd5\x15\xc3\xe1\x90\x83\
+\x83\x03\x5a\xad\x16\x85\x42\xe1\x69\xf4\xa7\x01\x12\x09\x4d\x22\
+\x91\x58\x3b\xd0\x5a\x93\xd8\xa8\x45\x10\x60\x9a\x26\x3b\x3b\x3b\
+\x1c\x1e\x1e\x92\xcb\xe5\xde\x95\x4a\xa5\x27\x00\x0a\x28\x8e\x27\
+\x93\x0a\x22\xa8\x48\x40\x29\xc2\x30\xa4\xd3\xe9\xe0\xba\x2e\x8e\
+\xe3\xe0\x38\x0e\xfb\xfb\xfb\x18\x86\x81\x65\x59\xfd\xa3\xa3\xa3\
+\x7b\xae\xeb\xe6\x14\x50\x9c\x4c\xa7\x15\xe0\xaf\x83\xd5\xdc\xa9\
+\x54\x6a\xed\x2c\xda\x45\x84\x5e\xaf\x57\x2b\x97\xcb\xa3\x64\x44\
+\xbc\x4d\xe0\x36\x62\x1c\x37\x02\x11\x41\xa9\x9b\xd2\x9a\xe5\x72\
+\x49\xbd\x5e\xe7\xfa\xfa\x7a\x6b\x84\x74\x3a\x8d\x65\x59\xfd\xe3\
+\xe3\xe3\x87\xc0\xdb\x24\x80\x8a\x3b\xd0\x37\x4b\xcd\xe7\xf3\x28\
+\xa5\xb0\x6d\x1b\xdb\xb6\x49\xa7\xd3\xf8\xbe\xcf\xd9\xd9\xd9\x7d\
+\x11\x79\x7e\x72\x72\x62\x27\xa3\x4d\x46\x37\x8f\xc6\x61\xe3\xcd\
+\x30\x0c\xc6\xe3\x31\x9e\xe7\x71\x7a\x7a\x4a\xa3\xd1\xf8\x5e\xad\
+\x56\x7f\xad\xcf\x48\x8c\x1c\x0f\x92\x69\x9a\x64\x32\x19\xce\xcf\
+\xcf\xc9\x66\xb3\x52\xab\xd5\x2e\xb6\x72\x10\x27\xc4\x53\xe8\x79\
+\x1e\x4a\x29\x5e\xbc\x7a\xc9\x8f\x66\xb3\x09\xfc\xdc\x5c\x64\xd1\
+\x75\x5d\xf1\x3c\x4f\xe6\xf3\xb9\x04\x41\x20\x8b\xc5\x42\x96\xcb\
+\xa5\x84\x61\x28\x41\x10\x48\xb7\xdb\x95\xf9\xdc\x97\x0f\x5f\x3e\
+\xf7\x81\xc7\x80\x12\x11\x44\x64\x25\x30\x9b\xdd\x29\xe0\x38\x8e\
+\x0c\x2e\x2f\xe5\xfd\xa7\x8f\x7d\xe0\x19\xa0\x23\x72\x24\xf0\xda\
+\x9d\xcd\x42\xdf\xf7\x25\x08\x82\x2d\x01\x11\x91\xc9\x74\x1a\x7e\
+\x2d\x7f\x6b\xac\x3a\x6f\x91\x45\x04\x05\x3c\x58\x29\xdf\x95\x98\
+\x70\x35\xf3\x6f\x89\x5a\x6e\xe0\x0f\xd5\xf2\x24\x09\x1c\xd8\x9f\
+\xe3\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
 \x00\x00\x02\x7c\
 \x89\
 \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -52447,6 +53010,73 @@
 \x00\xa1\x08\xe9\xb1\xf7\x59\xbc\xf9\xfe\x43\xfb\x09\xe6\x93\x6b\
 \xcb\xcb\x17\x39\x68\xfe\x00\x58\x95\xf6\xff\x16\xb1\xc6\xc2\x00\
 \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x04\x0e\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x37\x5c\x00\x00\x37\x5c\x01\
+\xcb\xc7\xa4\xb9\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x07\x16\
+\x12\x14\x17\x8c\x68\x16\x98\x00\x00\x03\x8e\x49\x44\x41\x54\x38\
+\xcb\x4d\x8e\x5b\x4c\x9b\x65\x00\x86\xdf\xef\xfb\xfe\xf6\x6f\x4b\
+\x4f\x6b\x29\x42\x39\x8f\x8d\xb0\x8c\x11\xad\x81\xad\x90\x11\xdd\
+\x16\x06\x86\x45\x13\x33\xa3\x31\x31\x63\x1e\x61\x73\x26\x8b\x87\
+\x18\x4f\x89\x17\x66\x17\x64\xcb\x12\x13\x8d\x17\xba\x78\x41\x62\
+\xb2\xc5\x71\xb1\x6c\x03\x36\xb6\x0a\x09\x68\x6d\x44\x91\xb1\x60\
+\x38\x15\x28\x07\x01\x5b\x7a\xfa\xfb\xff\xdf\xf7\x79\x31\x31\xbc\
+\x57\xef\xc5\x9b\xe7\x7d\x48\xf0\x64\x23\x74\x55\x03\xc9\x50\x90\
+\x2c\x43\xf4\x76\x06\x6a\x89\xe1\x68\x09\x7a\xde\xac\x1c\xfc\xfd\
+\xbd\xcd\x53\x4d\x13\x71\xaf\x63\x6c\x61\x62\xf3\xfb\x96\xce\xda\
+\x08\x6f\xba\xec\x87\xce\x7b\x28\xd0\xf5\xf6\x95\xd8\x04\x8b\x86\
+\xe6\x71\x63\xe8\x47\xd8\x6d\x56\x22\x34\x60\x57\x85\x75\x77\x53\
+\x47\xd5\xf5\xdd\xcb\x6b\xa7\x1d\xc3\xd3\x79\xae\x89\x85\x0a\xe5\
+\x44\xe9\x21\x47\xad\xeb\x95\x58\xef\xa4\x52\x3a\x32\xdb\xcd\x80\
+\x27\x2d\x80\x78\x67\x73\xf8\x26\xfb\xe9\xe1\x30\x16\xc2\x09\x0c\
+\xdd\xbe\x8f\xb9\x07\x09\x56\xdf\x59\x7a\xd5\x51\xa9\x1c\x4e\x1d\
+\xc8\x37\xd4\x8c\x41\xdc\x91\x65\x62\x1f\x9a\x47\xae\xce\xa5\x54\
+\x7d\x17\x79\x5a\xdd\xca\xe5\x9b\x81\x9e\xa5\x86\x92\xae\x78\x4b\
+\x91\x20\xc1\xb3\xf5\x20\xaa\xa4\x5c\x93\x82\x1a\xac\xd9\xd5\x40\
+\xef\xab\x56\xc6\x29\x55\xa8\x62\xa6\xa4\xee\xca\x5f\xd8\xd3\x1b\
+\xc5\x76\x62\x7b\xdd\xd1\xd2\xa9\x7f\x2a\xef\xca\x26\xf1\x15\xd9\
+\x27\x95\x5c\x5e\x1a\xd4\x26\x21\x05\x80\xa4\xb9\x2c\xc5\x0d\xa4\
+\x34\x09\xc6\x28\x31\x49\x86\xc8\x71\x17\xaa\xfb\x17\xa1\xa6\x05\
+\x04\x23\x08\x9f\x78\x2c\x7e\xfe\xe2\x39\x09\xa2\xca\x06\xff\x20\
+\x48\xe3\xd9\x00\x68\x9e\xa0\x52\x87\xa0\x9a\xe9\x88\xad\x21\x77\
+\x47\xb1\x13\x61\x56\x14\xe2\x8c\x73\xd2\xfe\xe1\x03\xb8\x16\xb3\
+\xd8\x2c\xb6\xc0\xbb\x98\x45\xce\xc6\xb2\xce\x34\x7f\xe2\xba\xac\
+\x7b\xd8\x4d\x5a\xa5\x62\x8d\xed\x42\x72\x45\x17\x93\x43\x14\x36\
+\x28\x23\xcd\xc1\xe4\x78\x9e\x97\xd6\xda\x37\x0c\xd1\xfa\xd1\x9f\
+\xc4\xb1\x98\xc5\xf4\x91\x7c\xdc\x7a\xb9\x44\xec\xbd\x3c\x4d\xdd\
+\xcb\x39\x4b\x7d\x96\xdf\x7d\x41\x1d\x3f\x36\xd6\x4d\x26\x68\xec\
+\x5a\x25\xea\x3e\xd6\x71\xb2\xd7\xa0\xad\xd7\x32\x69\xbe\x64\xba\
+\xe8\xc9\xb3\x22\xd0\xb3\x42\x7c\xd1\x0c\xd6\xda\x0a\x31\xf4\xd9\
+\x3e\x61\x29\x73\xd2\x99\xf7\x0f\x8c\x9c\x5f\xad\x51\xfb\x8b\x2d\
+\x45\xf6\x9c\xe8\x4a\xf4\x39\x40\x02\x2d\x41\x38\xb8\x13\x91\x3b\
+\xeb\xd8\x42\x18\x00\xe8\x07\x03\x6d\x7d\xe5\xd2\x75\xb4\xe8\xb7\
+\x65\x31\xd9\x6e\x27\x4b\x1b\x29\xf0\x24\x21\x6b\xc3\x7a\x9b\xbd\
+\x10\xb7\x04\x40\x0d\x0d\xc2\xfb\x6b\x0d\xc8\x8b\x4f\xbd\x8a\x85\
+\x30\x50\xf3\xf9\x12\xcc\x1e\x49\x39\x72\x62\x2b\x26\x8e\x06\x9f\
+\x2d\x1f\xb0\x9b\x9c\x72\x4d\x5f\x12\xab\x89\x2d\x16\x9f\xd6\x6f\
+\x7e\xf3\x52\xf5\x33\x53\x58\x25\xd5\x64\x56\x02\x9f\xa2\xe1\xb9\
+\x2f\x40\x00\xa0\xf1\xf8\x61\x24\xa6\x6d\x58\x99\x5f\xc7\x9a\x16\
+\x06\xe0\x36\x7f\x72\xaf\x39\x52\x50\xe2\xdc\x9f\xd1\x33\x7a\x2c\
+\xb6\x6e\x5a\x09\xa3\xd3\x55\x41\xbe\x96\x42\xd2\x5c\x5a\x88\x82\
+\x8e\x10\xc6\xdd\xe7\x1e\x01\x6a\xe9\x19\x3c\xde\x15\xc5\xe9\x77\
+\x8f\x61\xb4\x7f\x86\xaa\xaa\x59\x84\xfa\x22\x57\xab\xf7\x57\x3e\
+\x9f\xd5\x72\x46\x55\x45\x8d\x72\xe9\xc2\x97\x87\x74\x43\x1f\xcd\
+\xf7\x79\xa9\xc2\x14\x61\xc4\x3d\x18\xfb\xe3\xde\x23\xc0\xce\x9c\
+\x79\xe3\x2d\xe6\xf3\xf9\xf8\xcf\xe1\x5f\xbe\x6d\x3c\x78\xb0\xc3\
+\x5f\x5c\xce\x8b\x8a\xfd\xbc\xad\xbd\xb5\x16\xc0\x94\x55\xb5\x90\
+\x8c\x96\x95\xdb\x7b\xba\x5d\xfc\xfe\x42\xbc\xfe\xda\x29\x08\x66\
+\x60\x23\xf1\x37\xc0\x44\x32\xad\xa7\xa0\x58\x29\x99\x5b\x98\x11\
+\x00\x0c\x00\xc8\x19\x59\x94\x96\x16\xff\x7f\xb8\xd3\x80\x01\x30\
+\x33\xc6\x2c\x9c\x73\x56\x50\xe0\x2b\x0b\x04\x02\x3f\xb8\x5c\xee\
+\x3d\xb3\xb3\x73\x17\x46\x47\x47\x2e\xa9\xaa\x0a\x4d\xd3\x32\x00\
+\x34\x00\x3a\x00\xc9\x76\x00\x4c\x00\x6c\x52\x4a\x07\xa5\xd4\x9b\
+\x4c\xa6\xa4\x6a\x56\x87\x3d\x5e\xcf\x60\x28\x14\x1a\xe0\x9c\x3b\
+\x39\xe7\xdb\x7b\xfe\x9f\x91\xfc\x17\xb9\x74\x8f\xb8\x3b\x01\x1d\
+\xdc\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
 \x00\x00\x02\x43\
 \x89\
 \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -52486,7 +53116,7 @@
 \xce\x01\x59\x40\xf1\xfb\xc4\xc0\x91\x88\xc4\x30\x9e\x9f\xaf\xc9\
 \x06\x51\x54\x9d\xd3\x94\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\
 \x60\x82\
-\x00\x00\x02\x9c\
+\x00\x00\x02\x9e\
 \x89\
 \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
 \x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
@@ -52494,42 +53124,199 @@
 \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\
 \x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
 \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
-\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x19\x49\x44\
-\x41\x54\x78\xda\x85\x90\x49\x68\x14\x41\x14\x86\xff\xea\x9e\x25\
-\x8a\xcb\x55\xec\x0e\x18\x15\x45\x04\x49\xbc\xc8\xe0\x41\x2f\x7a\
-\x17\x04\x15\x02\x62\xf0\x62\x60\xd4\x44\xe3\x32\x78\xc8\x21\x46\
-\x23\x18\x84\x0c\x06\xa2\x04\xdc\xc0\x60\xf4\x22\xb8\x44\x51\xf0\
-\x20\x9e\x3c\xe8\x68\x8f\x81\xc0\x08\x26\xb8\x1c\x9c\xc1\xc1\xb1\
-\xab\x7b\xe6\x59\xaf\xe8\x4a\x93\x31\xe0\x6b\xfe\xfe\xbb\xaa\xfa\
-\xff\xde\xa3\x04\x11\x81\x4b\x08\xd1\xaa\xcc\x51\xd2\x4b\xfc\xbf\
-\x38\x38\x9b\x30\x2b\xd7\x75\xd7\x7d\x9a\x9e\x7e\xee\xff\xf1\x45\
-\x84\x60\x28\xf4\xc3\x3b\xfa\x3b\xf6\x44\x32\x49\x4b\x5a\x5a\x76\
-\xcc\x03\x6c\xdb\x16\x81\x0c\xec\x5f\xd5\x2a\x2c\x4b\x28\xd9\x91\
-\x5b\x5a\xa2\x19\x90\x48\x10\xaf\x0c\xc0\x8c\xcd\x3f\x2b\x98\xc5\
-\x00\x76\x0e\x6a\x59\x91\x1b\x00\x7f\x73\xc5\x80\x68\x53\x4d\x12\
-\x01\x22\x71\xc0\x4c\x60\x14\x03\x84\xb5\x00\x60\x09\x1d\xd6\x10\
-\x15\x62\xf9\x52\xe2\xfa\xd8\x28\x3a\xf7\xef\x31\xfb\xec\x8b\x4f\
-\xc0\xdd\xb8\xab\xd1\xc3\xbb\x03\x08\xfc\x00\xdb\x37\x12\x66\xbc\
-\x65\xb0\xe3\x49\xf4\x79\xf3\x1d\x98\x03\x0d\x7a\x32\x39\x88\x95\
-\xfe\x63\xf4\x8d\xfc\xc4\xb1\x4e\x07\x5d\x47\xf2\x26\x64\xba\xeb\
-\xe2\x9d\xb8\x22\xc0\xd4\x83\x21\x2c\xad\x4d\xa1\x67\xf8\x3b\xf2\
-\xa7\x56\x23\x10\x2e\xda\xdb\x3b\x4c\x03\x33\x05\x2d\x7a\x89\x4f\
-\xef\x0f\x61\xb9\x7c\x81\xde\x2b\xdf\x30\x76\x6e\x0d\xbc\xaf\x0e\
-\x0e\x9f\xb8\x65\xba\xce\x3b\x11\xe1\x1f\xc0\xa3\x89\x0b\x58\x11\
-\xbe\xc6\xf1\xcb\x5f\x30\x7a\xd6\xc1\xc7\x39\x35\x7a\xef\x6d\xa4\
-\xd3\xe9\x66\x80\xa9\x18\xb0\xb5\xed\x47\x57\xfa\xf7\x33\x74\x5f\
-\x9c\xc1\x78\x7f\x1b\x3e\xcc\xb9\x38\xd4\x73\x03\xa9\x54\x0a\xa6\
-\x4a\xa5\x12\xa4\x94\xa8\xd7\xeb\x0c\x6d\x00\x90\x7a\x94\xee\x7d\
-\xad\xc3\xf7\xee\x8c\xf8\x9b\x37\xad\xa5\x97\xe3\xdb\x28\x7f\x7e\
-\x2f\x55\xab\x55\x0a\x82\x80\xc2\x30\x24\x15\xa0\x46\xa3\x41\x85\
-\x42\x41\x7b\xad\x56\xa3\x5c\xee\xcc\x4d\x00\x36\x83\xb3\x1d\x1b\
-\xf0\x7e\xf7\xae\x9d\xe1\xbb\xb7\xaf\x28\x3f\x78\x80\x2a\x95\x0a\
-\xa9\x4e\x0b\x00\x5c\x0c\xe0\x70\xdf\xe9\x93\x13\x3c\xbd\xb9\x87\
-\x55\x42\x88\xd9\x2d\xeb\x53\x9f\xaf\x5e\x3a\xd8\xdc\xd9\x74\xd7\
-\xf2\x3c\x4f\x66\x8f\x66\xaf\x01\x48\x72\x98\x25\xf8\x95\xc9\x64\
-\x9c\x62\xb1\x98\x2b\x97\xcb\x93\x00\x42\x25\x11\x09\xec\x46\xd1\
-\xd9\x1b\x95\x91\x88\xea\x2f\xfb\x5c\xf8\xbd\xf0\xc1\x4d\x21\x00\
-\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x1b\x49\x44\
+\x41\x54\x78\xda\x7d\xd1\x4f\x48\x14\x51\x00\xc7\xf1\xef\x9b\xf7\
+\xe6\x9f\x9a\xba\xea\x96\x66\x50\x87\x82\x82\x22\xf0\xa0\x75\x08\
+\x2a\x85\x40\x32\xf1\xd0\x45\xbb\x75\x0e\xf5\xd2\x25\x0a\x3c\x75\
+\x8f\x8e\x9d\x0c\xba\x75\x50\xea\xe4\xa1\xa2\x53\x1d\x54\x84\xb2\
+\x32\x63\xc1\x64\x3b\xe4\xfa\x27\x75\x76\xd7\xd9\xf7\xda\xb7\x41\
+\xec\xb0\x5b\x1f\x18\x06\x86\xe1\x3b\xbf\x99\x11\xc6\x18\x44\xfa\
+\xdc\x93\xa3\x5e\xee\x76\x14\x45\x6c\x86\xa7\xe0\xec\x18\x35\x1a\
+\xb7\x48\x0d\xcc\x71\xb5\xef\x38\x99\x6c\x96\xf9\x85\x8d\x17\xfa\
+\xfe\xe2\x90\xa2\x42\x9f\xbc\xdc\x3f\xc0\xdd\x07\x0f\xa9\x27\x36\
+\x07\x8c\x2d\x0d\x32\x72\xe6\x06\xa3\x5d\xa3\xbc\x69\x7e\x45\x7b\
+\xeb\xcb\xeb\xe2\xa9\xb8\xa3\xb0\x7e\x7e\xdc\xfa\xb0\xdc\xc2\xcd\
+\xc1\x2b\x94\xd2\x3d\x34\x9c\xbf\xc5\x41\x49\x53\x8c\x0d\xd6\xee\
+\xe1\xd7\x14\x2f\xac\x33\x97\x9d\x65\xa4\x7d\x80\xf5\xec\x5b\xa2\
+\x78\x05\x91\x17\x93\x8a\x3f\x16\x5b\x3b\xba\x86\xd7\x36\x0a\x34\
+\xfb\x29\xc2\x96\x34\xdd\x4d\x2e\xeb\xb9\x02\xd6\x5e\x7a\x87\xa9\
+\xce\x29\xc6\xfb\xc6\xb1\x7a\x8f\xf4\x63\xb5\x7d\x6a\xeb\x72\xa8\
+\xa2\xe3\x18\xe9\x38\x68\xe3\x94\x9f\x0e\xed\x87\x7c\x7c\x57\xd1\
+\xa8\x4f\x30\xf1\x75\x82\xd3\xcf\x05\xef\xd6\x66\xb8\x37\x7b\x91\
+\x4b\x33\x82\xcd\xf4\xe6\x5a\x32\xa0\x4b\x48\x29\xf1\x5c\x97\x7c\
+\xec\x10\x94\xcf\xbe\xe7\xd2\xb9\x33\x48\xe0\x1f\x23\x13\xc2\x5e\
+\x09\xb2\x21\xbc\xf7\x00\x8f\x47\x89\x80\xfd\x23\xca\x71\xec\x53\
+\x2b\x47\xb1\x24\xe8\xb0\x2b\x94\x4f\xcf\x97\x69\xc2\xdd\x3e\xae\
+\xcd\x8f\xf2\xec\x57\x86\x70\x69\x68\xd5\x0c\x9b\xc7\x8a\x04\x83\
+\x94\x8e\x5d\x50\x75\x05\x9a\x02\x59\x8e\x75\xd3\xbb\x3a\x8d\xe5\
+\x08\x58\x59\x5e\xf8\x0e\x90\x08\x38\x80\x52\x92\x86\xc0\xa3\x9a\
+\xaf\x04\x9e\x36\x68\x4d\x85\x10\x02\xd7\xf3\xa9\x0d\x54\xe6\x7b\
+\x34\x85\x01\xd5\x84\x30\x04\x42\x60\x34\x68\x40\x00\x5e\xbd\x80\
+\x72\x5d\x5a\x53\x29\x1a\x43\x9f\x24\x3b\x5b\x00\x06\x6d\x0c\x20\
+\xca\x01\xaf\x36\xe0\x4a\x45\x18\x04\x34\xf8\x3e\xf5\x48\x61\x03\
+\x02\x83\xc1\x75\xeb\x2d\x50\x0a\xc7\x18\x42\xdf\x23\x29\xf9\x3a\
+\x18\x81\x5b\x6f\x81\x54\x92\x7c\x7e\xdf\x7e\xc8\x7f\x07\xfe\xde\
+\xeb\xd6\x06\x10\x0e\xf9\x42\x9e\x42\xf1\x80\x84\xba\x4b\x64\x22\
+\x90\xd9\xdd\xd9\x22\xda\xdb\x66\x23\xb7\xcd\xe7\xd5\x6f\xfc\x4f\
+\xb1\x14\xb3\x1f\x45\x3f\x00\x7e\x03\xd0\x4f\xb5\x1d\xf3\xfe\x36\
+\xa3\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x09\xa4\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x37\x5c\x00\x00\x37\x5c\
+\x01\xcb\xc7\xa4\xb9\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\
+\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x09\x16\x49\x44\x41\x54\x78\
+\xda\xa5\x95\x79\x6c\x5c\xd5\x15\xc6\xbf\x7b\xef\x7b\xf3\x66\x73\
+\xc6\xc6\xf1\x6e\x27\x71\xbc\x60\x67\x77\x20\x61\x29\x90\x36\x6d\
+\x21\x45\xec\x81\x28\x08\x68\xd5\x4a\x48\x2d\xfc\x51\x84\xaa\xaa\
+\x82\xf2\x47\x05\x14\x24\x4a\x1b\xa9\xa5\x11\x34\x40\x49\x89\x13\
+\x12\xf6\x00\x21\x25\x90\x06\x48\x20\x6e\x20\x8b\x21\x4e\xbc\xc4\
+\x8e\xb1\xe3\x2d\xce\x78\xec\xf1\x2c\xef\xbd\x7b\x4f\xef\x1b\xd9\
+\xd5\x28\x1a\x03\x12\xbf\xf1\xf7\xce\xbd\xb2\x47\xe7\x3b\xdf\x9d\
+\x3b\x66\xc8\xc1\x86\xfb\x1e\xc2\x7d\xcf\xfe\x0d\xf9\x91\x02\x30\
+\x00\x0d\xf3\xe6\xe2\x70\xcf\x11\xa4\xfa\xa2\xf0\x88\x84\xab\x8b\
+\xcb\x6b\xf3\x6b\x22\x45\x81\x4a\x9f\xdf\x9c\x25\x5d\x65\xc7\x46\
+\x92\x7d\xfd\x27\x63\x6d\xd1\x89\x8e\x41\x68\xea\xd6\x5c\x88\x65\
+\x35\x75\x18\x1d\x49\x02\x8c\xc1\x99\x14\xb8\x72\xbd\x85\x3f\xde\
+\xf9\x26\xb2\x61\x38\x8f\xdf\xac\xff\x15\x0e\x9c\x3b\x89\x54\x22\
+\x0d\x27\xa1\x90\xc7\xc2\x28\xfc\xf9\x20\x36\xdf\xdb\x8a\x8b\x2f\
+\x5c\xb2\xa0\x66\x65\xd1\xba\xca\xfa\x82\x1f\xe7\x17\x87\x6a\x02\
+\x79\x66\x44\x98\xdc\x04\x48\x25\x27\x9d\x89\xe8\xe0\x64\xd7\x99\
+\x8e\xe8\xae\xfe\xd6\xf1\xe6\xa3\xdf\x6f\x39\xb9\x72\x72\x01\xea\
+\xe3\x4d\x48\xf7\x87\xe0\x04\x13\x30\x4f\x57\x81\xed\x7a\x0a\xdb\
+\x57\x8c\x03\x67\x66\x30\xb0\xfe\xf6\xdb\x20\x99\xc2\xe0\xe9\x18\
+\xa2\xfd\x49\x7c\xd1\xb3\x1f\x0b\xb0\xc6\x37\xeb\x9a\x89\xbb\x16\
+\xfc\xa0\xec\x81\x8a\xfa\x82\xf9\xba\x31\x11\x57\x4c\xc2\x81\x22\
+\x17\xc4\x14\x38\xe3\xe0\x24\x28\x15\x97\x6c\xa0\x23\xd6\x79\xfa\
+\xf0\xb9\x47\x6b\x0b\xab\x9b\x3f\x7c\xa6\xcb\xae\x5c\x35\x0b\x3e\
+\xc3\x42\x68\xb8\x0a\x21\x11\xc2\xf3\x9f\x3e\x86\x69\x04\xb2\xb8\
+\xe1\x96\xeb\x11\x4f\xda\x48\xc5\x09\xf1\x5e\x85\x23\xdd\x7d\x58\
+\x17\xf9\xa9\x21\xaf\xed\xbd\xbf\xe9\xc6\xca\x27\xca\x16\x44\x8a\
+\x94\xa9\xf3\x56\x0e\x1c\x65\xc3\xd5\x72\xa4\x03\x57\xcb\x71\x6d\
+\xd8\x32\x4d\xcc\x22\xca\x2f\x0f\x16\x06\x0a\xcc\xab\x4f\xf7\x0e\
+\xa4\x56\xff\xb2\xfa\xb3\xe7\x63\x3b\xe4\xbe\x8a\xb7\x50\xd1\xe0\
+\xc7\x5f\x57\x3f\x89\x1b\x9d\x9b\x70\xb2\xf3\x04\x3c\x0c\x64\x13\
+\x20\x54\x86\x0a\xb0\xf1\xd2\x27\x50\xbe\x73\x29\x43\x7a\x98\xba\
+\x1b\x0e\xde\xdc\xf0\xa3\xd9\x0f\x59\x95\xcc\x8a\x25\xc7\x15\x17\
+\x5c\x0f\xcb\xc1\x19\x88\x31\xfd\xc3\x00\x10\x30\xf5\xe4\xae\x74\
+\xb5\x29\x29\xf3\xab\xfd\xc1\x72\x19\x79\xf0\xe0\x07\xdd\x3d\xec\
+\x5f\x6c\x07\xc2\xb3\xf1\x52\xcb\x9d\xf8\xf5\x9e\xeb\xf1\x65\x65\
+\x2c\x77\x02\x17\x36\x34\x62\xc0\x19\xc5\x53\x1f\x6d\x45\x6c\x9f\
+\x1f\x75\xb3\xea\x4b\x8a\xaf\xe3\x1b\x02\x75\x7c\x7e\x32\x9d\x94\
+\xc4\x95\x70\x49\x91\x9e\x99\x39\x90\xcc\x65\x4a\xaf\x08\x12\x9e\
+\xa0\x77\x04\x2d\xd2\x7b\x6e\xbb\xae\x34\x22\x22\x90\x8c\xdb\x45\
+\xc5\x89\xb9\xbb\xac\x9e\xbc\xc9\xf6\x53\x51\xa4\x53\x02\x10\x84\
+\x8e\xcf\x4e\xe5\x48\xc0\x90\xd8\x37\xf6\x01\x6a\xab\x6b\x59\x28\
+\x5f\x91\x3f\xe4\xbf\x8a\x95\xb3\x95\x71\x77\x92\x4c\x32\xb8\x4d\
+\x0e\x18\x13\x8c\x0b\x06\xc6\x19\xbc\x0a\xa6\xd7\x40\x46\x1c\x99\
+\x35\x83\x86\x14\x71\xe2\x80\x51\x89\x4b\x65\x91\x73\x49\x7c\xe1\
+\xf0\xce\x3e\xd7\xc7\xf6\x7e\x78\x92\x6e\xff\xde\x5a\x68\x72\x18\
+\xe0\xc0\x3d\xe3\xf7\xa3\xf9\x4f\x7f\xa6\x89\x02\xa0\xfc\xe1\x0b\
+\x56\x3a\x7e\x12\xcc\x35\xa4\x4b\xae\x50\x20\x70\x2f\x7e\xc9\xa0\
+\x7d\x64\xea\x34\xa4\xc5\x3c\x79\x86\xc8\x33\xa0\x0b\x91\x72\x2d\
+\xe9\x67\xc5\xea\xe2\xc4\xed\xdd\x3b\x89\x80\x27\x9e\xfe\x3b\x5a\
+\x12\x7b\x72\x1b\x20\x05\x0c\xd9\x23\x88\x2e\x24\xbc\x07\xf0\x07\
+\xef\x5b\x56\x91\xf6\x02\x75\x25\xa4\x92\x70\x95\x82\x10\x1c\x5c\
+\x4b\x78\x26\x78\xb6\x01\x02\x11\x41\x11\xc0\x74\x35\x20\x74\x65\
+\xe4\x78\xef\x0b\xf2\xca\xd8\x9d\x40\x0c\xa0\xd6\xbf\xb4\xc2\x25\
+\x99\xdb\x00\x97\x1c\x48\x19\xf0\x18\x87\x86\x28\x73\xc2\x92\x98\
+\xf7\x04\x13\x94\x89\x5d\x64\x2a\xc0\xd9\xb4\x01\xaf\x31\x81\x3c\
+\x29\x05\x0e\x8e\xa0\x30\x61\x72\x03\x49\x96\x86\xe3\x23\x41\x8c\
+\x3c\x43\x70\x03\x69\xc0\x97\xdb\x40\xc6\x75\x71\xa2\x02\x21\x62\
+\x48\x00\xea\xb2\x7b\x96\x0f\x59\x86\x02\x37\x00\x1f\x13\x99\xe9\
+\x0d\x21\x90\x31\xc1\x39\x18\xb4\xa6\xa6\x57\x9e\x48\x41\x4a\x05\
+\x1f\x0c\x84\xb8\x1f\x82\xf1\x4c\x7a\x13\x69\xd5\x57\xf2\x1f\x86\
+\xf9\xef\x83\xcd\x49\xd7\x52\xbb\x3a\x3b\x43\x02\x8c\x63\x63\xd3\
+\x23\xa8\xbd\xb7\x8c\xb9\x93\x44\x2c\xe1\x3b\x1c\x00\xc1\x08\x78\
+\xc3\x32\x12\xc2\xbb\x81\x99\x23\xc8\x4c\xef\xbd\xb2\x0d\x48\xc9\
+\x20\xb9\x36\xa9\x0c\x10\x40\x4a\x48\xe1\x26\x95\xeb\xf4\x8b\x43\
+\xc1\x47\xe7\xc1\xba\xc0\xc0\xe3\x65\x0f\x60\xad\x73\x73\x6e\x03\
+\x92\x14\x56\x4c\x5c\x81\x64\x87\xc4\xd0\x51\x20\x39\x37\xf4\x71\
+\xe1\x55\xb2\x2b\x5c\xc6\x6b\x48\x42\xe9\xc9\x99\xd7\x5c\xfb\x00\
+\xa6\xdb\x4f\x9f\xbf\x22\x38\x1c\x70\xc8\x5b\x03\x92\x24\x81\x13\
+\xb3\xcf\xd2\x17\x89\x8f\x22\x07\xe3\x51\x0b\xf9\x4d\x44\xab\xe6\
+\xcd\x01\x09\x85\x69\x38\xb2\xf0\x22\x9b\x3f\xbb\x14\x75\xe7\x2e\
+\xa2\xeb\xe9\x13\x2c\xe9\xd9\xd3\x95\xec\x10\xaf\x58\xcc\x40\x38\
+\x68\x52\x28\x60\x42\x8b\x82\x01\x1f\x82\x7a\x1d\xf0\x0b\xf8\x3d\
+\x59\x02\xa6\x99\x31\xe6\xa5\x48\x5a\x10\x3e\x40\xa5\x25\xe2\xed\
+\x6c\x7b\xf4\x9d\xdd\x03\x15\xff\xde\x87\xcb\xcc\xd5\x28\x0c\x87\
+\x01\x97\xe5\x4e\xc0\xa3\x4c\x71\x6c\x9b\xb5\x17\x81\xc6\x26\xd6\
+\x7d\x22\x45\x8b\xe6\xf9\xff\x59\x7a\x91\x7b\x6b\xfe\x12\x73\x3e\
+\xb9\x4c\x99\x86\xc9\x0d\x6e\x00\x04\xb8\x70\x32\xb7\x43\x29\x42\
+\x8a\x48\xef\x38\x4c\xa6\x31\x98\xf2\x07\xc1\x47\x3a\x71\x6c\x64\
+\x57\xa8\xb9\xf7\xd9\xe5\xb0\x1a\x4d\x1c\x28\x7d\x0f\xbe\xae\x21\
+\xcc\xab\x58\x96\xfb\x9b\xf0\xf8\x97\x6d\xa8\x59\xbc\x08\x8b\x17\
+\xce\x41\xd5\xfb\x6b\x50\xdf\xfe\x16\x4b\xfd\xee\xc4\x88\xf3\x74\
+\x95\x51\xbe\xd4\x77\x4d\x28\xe2\xa3\xa0\x08\x20\x6c\x84\x99\xdf\
+\xb0\x20\x04\x03\x17\x00\x63\x80\x94\x04\xc7\x06\xa0\x38\x85\x82\
+\x06\x43\x42\xe1\xf4\x4e\xf5\xfb\x81\x8b\x3f\xde\x5b\x7f\x6d\x8a\
+\xed\x3e\xdb\x81\xd3\x2b\xf6\x21\xdf\xaa\x40\xf3\xd6\x6d\x33\x27\
+\x00\x02\x86\xdb\x93\x68\x9f\xfb\x1a\x46\x1b\x1a\x69\xc8\x19\x42\
+\x04\xd6\xe6\xaa\x4b\xe4\x0d\x8d\xd7\x84\x56\x99\x76\x40\xf9\x29\
+\xcc\x88\xc8\x9b\x16\x69\x00\x29\x46\x48\xeb\xb8\x85\xae\xa6\xc1\
+\x29\xe8\xe7\xfc\xab\x83\x6a\x57\xeb\xf6\x92\x1d\x63\xb8\x02\x56\
+\xd0\x47\xb7\x2e\x5d\x83\xa2\x1e\x0b\xcc\x27\x91\x0d\xc7\x79\x6c\
+\xd9\xf6\x12\xc2\x45\x06\x0e\x9c\xbc\x0d\x43\xfc\x13\x2c\xbf\x4b\
+\x30\x5a\x7e\xf8\x6c\xdb\xcb\xf6\x93\x89\x41\x95\x0c\x06\x4d\xee\
+\x83\x8f\x2c\x66\xc1\xaf\x65\x71\x13\xa6\x10\x99\x5b\x61\x30\x41\
+\xa1\x90\xe0\xe9\x61\x15\xef\x7e\x97\x36\xd8\x73\xf6\x8f\xd7\x5f\
+\x7d\x86\xf5\x24\x3e\xc0\x27\x07\xde\x45\x9e\x15\xc0\x9b\x5b\xde\
+\x46\x36\x02\x39\x58\xb1\x78\x29\xf6\xbd\x31\x88\x82\xd9\x73\xd1\
+\xf9\x5a\x10\xa3\x03\xc7\xd1\xd7\xb5\xb8\xa7\x7a\x51\xba\xb1\xac\
+\x21\xb8\xc8\x90\x7e\xc5\x94\xc1\x15\x24\x5c\x72\x32\xff\x92\x53\
+\x29\x09\x5d\x94\x4f\x70\xde\xf7\x69\xfa\xe5\x3d\xcf\x2d\xdb\xe0\
+\xc4\xee\x56\x85\x7d\x23\xb8\xec\xba\x85\x38\xf5\xc6\x87\x48\x28\
+\x85\xcf\xbf\x38\x9a\x3b\x81\x6c\x9e\xdd\xf2\xa2\xfe\x63\x17\xbb\
+\x77\xbf\x8e\xc1\xd2\x83\x68\xba\x69\x09\x2b\x59\x72\xdc\x6e\xdf\
+\x6d\xbf\x30\x7a\x26\x91\x52\xa6\x2d\x14\x29\x62\x4a\xc0\x13\x29\
+\xa6\x2b\x27\x7d\x1b\x44\x6a\x54\xda\xfd\xff\x95\x5b\x2b\x2e\xdf\
+\xe9\x2c\x5e\xfb\x30\x6b\x9f\xfb\x36\x7e\xd1\x9c\x44\x97\x11\xc3\
+\xa6\x6d\x9b\x71\x3e\x1c\x33\xe0\x23\x8e\x5b\xee\x58\x87\x9f\x5c\
+\xb9\x0a\x63\xfb\xf3\x69\xe8\x98\x3e\x96\x77\xe8\xe0\x70\x67\xe2\
+\xf3\x34\x26\x61\x53\x8a\xa4\x92\x20\x05\x30\xc9\x61\xc0\x20\x3d\
+\x3d\x26\x06\xdc\xe3\xa7\xde\x34\x5a\xfa\x0f\xe4\xc3\x3e\x51\x48\
+\x3f\x5c\xbe\x1a\xdb\xef\x8e\x20\x00\x03\x9a\x6f\x6f\xe0\x99\x2d\
+\x9b\x91\xc7\x04\x42\x86\x09\xff\x48\x09\x88\x2e\x80\xa2\x8f\xa2\
+\xd1\x7e\xf7\x4b\xcf\x40\xda\x8a\x92\x6d\x8d\xc3\x35\x12\x50\x22\
+\x05\x12\x09\x12\xc2\x45\x6a\x84\x3a\x86\xd0\x30\x0a\x3c\x07\xff\
+\x70\x09\xf2\xbc\xd6\x04\x6c\x7c\xf1\x05\xe4\xc2\xc0\xd7\x10\xb7\
+\x53\x60\xe0\x68\xc3\x0e\xd4\x5c\x5e\xcc\xe3\xf1\x90\xaa\x9a\x3d\
+\xda\xeb\x9c\x11\xa8\xa8\xc9\x03\x41\xc1\xf4\xe5\xc1\x34\x8a\x50\
+\x10\x2a\xc0\xb1\x96\x36\x74\x1e\x1e\x69\x45\xe5\x3f\x64\x59\xd9\
+\x8b\xec\xc8\x23\x09\xba\x75\xd3\x5a\x8c\xf9\xc6\x31\x13\x1c\x5f\
+\xc3\xab\x3b\x5e\x87\x47\x7e\x5e\x04\x7d\x2d\x63\x18\x6e\x9d\xc4\
+\x67\x7b\x8f\x1c\x8a\xb5\x02\x0b\xc4\x15\x8c\x9d\x98\x8d\xdd\x1b\
+\x8e\xa0\x7b\x57\x1c\xbf\x5d\xf7\x38\x1a\x23\x97\xe8\xdf\x1f\x3d\
+\x86\x3e\xe0\xdc\x11\xc5\x4a\xef\x28\x05\x63\xc0\x5b\x5b\xde\xc1\
+\x4c\x18\xf8\x06\x98\x77\xbd\x2c\x0e\x0b\x06\xec\x09\x1b\x9a\xf4\
+\xac\xc2\x30\xac\xb0\x40\xfd\xc2\x1a\x1a\x3a\x37\xc0\xee\xfa\xd9\
+\x1d\x34\x99\x8c\xf3\xc1\x91\x7e\x68\x46\xa0\xf1\x05\x0c\x98\x01\
+\x01\xc2\xd7\xc3\xf1\x0d\xbc\xbc\xfd\x15\x28\x45\x20\x9a\x36\x04\
+\x16\x3d\x17\x45\x32\x91\x82\x63\xbb\x70\x1c\x89\xba\xba\x06\x70\
+\x26\x30\x32\x9c\xe9\xcd\xa0\x71\x1d\x17\xd2\x95\x78\x65\xfb\xab\
+\xdf\xcd\x80\x47\x61\x61\x01\x88\x68\xda\x80\xe1\x19\xe2\x8c\x53\
+\xda\x4e\xb3\x64\x32\x49\xb6\x6d\xc3\x30\x0c\x72\xa5\xfc\xbf\x01\
+\xa5\x14\xaa\xab\xe7\x40\xf3\xdd\x0d\x8c\x45\x63\xde\x51\x10\x34\
+\x4a\xe1\xab\x40\xc0\x3f\x29\x04\x17\xa6\x61\xaa\xe2\xe2\x62\x16\
+\x0e\x87\xd1\xd5\xd5\x85\xe1\xe1\x61\x02\xe0\x40\xe3\xf3\xf9\x70\
+\xea\x54\x2f\xbe\x09\xf6\x2d\x0c\xb2\x69\x05\x02\x01\xe3\xb1\x47\
+\xff\x90\x6c\xde\xfa\xd2\xfa\x70\x38\x6f\x8b\x61\x9a\xe8\xef\x3f\
+\xa3\xb4\x01\xae\xc1\xd8\xd8\xd8\xbd\x6d\x6d\x6d\x9b\x84\x30\x4c\
+\xe9\xe5\x0f\x28\x2d\xca\xd6\xb7\x31\x20\xa6\x64\x4e\xc9\x97\x5d\
+\x0d\x21\xfc\x3a\xea\xf1\xba\xba\xda\xbb\x9b\x96\x2d\x7b\x20\x92\
+\x5f\x90\x31\xb0\x7f\xff\xfe\x47\x5a\x5a\x5a\x36\x99\xa6\x39\xcb\
+\x71\x1c\x7b\x2a\x89\xf3\xab\x27\x57\x4b\xce\x74\x0b\x98\x16\x9f\
+\x6a\xe8\xd7\xb2\xce\xaf\xba\xb9\x4f\x4f\x5b\xda\xd5\xd9\xf5\x7e\
+\x63\x43\x43\xa2\xc4\x6f\x55\xe9\xcf\x41\xef\xa1\x43\x87\x3e\x65\
+\x8c\x35\xea\xe6\x29\x00\xe9\x2c\xa5\xb2\x2a\xcb\x4a\x42\xcd\x94\
+\x00\x3f\x2f\x05\x23\x47\x35\x74\x33\x83\x88\xd2\x53\xd3\x08\xbd\
+\xf7\xeb\xbd\x33\xb5\x77\xa7\xa7\xcd\x9e\x3c\x6b\x7a\x85\x29\xfe\
+\x07\x0a\x65\x64\x31\x04\xd2\x8f\x09\x00\x00\x00\x22\x7a\x54\x58\
+\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x00\x78\xda\x2b\x2f\x2f\
+\xd7\xcb\xcc\xcb\x2e\x4e\x4e\x2c\x48\xd5\xcb\x2f\x4a\x07\x00\x36\
+\xd8\x06\x58\x10\x53\xca\x5c\x00\x00\x00\x00\x49\x45\x4e\x44\xae\
+\x42\x60\x82\
 \x00\x00\x02\x31\
 \x89\
 \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -52568,146 +53355,300 @@
 \xdc\xe7\x5f\x14\x75\xc5\x22\xcb\xbe\x02\xfc\x02\xce\x8e\x94\x0e\
 \x4b\x04\xe7\x86\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
 \
-\x00\x00\x02\x7e\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
-\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
-\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\
-\x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
-\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
-\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\xfb\x49\x44\
-\x41\x54\x38\x8d\x95\x92\x4f\x6b\x1a\x51\x14\xc5\x7f\xef\xa9\x38\
-\xcd\x7a\x16\x5d\x14\xa4\xd0\x65\x9b\x92\x45\x05\x91\xe2\xae\xed\
-\xb6\x76\xd7\x64\x95\x0f\x60\x3f\x44\x0b\xfd\x43\xc1\x76\x15\x42\
-\x20\x10\xb2\xf6\x3b\xe8\xc2\x8a\x28\x86\x5a\x90\x11\x0c\x74\x21\
-\xb3\x10\xd4\x2c\x26\xe3\x8c\xa3\x73\xbb\x88\x63\x75\x48\x0a\x3d\
-\x70\x37\xef\x71\xce\x3d\xf7\xde\xa3\x80\x47\xc0\x2e\xff\x87\xae\
-\x88\x0c\x00\x92\xc0\xee\x68\x34\xaa\x84\x22\x68\xad\xd1\x5a\xa3\
-\x94\xda\x2a\x80\xcb\xc1\x80\x76\xbb\xcd\xde\xde\x1e\xd9\x6c\xf6\
-\x0d\x30\x00\xd0\x00\xa1\xfc\xbb\xdd\xd5\xd5\x15\xc3\xe1\x90\x83\
-\x83\x03\x5a\xad\x16\x85\x42\xe1\x69\xf4\xa7\x01\x12\x09\x4d\x22\
-\x91\x58\x3b\xd0\x5a\x93\xd8\xa8\x45\x10\x60\x9a\x26\x3b\x3b\x3b\
-\x1c\x1e\x1e\x92\xcb\xe5\xde\x95\x4a\xa5\x27\x00\x0a\x28\x8e\x27\
-\x93\x0a\x22\xa8\x48\x40\x29\xc2\x30\xa4\xd3\xe9\xe0\xba\x2e\x8e\
-\xe3\xe0\x38\x0e\xfb\xfb\xfb\x18\x86\x81\x65\x59\xfd\xa3\xa3\xa3\
-\x7b\xae\xeb\xe6\x14\x50\x9c\x4c\xa7\x15\xe0\xaf\x83\xd5\xdc\xa9\
-\x54\x6a\xed\x2c\xda\x45\x84\x5e\xaf\x57\x2b\x97\xcb\xa3\x64\x44\
-\xbc\x4d\xe0\x36\x62\x1c\x37\x02\x11\x41\xa9\x9b\xd2\x9a\xe5\x72\
-\x49\xbd\x5e\xe7\xfa\xfa\x7a\x6b\x84\x74\x3a\x8d\x65\x59\xfd\xe3\
-\xe3\xe3\x87\xc0\xdb\x24\x80\x8a\x3b\xd0\x37\x4b\xcd\xe7\xf3\x28\
-\xa5\xb0\x6d\x1b\xdb\xb6\x49\xa7\xd3\xf8\xbe\xcf\xd9\xd9\xd9\x7d\
-\x11\x79\x7e\x72\x72\x62\x27\xa3\x4d\x46\x37\x8f\xc6\x61\xe3\xcd\
-\x30\x0c\xc6\xe3\x31\x9e\xe7\x71\x7a\x7a\x4a\xa3\xd1\xf8\x5e\xad\
-\x56\x7f\xad\xcf\x48\x8c\x1c\x0f\x92\x69\x9a\x64\x32\x19\xce\xcf\
-\xcf\xc9\x66\xb3\x52\xab\xd5\x2e\xb6\x72\x10\x27\xc4\x53\xe8\x79\
-\x1e\x4a\x29\x5e\xbc\x7a\xc9\x8f\x66\xb3\x09\xfc\xdc\x5c\x64\xd1\
-\x75\x5d\xf1\x3c\x4f\xe6\xf3\xb9\x04\x41\x20\x8b\xc5\x42\x96\xcb\
-\xa5\x84\x61\x28\x41\x10\x48\xb7\xdb\x95\xf9\xdc\x97\x0f\x5f\x3e\
-\xf7\x81\xc7\x80\x12\x11\x44\x64\x25\x30\x9b\xdd\x29\xe0\x38\x8e\
-\x0c\x2e\x2f\xe5\xfd\xa7\x8f\x7d\xe0\x19\xa0\x23\x72\x24\xf0\xda\
-\x9d\xcd\x42\xdf\xf7\x25\x08\x82\x2d\x01\x11\x91\xc9\x74\x1a\x7e\
-\x2d\x7f\x6b\xac\x3a\x6f\x91\x45\x04\x05\x3c\x58\x29\xdf\x95\x98\
-\x70\x35\xf3\x6f\x89\x5a\x6e\xe0\x0f\xd5\xf2\x24\x09\x1c\xd8\x9f\
-\xe3\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
-\x00\x00\x03\x3e\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\x10\x00\x00\x00\x10\x08\x03\x00\x00\x00\x28\x2d\x0f\x53\
-\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\
-\x01\x00\x9a\x9c\x18\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\
-\x8e\x7c\xfb\x51\x93\x00\x00\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\
-\x25\x00\x00\x80\x83\x00\x00\xf9\xff\x00\x00\x80\xe9\x00\x00\x75\
-\x30\x00\x00\xea\x60\x00\x00\x3a\x98\x00\x00\x17\x6f\x92\x5f\xc5\
-\x46\x00\x00\x01\xb0\x50\x4c\x54\x45\x00\x00\x00\xff\xff\xff\xdf\
-\x98\x00\xe6\xa0\x0c\xe7\xa3\x10\xdf\x98\x00\xe6\xa2\x0e\xe7\xa2\
-\x10\xdf\x98\x00\xe5\xa0\x0d\xe3\x9d\x08\xe1\x9e\x01\xe1\x9f\x00\
-\xe1\x9f\x01\xe1\x9f\x0d\xe1\x9f\x12\xe3\xa1\x11\xe5\xa5\x1a\x00\
-\x56\xff\x10\x60\xef\x10\x60\xf2\x20\x99\xdd\x30\x80\xce\x50\x8b\
-\xb1\x50\xb2\xad\x8e\xb2\xa2\x8f\xad\x72\x8f\xb2\x9e\x9f\xbb\x66\
-\xc3\x4d\x02\xc4\x4f\x01\xcc\x5d\x03\xd4\x69\x02\xdc\x84\x0c\xdc\
-\x8d\x05\xe1\x90\x09\xe3\x9b\x0b\xe5\x99\x0a\xe5\xa8\x01\xe7\x9d\
-\x09\xe7\xad\x02\xe7\xae\x01\xe7\xaf\x01\xe7\xb0\x01\xe7\xb0\x03\
-\xe7\xb0\x09\xe7\xb0\x10\xe7\xb1\x1c\xe7\xb1\x1f\xe7\xb1\x33\xe7\
-\xb2\x38\xe7\xb2\x40\xe9\xb4\x43\xeb\xb6\x04\xeb\xb8\x45\xeb\xbb\
-\x20\xeb\xbc\x2d\xec\xb9\x48\xef\xbd\x3a\xef\xc4\x65\xf3\xb9\x17\
-\xf4\xb8\x14\xf5\xba\x13\xf7\xcd\x0e\xf7\xcf\x0d\xf7\xd1\x0f\xf7\
-\xd7\x18\xf7\xdc\x61\xf7\xe4\x91\xf7\xe6\xa5\xf8\xce\x11\xf8\xe7\
-\xbf\xfb\xc8\x1d\xfb\xca\x1b\xfb\xd8\x10\xfc\xcd\x1a\xfc\xfd\xac\
-\xfd\xd2\x17\xfd\xfa\x60\xfd\xfb\x7c\xfd\xfc\x7e\xfd\xfc\x84\xfd\
-\xfe\xd2\xfe\xf8\x20\xfe\xf8\x24\xfe\xf9\x37\xfe\xf9\x3b\xfe\xfa\
-\x47\xfe\xfa\x4f\xfe\xfc\x9c\xfe\xfc\xa3\xfe\xfe\xd9\xff\xd0\x1f\
-\xff\xd1\x1e\xff\xd2\x1d\xff\xd3\x1d\xff\xd4\x1c\xff\xd5\x1b\xff\
-\xd6\x1a\xff\xd6\x1b\xff\xd9\x18\xff\xda\x17\xff\xda\x22\xff\xda\
-\x24\xff\xdb\x19\xff\xdc\x16\xff\xdf\x19\xff\xdf\x41\xff\xe0\x12\
-\xff\xe2\x3c\xff\xe3\x10\xff\xe4\x19\xff\xe5\x0e\xff\xe6\x0e\xff\
-\xe7\x0d\xff\xe7\x61\xff\xe9\x20\xff\xea\x0a\xff\xea\x1a\xff\xeb\
-\x0a\xff\xed\x08\xff\xed\x67\xff\xef\x06\xff\xf0\x06\xff\xf1\x04\
-\xff\xf2\x5d\xff\xf2\x7c\xff\xf4\x53\xff\xf4\x82\xff\xf5\x03\xff\
-\xf6\x05\xff\xf7\x07\xff\xf8\x16\xff\xf8\x17\xff\xf8\x6c\xff\xf8\
-\x87\xff\xf9\x30\xff\xfa\x78\xff\xfb\x7d\xff\xfd\xaf\xff\xfd\xc0\
-\xff\xfe\xe1\xff\xff\xf2\xff\xff\xf5\xc6\x84\xb0\x01\x00\x00\x00\
-\x12\x74\x52\x4e\x53\x00\x00\x20\x20\x20\x60\x60\x60\x8f\x8f\x9f\
-\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xb4\xb2\xe3\xac\x00\x00\x00\xda\x49\
-\x44\x41\x54\x18\x95\x63\x60\x44\x03\x0c\x8c\x0c\x0c\x0c\x2c\x9c\
-\x82\x26\xc6\xfc\x1c\x4c\x40\x26\x58\x80\xdd\xd2\xbd\x3f\x3a\xaa\
-\xdb\xc5\x90\x15\x22\xc0\x66\xdd\x17\xe4\x13\x10\x11\xd2\x54\x6f\
-\xc1\x0a\x12\x60\x36\xeb\x8d\x0c\xf4\xf7\x0b\x6b\x6d\xac\x28\xd3\
-\x63\x02\x0a\x70\xb9\x76\x85\x4b\x4a\x87\x05\xcb\x48\x95\xe6\x39\
-\x71\x00\x05\x04\x7a\x3a\x42\x85\x44\x5a\x9a\x85\x85\x4a\x72\xf2\
-\x79\x81\x02\x46\xed\x6d\x9d\x62\x12\x8d\x35\xe2\xa2\x95\xc5\x19\
-\x3a\x40\x01\xc3\x86\x5a\xfd\xea\xaa\x8a\xf2\x22\x2f\xab\xec\x34\
-\x6d\xa0\x00\x5f\x5d\x81\x9c\x52\x51\x61\x5e\x8e\x8a\xac\x4d\x26\
-\x0f\x50\x80\xc3\x39\xcb\x4d\x55\x41\x5d\x59\x5e\xd1\xd3\xc3\x01\
-\x64\x28\x93\x41\x6e\x4a\x8a\xaf\x9d\xad\x77\x5c\x4c\x92\x1a\xc8\
-\x5a\x06\x56\xf3\xf4\xf8\xf8\xb8\xd8\x98\x98\x64\x53\x56\x88\xd3\
-\x59\x75\x1d\x33\x13\x13\x52\xed\x35\xa0\x4e\x67\x60\x60\xe2\xe0\
-\xd1\xd2\xe4\x86\x79\x0e\x0d\x00\x00\x00\x82\x2d\xeb\x05\xb0\x41\
-\x76\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
-\x00\x00\x02\x9a\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
-\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
-\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\
-\x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
-\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
-\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x17\x49\x44\
-\x41\x54\x38\x8d\xa5\x93\x3d\x68\x13\x71\x18\xc6\x9f\x37\xcd\x11\
-\x9b\x8f\x5e\x92\x4b\x52\xf3\x71\xf9\x20\xc1\xd2\x52\x3b\x1c\x15\
-\xc1\x82\xb5\x08\x35\x89\x10\x35\x38\x0b\x4e\x82\x60\x47\x89\x5b\
-\xea\xd4\x41\x08\x14\x1d\x1c\xd2\xbd\x08\xa5\x5c\x16\x17\x1d\x0c\
-\x38\x88\x20\x68\x87\x22\xd8\x56\x93\xab\x62\xed\xa9\x6d\x4c\xc9\
-\xe5\x7a\x7f\xa7\x0b\x67\xda\x45\xfa\x8c\xff\xf7\x7d\x7e\x3c\x2f\
-\x0f\x7f\x62\x8c\xe1\x24\xb2\x9d\xc8\xdd\x0f\x58\x21\x92\xde\xdc\
-\xbe\xf5\x7d\x95\xe3\x72\xfd\x8b\xab\x1c\x97\xfb\xf0\xe0\x7e\x73\
-\x85\x48\x3a\x16\xb0\x4c\x24\xf9\x27\xc7\x5e\x9d\x19\x1d\x0b\x46\
-\x8b\x59\xf9\x19\x51\xd6\x32\xcb\x85\xb3\xd3\x72\x3c\x18\x8c\x9e\
-\xbe\x32\x5d\x5f\xb6\x40\x7a\x00\x0d\x58\x4a\x4e\x9e\x77\x1d\x34\
-\xb7\x11\x4b\x8e\xda\xc3\xf9\x4b\xb5\x2a\x51\xbe\x42\x74\xcd\x79\
-\xf9\x42\x4d\x1c\x99\xb0\xb7\xb7\x1a\xc8\xcc\xe6\x9d\x1a\xb0\x64\
-\xfa\xec\x16\x40\x69\xad\xfe\xb2\x96\x1c\x3f\x67\x07\xb3\x21\x10\
-\x4e\xd9\x37\x2e\xb6\xe4\x5d\xc3\xa0\xd9\x44\xc6\xa6\x36\x14\x0c\
-\x38\x1d\xf8\xf6\xe2\xbd\xae\x01\x25\xd3\x47\xd6\x16\x9e\x12\x65\
-\x87\x47\xa2\x72\x4c\xcc\x70\x86\xc6\x60\xf3\xba\x71\xc0\x0c\x38\
-\x3b\x06\x1c\x89\x08\xb6\xde\xbe\xee\x2a\xef\x3e\x16\xee\x30\xf6\
-\xfc\x58\x00\x00\x2c\x12\x65\x23\x99\x61\x39\x12\x8c\x72\x87\x1a\
-\x81\x1c\x0e\xe8\xac\x83\xaf\xca\xa7\xee\xce\x97\x5f\x85\x39\x8b\
-\xf9\x9f\x13\x4c\x75\x00\x68\x5a\x17\xfa\xfa\x3a\xf4\x9f\x6d\x10\
-\x80\x01\x9f\x13\xcc\x73\x0a\x9d\xfe\xe5\xfe\x04\x0b\x44\x59\x31\
-\x21\xc8\xe3\xfb\x1d\x0e\x6a\x0b\x6d\xbf\x1b\x04\x60\x50\x6d\x01\
-\x7e\x37\xd6\x3c\x83\xdd\xc6\xe7\x9d\x42\xc9\x92\xa2\xd7\xc2\x3c\
-\x51\x4e\x4c\x45\xe4\xa9\x96\xce\x09\x6a\x0b\x2e\xc1\x8b\x27\x3c\
-\xcf\x16\x79\x2f\x73\x05\x7c\x10\xd4\x16\xa6\xfe\x1c\x72\x62\x3a\
-\x2e\x2f\xf0\xfc\xd5\x23\x00\x16\x0f\x3d\x9e\x19\xf2\x72\xa1\xdd\
-\xdf\x70\x07\xfc\xa8\x78\x79\x43\xd8\x54\x8a\xbe\xcd\xe6\xcd\x0a\
-\xcf\x1b\xee\xa0\x80\xd0\x0f\x15\x33\x9e\x21\x8e\x17\xc5\x47\xbd\
-\xd8\x8c\x31\x30\xc6\x50\x06\xa4\x6a\x22\xb6\xa7\x48\x67\x59\x39\
-\x9d\xd2\xe7\x80\xeb\xe6\xec\x2e\x50\x9c\x4f\xa7\x74\x45\x9a\x60\
-\xd5\x44\x6c\xaf\x0c\x48\xe6\xac\x07\x30\x21\x0f\x33\xd1\x8d\x7b\
-\xc0\x0d\xeb\xbb\x09\xa9\xe7\x73\xdb\x56\x33\x63\xec\x68\x8d\xff\
-\xab\x13\xff\xc6\xbf\x7b\x12\xeb\x18\x4c\xd6\x48\xe1\x00\x00\x00\
-\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x04\x00\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x37\x5c\x00\x00\x37\x5c\x01\
+\xcb\xc7\xa4\xb9\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x07\x16\
+\x12\x19\x01\xcd\x12\xdd\x84\x00\x00\x03\x80\x49\x44\x41\x54\x38\
+\xcb\x5d\x8f\x6d\x4c\x95\x65\x00\x86\xaf\xe7\x79\x5f\xce\x2b\x07\
+\x0e\x14\x04\x1e\x3e\xa5\x46\x8a\x08\x8c\x65\x88\x90\xa0\x75\x96\
+\x7c\xb9\x69\x19\xe2\x5c\xb9\x28\x7f\x44\x65\x6b\xcd\xad\x65\xce\
+\x3e\x66\x34\x6b\x8c\xe6\xd6\x56\x8b\xa9\xeb\xe3\x4f\xd9\xc6\x16\
+\x31\x4d\xca\x48\x6a\xb3\x11\xce\xa6\x45\x80\x1f\x7c\x48\x2a\x12\
+\x70\x80\x73\xce\xfb\x9e\xf7\x3c\x4f\x3f\xcc\xcd\x75\x6f\xf7\x76\
+\xff\xb8\xb7\xfb\xba\x45\x45\x63\x25\x51\xcb\x46\x84\x25\x22\x62\
+\x30\x7e\x22\x8c\x95\xed\xfa\x2a\x1b\xef\xdf\x96\x92\x95\xf0\x88\
+\x69\xc9\xe4\xf0\x82\x33\x32\xf1\xc7\xcc\xa7\x1b\x5b\x8a\x06\xe2\
+\xd6\xb7\x3f\xe8\xf3\xe7\x7d\xe2\xf5\xfb\xbb\xbc\x69\x69\xef\x08\
+\x7d\x53\xb3\x79\x5f\x1d\x5a\x6b\x11\x9c\x8a\x68\x65\x8b\xfb\x8a\
+\x1a\xfc\x5f\xa4\x66\x27\xac\x35\x2c\xa5\x95\x88\xa2\x95\x16\xe1\
+\x60\x2c\x1c\x1a\x75\x0e\xbc\x57\xda\xdb\xfc\xfe\xae\xc5\xfc\xac\
+\x49\x05\xa6\xd1\x6d\x9c\xfe\xeb\x67\x26\xfa\x83\xf4\x9d\xe8\x65\
+\xf4\xcf\xa0\x51\xd6\x92\x73\xcc\x77\xaf\x59\xe5\x9a\x31\x37\x22\
+\xa2\xc2\xd5\x51\x5c\xed\x2a\x23\x51\xc4\xad\x4e\x6d\x08\x48\x5f\
+\x63\x4a\xeb\x0f\x43\x2c\x2b\x99\x25\x79\x26\x32\x2d\x2a\x5e\x2c\
+\x43\x58\x5a\xc6\x6c\xad\xa4\x6b\x54\x27\xaf\x91\xbd\x56\xbc\x11\
+\x93\xd2\x94\xa6\x47\x0a\x21\x85\x96\x5a\x88\x75\x66\x50\x55\xe8\
+\x42\x79\x95\x26\x96\xfa\xfd\x18\x13\x6f\xcc\x4c\x5f\xfa\xa6\xd4\
+\x74\x12\x42\x48\xaf\x46\x2b\x60\xc1\x93\xbb\x18\x73\x59\xb4\x35\
+\x86\x21\x45\x9c\x36\x10\x08\x91\x21\x1c\x76\xe6\xaf\x93\x8f\xbd\
+\x70\x86\x1b\x53\x7d\x74\x1c\xac\xd1\x37\xbd\xaf\xbc\xbc\xbf\x2d\
+\x3c\x66\x5a\x8b\x16\x12\x85\x8e\x82\xb4\xe3\x26\xbd\x1e\x8d\x99\
+\x28\x84\xc7\x34\xb5\x69\x18\xc2\xa3\x35\x6f\xe6\x96\xd2\x76\x74\
+\x8a\xa1\xcb\xf3\x7c\xfc\x9a\x97\xa4\xe8\xa9\x43\x5f\x6d\xea\xfb\
+\xec\xd7\xc9\x5a\x44\x60\x6b\x80\x85\xeb\x51\x06\xfb\x24\x5e\x4c\
+\x6f\xf5\xe7\x0b\x67\x12\xb2\x65\x91\x21\x0d\x25\xa4\x90\x3b\xac\
+\x44\x9c\x8b\x79\xec\xde\xdb\x4d\x89\xdf\xe6\xd1\xf2\xc5\xd0\x3f\
+\x63\xe1\xdc\xd3\xd5\xc5\x33\x4e\x34\xa6\x44\x21\xbb\x78\xe8\xf8\
+\x05\xb4\x6d\xc8\x98\xab\xd5\xfc\x45\xd9\x9c\xf7\xb0\xe7\xb0\x77\
+\xc6\x54\xab\x52\x5d\x59\x1d\xc9\xa0\xa6\xe5\x1c\x59\xe6\x15\x56\
+\x24\xc7\xf3\xc1\xa9\x4c\x0b\x1c\x67\xe5\x8a\x24\x92\x96\x99\x88\
+\x07\x36\x56\xe0\x8b\x25\x31\xf0\xfd\x34\xf3\xf4\x03\xc8\x57\x7b\
+\xea\xbe\x2b\x0c\x11\x78\x3c\x23\xc8\x8e\x7d\x2e\x23\x23\xd7\x78\
+\x6a\x73\x31\x67\x13\xe7\xea\x12\xfd\x1c\x57\x20\x5d\x1b\x95\xfa\
+\x5b\x01\x62\xfb\x86\x67\x99\xe8\x87\x82\xb7\x27\xf1\xa4\x68\x19\
+\xc3\x51\xf3\x7f\xab\xc0\xc1\xd2\x91\x9e\x8e\xee\xa5\x74\x74\xce\
+\xf1\xd6\xd3\x0e\x81\xf5\xaf\x93\x17\x18\x10\xc3\xdc\x10\xcb\xc5\
+\x15\x0d\xfb\x59\xb3\xa5\x15\x01\x50\x59\x53\x45\xf0\x92\x97\xeb\
+\x63\xd3\x4c\xd9\xfd\xcc\xfe\x58\xa7\xfb\x7e\x1f\xe2\xb9\x36\xc9\
+\x13\x55\x11\xea\xeb\xe3\x39\x3a\x91\xd9\x92\x9c\x27\x3e\xd2\x4a\
+\x4b\x27\xa4\x54\x7a\xf3\x4f\x9c\xbf\xeb\x25\x4c\x80\xe0\xc9\x12\
+\x4a\x9f\x1f\xe7\x99\x3d\x3b\xd1\x27\x57\xeb\xe9\xe9\x63\xec\xf9\
+\xf0\x6e\xf2\x33\x6d\xb6\x56\x3b\x9c\x0f\x37\xf2\xcb\xe1\x2f\xcf\
+\x46\xdd\x28\xf7\xa4\xa5\x62\x1a\x26\x6e\xfb\x06\xce\xcd\x1d\xba\
+\x45\x70\xa7\x7a\x3a\x8f\xe8\xf9\xb9\x41\x5a\xdb\xbf\x66\xef\xf6\
+\x6b\xc4\x25\x6f\xd1\x46\xce\x93\xd1\xba\x4d\xb5\x45\xc0\x70\xbc\
+\xb5\x44\x84\xed\x88\xbe\xdd\x37\x6f\x87\xcc\x4c\x3f\x0d\xf5\xb5\
+\xc4\x99\xb3\xa4\xc7\x8f\x70\x60\x77\x2e\x4b\x52\xb7\x31\x1a\x5c\
+\xae\x43\x13\x97\x15\xe0\x02\x38\x6e\x84\x9c\x9c\x2c\xc6\xc7\xaf\
+\xfe\x7f\x1b\x03\x88\x2f\x2b\x4e\xd3\x9d\x47\x5a\xf4\xd0\xe0\x05\
+\x5d\x5b\x5b\x33\xdc\xd4\xd4\xa4\xcb\xcb\xd7\xbe\x0b\xa4\x5b\x96\
+\x95\x0e\xf8\x00\x0f\xdc\xa2\xbf\xf3\x82\x07\x48\x00\x7c\x52\xca\
+\x24\xa5\x94\x5c\x55\x58\x98\x55\xb0\xb2\x20\xb3\xab\xeb\xdb\x01\
+\xdb\xb6\x01\x16\x81\xf9\xff\x1c\x02\xd4\xbf\xaa\x26\x7a\xee\x7a\
+\x8e\x2f\x5d\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x02\xcf\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\x1b\xaf\x01\
+\x5e\x1a\x91\x1c\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x01\x04\
+\x03\x37\x10\xc4\x11\x57\xa9\x00\x00\x02\x4f\x49\x44\x41\x54\x38\
+\xcb\x8d\x93\x5d\x48\xd3\x71\x14\x86\x5f\xdd\xda\x46\xd9\x6c\x64\
+\x4c\xb3\x91\x33\x36\xa8\x2d\x2a\xc4\xb9\x69\x4d\x07\x41\xd1\x8d\
+\xe1\xc2\xdc\x16\x61\x17\xa2\x42\x59\x5d\xd4\x55\xa9\x18\xcb\xac\
+\x8b\x1a\xb4\x35\x45\x42\x6a\x42\x24\xec\xc3\x9a\x31\x0d\x5c\x73\
+\x5b\x60\x90\x46\x5f\x4c\x98\xb2\x26\x96\x0d\x43\x9d\x73\xf6\xdf\
+\xfc\xff\xba\xc9\x2b\x65\xdb\x7b\xff\xbc\xe7\xc0\x79\x4e\x16\x32\
+\x88\xc1\xf0\x48\xa6\x54\x2a\x5b\x69\x42\x1f\x5b\x5e\x5e\x5a\x8a\
+\x44\x22\x36\xb7\x7b\xb4\xd3\x64\xec\x5e\x49\x0b\xab\x6b\xd5\x47\
+\x66\x66\xa6\x63\x34\x4d\x93\x85\x3f\x0b\xc4\xf4\xc4\x98\xd0\xea\
+\x34\x1f\xe5\x8a\xb2\xb2\x4c\x86\xe3\xea\xb5\x16\xe3\xfc\xef\x5f\
+\x24\x1e\x5f\x25\x5e\xef\x58\x0c\xc0\x19\x00\x3b\x00\x64\x01\x40\
+\x76\x1a\x9e\x09\x40\x31\x3b\x3b\x0b\x8a\xa2\xc0\xe3\xed\x5e\x67\
+\xb1\x58\xef\x01\xc4\x00\x10\x00\x60\xa4\xa2\x25\xd2\x43\x7c\xb5\
+\xba\xa6\x33\x1c\x0e\x33\x24\x52\x29\xb8\x3b\x73\xd8\xc5\x07\x8a\
+\x0b\x05\xfb\xf6\xbe\x6d\x6b\x6f\x3b\x58\x2a\x2b\xbd\x91\x72\x03\
+\xad\x56\x7b\x4a\x24\x12\x6d\x0b\x04\xa6\x70\xaf\xeb\x01\x28\x8a\
+\x42\x91\xb0\xe8\x82\x40\xb0\x3f\x24\x16\x8b\x27\x83\xc1\xe9\xd3\
+\xa9\x0a\x18\x25\x25\x25\xf5\xee\x77\x5e\xb0\x38\xdb\xe1\xf1\xf9\
+\x31\x31\xf1\x09\x82\x42\x01\x72\x73\xb9\xbc\xc0\x54\x60\xdd\xf2\
+\xdc\x62\xdc\xb2\x20\x6f\x4f\x5e\xf6\xf0\x88\x4b\x5f\xa1\x28\xaf\
+\xd4\xd4\xd5\xc2\xeb\xf3\xe3\xe8\x61\x09\xd6\xa8\x35\x30\x98\x0c\
+\x84\x42\x3f\xfe\xd6\x5f\xbc\x64\x58\x5c\x5c\xec\xdb\x04\x37\x35\
+\x37\xe6\xb8\xdd\xa3\x2f\x7d\x3e\x2f\x71\x3a\x9d\x24\x99\x4c\x10\
+\xd7\xb0\x6b\xb5\xfa\x6c\xf5\x77\x55\x55\xa5\x8d\xc7\xe3\xdd\x06\
+\xa0\x02\xc0\xda\x04\xeb\xf5\x1d\xc2\x91\x11\xd7\xa4\xd9\x6c\x22\
+\xe5\x15\xe5\xc4\x33\xe6\x21\xfd\xfd\x16\x3f\x80\x0a\x00\xbb\xfe\
+\x5f\x65\xeb\xb4\x77\xb4\x9d\xb4\x3b\xac\x91\x2b\x2d\x97\x09\x3f\
+\x9f\x4f\x8c\xa6\xc7\xc4\x31\xe8\xf8\x0c\x40\x98\xce\x95\xec\xd6\
+\xf6\x5b\xd7\x9f\x59\xfa\xa8\x3a\xcd\x79\xc2\xe5\x72\x49\x43\x63\
+\x03\x79\xed\x7c\x35\x5f\x50\x90\x2f\x4f\x6b\xda\xdd\xce\x3b\x37\
+\xcd\x3d\x26\xa2\xd3\x69\x89\x44\x22\x21\x35\xe7\x6a\x88\xd5\x3e\
+\x10\x97\xc9\x4a\x35\x1b\xb6\xa5\x34\x8d\xcf\xe7\x37\x45\x57\x96\
+\x41\x25\x92\x28\x53\xc8\xa0\x52\x55\xd1\xbd\x3d\x4f\xbb\xc6\xc7\
+\x3f\x0c\x6c\xd8\x96\xb2\x80\xc5\x66\x07\x11\xcb\x12\x1e\x3f\x21\
+\x07\x87\xc3\x26\x0e\xfb\x60\xef\xd0\xd0\x9b\xfb\x00\x92\x99\xfc\
+\x0a\x73\x6e\xee\x67\x33\x40\x77\x47\xa3\xd1\xfc\xaf\x5f\xbe\xbd\
+\xb0\x59\x1d\x0f\x01\xac\x22\xc3\xfc\x03\x42\xfe\xed\xe8\xa2\x36\
+\x60\xa3\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x07\x12\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
+\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\
+\x1b\xaf\x01\x5e\x1a\x91\x1c\x00\x00\x00\x07\x74\x49\x4d\x45\x07\
+\xd8\x01\x03\x13\x16\x15\x72\x49\xfe\xa9\x00\x00\x06\x9f\x49\x44\
+\x41\x54\x78\xda\xed\x97\x6b\x6c\x5c\xc5\x15\xc7\xff\x33\x73\x5f\
+\xfb\xb6\x1d\xbf\xed\x8d\xed\x18\x97\x10\x1c\x37\xc5\x09\x09\x52\
+\x14\xc9\x60\x08\x04\xd3\x82\x9a\x22\x55\x72\x50\x53\x90\xa0\x05\
+\xf5\xf1\x21\x54\xa2\x6a\x1b\xb5\x15\xa5\x2a\xa5\x91\xda\x46\x48\
+\xe9\x07\x42\xf3\x05\x14\xd1\x8a\x87\x70\x02\x08\xa5\x2a\x6a\x50\
+\x22\x14\x92\x50\xa2\xa4\x06\xc7\xaf\xdd\xb5\x77\xed\x7d\xef\xde\
+\xc7\xcc\xf4\xde\x9b\x55\x64\x21\xcb\xb2\x11\x6a\xbf\xf0\xdb\x3d\
+\x33\x2b\xdd\xa3\x39\xff\x7b\xfe\x67\xb5\x7b\xf1\x25\xff\x6f\x08\
+\xbe\x60\xee\xdf\xd2\x60\x10\xe1\x7c\x8b\xb3\x40\xbf\x23\x49\xd6\
+\xe1\xfc\xb5\x93\x17\xe6\x2f\xfe\x4f\x04\xdc\xbb\xa3\xbd\x47\xe7\
+\xa5\x13\xed\xcc\xee\xcb\x8a\x10\xf2\x0e\x03\x08\x11\x9c\x8b\xa7\
+\xde\x38\x97\xfa\x2d\x96\x81\xe2\x0b\x84\x13\xeb\x05\xae\xd3\x3e\
+\xa9\x52\xd4\x69\x1c\x1b\xba\xe3\xa0\x1e\x04\xcf\xec\xdd\xde\xb9\
+\x1d\xcb\xa0\x60\x05\x5e\x79\xee\xc7\x64\x2e\x35\xff\x1d\x42\xc8\
+\xfe\x48\x34\x16\x0f\x47\x62\x49\x55\xd3\x8e\x29\x8a\xfa\xfc\x9d\
+\x0f\x3f\xc5\xb1\x84\xbb\xb6\x36\xae\x17\x70\x76\xa9\xc1\x08\xfa\
+\x6f\xd9\x8a\x5b\xb7\xed\x44\xf7\x8d\xfd\x38\xf5\xee\xbb\x38\xfa\
+\xc2\x51\x38\x0e\xdf\x0b\xe0\xfd\x55\x0b\x38\xfe\x87\x27\xdd\xe2\
+\x89\x17\x85\x94\xa3\x86\xa6\x23\x1c\xad\xc3\xba\xe6\x96\x6e\xc6\
+\x94\x1d\xf9\xec\xc2\xdd\xaf\x3f\xff\xb3\x07\x46\x1e\xfb\x95\x83\
+\x1a\x94\xa1\x3b\x12\x8d\xe2\x07\xdf\x7d\x0c\x03\x03\x5b\xc1\x02\
+\x31\x10\xaa\xe2\xce\x7b\x46\x90\x4a\x26\x71\xe2\xc4\xc9\x86\x35\
+\x75\x20\x9d\x4c\x8c\x9a\xa6\x39\x0a\x4a\xa1\x69\x12\xdc\x71\xe0\
+\x58\x16\xa0\x02\x82\x8b\x91\x72\xa1\xf4\x3d\x00\x7f\xbc\x3e\x7c\
+\x7b\x46\x9a\x29\x75\xd0\xbf\xf1\x26\x50\xc5\x00\xd5\xc3\xbe\x00\
+\x29\x1c\xec\xde\x3d\x8c\xf1\xf1\xf1\x56\x9c\x9d\x5d\xfd\x0c\x58\
+\x96\xb5\xaf\x7f\xf3\x26\xdc\x77\xff\x37\xd0\xd6\x7d\x03\x32\xb9\
+\x3c\x0a\xe5\x0a\x4c\xab\x8a\x42\x7e\x11\xd5\x4a\x79\x14\x4b\xb8\
+\x7d\xd7\xd0\xec\xed\xdb\x77\x80\x10\x0a\x4f\x34\xf1\x8f\x96\x9e\
+\x5a\xd4\xc7\x22\x78\x64\x74\xef\xe4\x9a\x3a\x40\x15\xa5\x7b\xcb\
+\xc0\x4d\x50\xc2\x4d\xd8\x15\xef\x05\x65\x9a\x7f\xb0\xe4\x36\x0a\
+\xe9\x24\xde\xfc\xfb\x2b\x5d\x58\x02\x63\xe4\x5f\x11\x25\xf0\x4f\
+\x29\xc4\x4e\x2f\x47\x58\x25\x78\x08\xbb\x02\xe9\x86\x46\xc5\xb1\
+\x35\x7d\x0b\x22\xe1\x90\x04\x65\x20\x4c\x01\x21\x04\x70\xc3\xff\
+\x4c\x19\x42\xae\xd7\xcd\xad\xcd\xec\xe2\xeb\x7f\xd2\x50\xa3\x77\
+\xd7\x43\x92\x58\x95\x03\xd2\x2a\x43\x58\x15\xf0\x6a\x1e\xbc\x92\
+\x85\x30\x0b\xb8\x3a\x31\x2e\x9f\x78\xfa\x97\xc9\x55\x0b\xb8\xf0\
+\xea\xa1\xde\x2d\x03\x1b\xe3\x40\x0d\x59\x5b\x84\x00\xa4\x84\xc7\
+\x57\x6e\x58\xdf\x28\xb9\xbd\x01\x4b\x68\xba\xe3\x89\xd3\x66\x61\
+\xf1\xa4\xb4\x4a\xae\x80\x9c\x2f\xc2\x29\x65\x71\xf4\xf8\x4b\x44\
+\x72\xce\x57\x2d\xc0\x88\xc4\x26\xc2\x91\x70\x09\x52\xc0\x0f\xc8\
+\x6b\xbb\xb0\x01\xc9\x7d\x5f\x03\xba\x36\x1e\xed\xe9\xbb\x84\xcf\
+\x90\x48\x25\xae\x14\x33\x49\x48\xaf\x0b\xe5\x3c\x26\x3f\x19\x47\
+\x72\x66\x0a\x01\xc9\xa3\xab\x16\xd0\x37\xb4\x9f\x13\x61\xff\x14\
+\xdc\x86\x74\xaa\x20\x5e\x61\x6e\x41\xba\xe1\xef\x76\x19\x9a\xae\
+\xfd\xbc\x6b\x60\x04\x9f\xa5\xa3\xb3\xab\xd9\x84\x8a\xd4\xec\x0c\
+\xe6\xd2\x19\xac\x6b\xeb\x82\xe2\x58\x08\x12\xb4\xac\x69\x08\x1b\
+\xeb\xa3\x47\x4c\xcb\x7c\xdc\xf5\x70\x80\x13\x79\x6d\x08\x09\x81\
+\xb0\x2d\xaf\xb5\x09\x45\x53\x8e\xc3\x65\x6c\x6c\xac\xd1\x30\x8c\
+\xa1\xf5\xf6\xc7\xed\x11\x9d\xec\xa4\xc1\xe8\x03\x0d\x11\x0d\x82\
+\xd7\x83\x80\x20\x97\x2b\x41\x97\x0e\xfa\x6f\xfe\xda\x93\x3f\xfa\
+\xc5\xe3\xb7\x16\x8d\xf8\x84\xe4\xce\x9b\x43\x77\x0c\x2f\xac\x38\
+\x84\xd1\x6d\xfb\x24\xe7\xce\xd3\xbc\x5a\x04\xaf\xe4\x6b\x43\x95\
+\x83\x53\x5e\x44\x26\x93\xf9\xcb\xba\xc1\x6f\x5b\xa9\xb7\x9e\x7d\
+\xf8\xe6\x0d\xad\xe3\x83\x83\x83\x2f\xab\xc1\xba\x43\x44\x09\xec\
+\x25\x84\x31\x48\x09\x52\x1b\x9e\xc5\xf9\x04\x82\x84\x20\x9f\x59\
+\x18\x6e\xe9\xec\xf9\xb5\x9b\x7b\xac\x2f\x52\xf8\x34\xf5\xf6\xef\
+\x47\x56\xea\x80\xcf\x54\x29\x30\x16\x12\x0b\x68\x8a\x71\x50\xa6\
+\x40\x4a\x89\x74\x36\x8f\xf1\x39\xf3\x6c\xea\x9d\x43\xb7\x31\x23\
+\x7a\x84\x12\x4a\x14\x45\x81\x54\x03\xa0\x5e\x87\x5c\xb1\x90\x00\
+\x0d\xc6\xfc\xb9\x49\x8d\x7f\x04\x0d\x40\x21\x3d\x8b\xc4\x74\x02\
+\x8d\xbd\x83\x80\x62\x44\xa9\x11\xfb\xeb\xfc\xa9\xc3\x71\x8a\x15\
+\xd8\x76\xcf\xbe\x9c\x8c\xc4\xad\x89\x74\x15\x1f\x4f\x24\x71\xc9\
+\x8d\x05\xdb\xc0\x8d\x1b\x37\xcd\x53\x3d\xfc\x10\x51\x75\x22\x04\
+\x87\x87\x94\x5e\x08\x50\x3d\x04\xa2\x07\x20\xfd\x99\xb1\x31\x33\
+\x3d\x03\x4b\x32\x54\x2d\x07\x53\x57\xce\xc3\x43\x72\x0e\xaa\x1a\
+\x75\x20\x74\xf7\x8a\x02\x12\xff\x7e\xaf\xae\xa3\x23\xae\x46\x1b\
+\x3b\x50\xa8\x08\x40\x8f\xa2\xb5\xad\x13\x9a\xa6\x37\x81\xd0\x11\
+\xaf\x23\x80\x84\x10\x02\x84\x69\xbe\x00\x21\x1c\x6f\xf7\x83\x0b\
+\x8e\xcb\x97\x2f\xc3\x14\x14\x16\xd1\xf0\xd1\x99\x7f\xf8\xb9\xc2\
+\xbb\xee\xb7\x49\xb9\x6f\x59\x0b\x26\x27\xd3\xd4\xe4\xce\xb0\xa5\
+\xb2\x9f\x68\x76\x82\x70\xee\x80\x10\x02\x29\x24\x24\x51\x60\xb4\
+\x6f\x7e\x91\x66\xf5\x98\xcc\x4d\xc3\x71\x38\x2a\x95\x0a\x24\xd5\
+\x00\x47\xc0\x87\x30\x3f\x3f\x9b\x49\x63\xce\xb5\x4c\x82\x80\x29\
+\x2a\x7a\x07\x87\xfc\x5c\xce\x05\x40\xa4\x1b\x64\x88\x60\x09\x17\
+\x2e\x4d\x36\x2b\x94\x3d\x6a\xe8\xda\x23\x9a\xc6\xd6\x7b\x87\xa8\
+\x0a\x45\x69\x61\x16\xc5\x5c\x06\x9a\x11\x42\x43\x5b\x37\x02\xc1\
+\xa0\xef\xb7\x63\x5b\x28\x95\x0a\xe0\x42\xa2\x34\xff\x29\xb4\xe2\
+\x34\x08\x91\x20\x4c\x85\x14\x1c\x8e\x59\xf1\x7d\xaf\x9a\x16\x9a\
+\x3b\x3a\x61\x6c\xb8\x0d\x46\x20\x84\xc4\x87\xef\xc8\x7a\x4d\x9c\
+\x4f\x2d\xf2\xdf\x5c\x17\xf0\xf6\xa9\x0b\xfb\x5b\x5b\xea\xfe\xdc\
+\x50\x17\x0e\x18\xba\xea\x16\x66\xa0\x94\x00\xfe\x9b\x40\x2e\xf3\
+\xf7\xc9\xb3\x80\x0b\xdf\x02\xef\xc7\x09\xd3\x53\xd3\x25\xc6\x10\
+\xa0\x8c\x51\xbf\x63\xd2\xbf\x26\x1d\x9b\x17\x2d\xcb\x49\x55\xab\
+\xd6\x7f\x72\xd9\xc2\xe9\x8b\x67\xce\x8d\xbd\xf1\x56\xfa\x83\xf7\
+\x3f\x78\xce\xf6\xcf\x3c\x7d\xf6\xca\x26\x4a\xe9\xb9\xce\xf6\x06\
+\x55\x55\x19\x02\x86\x86\xda\x01\xfe\xbe\x12\x9c\x0b\xcf\x06\x3f\
+\xb7\x58\xac\xfe\xee\xfb\x8f\x1e\x7e\xa6\xa5\xc9\x08\xd4\x45\x99\
+\x5e\x2e\x73\x7b\x26\x51\xa9\x2c\x64\x4b\x95\x74\x6a\xde\x9c\x4e\
+\xe5\x78\xa9\xf4\x37\x89\x25\x90\x83\x07\x5f\xc6\x9e\xaf\x0f\x1e\
+\x6a\xa8\x0f\xfd\x50\xd7\x54\xc4\xa2\x41\xef\xce\xaf\x4f\xf6\x8a\
+\xf5\x6b\x39\xa6\x65\x7b\x42\x3c\x11\x53\xc9\x54\xb6\x67\xcb\xe6\
+\x6e\x8e\x55\x42\xef\xda\xf3\xd5\x90\x7b\xd7\x0f\x12\x10\xff\x10\
+\x42\xe0\xdf\x91\x10\xb2\xd6\xc2\x95\xc3\xb7\x81\x0b\xd4\x22\xee\
+\xda\xb8\x03\x6b\x80\x56\x4d\x3e\xa4\x28\xac\x4d\x02\xe0\x42\xf8\
+\x9e\x5a\xb6\xdf\xd2\x55\x85\x10\x7e\x61\x5f\x0c\x40\xbc\xd7\x37\
+\xb1\x06\x94\xab\x33\xe9\xab\x5c\xf0\xcb\x5d\x9d\x8d\x7d\xde\xec\
+\x58\x96\xed\x77\x40\x53\x59\x6d\xf0\x96\x47\xd6\x56\xc7\x11\xd7\
+\x3b\x37\x97\xce\x67\xdc\x38\xb3\xe6\x07\x93\x67\x0f\xbf\x16\x66\
+\x54\x19\xea\xed\x69\x19\x5e\x57\x1f\xbe\x25\x1c\xd2\x7b\x5c\x31\
+\x75\x94\x10\x4d\x48\x30\x21\x04\xf1\x3d\x06\xe0\x6a\x94\x12\xd7\
+\x86\xdb\x5d\xf2\xb6\xcd\xa7\x4b\x65\xf3\xfc\x27\x57\xe7\x4e\x65\
+\x16\x4b\x63\x8a\xa9\x25\x0f\x1c\xd8\xfd\xf9\x9f\x8c\x8e\x1c\x7d\
+\x8f\xd8\xdc\xd4\xb9\x70\xa2\x52\xca\x88\xed\xf0\x88\x90\x52\x25\
+\x00\xf5\x0a\x53\x10\x87\x32\x5a\x54\x18\x2b\xb8\x5a\xf2\xc2\xb2\
+\xab\x99\x54\x50\x1c\x3c\x38\x84\x2f\xf9\x3c\xfc\x17\xd3\x96\x9e\
+\xac\xde\x63\x08\x54\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\
+\x82\
+\x00\x00\x03\xef\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x37\x5c\x00\x00\x37\x5c\x01\
+\xcb\xc7\xa4\xb9\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x07\x16\
+\x12\x0d\x25\xdf\xbf\xee\x00\x00\x00\x03\x6f\x49\x44\x41\x54\x38\
+\xcb\x4d\x92\x4b\x4c\x9c\x55\x1c\xc5\xcf\xfd\xdf\x3b\xdf\xc7\xbc\
+\x29\xd3\xa1\x74\x06\x0a\x42\x8b\x08\x98\x98\x31\x85\x42\x23\xa6\
+\xe2\xa3\x24\x2e\x9a\x98\xb6\xc6\x34\x51\x14\x8d\xb6\xc6\x95\xc6\
+\xc4\x44\x93\x76\xa1\x2c\x8c\x4d\x13\x16\x9a\x98\x2e\x6c\x5d\xf8\
+\x48\x25\x31\x4d\xa1\xb6\xa1\x4c\x4a\x02\xcc\x94\xc4\x16\xd3\x2a\
+\x5a\x5e\x95\x87\x14\x3a\x30\x33\x0c\xdf\xe3\xde\xeb\xa2\x25\xed\
+\x59\x9d\xc5\xc9\xef\x9c\xc5\x61\x2d\x07\x5b\xe1\x98\x16\x58\x81\
+\xc0\x36\x38\x66\xfb\x0b\x30\xcb\xdd\x60\xeb\xc1\x5d\x87\x4a\xe2\
+\xfe\xe7\x84\x49\xe1\x51\x77\x5c\x2e\x54\x65\x6a\x13\xe5\x4f\x6f\
+\x4b\xfd\x99\x5a\x98\x5e\x9d\xfe\xa4\xfb\x4c\x77\xef\x47\x5d\xaf\
+\x83\xcf\x26\x67\x70\xfe\xea\x2f\x08\xf8\xbc\x4c\x59\xc0\x96\x2a\
+\x6f\xf5\xde\xce\x9a\xde\xf8\x93\xe1\xa3\xfe\x32\x6a\xbc\x89\xbf\
+\x76\xdd\xdd\xee\xd4\x1d\xae\x7e\x75\xeb\xa9\x86\x53\xde\xac\x27\
+\x1b\xcd\xb0\xcc\xa1\xb3\xe1\xb3\x93\x97\x7f\x1a\xba\x4e\xed\x6f\
+\xbd\x80\xdb\x03\x19\xfc\xfa\x4d\xbf\x1e\x3c\x77\x9d\x97\xb6\x7b\
+\xbe\xa5\x0a\x7b\x4f\x56\xe4\xdc\x8c\x5e\xd7\xc9\xfc\x0d\xb6\x46\
+\x6b\x18\x9a\xef\x85\x86\xc2\xcc\xbd\x5e\x08\xb1\x46\x08\xe0\x44\
+\x74\x9f\x1f\xac\xe5\xfd\xdd\x60\xa6\x26\x69\x69\x45\x2e\x6f\x0b\
+\x37\xd1\xa0\xe9\xe5\x92\x48\x90\x30\x88\x9d\xcb\x0e\xa2\xf0\xda\
+\x06\x04\x09\x30\xc6\xb0\x29\xf6\x3d\xcb\xe3\x48\x57\x40\xd8\xfe\
+\x75\x90\x4f\x43\x2b\x00\x39\x63\x47\x5e\xba\xc8\x5b\x1a\x9c\x13\
+\xf3\x68\x0e\xce\x08\x45\xbd\x06\xda\x7c\xc0\x40\x87\xc6\xf1\x14\
+\xc3\x85\x0c\x00\x8d\xd5\xa6\xd8\x14\x84\x99\x37\x41\x50\xd0\x0e\
+\x40\x96\x67\xce\x67\x68\x88\x00\x63\x86\x10\x5a\x70\xce\x6a\xa6\
+\xb7\xe1\x66\xf8\x5f\x4c\xa8\xfb\xcd\x7d\xeb\x40\xda\x86\xc2\xdf\
+\xf8\x6e\x74\x2e\x01\xe1\x9d\xdf\x82\xdc\xa2\xa3\x6e\x5d\x25\xf8\
+\x20\x86\xdb\x5a\x72\xe3\xfe\x08\x35\x72\xe2\x8a\x11\x63\xcd\xa2\
+\x52\xd3\x84\x66\x19\x73\x05\x8d\x3d\x71\x00\x31\x18\xb7\xe6\x7a\
+\xcc\xf3\xfe\x13\xbb\xbf\xec\x07\xab\x47\x17\xf6\xf6\xfd\x01\x6d\
+\x71\x92\xae\x56\xd9\x7f\xa8\xb3\x6a\x9f\x71\x3a\xe8\x0b\x2a\xad\
+\x34\x15\x54\x1e\x2b\x19\x4b\xb9\x36\x23\x77\x51\x0e\x9f\x39\x92\
+\x7f\x16\xb0\xed\x27\x1e\x0f\x21\x54\x29\xc0\x12\x2f\xb6\x20\x28\
+\x43\x18\xbb\xbc\x8c\x2c\xd2\x00\x40\x1f\x5f\xea\xb8\x58\xbd\x33\
+\xd6\xae\x1d\x92\xf7\xf4\x02\xcd\x2d\xe5\x20\x73\x8c\x2d\x0d\x39\
+\x1d\x81\x32\xf4\x29\x80\x5c\x0b\x2a\x72\xad\x0e\xa2\xd6\xae\xc7\
+\x9d\x34\x70\xf8\x2b\x82\x51\xb2\x9f\x24\x6c\x35\x9b\x2a\x7c\x51\
+\x1e\x73\xdb\x03\x9e\x10\x71\xd7\x50\x26\xf7\xf0\xd5\x65\xe7\xc2\
+\x8f\xc7\xeb\xfb\x26\xf0\x1f\xab\x65\x53\x0a\xf8\x0c\x4d\x07\x3e\
+\x07\x03\x80\xd6\x97\x9e\xc1\xda\x6d\x1f\x16\x67\x96\xb1\x64\xa5\
+\x01\x14\x1b\x9f\x5e\x69\x1b\x2b\x2d\x0f\x35\x14\x9c\x82\x33\x3f\
+\xbf\xec\x59\x4c\xe3\xbd\x70\x15\xfb\x5a\x2b\x4d\xf6\xba\x52\xa5\
+\x9d\x49\x8c\x17\x7f\x70\x1f\xd0\x48\xc7\xf0\xd4\xd1\x59\xbc\xf9\
+\xe1\xf3\x18\xf9\x6d\x92\x4c\xd3\x50\xc9\x8b\x63\x3f\xd7\x36\x3c\
+\xf6\xca\x86\x65\xbb\x35\x55\x75\xe2\x64\x77\xcf\x1e\xc7\x75\x46\
+\xb6\x46\x23\x24\xb8\x50\xee\x6a\x09\x7e\xbf\x71\x05\x0f\x9f\xf1\
+\x40\xc7\xde\x79\x97\x47\xa3\x51\x39\x9a\x4e\x9d\x6e\x6d\x6e\xee\
+\x8c\xc5\x2b\xe5\xf6\x78\x4c\x76\xbc\xbc\xbf\x11\xc0\x84\xd7\x2c\
+\x62\x05\x6b\x43\x6f\xe6\x69\xd3\xc4\x62\x65\x78\xbb\xeb\x0d\x28\
+\xee\x62\x65\xed\x2e\xc0\x55\x6e\xdd\xc9\x43\x78\x89\x4d\xdf\x99\
+\x54\x00\x5c\x00\xb0\xdd\x0d\x54\x54\xc4\x1f\x3e\xf2\x91\x72\x0e\
+\xc0\xe0\x9c\x17\x49\x29\x79\x69\x69\x74\x47\x22\x91\xf8\x21\x1c\
+\x2e\xde\x39\x35\x35\xdd\x3d\x32\x32\x7c\xd2\x34\x4d\x58\x96\x55\
+\x00\x60\x01\x70\x00\x68\xfe\x08\xc0\x03\xc0\xa7\xb5\x0e\x12\x51\
+\x24\x97\xcb\x6b\xd3\x30\x87\x4a\x22\x25\x03\xc9\x64\xf2\x92\x94\
+\x32\x24\xa5\xdc\xcc\xcb\x07\x8b\xf4\xff\x53\xcc\x7a\xe6\x37\xb9\
+\xdd\x0f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
 \x00\x00\x02\xfa\
 \x89\
 \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -53815,36 +54756,93 @@
 \x00\x69\
 \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x5f\x00\x6c\x00\x6f\x00\x61\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\
 \x00\x14\
+\x0d\xa9\x66\x87\
+\x00\x62\
+\x00\x6f\x00\x6f\x00\x6b\x00\x5f\x00\x6d\x00\x61\x00\x69\x00\x6e\x00\x74\x00\x65\x00\x6e\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x2e\
+\x00\x70\x00\x6e\x00\x67\
+\x00\x0d\
+\x0f\xce\xfd\xc7\
+\x00\x73\
+\x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0f\
+\x00\x8e\xa2\x87\
+\x00\x62\
+\x00\x6f\x00\x6f\x00\x6b\x00\x5f\x00\x64\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x13\
+\x0e\x4b\x25\x27\
+\x00\x73\
+\x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x74\x00\x6f\x00\x70\x00\x69\x00\x63\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\
+\x00\x6e\x00\x67\
+\x00\x0f\
+\x0e\xea\xff\x07\
+\x00\x61\
+\x00\x75\x00\x74\x00\x68\x00\x6f\x00\x72\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0f\
+\x05\x0e\x96\x87\
+\x00\x73\
+\x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x64\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0e\
+\x0e\xf9\x8d\xc7\
+\x00\x61\
+\x00\x75\x00\x74\x00\x68\x00\x6f\x00\x72\x00\x5f\x00\x61\x00\x64\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0d\
+\x09\xcb\x7d\x87\
+\x00\x62\
+\x00\x6f\x00\x6f\x00\x6b\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x11\
+\x01\x10\xd4\xc7\
+\x00\x61\
+\x00\x75\x00\x74\x00\x68\x00\x6f\x00\x72\x00\x5f\x00\x64\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\
+\x00\x0f\
+\x0f\x3d\x20\x27\
+\x00\x73\
+\x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x65\x00\x78\x00\x70\x00\x6f\x00\x72\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x14\
 \x07\xde\x82\x27\
 \x00\x73\
 \x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x61\x00\x75\x00\x74\x00\x68\x00\x6f\x00\x72\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\
 \x00\x70\x00\x6e\x00\x67\
+\x00\x10\
+\x03\x95\xc6\xa7\
+\x00\x74\
+\x00\x6f\x00\x70\x00\x69\x00\x63\x00\x5f\x00\x64\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
 \x00\x0c\
 \x0b\x86\xcd\x87\
 \x00\x73\
 \x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x6e\x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x0d\
-\x0f\xce\xfd\xc7\
-\x00\x73\
-\x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0c\
+\x0a\x8b\x95\xe7\
+\x00\x62\
+\x00\x6f\x00\x6f\x00\x6b\x00\x5f\x00\x61\x00\x64\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x15\
+\x0f\xc6\x09\x07\
+\x00\x74\
+\x00\x6f\x00\x70\x00\x69\x00\x63\x00\x5f\x00\x6d\x00\x61\x00\x69\x00\x6e\x00\x74\x00\x65\x00\x6e\x00\x61\x00\x6e\x00\x63\x00\x65\
+\x00\x2e\x00\x70\x00\x6e\x00\x67\
 \x00\x12\
 \x07\x52\x49\x67\
 \x00\x73\
 \x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x62\x00\x6f\x00\x6f\x00\x6b\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\
 \x00\x67\
-\x00\x0f\
-\x0f\x3d\x20\x27\
-\x00\x73\
-\x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x65\x00\x78\x00\x70\x00\x6f\x00\x72\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x13\
-\x0e\x4b\x25\x27\
-\x00\x73\
-\x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x74\x00\x6f\x00\x70\x00\x69\x00\x63\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\
-\x00\x6e\x00\x67\
-\x00\x0f\
-\x05\x0e\x96\x87\
-\x00\x73\
-\x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x64\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0e\
+\x07\xd8\x62\xe7\
+\x00\x74\
+\x00\x6f\x00\x70\x00\x69\x00\x63\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x14\
+\x0d\x19\x6f\x07\
+\x00\x73\
+\x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x6d\x00\x61\x00\x69\x00\x6e\x00\x74\x00\x65\x00\x6e\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x2e\
+\x00\x70\x00\x6e\x00\x67\
+\x00\x16\
+\x01\x98\xb7\xc7\
+\x00\x61\
+\x00\x75\x00\x74\x00\x68\x00\x6f\x00\x72\x00\x5f\x00\x6d\x00\x61\x00\x69\x00\x6e\x00\x74\x00\x65\x00\x6e\x00\x61\x00\x6e\x00\x63\
+\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0d\
+\x01\x6a\xa4\x07\
+\x00\x74\
+\x00\x6f\x00\x70\x00\x69\x00\x63\x00\x5f\x00\x61\x00\x64\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\
 \x00\x0f\
 \x00\xe4\x12\x87\
 \x00\x74\
@@ -53929,10 +54927,10 @@
 
 qt_resource_struct = "\
 \x00\x00\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x01\
-\x00\x00\x00\xa6\x00\x02\x00\x00\x00\x06\x00\x00\x00\x59\
-\x00\x00\x00\x38\x00\x02\x00\x00\x00\x04\x00\x00\x00\x55\
-\x00\x00\x01\x02\x00\x02\x00\x00\x00\x08\x00\x00\x00\x4d\
-\x00\x00\x00\x5c\x00\x02\x00\x00\x00\x07\x00\x00\x00\x46\
+\x00\x00\x00\xa6\x00\x02\x00\x00\x00\x06\x00\x00\x00\x66\
+\x00\x00\x00\x38\x00\x02\x00\x00\x00\x04\x00\x00\x00\x62\
+\x00\x00\x01\x02\x00\x02\x00\x00\x00\x08\x00\x00\x00\x5a\
+\x00\x00\x00\x5c\x00\x02\x00\x00\x00\x14\x00\x00\x00\x46\
 \x00\x00\x00\x4c\x00\x02\x00\x00\x00\x02\x00\x00\x00\x44\
 \x00\x00\x01\x12\x00\x02\x00\x00\x00\x02\x00\x00\x00\x42\
 \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x3f\
@@ -53947,10 +54945,10 @@
 \x00\x00\x00\x24\x00\x02\x00\x00\x00\x04\x00\x00\x00\x13\
 \x00\x00\x00\xc6\x00\x02\x00\x00\x00\x01\x00\x00\x00\x12\
 \x00\x00\x06\x58\x00\x00\x00\x00\x00\x01\x00\x00\x55\x3f\
-\x00\x00\x0b\xde\x00\x00\x00\x00\x00\x01\x00\x0c\xe6\x2d\
-\x00\x00\x0c\x12\x00\x00\x00\x00\x00\x01\x00\x0c\xe9\x8f\
-\x00\x00\x0c\x3a\x00\x00\x00\x00\x00\x01\x00\x0c\xec\x2d\
-\x00\x00\x0c\x68\x00\x00\x00\x00\x00\x01\x00\x0c\xef\x41\
+\x00\x00\x0d\xd4\x00\x00\x00\x00\x00\x01\x00\x0d\x1f\x3e\
+\x00\x00\x0e\x08\x00\x00\x00\x00\x00\x01\x00\x0d\x22\xa0\
+\x00\x00\x0e\x30\x00\x00\x00\x00\x00\x01\x00\x0d\x25\x3e\
+\x00\x00\x0e\x5e\x00\x00\x00\x00\x00\x01\x00\x0d\x28\x52\
 \x00\x00\x05\xbc\x00\x00\x00\x00\x00\x01\x00\x00\x4a\xfb\
 \x00\x00\x05\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x4d\x32\
 \x00\x00\x06\x2e\x00\x00\x00\x00\x00\x01\x00\x00\x52\x74\
@@ -53984,27 +54982,40 @@
 \x00\x00\x06\xd0\x00\x00\x00\x00\x00\x01\x00\x02\xfc\x9c\
 \x00\x00\x06\xf6\x00\x00\x00\x00\x00\x01\x00\x02\xff\x14\
 \x00\x00\x06\x8a\x00\x00\x00\x00\x00\x01\x00\x02\xf6\x21\
-\x00\x00\x0d\x18\x00\x00\x00\x00\x00\x01\x00\x0c\xfb\xcb\
-\x00\x00\x0c\xae\x00\x00\x00\x00\x00\x01\x00\x0c\xf3\xf6\
-\x00\x00\x0c\xd2\x00\x00\x00\x00\x00\x01\x00\x0c\xf6\x87\
-\x00\x00\x0c\xf4\x00\x00\x00\x00\x00\x01\x00\x0c\xf8\x9a\
-\x00\x00\x0c\x8c\x00\x00\x00\x00\x00\x01\x00\x0c\xf1\x58\
+\x00\x00\x0f\x0e\x00\x00\x00\x00\x00\x01\x00\x0d\x34\xdc\
+\x00\x00\x0e\xa4\x00\x00\x00\x00\x00\x01\x00\x0d\x2d\x07\
+\x00\x00\x0e\xc8\x00\x00\x00\x00\x00\x01\x00\x0d\x2f\x98\
+\x00\x00\x0e\xea\x00\x00\x00\x00\x00\x01\x00\x0d\x31\xab\
+\x00\x00\x0e\x82\x00\x00\x00\x00\x00\x01\x00\x0d\x2a\x69\
 \x00\x00\x09\xc0\x00\x00\x00\x00\x00\x01\x00\x0c\xc1\x6c\
 \x00\x00\x09\x9a\x00\x00\x00\x00\x00\x01\x00\x0c\xbe\xce\
-\x00\x00\x0d\x66\x00\x00\x00\x00\x00\x01\x00\x0d\x00\x6f\
-\x00\x00\x0d\x8e\x00\x00\x00\x00\x00\x01\x00\x0d\x03\x0d\
-\x00\x00\x0d\x42\x00\x00\x00\x00\x00\x01\x00\x0c\xfd\xcf\
+\x00\x00\x0f\x5c\x00\x00\x00\x00\x00\x01\x00\x0d\x39\x80\
+\x00\x00\x0f\x84\x00\x00\x00\x00\x00\x01\x00\x0d\x3c\x1e\
+\x00\x00\x0f\x38\x00\x00\x00\x00\x00\x01\x00\x0d\x36\xe0\
 \x00\x00\x01\xde\x00\x00\x00\x00\x00\x01\x00\x00\x09\x05\
 \x00\x00\x02\x12\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xa3\
-\x00\x00\x0a\xec\x00\x00\x00\x00\x00\x01\x00\x0c\xd5\x81\
-\x00\x00\x0b\x10\x00\x00\x00\x00\x00\x01\x00\x0c\xd8\x7f\
-\x00\x00\x0a\xc8\x00\x00\x00\x00\x00\x01\x00\x0c\xd2\xe3\
-\x00\x00\x0a\x4e\x00\x00\x00\x00\x00\x01\x00\x0c\xca\xea\
+\x00\x00\x0c\xe2\x00\x00\x00\x00\x00\x01\x00\x0d\x0e\x92\
+\x00\x00\x0d\x06\x00\x00\x00\x00\x00\x01\x00\x0d\x11\x90\
+\x00\x00\x0a\x30\x00\x00\x00\x00\x00\x01\x00\x0c\xcc\xe1\
+\x00\x00\x0b\x0a\x00\x00\x00\x00\x00\x01\x00\x0c\xdf\x7a\
+\x00\x00\x0c\xc2\x00\x00\x00\x00\x00\x01\x00\x0d\x0a\x9f\
+\x00\x00\x0c\x90\x00\x00\x00\x00\x00\x01\x00\x0d\x03\x89\
+\x00\x00\x0b\x84\x00\x00\x00\x00\x00\x01\x00\x0c\xe7\xda\
+\x00\x00\x0a\xa4\x00\x00\x00\x00\x00\x01\x00\x0c\xd6\x88\
+\x00\x00\x0c\x16\x00\x00\x00\x00\x00\x01\x00\x0c\xfa\x7d\
+\x00\x00\x0c\x40\x00\x00\x00\x00\x00\x01\x00\x0c\xfc\xb2\
+\x00\x00\x0b\x56\x00\x00\x00\x00\x00\x01\x00\x0c\xe5\x5a\
+\x00\x00\x0a\xea\x00\x00\x00\x00\x00\x01\x00\x0c\xdc\x6e\
+\x00\x00\x0b\xc8\x00\x00\x00\x00\x00\x01\x00\x0c\xee\x33\
+\x00\x00\x0b\xaa\x00\x00\x00\x00\x00\x01\x00\x0c\xeb\xec\
+\x00\x00\x0c\x62\x00\x00\x00\x00\x00\x01\x00\x0d\x00\xb6\
 \x00\x00\x09\xe2\x00\x00\x00\x00\x00\x01\x00\x0c\xc3\x83\
-\x00\x00\x0a\x10\x00\x00\x00\x00\x00\x01\x00\x0c\xc6\x03\
-\x00\x00\x0a\x9c\x00\x00\x00\x00\x00\x01\x00\x0c\xcf\xa1\
-\x00\x00\x0a\x78\x00\x00\x00\x00\x00\x01\x00\x0c\xcd\x1f\
-\x00\x00\x0a\x2e\x00\x00\x00\x00\x00\x01\x00\x0c\xc8\x4a\
+\x00\x00\x0a\x54\x00\x00\x00\x00\x00\x01\x00\x0c\xcf\xcd\
+\x00\x00\x0a\x80\x00\x00\x00\x00\x00\x01\x00\x0c\xd3\x0f\
+\x00\x00\x0a\xc8\x00\x00\x00\x00\x00\x01\x00\x0c\xd9\x26\
+\x00\x00\x0b\x32\x00\x00\x00\x00\x00\x01\x00\x0c\xe2\xd8\
+\x00\x00\x0b\xe6\x00\x00\x00\x00\x00\x01\x00\x0c\xf0\xd5\
+\x00\x00\x0a\x10\x00\x00\x00\x00\x00\x01\x00\x0c\xca\x41\
 \x00\x00\x02\x66\x00\x00\x00\x00\x00\x01\x00\x00\x10\x0c\
 \x00\x00\x02\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x17\xff\
 \x00\x00\x03\x04\x00\x00\x00\x00\x00\x01\x00\x00\x1a\x2a\
@@ -54013,10 +55024,10 @@
 \x00\x00\x03\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x20\x24\
 \x00\x00\x02\x42\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xba\
 \x00\x00\x03\x26\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x8d\
-\x00\x00\x0b\x30\x00\x00\x00\x00\x00\x01\x00\x0c\xdb\x02\
-\x00\x00\x0b\x92\x00\x00\x00\x00\x00\x01\x00\x0c\xe1\x78\
-\x00\x00\x0b\x64\x00\x00\x00\x00\x00\x01\x00\x0c\xde\x64\
-\x00\x00\x0b\xba\x00\x00\x00\x00\x00\x01\x00\x0c\xe4\x16\
+\x00\x00\x0d\x26\x00\x00\x00\x00\x00\x01\x00\x0d\x14\x13\
+\x00\x00\x0d\x88\x00\x00\x00\x00\x00\x01\x00\x0d\x1a\x89\
+\x00\x00\x0d\x5a\x00\x00\x00\x00\x00\x01\x00\x0d\x17\x75\
+\x00\x00\x0d\xb0\x00\x00\x00\x00\x00\x01\x00\x0d\x1d\x27\
 \x00\x00\x07\xce\x00\x00\x00\x00\x00\x01\x00\x03\x3e\xa4\
 \x00\x00\x07\x6e\x00\x00\x00\x00\x00\x01\x00\x03\x0f\x64\
 \x00\x00\x07\x3e\x00\x00\x00\x00\x00\x01\x00\x03\x04\xd0\

=== modified file 'openlp/plugins/songs/forms/__init__.py'
--- openlp/plugins/songs/forms/__init__.py	2009-06-03 17:32:53 +0000
+++ openlp/plugins/songs/forms/__init__.py	2009-07-23 20:20:49 +0000
@@ -23,6 +23,7 @@
 from songbookform import SongBookForm
 from editverseform import EditVerseForm
 from editsongform import EditSongForm
+from songmaintenanceform import SongMaintenanceForm
 
 from openlpexportform import OpenLPExportForm
 from openlpimportform import OpenLPImportForm

=== modified file 'openlp/plugins/songs/forms/authorsdialog.py'
--- openlp/plugins/songs/forms/authorsdialog.py	2009-06-14 15:12:40 +0000
+++ openlp/plugins/songs/forms/authorsdialog.py	2009-07-24 22:13:40 +0000
@@ -23,99 +23,56 @@
 class Ui_AuthorsDialog(object):
     def setupUi(self, AuthorsDialog):
         AuthorsDialog.setObjectName(u'AuthorsDialog')
-        AuthorsDialog.resize(410, 505)
-        self.DialogLayout = QtGui.QVBoxLayout(AuthorsDialog)
-        self.DialogLayout.setSpacing(8)
-        self.DialogLayout.setMargin(8)
-        self.DialogLayout.setObjectName(u'DialogLayout')
-        self.AuthorListWidget = QtGui.QListWidget()
-        self.AuthorListWidget.setAlternatingRowColors(True)
-        self.DialogLayout.addWidget(self.AuthorListWidget)
-        self.AuthorDetails = QtGui.QGroupBox(AuthorsDialog)
-        self.AuthorDetails.setMinimumSize(QtCore.QSize(0, 0))
-        self.AuthorDetails.setObjectName(u'AuthorDetails')
-        self.AuthorLayout = QtGui.QVBoxLayout(self.AuthorDetails)
-        self.AuthorLayout.setSpacing(8)
-        self.AuthorLayout.setMargin(8)
-        self.AuthorLayout.setObjectName(u'AuthorLayout')
-        self.DetailsWidget = QtGui.QWidget(self.AuthorDetails)
-        self.DetailsWidget.setObjectName(u'DetailsWidget')
-        self.DetailsLayout = QtGui.QFormLayout(self.DetailsWidget)
-        self.DetailsLayout.setMargin(0)
-        self.DetailsLayout.setSpacing(8)
-        self.DetailsLayout.setObjectName(u'DetailsLayout')
-        self.DisplayLabel = QtGui.QLabel(self.DetailsWidget)
-        self.DisplayLabel.setObjectName(u'DisplayLabel')
-        self.DetailsLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.DisplayLabel)
-        self.DisplayEdit = QtGui.QLineEdit(self.DetailsWidget)
-        self.DisplayEdit.setObjectName(u'DisplayEdit')
-        self.DetailsLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.DisplayEdit)
-        self.FirstNameLabel = QtGui.QLabel(self.DetailsWidget)
+        AuthorsDialog.resize(393, 147)
+        self.AuthorsLayout = QtGui.QFormLayout(AuthorsDialog)
+        self.AuthorsLayout.setMargin(8)
+        self.AuthorsLayout.setSpacing(8)
+        self.AuthorsLayout.setObjectName(u'AuthorsLayout')
+        self.FirstNameLabel = QtGui.QLabel(AuthorsDialog)
         self.FirstNameLabel.setObjectName(u'FirstNameLabel')
-        self.DetailsLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.FirstNameLabel)
-        self.FirstNameEdit = QtGui.QLineEdit(self.DetailsWidget)
+        self.AuthorsLayout.setWidget(0,
+            QtGui.QFormLayout.LabelRole, self.FirstNameLabel)
+        self.FirstNameEdit = QtGui.QLineEdit(AuthorsDialog)
         self.FirstNameEdit.setObjectName(u'FirstNameEdit')
-        self.DetailsLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.FirstNameEdit)
-        self.LastNameLabel = QtGui.QLabel(self.DetailsWidget)
+        self.AuthorsLayout.setWidget(0,
+            QtGui.QFormLayout.FieldRole, self.FirstNameEdit)
+        self.LastNameLabel = QtGui.QLabel(AuthorsDialog)
         self.LastNameLabel.setObjectName(u'LastNameLabel')
-        self.DetailsLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.LastNameLabel)
-        self.LastNameEdit = QtGui.QLineEdit(self.DetailsWidget)
+        self.AuthorsLayout.setWidget(1,
+            QtGui.QFormLayout.LabelRole, self.LastNameLabel)
+        self.LastNameEdit = QtGui.QLineEdit(AuthorsDialog)
         self.LastNameEdit.setObjectName(u'LastNameEdit')
-        self.DetailsLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.LastNameEdit)
-        self.AuthorLayout.addWidget(self.DetailsWidget)
-        self.MessageLabel = QtGui.QLabel(self.AuthorDetails)
-        self.MessageLabel.setObjectName(u'MessageLabel')
-        self.AuthorLayout.addWidget(self.MessageLabel)
-        self.ButtonWidget = QtGui.QWidget(self.AuthorDetails)
-        self.ButtonWidget.setMinimumSize(QtCore.QSize(0, 0))
-        self.ButtonWidget.setObjectName(u'ButtonWidget')
-        self.ButtonLayout = QtGui.QHBoxLayout(self.ButtonWidget)
-        self.ButtonLayout.setSpacing(8)
-        self.ButtonLayout.setMargin(0)
-        self.ButtonLayout.setObjectName(u'ButtonLayout')
-        spacerItem = QtGui.QSpacerItem(198, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.ButtonLayout.addItem(spacerItem)
-        self.ClearButton = QtGui.QPushButton(self.ButtonWidget)
-        icon = QtGui.QIcon()
-        icon.addPixmap(QtGui.QPixmap(u':/services/service_new.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
-        self.ClearButton.setIcon(icon)
-        self.ClearButton.setObjectName(u'ClearButton')
-        self.ButtonLayout.addWidget(self.ClearButton)
-        self.AddUpdateButton = QtGui.QPushButton(self.ButtonWidget)
-        icon1 = QtGui.QIcon()
-        icon1.addPixmap(QtGui.QPixmap(u':/services/service_save.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
-        self.AddUpdateButton.setIcon(icon1)
-        self.AddUpdateButton.setObjectName(u'AddUpdateButton')
-        self.ButtonLayout.addWidget(self.AddUpdateButton)
-        self.DeleteButton = QtGui.QPushButton(self.ButtonWidget)
-        icon2 = QtGui.QIcon()
-        icon2.addPixmap(QtGui.QPixmap(u':/services/service_delete.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
-        self.DeleteButton.setIcon(icon2)
-        self.DeleteButton.setObjectName(u'DeleteButton')
-        self.ButtonLayout.addWidget(self.DeleteButton)
-        self.AuthorLayout.addWidget(self.ButtonWidget)
-        self.DialogLayout.addWidget(self.AuthorDetails)
-        self.buttonBox = QtGui.QDialogButtonBox(AuthorsDialog)
-        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
-        self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok)
-        self.buttonBox.setObjectName(u'buttonBox')
-        self.DialogLayout.addWidget(self.buttonBox)
+        self.AuthorsLayout.setWidget(1,
+            QtGui.QFormLayout.FieldRole, self.LastNameEdit)
+        self.DisplayLabel = QtGui.QLabel(AuthorsDialog)
+        self.DisplayLabel.setObjectName(u'DisplayLabel')
+        self.AuthorsLayout.setWidget(2,
+            QtGui.QFormLayout.LabelRole, self.DisplayLabel)
+        self.DisplayEdit = QtGui.QLineEdit(AuthorsDialog)
+        self.DisplayEdit.setObjectName(u'DisplayEdit')
+        self.AuthorsLayout.setWidget(2,
+            QtGui.QFormLayout.FieldRole, self.DisplayEdit)
+        self.AuthorButtonBox = QtGui.QDialogButtonBox(AuthorsDialog)
+        self.AuthorButtonBox.setOrientation(QtCore.Qt.Horizontal)
+        self.AuthorButtonBox.setStandardButtons(
+            QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Save)
+        self.AuthorButtonBox.setObjectName(u'AuthorButtonBox')
+        self.AuthorsLayout.setWidget(3,
+            QtGui.QFormLayout.FieldRole, self.AuthorButtonBox)
 
         self.retranslateUi(AuthorsDialog)
-        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'accepted()'), AuthorsDialog.accept)
-        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'rejected()'), AuthorsDialog.reject)
+        QtCore.QObject.connect(self.AuthorButtonBox,
+            QtCore.SIGNAL(u'accepted()'), AuthorsDialog.accept)
+        QtCore.QObject.connect(self.AuthorButtonBox,
+            QtCore.SIGNAL(u'rejected()'), AuthorsDialog.reject)
         QtCore.QMetaObject.connectSlotsByName(AuthorsDialog)
 
     def retranslateUi(self, AuthorsDialog):
-        AuthorsDialog.setWindowTitle(translate(u'AuthorsDialog', u'Author Maintenance'))
-        self.AuthorDetails.setTitle(translate(u'AuthorsDialog', u'Author Details'))
-        self.DisplayLabel.setText(translate(u'AuthorsDialog', u'Display Name:'))
-        self.FirstNameLabel.setText(translate(u'AuthorsDialog', u'First Name:'))
-        self.LastNameLabel.setText(translate(u'AuthorsDialog', u'Last Name:'))
-        self.ClearButton.setToolTip(translate(u'AuthorsDialog', u'Clear Selection'))
-        self.ClearButton.setText(translate(u'AuthorsDialog', u'Clear'))
-        self.AddUpdateButton.setToolTip(translate(u'AuthorsDialog', u'Add Update Author'))
-        self.AddUpdateButton.setText(translate(u'AuthorsDialog', u'Save'))
-        self.DeleteButton.setToolTip(translate(u'AuthorsDialog', u'Delete Author'))
-        self.DeleteButton.setText(translate(u'AuthorsDialog', u'Delete'))
-        self.buttonBox.setToolTip(translate(u'AuthorsDialog', u'Exit Screen'))
+        AuthorsDialog.setWindowTitle(
+            translate(u'AuthorsDialog', u'Author Maintenance'))
+        self.DisplayLabel.setText(
+            translate(u'AuthorsDialog', u'Display name:'))
+        self.FirstNameLabel.setText(
+            translate(u'AuthorsDialog', u'First name:'))
+        self.LastNameLabel.setText(
+            translate(u'AuthorsDialog', u'Last name:'))

=== modified file 'openlp/plugins/songs/forms/authorsform.py'
--- openlp/plugins/songs/forms/authorsform.py	2009-07-18 05:43:50 +0000
+++ openlp/plugins/songs/forms/authorsform.py	2009-07-24 20:40:34 +0000
@@ -18,121 +18,142 @@
 """
 from PyQt4 import QtGui, QtCore
 from openlp.core.lib import translate
-from openlp.plugins.songs.forms.authorsdialog import Ui_AuthorsDialog
-from openlp.plugins.songs.lib.classes import Author
+from authorsdialog import Ui_AuthorsDialog
 
 class AuthorsForm(QtGui.QDialog, Ui_AuthorsDialog):
     """
     Class to control the Maintenance of Authors Dialog
     """
-    def __init__(self, songmanager, parent = None):
+    def __init__(self, parent=None):
         """
         Set up the screen and common data
         """
         QtGui.QDialog.__init__(self, parent)
         self.setupUi(self)
-        self.songmanager = songmanager
-        self.currentRow = 0
-        self.author = None
-
-        QtCore.QObject.connect(self.DeleteButton,
-            QtCore.SIGNAL(u'pressed()'), self.onDeleteButtonClick)
-        QtCore.QObject.connect(self.ClearButton,
-            QtCore.SIGNAL(u'pressed()'), self.onClearButtonClick)
-        QtCore.QObject.connect(self.AddUpdateButton,
-            QtCore.SIGNAL(u'pressed()'), self.onAddUpdateButtonClick)
-        QtCore.QObject.connect(self.DisplayEdit,
-            QtCore.SIGNAL(u'lostFocus()'), self.onDisplayEditLostFocus)
-        QtCore.QObject.connect(self.AuthorListWidget,
-            QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onAuthorListWidgetItemClicked)
-
-    def load_form(self):
-        """
-        Refresh the screen and rest fields
-        """
-        self.AuthorListWidget.clear()
-        # tidy up screen
-        self.onClearButtonClick()
-        authors = self.songmanager.get_authors()
-        for author in authors:
-            author_name = QtGui.QListWidgetItem(author.display_name)
-            author_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(author.id))
-            self.AuthorListWidget.addItem(author_name)
-        if self.currentRow >= self.AuthorListWidget.count() :
-            self.AuthorListWidget.setCurrentRow(self.AuthorListWidget.count() - 1)
-        else:
-            self.AuthorListWidget.setCurrentRow(self.currentRow)
-        self._validate_form()
-
-    def onDeleteButtonClick(self):
-        """
-        Delete the author is the Author is not attached to any songs
-        """
-        self.songmanager.delete_author(self.author.id)
-        self.load_form()
-
-    def onDisplayEditLostFocus(self):
-        self._validate_form()
-
-    def onAddUpdateButtonClick(self):
-        """
-        Sent New or update details to the database
-        """
-        if self.author == None:
-            self.author = Author()
-        self.author.display_name = unicode(self.DisplayEdit.displayText())
-        self.author.first_name = unicode(self.FirstNameEdit.displayText())
-        self.author.last_name = unicode(self.LastNameEdit.displayText())
-        self.songmanager.save_author(self.author)
-        self.onClearButtonClick()
-        self.load_form()
-
-    def onClearButtonClick(self):
-        """
-        Tidy up screen if clear button pressed
-        """
-        self.DisplayEdit.setText(u'')
-        self.FirstNameEdit.setText(u'')
-        self.LastNameEdit.setText(u'')
-        self.MessageLabel.setText(u'')
-        self.DeleteButton.setEnabled(False)
-        self.author = None
-        self._validate_form()
-        self.DisplayEdit.setFocus()
-
-    def onAuthorListWidgetItemClicked(self, index):
-        """
-        An Author has been selected display it
-        If the author is attached to a Song prevent delete
-        """
-        self.currentRow = self.AuthorListWidget.currentRow()
-        item = self.AuthorListWidget.currentItem()
-        item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
-        self.author = self.songmanager.get_author(item_id)
-        self.DisplayEdit.setText(self.author.display_name)
-        if self.author.first_name is None:
-            self.FirstNameEdit.setText(u'')
-        else:
-            self.FirstNameEdit.setText(self.author.first_name)
-        if self.author.last_name is None:
-            self.LastNameEdit.setText(u'')
-        else:
-            self.LastNameEdit.setText(self.author.last_name)
-        if len(self.author.songs) > 0:
-            self.MessageLabel.setText(translate(u'AuthorForm', u'Author in use "Delete" is disabled'))
-            self.DeleteButton.setEnabled(False)
-        else:
-            self.MessageLabel.setText(translate(u'AuthorForm', u'Author in not used'))
-            self.DeleteButton.setEnabled(True)
-        self._validate_form()
-        self.DisplayEdit.setFocus()
-
-    def _validate_form(self):
-        """
-        Validate the form and set if Add button if valid.
-        """
-        # We need at lease a display name
-        if len(self.DisplayEdit.displayText()) == 0:
-            self.AddUpdateButton.setEnabled(False)
-        else:
-            self.AddUpdateButton.setEnabled(True)
+        self.autoDisplayName = False
+        QtCore.QObject.connect(self.FirstNameEdit,
+            QtCore.SIGNAL(u'textEdited(QString)'), self.onFirstNameEditTextEdited)
+        QtCore.QObject.connect(self.LastNameEdit,
+            QtCore.SIGNAL(u'textEdited(QString)'), self.onLastNameEditTextEdited)
+
+    def exec_(self, clear=True):
+        if clear:
+            self.FirstNameEdit.clear()
+            self.LastNameEdit.clear()
+            self.DisplayEdit.clear()
+        self.FirstNameEdit.setFocus()
+        return QtGui.QDialog.exec_(self)
+
+    def onFirstNameEditTextEdited(self, text):
+        if not self.autoDisplayName:
+            return
+        display_name = text
+        if self.LastNameEdit.text() != u'':
+            display_name = display_name + u' ' + self.LastNameEdit.text()
+        self.DisplayEdit.setText(display_name)
+
+    def onLastNameEditTextEdited(self, text):
+        if not self.autoDisplayName:
+            return
+        display_name = text
+        if self.FirstNameEdit.text() != u'':
+            display_name = self.FirstNameEdit.text() + u' ' + display_name
+        self.DisplayEdit.setText(display_name)
+
+    def autoDisplayName(self):
+        return self.autoDisplayName
+
+    def setAutoDisplayName(self, on):
+        self.autoDisplayName = on
+
+
+#    def load_form(self):
+#        """
+#        Refresh the screen and rest fields
+#        """
+#        self.AuthorListWidget.clear()
+#        # tidy up screen
+#        self.onClearButtonClick()
+#        authors = self.songmanager.get_authors()
+#        for author in authors:
+#            author_name = QtGui.QListWidgetItem(author.display_name)
+#            author_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(author.id))
+#            self.AuthorListWidget.addItem(author_name)
+#        if self.currentRow >= self.AuthorListWidget.count() :
+#            self.AuthorListWidget.setCurrentRow(self.AuthorListWidget.count() - 1)
+#        else:
+#            self.AuthorListWidget.setCurrentRow(self.currentRow)
+#        self._validate_form()
+#
+#    def onDeleteButtonClick(self):
+#        """
+#        Delete the author is the Author is not attached to any songs
+#        """
+#        self.songmanager.delete_author(self.author.id)
+#        self.load_form()
+#
+#    def onDisplayEditLostFocus(self):
+#        self._validate_form()
+#
+#    def onAddUpdateButtonClick(self):
+#        """
+#        Sent New or update details to the database
+#        """
+#        if self.author == None:
+#            self.author = Author()
+#        self.author.display_name = unicode(self.DisplayEdit.displayText())
+#        self.author.first_name = unicode(self.FirstNameEdit.displayText())
+#        self.author.last_name = unicode(self.LastNameEdit.displayText())
+#        self.songmanager.save_author(self.author)
+#        self.onClearButtonClick()
+#        self.load_form()
+#
+#    def onClearButtonClick(self):
+#        """
+#        Tidy up screen if clear button pressed
+#        """
+#        self.DisplayEdit.setText(u'')
+#        self.FirstNameEdit.setText(u'')
+#        self.LastNameEdit.setText(u'')
+#        self.MessageLabel.setText(u'')
+#        self.DeleteButton.setEnabled(False)
+#        self.author = None
+#        self._validate_form()
+#        self.DisplayEdit.setFocus()
+#
+#    def onAuthorListWidgetItemClicked(self, index):
+#        """
+#        An Author has been selected display it
+#        If the author is attached to a Song prevent delete
+#        """
+#        self.currentRow = self.AuthorListWidget.currentRow()
+#        item = self.AuthorListWidget.currentItem()
+#        item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
+#        self.author = self.songmanager.get_author(item_id)
+#        self.DisplayEdit.setText(self.author.display_name)
+#        if self.author.first_name is None:
+#            self.FirstNameEdit.setText(u'')
+#        else:
+#            self.FirstNameEdit.setText(self.author.first_name)
+#        if self.author.last_name is None:
+#            self.LastNameEdit.setText(u'')
+#        else:
+#            self.LastNameEdit.setText(self.author.last_name)
+#        if len(self.author.songs) > 0:
+#            self.MessageLabel.setText(translate(u'AuthorForm', u'Author in use "Delete" is disabled'))
+#            self.DeleteButton.setEnabled(False)
+#        else:
+#            self.MessageLabel.setText(translate(u'AuthorForm', u'Author in not used'))
+#            self.DeleteButton.setEnabled(True)
+#        self._validate_form()
+#        self.DisplayEdit.setFocus()
+#
+#    def _validate_form(self):
+#        """
+#        Validate the form and set if Add button if valid.
+#        """
+#        # We need at lease a display name
+#        if len(self.DisplayEdit.displayText()) == 0:
+#            self.AddUpdateButton.setEnabled(False)
+#        else:
+#            self.AddUpdateButton.setEnabled(True)

=== modified file 'openlp/plugins/songs/forms/songbookdialog.py'
--- openlp/plugins/songs/forms/songbookdialog.py	2009-06-14 15:12:40 +0000
+++ openlp/plugins/songs/forms/songbookdialog.py	2009-07-24 22:13:40 +0000
@@ -23,97 +23,46 @@
 class Ui_SongBookDialog(object):
     def setupUi(self, SongBookDialog):
         SongBookDialog.setObjectName(u'SongBookDialog')
-        SongBookDialog.resize(387, 531)
-        self.DialogLayout = QtGui.QVBoxLayout(SongBookDialog)
-        self.DialogLayout.setSpacing(8)
-        self.DialogLayout.setMargin(8)
-        self.DialogLayout.setObjectName(u'DialogLayout')
-        self.BookSongListWidget = QtGui.QListWidget()
-        self.BookSongListWidget.setAlternatingRowColors(True)
-        self.DialogLayout.addWidget(self.BookSongListWidget)
-        self.DialogLayout.addWidget(self.BookSongListWidget)
-        self.SongBookGroup = QtGui.QGroupBox(SongBookDialog)
-        self.SongBookGroup.setMinimumSize(QtCore.QSize(0, 200))
-        self.SongBookGroup.setObjectName(u'SongBookGroup')
-        self.SongBookLayout = QtGui.QVBoxLayout(self.SongBookGroup)
+        SongBookDialog.resize(367, 120)
+        self.SongBookLayout = QtGui.QFormLayout(SongBookDialog)
+        self.SongBookLayout.setMargin(8)
         self.SongBookLayout.setSpacing(8)
-        self.SongBookLayout.setMargin(8)
         self.SongBookLayout.setObjectName(u'SongBookLayout')
-        self.DetailsWidget = QtGui.QWidget(self.SongBookGroup)
-        self.DetailsWidget.setMinimumSize(QtCore.QSize(0, 0))
-        self.DetailsWidget.setObjectName(u'DetailsWidget')
-        self.DetailsLayout = QtGui.QFormLayout(self.DetailsWidget)
-        self.DetailsLayout.setMargin(0)
-        self.DetailsLayout.setSpacing(8)
-        self.DetailsLayout.setObjectName(u'DetailsLayout')
-        self.NameLabel = QtGui.QLabel(self.DetailsWidget)
+        self.NameLabel = QtGui.QLabel(SongBookDialog)
         self.NameLabel.setObjectName(u'NameLabel')
-        self.DetailsLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.NameLabel)
-        self.NameEdit = QtGui.QLineEdit(self.DetailsWidget)
+        self.SongBookLayout.setWidget(0,
+            QtGui.QFormLayout.LabelRole, self.NameLabel)
+        self.NameEdit = QtGui.QLineEdit(SongBookDialog)
         self.NameEdit.setObjectName(u'NameEdit')
-        self.DetailsLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.NameEdit)
-        self.PublisherLabel = QtGui.QLabel(self.DetailsWidget)
+        self.SongBookLayout.setWidget(0,
+            QtGui.QFormLayout.FieldRole, self.NameEdit)
+        self.PublisherLabel = QtGui.QLabel(SongBookDialog)
         self.PublisherLabel.setObjectName(u'PublisherLabel')
-        self.DetailsLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.PublisherLabel)
-        self.PublisherEdit = QtGui.QLineEdit(self.DetailsWidget)
+        self.SongBookLayout.setWidget(1,
+            QtGui.QFormLayout.LabelRole, self.PublisherLabel)
+        self.PublisherEdit = QtGui.QLineEdit(SongBookDialog)
         self.PublisherEdit.setObjectName(u'PublisherEdit')
-        self.DetailsLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.PublisherEdit)
-        self.SongBookLayout.addWidget(self.DetailsWidget)
-        self.MessageLabel = QtGui.QLabel(self.SongBookGroup)
-        self.MessageLabel.setObjectName(u'MessageLabel')
-        self.SongBookLayout.addWidget(self.MessageLabel)
-        self.ButtonWidget = QtGui.QWidget(self.SongBookGroup)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ButtonWidget.sizePolicy().hasHeightForWidth())
-        self.ButtonWidget.setSizePolicy(sizePolicy)
-        self.ButtonWidget.setMinimumSize(QtCore.QSize(0, 0))
-        self.ButtonWidget.setObjectName(u'ButtonWidget')
-        self.ButtonLayout = QtGui.QHBoxLayout(self.ButtonWidget)
-        self.ButtonLayout.setSpacing(8)
-        self.ButtonLayout.setMargin(0)
-        self.ButtonLayout.setObjectName(u'ButtonLayout')
-        spacerItem = QtGui.QSpacerItem(61, 24, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.ButtonLayout.addItem(spacerItem)
-        self.ClearButton = QtGui.QPushButton(self.ButtonWidget)
-        icon = QtGui.QIcon()
-        icon.addPixmap(QtGui.QPixmap(u':/services/service_new.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
-        self.ClearButton.setIcon(icon)
-        self.ClearButton.setObjectName(u'ClearButton')
-        self.ButtonLayout.addWidget(self.ClearButton)
-        self.AddUpdateButton = QtGui.QPushButton(self.ButtonWidget)
-        icon1 = QtGui.QIcon()
-        icon1.addPixmap(QtGui.QPixmap(u':/services/service_save.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
-        self.AddUpdateButton.setIcon(icon1)
-        self.AddUpdateButton.setObjectName(u'AddUpdateButton')
-        self.ButtonLayout.addWidget(self.AddUpdateButton)
-        self.DeleteButton = QtGui.QPushButton(self.ButtonWidget)
-        icon2 = QtGui.QIcon()
-        icon2.addPixmap(QtGui.QPixmap(u':/services/service_delete.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
-        self.DeleteButton.setIcon(icon2)
-        self.DeleteButton.setObjectName(u'DeleteButton')
-        self.ButtonLayout.addWidget(self.DeleteButton)
-        self.SongBookLayout.addWidget(self.ButtonWidget)
-        self.DialogLayout.addWidget(self.SongBookGroup)
+        self.SongBookLayout.setWidget(1,
+            QtGui.QFormLayout.FieldRole, self.PublisherEdit)
         self.ButtonBox = QtGui.QDialogButtonBox(SongBookDialog)
         self.ButtonBox.setOrientation(QtCore.Qt.Horizontal)
-        self.ButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok)
+        self.ButtonBox.setStandardButtons(
+            QtGui.QDialogButtonBox.Save | QtGui.QDialogButtonBox.Cancel)
         self.ButtonBox.setObjectName(u'ButtonBox')
-        self.DialogLayout.addWidget(self.ButtonBox)
+        self.SongBookLayout.setWidget(2,
+            QtGui.QFormLayout.FieldRole, self.ButtonBox)
+
         self.retranslateUi(SongBookDialog)
-        QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'accepted()'), SongBookDialog.accept)
-        QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'rejected()'), SongBookDialog.reject)
+        QtCore.QObject.connect(self.ButtonBox,
+            QtCore.SIGNAL(u'accepted()'), SongBookDialog.accept)
+        QtCore.QObject.connect(self.ButtonBox,
+            QtCore.SIGNAL(u'rejected()'), SongBookDialog.reject)
         QtCore.QMetaObject.connectSlotsByName(SongBookDialog)
 
     def retranslateUi(self, SongBookDialog):
-        SongBookDialog.setWindowTitle(translate(u'SongBookDialog', u'Book Song Maintenance'))
-        self.SongBookGroup.setTitle(translate(u'SongBookDialog', u'Song Book'))
-        self.NameLabel.setText(translate(u'SongBookDialog', u'Name:'))
-        self.PublisherLabel.setText(translate(u'SongBookDialog', u'Publisher:'))
-        self.ClearButton.setToolTip(translate(u'SongBookDialog', u'Clear Selection'))
-        self.ClearButton.setText(translate(u'SongBookDialog', u'Clear'))
-        self.AddUpdateButton.setToolTip(translate(u'SongBookDialog', u'Add Update Author'))
-        self.AddUpdateButton.setText(translate(u'SongBookDialog', u'Save'))
-        self.DeleteButton.setToolTip(translate(u'SongBookDialog', u'Delete Author'))
-        self.DeleteButton.setText(translate(u'SongBookDialog', u'Delete'))
+        SongBookDialog.setWindowTitle(
+            translate(u'SongBookDialog', u'Edit Book'))
+        self.NameLabel.setText(
+            translate(u'SongBookDialog', u'Name:'))
+        self.PublisherLabel.setText(
+            translate(u'SongBookDialog', u'Publisher:'))

=== modified file 'openlp/plugins/songs/forms/songbookform.py'
--- openlp/plugins/songs/forms/songbookform.py	2009-07-14 18:38:33 +0000
+++ openlp/plugins/songs/forms/songbookform.py	2009-07-24 20:40:34 +0000
@@ -20,107 +20,22 @@
 from PyQt4 import QtGui, QtCore
 from openlp.core.lib import translate
 from songbookdialog import Ui_SongBookDialog
-from openlp.plugins.songs.lib.classes import Book
 
 class SongBookForm(QtGui.QDialog, Ui_SongBookDialog):
     """
     Class documentation goes here.
     """
-    def __init__(self, songmanager, parent = None):
+    def __init__(self, parent=None):
         """
         Constructor
         """
         QtGui.QDialog.__init__(self, parent)
         self.setupUi(self)
-        self.songmanager = songmanager
-        self.currentRow = 0
-        self.songbook = None
-
-        QtCore.QObject.connect(self.DeleteButton,
-            QtCore.SIGNAL(u'pressed()'), self.onDeleteButtonClick)
-        QtCore.QObject.connect(self.ClearButton,
-            QtCore.SIGNAL(u'pressed()'), self.onClearButtonClick)
-        QtCore.QObject.connect(self.AddUpdateButton,
-            QtCore.SIGNAL(u'pressed()'), self.onAddUpdateButtonClick)
-        QtCore.QObject.connect(self.NameEdit,
-            QtCore.SIGNAL(u'lostFocus()'), self.onBookNameEditLostFocus)
-        QtCore.QObject.connect(self.BookSongListWidget,
-            QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onBooksListViewItemClicked)
-
-    def load_form(self):
-        """
-        Refresh the screen and rest fields
-        """
-        self.BookSongListWidget.clear()
-        self.onClearButtonClick() # tidy up screen
-        books = self.songmanager.get_books()
-        for book in books:
-            book_name = QtGui.QListWidgetItem(book.name)
-            book_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(book.id))
-            self.BookSongListWidget.addItem(book_name)
-        if self.currentRow >= self.BookSongListWidget.count() :
-            self.BookSongListWidget.setCurrentRow(self.BookSongListWidget.count() - 1)
-        else:
-            self.BookSongListWidget.setCurrentRow(self.currentRow)
-
-    def onDeleteButtonClick(self):
-        """
-        Delete the Book is the Book is not attached to any songs
-        """
-        self.songmanager.delete_book(self.Book.id)
-        self.load_form()
-
-    def onBookNameEditLostFocus(self):
-        self._validate_form()
-
-    def onAddUpdateButtonClick(self):
-        """
-        Sent New or update details to the database
-        """
-        if self.Book == None:
-            self.Book = Book()
-        self.Book.name = unicode(self.NameEdit.displayText())
-        self.Book.publisher = unicode(self.PublisherEdit.displayText())
-        self.songmanager.save_book(self.Book)
-        self.onClearButtonClick()
-        self.load_form()
-
-    def onClearButtonClick(self):
-        """
-        Tidy up screen if clear button pressed
-        """
-        self.NameEdit.setText(u'')
-        self.PublisherEdit.setText(u'')
-        self.MessageLabel.setText(u'')
-        self.DeleteButton.setEnabled(False)
-        self.AddUpdateButton.setEnabled(True)
-        self.Book = None
-        self._validate_form()
-        self.NameEdit.setFocus()
-
-    def onBooksListViewItemClicked(self, index):
-        """
-        An Book has been selected display it
-        If the Book is attached to a Song prevent delete
-        """
-        self.currentRow = self.BookSongListWidget.currentRow()
-        item = self.BookSongListWidget.currentItem()
-        item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
-        self.Book = self.songmanager.get_book(item_id)
-        self.NameEdit.setText(self.Book.name)
-        self.PublisherEdit.setText(self.Book.publisher)
-        if len(self.Book.songs) > 0:
-            self.MessageLabel.setText(translate(u'BookForm', u'Book in use "Delete" is disabled'))
-            self.DeleteButton.setEnabled(False)
-        else:
-            self.MessageLabel.setText(translate(u'BookForm', u'Book in not used'))
-            self.DeleteButton.setEnabled(True)
-        self._validate_form()
-        self.NameEdit.setFocus()
-
-    def _validate_form(self):
-        # We need at lease a display name
-        if len(self.NameEdit.displayText()) == 0:
-            self.AddUpdateButton.setEnabled(False)
-        else:
-            self.AddUpdateButton.setEnabled(True)
+
+    def exec_(self, clear=True):
+        if clear:
+            self.NameEdit.clear()
+            self.PublisherEdit.clear()
+        self.NameEdit.setFocus()
+        return QtGui.QDialog.exec_(self)
+

=== added file 'openlp/plugins/songs/forms/songmaintenancedialog.py'
--- openlp/plugins/songs/forms/songmaintenancedialog.py	1970-01-01 00:00:00 +0000
+++ openlp/plugins/songs/forms/songmaintenancedialog.py	2009-07-24 22:13:40 +0000
@@ -0,0 +1,254 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+"""
+OpenLP - Open Source Lyrics Projection
+Copyright (c) 2008 Raoul Snyman
+Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley,
+
+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; version 2 of the License.
+
+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
+"""
+from PyQt4 import QtCore, QtGui
+from openlp.core.lib import translate
+
+class Ui_SongMaintenanceDialog(object):
+    def setupUi(self, SongMaintenanceDialog):
+        SongMaintenanceDialog.setObjectName(u'SongMaintenanceDialog')
+        SongMaintenanceDialog.setWindowModality(QtCore.Qt.ApplicationModal)
+        SongMaintenanceDialog.resize(486, 361)
+        self.DialogLayout = QtGui.QVBoxLayout(SongMaintenanceDialog)
+        self.DialogLayout.setSpacing(8)
+        self.DialogLayout.setMargin(8)
+        self.DialogLayout.setObjectName(u'DialogLayout')
+        self.ContentWidget = QtGui.QWidget(SongMaintenanceDialog)
+        self.ContentWidget.setObjectName(u'ContentWidget')
+        self.ContentLayout = QtGui.QHBoxLayout(self.ContentWidget)
+        self.ContentLayout.setSpacing(8)
+        self.ContentLayout.setMargin(0)
+        self.ContentLayout.setObjectName(u'ContentLayout')
+        self.TypeListWidget = QtGui.QListWidget(self.ContentWidget)
+        sizePolicy = QtGui.QSizePolicy(
+            QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(
+            self.TypeListWidget.sizePolicy().hasHeightForWidth())
+        self.TypeListWidget.setSizePolicy(sizePolicy)
+        self.TypeListWidget.setViewMode(QtGui.QListView.IconMode)
+        self.TypeListWidget.setIconSize(QtCore.QSize(112, 100));
+        self.TypeListWidget.setMovement(QtGui.QListView.Static);
+        self.TypeListWidget.setMaximumWidth(118);
+        self.TypeListWidget.setSpacing(3);
+        self.TypeListWidget.setSortingEnabled(False)
+        self.TypeListWidget.setUniformItemSizes(True)
+        self.TypeListWidget.setObjectName(u'TypeListWidget')
+        icon = QtGui.QIcon()
+        icon.addPixmap(QtGui.QPixmap(u':/songs/author_maintenance.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        item = QtGui.QListWidgetItem(self.TypeListWidget)
+        item.setIcon(icon)
+        icon1 = QtGui.QIcon()
+        icon1.addPixmap(QtGui.QPixmap(u':/songs/topic_maintenance.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        item = QtGui.QListWidgetItem(self.TypeListWidget)
+        item.setIcon(icon1)
+        icon2 = QtGui.QIcon()
+        icon2.addPixmap(QtGui.QPixmap(u':/songs/book_maintenance.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        item = QtGui.QListWidgetItem(self.TypeListWidget)
+        item.setIcon(icon2)
+        self.ContentLayout.addWidget(self.TypeListWidget)
+        self.TypeStackedWidget = QtGui.QStackedWidget(self.ContentWidget)
+        self.TypeStackedWidget.setObjectName(u'TypeStackedWidget')
+        self.AuthorsPage = QtGui.QWidget()
+        self.AuthorsPage.setObjectName(u'AuthorsPage')
+        self.AuthorsLayout = QtGui.QVBoxLayout(self.AuthorsPage)
+        self.AuthorsLayout.setSpacing(4)
+        self.AuthorsLayout.setMargin(0)
+        self.AuthorsLayout.setObjectName(u'AuthorsLayout')
+        self.AuthorsListWidget = QtGui.QListWidget(self.AuthorsPage)
+        self.AuthorsListWidget.setObjectName(u'AuthorsListWidget')
+        self.AuthorsLayout.addWidget(self.AuthorsListWidget)
+        self.AuthorButtonWidget = QtGui.QWidget(self.AuthorsPage)
+        self.AuthorButtonWidget.setObjectName(u'AuthorButtonWidget')
+        self.AuthorButtonsLayout = QtGui.QHBoxLayout(self.AuthorButtonWidget)
+        self.AuthorButtonsLayout.setSpacing(8)
+        self.AuthorButtonsLayout.setMargin(0)
+        self.AuthorButtonsLayout.setObjectName(u'AuthorButtonsLayout')
+        spacerItem = QtGui.QSpacerItem(40, 20,
+            QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.AuthorButtonsLayout.addItem(spacerItem)
+        self.AuthorAddButton = QtGui.QPushButton(self.AuthorButtonWidget)
+        icon3 = QtGui.QIcon()
+        icon3.addPixmap(QtGui.QPixmap(u':/songs/author_add.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.AuthorAddButton.setIcon(icon3)
+        self.AuthorAddButton.setObjectName(u'AuthorAddButton')
+        self.AuthorButtonsLayout.addWidget(self.AuthorAddButton)
+        self.AuthorEditButton = QtGui.QPushButton(self.AuthorButtonWidget)
+        icon4 = QtGui.QIcon()
+        icon4.addPixmap(QtGui.QPixmap(u':/songs/author_edit.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.AuthorEditButton.setIcon(icon4)
+        self.AuthorEditButton.setObjectName(u'AuthorEditButton')
+        self.AuthorButtonsLayout.addWidget(self.AuthorEditButton)
+        self.AuthorDeleteButton = QtGui.QPushButton(self.AuthorButtonWidget)
+        icon5 = QtGui.QIcon()
+        icon5.addPixmap(QtGui.QPixmap(u':/songs/author_delete.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.AuthorDeleteButton.setIcon(icon5)
+        self.AuthorDeleteButton.setObjectName(u'AuthorDeleteButton')
+        self.AuthorButtonsLayout.addWidget(self.AuthorDeleteButton)
+        self.AuthorsLayout.addWidget(self.AuthorButtonWidget)
+        self.AuthorsLine = QtGui.QFrame(self.AuthorsPage)
+        self.AuthorsLine.setFrameShape(QtGui.QFrame.HLine)
+        self.AuthorsLine.setFrameShadow(QtGui.QFrame.Sunken)
+        self.AuthorsLine.setObjectName(u'AuthorsLine')
+        self.AuthorsLayout.addWidget(self.AuthorsLine)
+        self.TypeStackedWidget.addWidget(self.AuthorsPage)
+        self.TopicsPage = QtGui.QWidget()
+        self.TopicsPage.setObjectName(u'TopicsPage')
+        self.TopicLayout = QtGui.QVBoxLayout(self.TopicsPage)
+        self.TopicLayout.setSpacing(4)
+        self.TopicLayout.setMargin(0)
+        self.TopicLayout.setObjectName(u'TopicLayout')
+        self.TopicsListWidget = QtGui.QListWidget(self.TopicsPage)
+        self.TopicsListWidget.setObjectName(u'TopicsListWidget')
+        self.TopicLayout.addWidget(self.TopicsListWidget)
+        self.TopicButtonWidget = QtGui.QWidget(self.TopicsPage)
+        self.TopicButtonWidget.setObjectName(u'TopicButtonWidget')
+        self.TopicButtonLayout = QtGui.QHBoxLayout(self.TopicButtonWidget)
+        self.TopicButtonLayout.setSpacing(8)
+        self.TopicButtonLayout.setMargin(0)
+        self.TopicButtonLayout.setObjectName(u'TopicButtonLayout')
+        TopicSpacerItem = QtGui.QSpacerItem(54, 20,
+            QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.TopicButtonLayout.addItem(TopicSpacerItem)
+        self.TopicAddButton = QtGui.QPushButton(self.TopicButtonWidget)
+        icon6 = QtGui.QIcon()
+        icon6.addPixmap(QtGui.QPixmap(u':/songs/topic_add.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.TopicAddButton.setIcon(icon6)
+        self.TopicAddButton.setObjectName(u'TopicAddButton')
+        self.TopicButtonLayout.addWidget(self.TopicAddButton)
+        self.TopicEditButton = QtGui.QPushButton(self.TopicButtonWidget)
+        icon7 = QtGui.QIcon()
+        icon7.addPixmap(QtGui.QPixmap(u':/songs/topic_edit.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.TopicEditButton.setIcon(icon7)
+        self.TopicEditButton.setObjectName(u'TopicEditButton')
+        self.TopicButtonLayout.addWidget(self.TopicEditButton)
+        self.TopicDeleteButton = QtGui.QPushButton(self.TopicButtonWidget)
+        icon8 = QtGui.QIcon()
+        icon8.addPixmap(QtGui.QPixmap(u':/songs/topic_delete.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.TopicDeleteButton.setIcon(icon8)
+        self.TopicDeleteButton.setObjectName(u'TopicDeleteButton')
+        self.TopicButtonLayout.addWidget(self.TopicDeleteButton)
+        self.TopicLayout.addWidget(self.TopicButtonWidget)
+        self.TopicsLine = QtGui.QFrame(self.TopicsPage)
+        self.TopicsLine.setFrameShape(QtGui.QFrame.HLine)
+        self.TopicsLine.setFrameShadow(QtGui.QFrame.Sunken)
+        self.TopicsLine.setObjectName(u'TopicsLine')
+        self.TopicLayout.addWidget(self.TopicsLine)
+        self.TypeStackedWidget.addWidget(self.TopicsPage)
+        self.BooksPage = QtGui.QWidget()
+        self.BooksPage.setObjectName(u'BooksPage')
+        self.BookLayout = QtGui.QVBoxLayout(self.BooksPage)
+        self.BookLayout.setSpacing(4)
+        self.BookLayout.setMargin(0)
+        self.BookLayout.setObjectName(u'BookLayout')
+        self.BooksListWidget = QtGui.QListWidget(self.BooksPage)
+        self.BooksListWidget.setObjectName(u'BooksListWidget')
+        self.BookLayout.addWidget(self.BooksListWidget)
+        self.BookButtonWidget = QtGui.QWidget(self.BooksPage)
+        self.BookButtonWidget.setObjectName(u'BookButtonWidget')
+        self.BookButtonLayout = QtGui.QHBoxLayout(self.BookButtonWidget)
+        self.BookButtonLayout.setSpacing(8)
+        self.BookButtonLayout.setMargin(0)
+        self.BookButtonLayout.setObjectName(u'BookButtonLayout')
+        spacerItem2 = QtGui.QSpacerItem(54, 20,
+            QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.BookButtonLayout.addItem(spacerItem2)
+        self.BookAddButton = QtGui.QPushButton(self.BookButtonWidget)
+        icon9 = QtGui.QIcon()
+        icon9.addPixmap(QtGui.QPixmap(u':/songs/book_add.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.BookAddButton.setIcon(icon9)
+        self.BookAddButton.setObjectName(u'BookAddButton')
+        self.BookButtonLayout.addWidget(self.BookAddButton)
+        self.BookEditButton = QtGui.QPushButton(self.BookButtonWidget)
+        icon10 = QtGui.QIcon()
+        icon10.addPixmap(QtGui.QPixmap(u':/songs/book_edit.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.BookEditButton.setIcon(icon10)
+        self.BookEditButton.setObjectName(u'BookEditButton')
+        self.BookButtonLayout.addWidget(self.BookEditButton)
+        self.BookDeleteButton = QtGui.QPushButton(self.BookButtonWidget)
+        icon11 = QtGui.QIcon()
+        icon11.addPixmap(QtGui.QPixmap(u':/songs/book_delete.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.BookDeleteButton.setIcon(icon11)
+        self.BookDeleteButton.setObjectName(u'BookDeleteButton')
+        self.BookButtonLayout.addWidget(self.BookDeleteButton)
+        self.BookLayout.addWidget(self.BookButtonWidget)
+        self.BooksLine = QtGui.QFrame(self.BooksPage)
+        self.BooksLine.setFrameShape(QtGui.QFrame.HLine)
+        self.BooksLine.setFrameShadow(QtGui.QFrame.Sunken)
+        self.BooksLine.setObjectName(u'BooksLine')
+        self.BookLayout.addWidget(self.BooksLine)
+        self.TypeStackedWidget.addWidget(self.BooksPage)
+        self.ContentLayout.addWidget(self.TypeStackedWidget)
+        self.DialogLayout.addWidget(self.ContentWidget)
+        self.MaintenanceButtonBox = QtGui.QDialogButtonBox(SongMaintenanceDialog)
+        self.MaintenanceButtonBox.setOrientation(QtCore.Qt.Horizontal)
+        self.MaintenanceButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Close)
+        self.MaintenanceButtonBox.setObjectName(u'MaintenanceButtonBox')
+        self.DialogLayout.addWidget(self.MaintenanceButtonBox)
+
+        self.retranslateUi(SongMaintenanceDialog)
+        self.TypeStackedWidget.setCurrentIndex(0)
+        QtCore.QObject.connect(self.MaintenanceButtonBox,
+            QtCore.SIGNAL(u'rejected()'), SongMaintenanceDialog.accept)
+        QtCore.QObject.connect(self.TypeListWidget,
+            QtCore.SIGNAL(u'currentRowChanged(int)'),
+            self.TypeStackedWidget.setCurrentIndex)
+        QtCore.QMetaObject.connectSlotsByName(SongMaintenanceDialog)
+
+    def retranslateUi(self, SongMaintenanceDialog):
+        SongMaintenanceDialog.setWindowTitle(
+            translate(u'SongMaintenanceDialog', u'Song Maintenance'))
+        self.TypeListWidget.item(0).setText(
+            translate(u'SongMaintenanceDialog', u'Authors'))
+        self.TypeListWidget.item(1).setText(
+            translate(u'SongMaintenanceDialog', u'Topics'))
+        self.TypeListWidget.item(2).setText(
+            translate(u'SongMaintenanceDialog', u'Books/Hymnals'))
+        self.AuthorAddButton.setText(
+            translate(u'SongMaintenanceDialog', u'Add'))
+        self.AuthorEditButton.setText(
+            translate(u'SongMaintenanceDialog', u'Edit'))
+        self.AuthorDeleteButton.setText(
+            translate(u'SongMaintenanceDialog', u'Delete'))
+        self.TopicAddButton.setText(
+            translate(u'SongMaintenanceDialog', u'Add'))
+        self.TopicEditButton.setText(
+            translate(u'SongMaintenanceDialog', u'Edit'))
+        self.TopicDeleteButton.setText(
+            translate(u'SongMaintenanceDialog', u'Delete'))
+        self.BookAddButton.setText(
+            translate(u'SongMaintenanceDialog', u'Add'))
+        self.BookEditButton.setText(
+            translate(u'SongMaintenanceDialog', u'Edit'))
+        self.BookDeleteButton.setText(
+            translate(u'SongMaintenanceDialog', u'Delete'))
+

=== added file 'openlp/plugins/songs/forms/songmaintenanceform.py'
--- openlp/plugins/songs/forms/songmaintenanceform.py	1970-01-01 00:00:00 +0000
+++ openlp/plugins/songs/forms/songmaintenanceform.py	2009-07-24 22:13:40 +0000
@@ -0,0 +1,244 @@
+# -*- coding: utf-8 -*-
+"""
+OpenLP - Open Source Lyrics Projection
+Copyright (c) 2008 Raoul Snyman
+Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten Tinggaard
+
+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; version 2 of the License.
+
+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
+"""
+
+from PyQt4 import QtGui, QtCore
+from openlp.core.lib import translate
+from openlp.plugins.songs.lib.classes import Author, Book, Topic
+from songmaintenancedialog import Ui_SongMaintenanceDialog
+from authorsform import AuthorsForm
+from topicsform import TopicsForm
+from songbookform import SongBookForm
+
+class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog):
+    """
+    Class documentation goes here.
+    """
+    def __init__(self, songmanager, parent=None):
+        """
+        Constructor
+        """
+        QtGui.QDialog.__init__(self, parent)
+        self.setupUi(self)
+        self.songmanager = songmanager
+        self.authorform = AuthorsForm(self)
+        self.topicform = TopicsForm(self)
+        self.bookform = SongBookForm(self)
+        QtCore.QObject.connect(self.AuthorAddButton,
+            QtCore.SIGNAL(u'pressed()'), self.onAuthorAddButtonClick)
+        QtCore.QObject.connect(self.TopicAddButton,
+            QtCore.SIGNAL(u'pressed()'), self.onTopicAddButtonClick)
+        QtCore.QObject.connect(self.BookAddButton,
+            QtCore.SIGNAL(u'pressed()'), self.onBookAddButtonClick)
+        QtCore.QObject.connect(self.AuthorEditButton,
+            QtCore.SIGNAL(u'pressed()'), self.onAuthorEditButtonClick)
+        QtCore.QObject.connect(self.TopicEditButton,
+            QtCore.SIGNAL(u'pressed()'), self.onTopicEditButtonClick)
+        QtCore.QObject.connect(self.BookEditButton,
+            QtCore.SIGNAL(u'pressed()'), self.onBookEditButtonClick)
+        QtCore.QObject.connect(self.AuthorDeleteButton,
+            QtCore.SIGNAL(u'pressed()'), self.onAuthorDeleteButtonClick)
+        QtCore.QObject.connect(self.TopicDeleteButton,
+            QtCore.SIGNAL(u'pressed()'), self.onTopicDeleteButtonClick)
+        QtCore.QObject.connect(self.BookDeleteButton,
+            QtCore.SIGNAL(u'pressed()'), self.onBookDeleteButtonClick)
+
+    def exec_(self):
+        self.TypeListWidget.setCurrentRow(0)
+        self.resetAuthors()
+        self.resetTopics()
+        self.resetBooks()
+        self.TypeListWidget.setFocus()
+        return QtGui.QDialog.exec_(self)
+
+    def _getCurrentItemId(self, ListWidget):
+        item = ListWidget.currentItem()
+        if item is not None:
+            item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
+            return item_id
+        else:
+            return -1
+
+    def _deleteItem(self, list_widget, get_func, del_func, reset_func,
+                    dlg_title, del_text, err_text, sel_text):
+        item_id = self._getCurrentItemId(list_widget)
+        if item_id != -1:
+            item = get_func(item_id)
+            if QtGui.QMessageBox.warning(self, dlg_title, del_text,
+                    QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | QtGui.QMessageBox.Yes)
+                    ) == QtGui.QMessageBox.Yes:
+                if item is not None and len(item.songs) == 0:
+                    del_func(item.id)
+                    reset_func()
+                else:
+                    QtGui.QMessageBox.critical(self, dlg_title, err_text,
+                        QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
+        else:
+            QtGui.QMessageBox.critical(self, dlg_title, sel_text,
+                QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
+
+    def resetAuthors(self):
+        self.AuthorsListWidget.clear()
+        authors = self.songmanager.get_authors()
+        for author in authors:
+            if author.display_name is not None and author.display_name != u'':
+                author_name = QtGui.QListWidgetItem(author.display_name)
+            else:
+                author_name = QtGui.QListWidgetItem(
+                    u'%s %s' % (author.first_name, author.last_name))
+            author_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(author.id))
+            self.AuthorsListWidget.addItem(author_name)
+
+    def resetTopics(self):
+        self.TopicsListWidget.clear()
+        topics = self.songmanager.get_topics()
+        for topic in topics:
+            topic_name = QtGui.QListWidgetItem(topic.name)
+            topic_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(topic.id))
+            self.TopicsListWidget.addItem(topic_name)
+
+    def resetBooks(self):
+        self.BooksListWidget.clear()
+        books = self.songmanager.get_books()
+        for book in books:
+            book_name = QtGui.QListWidgetItem(book.name)
+            book_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(book.id))
+            self.BooksListWidget.addItem(book_name)
+
+    def onAuthorAddButtonClick(self):
+        self.authorform.setAutoDisplayName(True)
+        if self.authorform.exec_():
+            author = Author.populate(
+                first_name=unicode(self.authorform.FirstNameEdit.text(), u'utf-8'),
+                last_name=unicode(self.authorform.LastNameEdit.text(), u'utf-8'),
+                display_name=unicode(self.authorform.DisplayEdit.text(), u'utf-8'))
+            if self.songmanager.save_author(author):
+                self.resetAuthors()
+            else:
+                QtGui.QMessageBox.critical(self,
+                    translate(u'SongMaintenanceForm', u'Error'),
+                    translate(u'SongMaintenanceForm', u'Couldn\'t add your author!'),
+                    QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
+
+    def onTopicAddButtonClick(self):
+        if self.topicform.exec_():
+            topic = Topic.populate(name=unicode(self.topicform.NameEdit.text(), u'utf-8'))
+            if self.songmanager.save_topic(topic):
+                self.resetTopics()
+            else:
+                QtGui.QMessageBox.critical(self,
+                    translate(u'SongMaintenanceForm', u'Error'),
+                    translate(u'SongMaintenanceForm', u'Couldn\'t add your topic!'),
+                    QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
+
+    def onBookAddButtonClick(self):
+        if self.bookform.exec_():
+            book = Book.populate(name=unicode(self.bookform.NameEdit.text(), u'utf-8'),
+                publisher=unicode(self.bookform.PublisherEdit.text(), u'utf-8'))
+            if self.songmanager.save_book(book):
+                self.resetBooks()
+            else:
+                QtGui.QMessageBox.critical(self,
+                    translate(u'SongMaintenanceForm', u'Error'),
+                    translate(u'SongMaintenanceForm', u'Couldn\'t add your book!'),
+                    QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
+
+    def onAuthorEditButtonClick(self):
+        author_id = self._getCurrentItemId(self.AuthorsListWidget)
+        if author_id != -1:
+            author = self.songmanager.get_author(author_id)
+            self.authorform.setAutoDisplayName(False)
+            self.authorform.FirstNameEdit.setText(author.first_name)
+            self.authorform.LastNameEdit.setText(author.last_name)
+            self.authorform.DisplayEdit.setText(author.display_name)
+            if self.authorform.exec_(False):
+                author.first_name = unicode(self.authorform.FirstNameEdit.text(), u'utf-8')
+                author.last_name = unicode(self.authorform.LastNameEdit.text(), u'utf-8')
+                author.display_name = unicode(self.authorform.DisplayEdit.text(), u'utf-8')
+                if self.songmanager.save_author(author):
+                    self.resetAuthors()
+                else:
+                    QtGui.QMessageBox.critical(self,
+                        translate(u'SongMaintenanceForm', u'Error'),
+                        translate(u'SongMaintenanceForm', u'Couldn\'t save your author!'),
+                        QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
+
+    def onTopicEditButtonClick(self):
+        topic_id = self._getCurrentItemId(self.TopicsListWidget)
+        if topic_id != -1:
+            topic = self.songmanager.get_topic(topic_id)
+            self.topicform.NameEdit.setText(topic.name)
+            if self.topicform.exec_(False):
+                topic.name = unicode(self.topicform.NameEdit.text(), u'utf-8')
+                if self.songmanager.save_topic(topic):
+                    self.resetTopics()
+                else:
+                    QtGui.QMessageBox.critical(self,
+                        translate(u'SongMaintenanceForm', u'Error'),
+                        translate(u'SongMaintenanceForm', u'Couldn\'t save your topic!'),
+                        QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
+
+    def onBookEditButtonClick(self):
+        book_id = self._getCurrentItemId(self.BooksListWidget)
+        if book_id != -1:
+            book = self.songmanager.get_book(book_id)
+            self.bookform.NameEdit.setText(book.name)
+            self.bookform.PublisherEdit.setText(book.publisher)
+            if self.bookform.exec_(False):
+                book.name = unicode(self.bookform.NameEdit.text(), u'utf-8')
+                book.publisher = unicode(self.bookform.PublisherEdit.text(), u'utf-8')
+                if self.songmanager.save_book(book):
+                    self.resetBooks()
+                else:
+                    QtGui.QMessageBox.critical(self,
+                        translate(u'SongMaintenanceForm', u'Error'),
+                        translate(u'SongMaintenanceForm', u'Couldn\'t save your book!'),
+                        QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
+
+    def onAuthorDeleteButtonClick(self):
+        """
+        Delete the author if the author is not attached to any songs
+        """
+        self._deleteItem(self.AuthorsListWidget, self.songmanager.get_author,
+            self.songmanager.delete_author, self.resetAuthors,
+            translate(u'SongMaintenanceForm', u'Delete Author'),
+            translate(u'SongMaintenanceForm', u'Are you sure you want to delete the selected author?'),
+            translate(u'SongMaintenanceForm', u'This author can\'t be deleted, they are currently assigned to at least one song!'),
+            translate(u'SongMaintenanceForm', u'No author selected!'))
+
+    def onTopicDeleteButtonClick(self):
+        """
+        Delete the Book is the Book is not attached to any songs
+        """
+        self._deleteItem(self.TopicsListWidget, self.songmanager.get_topic,
+            self.songmanager.delete_topic, self.resetTopics,
+            translate(u'SongMaintenanceForm', u'Delete Topic'),
+            translate(u'SongMaintenanceForm', u'Are you sure you want to delete the selected topic?'),
+            translate(u'SongMaintenanceForm', u'This topic can\'t be deleted, it is currently assigned to at least one song!'),
+            translate(u'SongMaintenanceForm', u'No topic selected!'))
+
+    def onBookDeleteButtonClick(self):
+        """
+        Delete the Book is the Book is not attached to any songs
+        """
+        self._deleteItem(self.BooksListWidget, self.songmanager.get_book,
+            self.songmanager.delete_book, self.resetBooks,
+            translate(u'SongMaintenanceForm', u'Delete Book'),
+            translate(u'SongMaintenanceForm', u'Are you sure you want to delete the selected book?'),
+            translate(u'SongMaintenanceForm', u'This book can\'t be deleted, it is currently assigned to at least one song!'),
+            translate(u'SongMaintenanceForm', u'No book selected!'))

=== modified file 'openlp/plugins/songs/forms/topicsdialog.py'
--- openlp/plugins/songs/forms/topicsdialog.py	2009-06-14 15:12:40 +0000
+++ openlp/plugins/songs/forms/topicsdialog.py	2009-07-24 22:13:40 +0000
@@ -23,66 +23,39 @@
 class Ui_TopicsDialog(object):
     def setupUi(self, TopicsDialog):
         TopicsDialog.setObjectName(u'TopicsDialog')
-        TopicsDialog.resize(387, 463)
-        self.gridLayout_2 = QtGui.QGridLayout(TopicsDialog)
-        self.gridLayout_2.setObjectName(u'gridLayout_2')
-        self.TopicGroupBox = QtGui.QGroupBox(TopicsDialog)
-        self.TopicGroupBox.setObjectName(u'TopicGroupBox')
-        self.gridLayout = QtGui.QGridLayout(self.TopicGroupBox)
-        self.gridLayout.setObjectName(u'gridLayout')
-        self.TopicNameLabel = QtGui.QLabel(self.TopicGroupBox)
-        self.TopicNameLabel.setObjectName(u'TopicNameLabel')
-        self.gridLayout.addWidget(self.TopicNameLabel, 0, 0, 1, 1)
-        self.TopicNameEdit = QtGui.QLineEdit(self.TopicGroupBox)
-        self.TopicNameEdit.setObjectName(u'TopicNameEdit')
-        self.gridLayout.addWidget(self.TopicNameEdit, 0, 1, 1, 4)
-        spacerItem = QtGui.QSpacerItem(198, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.gridLayout.addItem(spacerItem, 1, 0, 1, 2)
-        self.DeleteButton = QtGui.QPushButton(self.TopicGroupBox)
-        icon = QtGui.QIcon()
-        icon.addPixmap(QtGui.QPixmap(u':/services/service_delete.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
-        self.DeleteButton.setIcon(icon)
-        self.DeleteButton.setObjectName(u'DeleteButton')
-        self.gridLayout.addWidget(self.DeleteButton, 1, 3, 1, 1)
-        self.AddUpdateButton = QtGui.QPushButton(self.TopicGroupBox)
-        icon1 = QtGui.QIcon()
-        icon1.addPixmap(QtGui.QPixmap(u':/services/service_save.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
-        self.AddUpdateButton.setIcon(icon1)
-        self.AddUpdateButton.setObjectName(u'AddUpdateButton')
-        self.gridLayout.addWidget(self.AddUpdateButton, 1, 4, 1, 1)
-        self.ClearButton = QtGui.QPushButton(self.TopicGroupBox)
-        icon2 = QtGui.QIcon()
-        icon2.addPixmap(QtGui.QPixmap(u':/services/service_new.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
-        self.ClearButton.setIcon(icon2)
-        self.ClearButton.setObjectName(u'ClearButton')
-        self.gridLayout.addWidget(self.ClearButton, 1, 2, 1, 1)
-        self.gridLayout_2.addWidget(self.TopicGroupBox, 1, 0, 1, 1)
-        self.MessageLabel = QtGui.QLabel(TopicsDialog)
-        self.MessageLabel.setObjectName(u'MessageLabel')
-        self.gridLayout_2.addWidget(self.MessageLabel, 3, 0, 1, 1)
-        self.TopicsListWidget = QtGui.QListWidget()
-        self.TopicsListWidget.setAlternatingRowColors(True)
-        self.gridLayout_2.addWidget(self.TopicsListWidget, 0, 0, 1, 1)
-        self.ButtonBox = QtGui.QDialogButtonBox(TopicsDialog)
-        self.ButtonBox.setOrientation(QtCore.Qt.Horizontal)
-        self.ButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok)
-        self.ButtonBox.setObjectName(u'ButtonBox')
-        self.gridLayout_2.addWidget(self.ButtonBox, 2, 0, 1, 1)
+        TopicsDialog.resize(365, 77)
+        self.TopicLayout = QtGui.QFormLayout(TopicsDialog)
+        self.TopicLayout.setFieldGrowthPolicy(
+            QtGui.QFormLayout.ExpandingFieldsGrow)
+        self.TopicLayout.setMargin(8)
+        self.TopicLayout.setSpacing(8)
+        self.TopicLayout.setObjectName(u'TopicLayout')
+        self.NameLabel = QtGui.QLabel(TopicsDialog)
+        self.NameLabel.setObjectName(u'NameLabel')
+        self.TopicLayout.setWidget(0,
+            QtGui.QFormLayout.LabelRole, self.NameLabel)
+        self.NameEdit = QtGui.QLineEdit(TopicsDialog)
+        self.NameEdit.setObjectName(u'NameEdit')
+        self.TopicLayout.setWidget(0,
+            QtGui.QFormLayout.FieldRole, self.NameEdit)
+        self.TopicButtonBox = QtGui.QDialogButtonBox(TopicsDialog)
+        self.TopicButtonBox.setOrientation(QtCore.Qt.Horizontal)
+        self.TopicButtonBox.setStandardButtons(
+            QtGui.QDialogButtonBox.Save | QtGui.QDialogButtonBox.Cancel)
+        self.TopicButtonBox.setObjectName(u'TopicButtonBox')
+        self.TopicLayout.setWidget(1,
+            QtGui.QFormLayout.FieldRole, self.TopicButtonBox)
 
         self.retranslateUi(TopicsDialog)
-        QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'accepted()'), TopicsDialog.accept)
-        QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'rejected()'), TopicsDialog.reject)
+        QtCore.QObject.connect(self.TopicButtonBox,
+            QtCore.SIGNAL(u'accepted()'), TopicsDialog.accept)
+        QtCore.QObject.connect(self.TopicButtonBox,
+            QtCore.SIGNAL(u'rejected()'), TopicsDialog.reject)
         QtCore.QMetaObject.connectSlotsByName(TopicsDialog)
 
     def retranslateUi(self, TopicsDialog):
-        TopicsDialog.setWindowTitle(translate(u'TopicsDialog', u'Topic Maintenance'))
-        self.TopicGroupBox.setTitle(translate(u'TopicsDialog', u'Topic'))
-        self.TopicNameLabel.setText(translate(u'TopicsDialog', u'Topic Name:'))
-
-        self.DeleteButton.setToolTip(translate(u'TopicsDialog', u'Delete Author'))
-        self.DeleteButton.setText(translate(u'AuthorsDialog', u'Delete'))
-        self.AddUpdateButton.setToolTip(translate(u'TopicsDialog', u'Add Update Author'))
-        self.AddUpdateButton.setText(translate(u'AuthorsDialog', u'Save'))
-        self.ClearButton.setToolTip(translate(u'TopicsDialog', u'Clear Selection'))
-        self.ClearButton.setText(translate(u'TopicsDialog', u'Clear'))
+        TopicsDialog.setWindowTitle(
+            translate(u'TopicsDialog', u'Topic Maintenance'))
+        self.NameLabel.setText(
+            translate(u'TopicsDialog', u'Topic name:'))
 

=== modified file 'openlp/plugins/songs/forms/topicsform.py'
--- openlp/plugins/songs/forms/topicsform.py	2009-07-14 18:38:33 +0000
+++ openlp/plugins/songs/forms/topicsform.py	2009-07-24 20:40:34 +0000
@@ -18,110 +18,22 @@
 """
 from PyQt4 import QtGui, QtCore
 from openlp.core.lib import translate
-from openlp.plugins.songs.forms.topicsdialog import Ui_TopicsDialog
-from openlp.plugins.songs.lib.classes import Topic
+from topicsdialog import Ui_TopicsDialog
 
 class TopicsForm(QtGui.QDialog, Ui_TopicsDialog):
     """
     Class documentation goes here.
     """
-    def __init__(self, songmanager, parent = None):
+    def __init__(self, parent=None):
         """
         Constructor
         """
         QtGui.QDialog.__init__(self, parent)
         self.setupUi(self)
-        self.songmanager = songmanager
-        self.currentRow = 0
-        self.topic = None
-
-        QtCore.QObject.connect(self.DeleteButton,
-            QtCore.SIGNAL(u'pressed()'), self.onDeleteButtonClick)
-        QtCore.QObject.connect(self.ClearButton,
-            QtCore.SIGNAL(u'pressed()'), self.onClearButtonClick)
-        QtCore.QObject.connect(self.AddUpdateButton,
-            QtCore.SIGNAL(u'pressed()'), self.onAddUpdateButtonClick)
-        QtCore.QObject.connect(self.TopicNameEdit,
-            QtCore.SIGNAL(u'lostFocus()'), self.onTopicNameEditLostFocus)
-        QtCore.QObject.connect(self.TopicsListWidget,
-            QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onTopicsListWidgetItemClicked)
-
-    def load_form(self):
-        """
-        Refresh the screen and rest fields
-        """
-        self.TopicsListWidget.clear()
-        # tidy up screen
-        self.onClearButtonClick()
-        topics = self.songmanager.get_topics()
-        for topic in topics:
-            topic_name = QtGui.QListWidgetItem(topic.name)
-            topic_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(topic.id))
-            self.TopicsListWidget.addItem(topic_name)
-        if self.currentRow >= self.TopicsListWidget.count() :
-            self.TopicsListWidget.setCurrentRow(self.TopicsListWidget.count() - 1)
-        else:
-            self.TopicsListWidget.setCurrentRow(self.currentRow)
-        self._validate_form()
-
-    def onDeleteButtonClick(self):
-        """
-        Delete the Topic is the Topic is not attached to any songs
-        """
-        self.songmanager.delete_topic(self.topic.id)
-        self.load_form()
-
-    def onTopicNameEditLostFocus(self):
-        self._validate_form()
-
-    def onAddUpdateButtonClick(self):
-        """
-        Sent New or update details to the database
-        """
-        if self._validate_form():
-            if self.topic == None:
-                self.topic = Topic()
-            self.topic.name = unicode(self.TopicNameEdit.displayText())
-            self.songmanager.save_topic(self.topic)
-            self.onClearButtonClick()
-            self.load_form()
-
-    def onClearButtonClick(self):
-        """
-        Tidy up screen if clear button pressed
-        """
-        self.TopicNameEdit.setText(u'')
-        self.MessageLabel.setText(u'')
-        self.DeleteButton.setEnabled(False)
-        self.topic = None
-        self._validate_form()
-        self.TopicNameEdit.setFocus()
-
-    def onTopicsListWidgetItemClicked(self, index):
-        """
-        An Topic has been selected display it
-        If the Topic is attached to a Song prevent delete
-        """
-        self.currentRow = self.TopicsListWidget.currentRow()
-        item = self.TopicsListWidget.currentItem()
-        item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
-        self.topic = self.songmanager.get_topic(item_id)
-        self.TopicNameEdit.setText(self.topic.name)
-        if len(self.topic.songs) > 0:
-            self.MessageLabel.setText(translate(u'TopicForm', u'Topic in use "Delete" is disabled'))
-            self.DeleteButton.setEnabled(False)
-        else:
-            self.MessageLabel.setText(translate(u'TopicForm', u'Topic in not used'))
-            self.DeleteButton.setEnabled(True)
-        self._validate_form()
-        self.TopicNameEdit.setFocus()
-
-    def _validate_form(self):
-        # We need at lease a display name
-        valid = True
-        if len(self.TopicNameEdit.displayText()) == 0:
-            valid = False
-            self.TopicNameEdit.setStyleSheet(u'background-color: red; color: white')
-        else:
-            self.TopicNameEdit.setStyleSheet(u'')
-        return valid
+
+    def exec_(self, clear=True):
+        if clear:
+            self.NameEdit.clear()
+        self.NameEdit.setFocus()
+        return QtGui.QDialog.exec_(self)
+

=== modified file 'openlp/plugins/songs/lib/classes.py'
--- openlp/plugins/songs/lib/classes.py	2009-02-01 21:12:18 +0000
+++ openlp/plugins/songs/lib/classes.py	2009-07-24 20:40:34 +0000
@@ -43,7 +43,8 @@
     """
     Book model
     """
-    pass
+    def __repr__(self):
+        return u'<Book id="%s" name="%s" publisher="%s" />' % (str(self.id), self.name, self.publisher)
 
 class Song(BaseModel):
     """

=== modified file 'openlp/plugins/songs/lib/manager.py'
--- openlp/plugins/songs/lib/manager.py	2009-07-18 07:30:26 +0000
+++ openlp/plugins/songs/lib/manager.py	2009-07-24 20:40:34 +0000
@@ -218,9 +218,9 @@
             self.session.add(book)
             self.session.commit()
             return True
-        except:
+        except Exception, e:
             self.session.rollback()
-            log.error(u'Errow thrown %s', sys.exc_info()[1])
+            log.error(u'Errow thrown %s', e.args[0])
             return False
 
     def delete_book(self, bookid):

=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
--- openlp/plugins/songs/lib/mediaitem.py	2009-07-18 05:43:50 +0000
+++ openlp/plugins/songs/lib/mediaitem.py	2009-07-24 22:13:40 +0000
@@ -20,9 +20,10 @@
 import logging
 
 from PyQt4 import QtCore, QtGui
-from openlp.core.lib import MediaManagerItem,  translate,  ServiceItem,  SongXMLParser , contextMenuAction, contextMenuSeparator
-
-from openlp.plugins.songs.forms import EditSongForm, AuthorsForm, TopicsForm, SongBookForm
+from openlp.core.lib import MediaManagerItem, translate, ServiceItem, \
+    SongXMLParser, contextMenuAction, contextMenuSeparator
+from openlp.plugins.songs.forms import EditSongForm, AuthorsForm, \
+    TopicsForm, SongBookForm, SongMaintenanceForm
 
 class SongList(QtGui.QListWidget):
 
@@ -59,9 +60,7 @@
         self.ConfigSection = u'song'
         MediaManagerItem.__init__(self, parent, icon, title)
         self.edit_song_form = EditSongForm(self.parent.songmanager, self.parent.event_manager)
-        self.authors_form = AuthorsForm(self.parent.songmanager)
-        self.topics_form = TopicsForm(self.parent.songmanager)
-        self.song_book_form = SongBookForm(self.parent.songmanager)
+        self.song_maintenance_form = SongMaintenanceForm(self.parent.songmanager, self)
 
     def setupUi(self):
         # Add a toolbar
@@ -94,18 +93,10 @@
             translate(u'SongMediaItem', u'Add the selected song(s) to the service'),
             ':/system/system_add.png', self.onSongAddClick, 'SongAddItem')
         self.addToolbarSeparator()
-        ## Author Edit Button ##
-        self.addToolbarButton(translate(u'SongMediaItem', u'Edit Authors'),
-            translate(u'SongMediaItem', u'Maintain the list of Song Authors'),
-            ':/songs/song_author_edit.png', self.onEditAuthorClick, 'SongAuthorEditItem')
-        ## Author Edit Button ##
-        self.addToolbarButton(translate(u'SongMediaItem', u'Edit Books'),
-            translate(u'SongMediaItem', u'Maintain the list of Song Books'),
-            ':/songs/song_book_edit.png', self.onEditBookClick, 'SongAuthorEditItem')
-                    ## Author Edit Button ##
-        self.addToolbarButton(translate(u'SongMediaItem', u'Edit Topics'),
-            translate(u'SongMediaItem', u'Maintain the list of Song Topics'),
-            ':/songs/song_topic_edit.png', self.onEditTopicClick, 'SongAuthorEditItem')
+        ## Song Maintenance Button ##
+        self.addToolbarButton(translate(u'SongMediaItem', u'Song Maintenance'),
+            translate(u'SongMediaItem', u'Maintain the lists of authors, topics and books'),
+            ':/songs/song_maintenance.png', self.onSongMaintenanceClick, 'SongMaintenanceItem')
         ## Add the songlist widget ##
         # Create the tab widget
         self.SongWidget = QtGui.QWidget(self)
@@ -250,6 +241,9 @@
         self.song_book_form.load_form()
         self.song_book_form.exec_()
 
+    def onSongMaintenanceClick(self):
+        self.song_maintenance_form.exec_()
+
     def onSongEditClick(self):
         item = self.ListView.currentItem()
         if item is not None:

=== modified file 'openlp/plugins/songs/lib/models.py'
--- openlp/plugins/songs/lib/models.py	2009-02-01 21:12:18 +0000
+++ openlp/plugins/songs/lib/models.py	2009-07-24 20:40:34 +0000
@@ -27,8 +27,8 @@
 def init_models(url):
     engine = create_engine(url)
     metadata.bind = engine
-    session = scoped_session(sessionmaker(autoflush=True, autocommit=False,
-                                          bind=engine))
+    session = scoped_session(sessionmaker(autoflush=True,
+        autocommit=False, bind=engine))
     mapper(Author, authors_table)
     mapper(Book, song_books_table)
     mapper(Song, songs_table,

=== modified file 'openlp/plugins/songs/lib/tables.py'
--- openlp/plugins/songs/lib/tables.py	2009-06-24 06:10:13 +0000
+++ openlp/plugins/songs/lib/tables.py	2009-07-24 20:40:34 +0000
@@ -31,7 +31,7 @@
 
 # Definition of the "song_books" table
 song_books_table = Table(u'song_books', metadata,
-    Column(u'id', types.Integer,  primary_key=True),
+    Column(u'id', types.Integer, primary_key=True),
     Column(u'name', types.Unicode(128), nullable=False),
     Column(u'publisher', types.Unicode(128))
 )

=== modified file 'resources/forms/authorsdialog.ui'
--- resources/forms/authorsdialog.ui	2009-03-09 18:47:37 +0000
+++ resources/forms/authorsdialog.ui	2009-07-24 20:40:34 +0000
@@ -1,229 +1,104 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>AuthorsDialog</class>
- <widget class="QDialog" name="AuthorsDialog" >
-  <property name="geometry" >
+ <widget class="QDialog" name="AuthorsDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>410</width>
-    <height>505</height>
+    <width>393</width>
+    <height>147</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Author Maintenance</string>
   </property>
-  <layout class="QVBoxLayout" name="DialogLayout" >
-   <property name="spacing" >
-    <number>8</number>
-   </property>
-   <property name="margin" >
-    <number>8</number>
-   </property>
-   <item>
-    <widget class="QTableWidget" name="AuthorListView" >
-     <property name="dragEnabled" >
-      <bool>true</bool>
-     </property>
-     <property name="alternatingRowColors" >
-      <bool>true</bool>
-     </property>
-     <property name="columnCount" >
-      <number>0</number>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="AuthorDetails" >
-     <property name="minimumSize" >
-      <size>
-       <width>0</width>
-       <height>0</height>
-      </size>
-     </property>
-     <property name="title" >
-      <string>Author Details</string>
-     </property>
-     <layout class="QVBoxLayout" name="AuthorLayout" >
-      <property name="spacing" >
-       <number>8</number>
-      </property>
-      <property name="margin" >
-       <number>8</number>
-      </property>
-      <item>
-       <widget class="QWidget" native="1" name="DetailsWidget" >
-        <layout class="QFormLayout" name="DetailsLayout" >
-         <property name="horizontalSpacing" >
-          <number>8</number>
-         </property>
-         <property name="verticalSpacing" >
-          <number>8</number>
-         </property>
-         <property name="margin" >
-          <number>0</number>
-         </property>
-         <item row="0" column="0" >
-          <widget class="QLabel" name="DisplayLabel" >
-           <property name="text" >
-            <string>Display Name:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1" >
-          <widget class="QLineEdit" name="DisplayEdit" />
-         </item>
-         <item row="1" column="0" >
-          <widget class="QLabel" name="FirstNameLabel" >
-           <property name="text" >
-            <string>First Name:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1" >
-          <widget class="QLineEdit" name="FirstNameEdit" />
-         </item>
-         <item row="2" column="0" >
-          <widget class="QLabel" name="LastNameLabel" >
-           <property name="text" >
-            <string>Last Name:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="1" >
-          <widget class="QLineEdit" name="LastNameEdit" />
-         </item>
-        </layout>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLabel" name="MessageLabel" >
-        <property name="text" >
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QWidget" native="1" name="ButtonWidget" >
-        <property name="minimumSize" >
-         <size>
-          <width>0</width>
-          <height>0</height>
-         </size>
-        </property>
-        <layout class="QHBoxLayout" name="ButtonLayout" >
-         <property name="spacing" >
-          <number>8</number>
-         </property>
-         <property name="margin" >
-          <number>0</number>
-         </property>
-         <item>
-          <spacer name="ButtonSpacer" >
-           <property name="orientation" >
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0" >
-            <size>
-             <width>198</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item>
-          <widget class="QPushButton" name="ClearButton" >
-           <property name="toolTip" >
-            <string>Clear Selection</string>
-           </property>
-           <property name="text" >
-            <string>New</string>
-           </property>
-           <property name="icon" >
-            <iconset resource="../images/openlp-2.qrc" >
-             <normaloff>:/services/service_new.png</normaloff>:/services/service_new.png</iconset>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QPushButton" name="AddUpdateButton" >
-           <property name="toolTip" >
-            <string>Add Update Author</string>
-           </property>
-           <property name="text" >
-            <string>Save</string>
-           </property>
-           <property name="icon" >
-            <iconset resource="../images/openlp-2.qrc" >
-             <normaloff>:/services/service_save.png</normaloff>:/services/service_save.png</iconset>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QPushButton" name="DeleteButton" >
-           <property name="toolTip" >
-            <string>Delete Author</string>
-           </property>
-           <property name="text" >
-            <string>Delete</string>
-           </property>
-           <property name="icon" >
-            <iconset resource="../images/openlp-2.qrc" >
-             <normaloff>:/services/service_delete.png</normaloff>:/services/service_delete.png</iconset>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox" >
-     <property name="toolTip" >
+  <layout class="QFormLayout" name="AuthorsLayout">
+   <property name="horizontalSpacing">
+    <number>8</number>
+   </property>
+   <property name="verticalSpacing">
+    <number>8</number>
+   </property>
+   <property name="margin">
+    <number>8</number>
+   </property>
+   <item row="0" column="1">
+    <widget class="QLineEdit" name="FirstNameEdit"/>
+   </item>
+   <item row="2" column="1">
+    <widget class="QLineEdit" name="DisplayEdit"/>
+   </item>
+   <item row="2" column="0">
+    <widget class="QLabel" name="DisplayLabel">
+     <property name="text">
+      <string>Display Name:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="0">
+    <widget class="QLabel" name="FirstNameLabel">
+     <property name="text">
+      <string>First Name:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="1">
+    <widget class="QDialogButtonBox" name="AuthorButtonBox">
+     <property name="toolTip">
       <string>Exit Screen</string>
      </property>
-     <property name="orientation" >
+     <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
-     <property name="standardButtons" >
-      <set>QDialogButtonBox::Ok</set>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Save</set>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1">
+    <widget class="QLineEdit" name="LastNameEdit"/>
+   </item>
+   <item row="1" column="0">
+    <widget class="QLabel" name="LastNameLabel">
+     <property name="text">
+      <string>Last Name:</string>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
  <resources>
-  <include location="../images/openlp-2.qrc" />
+  <include location="../images/openlp-2.qrc"/>
  </resources>
  <connections>
   <connection>
-   <sender>buttonBox</sender>
+   <sender>AuthorButtonBox</sender>
    <signal>accepted()</signal>
    <receiver>AuthorsDialog</receiver>
    <slot>accept()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>248</x>
      <y>254</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>157</x>
      <y>274</y>
     </hint>
    </hints>
   </connection>
   <connection>
-   <sender>buttonBox</sender>
+   <sender>AuthorButtonBox</sender>
    <signal>rejected()</signal>
    <receiver>AuthorsDialog</receiver>
    <slot>reject()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>316</x>
      <y>260</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>286</x>
      <y>274</y>
     </hint>

=== modified file 'resources/forms/songbookdialog.ui'
--- resources/forms/songbookdialog.ui	2009-03-09 18:47:37 +0000
+++ resources/forms/songbookdialog.ui	2009-07-24 20:40:34 +0000
@@ -1,195 +1,62 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>SongBookDialog</class>
- <widget class="QDialog" name="SongBookDialog" >
-  <property name="geometry" >
+ <widget class="QDialog" name="SongBookDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>387</width>
-    <height>531</height>
+    <width>367</width>
+    <height>120</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Book Song Maintenance</string>
   </property>
-  <layout class="QVBoxLayout" name="DialogLayout" >
-   <property name="spacing" >
-    <number>8</number>
-   </property>
-   <property name="margin" >
-    <number>8</number>
-   </property>
-   <item>
-    <widget class="QTableWidget" name="BookSongListView" />
-   </item>
-   <item>
-    <widget class="QGroupBox" name="SongBookGroup" >
-     <property name="minimumSize" >
-      <size>
-       <width>0</width>
-       <height>200</height>
-      </size>
-     </property>
-     <property name="title" >
-      <string>Song Book</string>
-     </property>
-     <layout class="QVBoxLayout" name="SongBookLayout" >
-      <property name="spacing" >
-       <number>8</number>
-      </property>
-      <property name="margin" >
-       <number>8</number>
-      </property>
-      <item>
-       <widget class="QWidget" native="1" name="DetailsWidget" >
-        <property name="minimumSize" >
-         <size>
-          <width>0</width>
-          <height>0</height>
-         </size>
-        </property>
-        <layout class="QFormLayout" name="DetailsLayout" >
-         <property name="horizontalSpacing" >
-          <number>8</number>
-         </property>
-         <property name="verticalSpacing" >
-          <number>8</number>
-         </property>
-         <property name="margin" >
-          <number>0</number>
-         </property>
-         <item row="0" column="0" >
-          <widget class="QLabel" name="NameLabel" >
-           <property name="text" >
-            <string>Name:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1" >
-          <widget class="QLineEdit" name="NameEdit" />
-         </item>
-         <item row="1" column="0" >
-          <widget class="QLabel" name="PublisherLabel" >
-           <property name="text" >
-            <string>Publisher:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1" >
-          <widget class="QLineEdit" name="PublisherEdit" />
-         </item>
-        </layout>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLabel" name="MessageLabel" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="text" >
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QWidget" native="1" name="ButtonWidget" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="minimumSize" >
-         <size>
-          <width>0</width>
-          <height>0</height>
-         </size>
-        </property>
-        <layout class="QHBoxLayout" name="ButtonLayout" >
-         <property name="spacing" >
-          <number>8</number>
-         </property>
-         <property name="margin" >
-          <number>0</number>
-         </property>
-         <item>
-          <spacer name="horizontalSpacer" >
-           <property name="orientation" >
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0" >
-            <size>
-             <width>61</width>
-             <height>24</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item>
-          <widget class="QPushButton" name="ClearButton" >
-           <property name="toolTip" >
-            <string>Clear Selection</string>
-           </property>
-           <property name="text" >
-            <string>New</string>
-           </property>
-           <property name="icon" >
-            <iconset resource="../images/openlp-2.qrc" >
-             <normaloff>:/services/service_new.png</normaloff>:/services/service_new.png</iconset>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QPushButton" name="AddUpdateButton" >
-           <property name="toolTip" >
-            <string>Add Update Author</string>
-           </property>
-           <property name="text" >
-            <string>Save</string>
-           </property>
-           <property name="icon" >
-            <iconset resource="../images/openlp-2.qrc" >
-             <normaloff>:/services/service_save.png</normaloff>:/services/service_save.png</iconset>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QPushButton" name="DeleteButton" >
-           <property name="toolTip" >
-            <string>Delete Author</string>
-           </property>
-           <property name="text" >
-            <string>Delete</string>
-           </property>
-           <property name="icon" >
-            <iconset resource="../images/openlp-2.qrc" >
-             <normaloff>:/services/service_delete.png</normaloff>:/services/service_delete.png</iconset>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="ButtonBox" >
-     <property name="orientation" >
+  <layout class="QFormLayout" name="SongBookLayout">
+   <property name="horizontalSpacing">
+    <number>8</number>
+   </property>
+   <property name="verticalSpacing">
+    <number>8</number>
+   </property>
+   <property name="margin">
+    <number>8</number>
+   </property>
+   <item row="0" column="0">
+    <widget class="QLabel" name="NameLabel">
+     <property name="text">
+      <string>Name:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <widget class="QLineEdit" name="NameEdit"/>
+   </item>
+   <item row="1" column="0">
+    <widget class="QLabel" name="PublisherLabel">
+     <property name="text">
+      <string>Publisher:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1">
+    <widget class="QLineEdit" name="PublisherEdit"/>
+   </item>
+   <item row="2" column="1">
+    <widget class="QDialogButtonBox" name="ButtonBox">
+     <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
-     <property name="standardButtons" >
-      <set>QDialogButtonBox::Ok</set>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Save</set>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
  <resources>
-  <include location="../images/openlp-2.qrc" />
+  <include location="../images/openlp-2.qrc"/>
  </resources>
  <connections>
   <connection>
@@ -198,11 +65,11 @@
    <receiver>SongBookDialog</receiver>
    <slot>accept()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>248</x>
      <y>254</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>157</x>
      <y>274</y>
     </hint>
@@ -214,11 +81,11 @@
    <receiver>SongBookDialog</receiver>
    <slot>reject()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>316</x>
      <y>260</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>286</x>
      <y>274</y>
     </hint>

=== added file 'resources/forms/songmaintenance.ui'
--- resources/forms/songmaintenance.ui	1970-01-01 00:00:00 +0000
+++ resources/forms/songmaintenance.ui	2009-07-24 22:13:40 +0000
@@ -0,0 +1,442 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SongMaintenanceDialog</class>
+ <widget class="QDialog" name="SongMaintenanceDialog">
+  <property name="windowModality">
+   <enum>Qt::ApplicationModal</enum>
+  </property>
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>486</width>
+    <height>361</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Song Maintenance</string>
+  </property>
+  <layout class="QVBoxLayout" name="DialogLayout">
+   <property name="spacing">
+    <number>8</number>
+   </property>
+   <property name="margin">
+    <number>8</number>
+   </property>
+   <item>
+    <widget class="QWidget" name="ContentWidget" native="true">
+     <layout class="QHBoxLayout" name="ContentLayout">
+      <property name="spacing">
+       <number>8</number>
+      </property>
+      <property name="margin">
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="QTableWidget" name="TypeTableWidget">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="minimumSize">
+         <size>
+          <width>130</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>130</width>
+          <height>16777215</height>
+         </size>
+        </property>
+        <property name="showDropIndicator" stdset="0">
+         <bool>false</bool>
+        </property>
+        <property name="dragDropOverwriteMode">
+         <bool>false</bool>
+        </property>
+        <property name="selectionMode">
+         <enum>QAbstractItemView::SingleSelection</enum>
+        </property>
+        <property name="iconSize">
+         <size>
+          <width>32</width>
+          <height>32</height>
+         </size>
+        </property>
+        <property name="showGrid">
+         <bool>false</bool>
+        </property>
+        <property name="cornerButtonEnabled">
+         <bool>false</bool>
+        </property>
+        <attribute name="horizontalHeaderVisible">
+         <bool>false</bool>
+        </attribute>
+        <attribute name="horizontalHeaderStretchLastSection">
+         <bool>true</bool>
+        </attribute>
+        <attribute name="verticalHeaderVisible">
+         <bool>false</bool>
+        </attribute>
+        <attribute name="verticalHeaderStretchLastSection">
+         <bool>false</bool>
+        </attribute>
+        <row>
+         <property name="text">
+          <string>New Row</string>
+         </property>
+        </row>
+        <row>
+         <property name="text">
+          <string>New Row</string>
+         </property>
+        </row>
+        <row>
+         <property name="text">
+          <string>New Row</string>
+         </property>
+        </row>
+        <column>
+         <property name="text">
+          <string>Types</string>
+         </property>
+        </column>
+        <item row="0" column="0">
+         <property name="text">
+          <string>
+Authors</string>
+         </property>
+         <property name="textAlignment">
+          <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+         </property>
+         <property name="icon">
+          <iconset resource="../images/openlp-2.qrc">
+           <normaloff>:/songs/author_maintenance.png</normaloff>:/songs/author_maintenance.png</iconset>
+         </property>
+        </item>
+        <item row="1" column="0">
+         <property name="text">
+          <string>
+Topics</string>
+         </property>
+         <property name="textAlignment">
+          <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+         </property>
+         <property name="icon">
+          <iconset resource="../images/openlp-2.qrc">
+           <normaloff>:/songs/topic_maintenance.png</normaloff>:/songs/topic_maintenance.png</iconset>
+         </property>
+        </item>
+        <item row="2" column="0">
+         <property name="text">
+          <string>
+Books/Hymnals</string>
+         </property>
+         <property name="textAlignment">
+          <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+         </property>
+         <property name="icon">
+          <iconset resource="../images/openlp-2.qrc">
+           <normaloff>:/songs/book_maintenance.png</normaloff>:/songs/book_maintenance.png</iconset>
+         </property>
+        </item>
+       </widget>
+      </item>
+      <item>
+       <widget class="QStackedWidget" name="TypeStackedWidget">
+        <property name="currentIndex">
+         <number>2</number>
+        </property>
+        <widget class="QWidget" name="AuthorsPage">
+         <layout class="QVBoxLayout" name="AuthorsLayout">
+          <property name="spacing">
+           <number>8</number>
+          </property>
+          <property name="margin">
+           <number>0</number>
+          </property>
+          <item>
+           <widget class="QListWidget" name="AuthorsListWidget"/>
+          </item>
+          <item>
+           <widget class="QWidget" name="AuthorButtonWidget" native="true">
+            <layout class="QHBoxLayout" name="AuthorButtonsLayout">
+             <property name="spacing">
+              <number>8</number>
+             </property>
+             <property name="margin">
+              <number>0</number>
+             </property>
+             <item>
+              <spacer name="AuthorButtonSpacer">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>40</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <widget class="QPushButton" name="AuthorAddButton">
+               <property name="text">
+                <string>Add</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../images/openlp-2.qrc">
+                 <normaloff>:/songs/author_add.png</normaloff>:/songs/author_add.png</iconset>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QPushButton" name="AuthorEditButton">
+               <property name="text">
+                <string>Edit</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../images/openlp-2.qrc">
+                 <normaloff>:/songs/author_edit.png</normaloff>:/songs/author_edit.png</iconset>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QPushButton" name="AuthorDeleteButton">
+               <property name="text">
+                <string>Delete</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../images/openlp-2.qrc">
+                 <normaloff>:/songs/author_delete.png</normaloff>:/songs/author_delete.png</iconset>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </widget>
+          </item>
+          <item>
+           <widget class="Line" name="AuthorsLine">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+        <widget class="QWidget" name="TopicsPage">
+         <layout class="QVBoxLayout" name="TopicLayout">
+          <property name="spacing">
+           <number>8</number>
+          </property>
+          <property name="margin">
+           <number>0</number>
+          </property>
+          <item>
+           <widget class="QListWidget" name="TopicsListWidget"/>
+          </item>
+          <item>
+           <widget class="QWidget" name="TopicButtonWidget" native="true">
+            <layout class="QHBoxLayout" name="TopicButtonLayout">
+             <property name="spacing">
+              <number>8</number>
+             </property>
+             <property name="margin">
+              <number>0</number>
+             </property>
+             <item>
+              <spacer name="TopicButtonSpacer">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>54</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <widget class="QPushButton" name="TopicAddButton">
+               <property name="text">
+                <string>Add</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../images/openlp-2.qrc">
+                 <normaloff>:/songs/topic_add.png</normaloff>:/songs/topic_add.png</iconset>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QPushButton" name="TopicEditButton">
+               <property name="text">
+                <string>Edit</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../images/openlp-2.qrc">
+                 <normaloff>:/songs/topic_edit.png</normaloff>:/songs/topic_edit.png</iconset>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QPushButton" name="TopicDeleteButton">
+               <property name="text">
+                <string>Delete</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../images/openlp-2.qrc">
+                 <normaloff>:/songs/topic_delete.png</normaloff>:/songs/topic_delete.png</iconset>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </widget>
+          </item>
+          <item>
+           <widget class="Line" name="TopicsLine">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+        <widget class="QWidget" name="BooksPage">
+         <layout class="QVBoxLayout" name="BookLayout">
+          <property name="spacing">
+           <number>8</number>
+          </property>
+          <property name="margin">
+           <number>0</number>
+          </property>
+          <item>
+           <widget class="QListWidget" name="BooksListWidget"/>
+          </item>
+          <item>
+           <widget class="QWidget" name="BookButtonWidget" native="true">
+            <layout class="QHBoxLayout" name="BookButtonLayout">
+             <property name="spacing">
+              <number>8</number>
+             </property>
+             <property name="margin">
+              <number>0</number>
+             </property>
+             <item>
+              <spacer name="BookButtonSpacer">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>54</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <widget class="QPushButton" name="BookAddButton">
+               <property name="text">
+                <string>Add</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../images/openlp-2.qrc">
+                 <normaloff>:/songs/book_add.png</normaloff>:/songs/book_add.png</iconset>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QPushButton" name="BookEditButton">
+               <property name="text">
+                <string>Edit</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../images/openlp-2.qrc">
+                 <normaloff>:/songs/book_edit.png</normaloff>:/songs/book_edit.png</iconset>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QPushButton" name="BookDeleteButton">
+               <property name="text">
+                <string>Delete</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../images/openlp-2.qrc">
+                 <normaloff>:/songs/book_delete.png</normaloff>:/songs/book_delete.png</iconset>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </widget>
+          </item>
+          <item>
+           <widget class="Line" name="BooksLine">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="MaintenanceButtonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Close</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../images/openlp-2.qrc"/>
+ </resources>
+ <connections>
+  <connection>
+   <sender>MaintenanceButtonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>SongMaintenanceDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>242</x>
+     <y>340</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>242</x>
+     <y>180</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>TypeTableWidget</sender>
+   <signal>cellClicked(int,int)</signal>
+   <receiver>TypeStackedWidget</receiver>
+   <slot>setCurrentIndex(int)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>72</x>
+     <y>163</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>311</x>
+     <y>163</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>

=== modified file 'resources/forms/topicsdialog.ui'
--- resources/forms/topicsdialog.ui	2009-03-10 16:46:25 +0000
+++ resources/forms/topicsdialog.ui	2009-07-24 20:40:34 +0000
@@ -1,158 +1,52 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>TopicsDialog</class>
- <widget class="QDialog" name="TopicsDialog" >
-  <property name="geometry" >
+ <widget class="QDialog" name="TopicsDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>471</width>
-    <height>470</height>
+    <width>365</width>
+    <height>77</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Topic Maintenance</string>
   </property>
-  <layout class="QGridLayout" name="TopicsLayout" >
-   <property name="margin" >
-    <number>8</number>
-   </property>
-   <property name="spacing" >
-    <number>8</number>
-   </property>
-   <item row="1" column="0" >
-    <widget class="QGroupBox" name="TopicGroupBox" >
-     <property name="title" >
-      <string>Topic Details</string>
-     </property>
-     <layout class="QGridLayout" name="DetailsLayout" >
-      <property name="margin" >
-       <number>8</number>
-      </property>
-      <property name="spacing" >
-       <number>8</number>
-      </property>
-      <item row="0" column="0" >
-       <widget class="QLabel" name="TopicNameLabel" >
-        <property name="text" >
-         <string>Topic Name:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1" colspan="6" >
-       <widget class="QLineEdit" name="TopicNameEdit" />
-      </item>
-      <item row="1" column="0" colspan="3" >
-       <spacer name="ButtonsSpacer" >
-        <property name="orientation" >
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0" >
-         <size>
-          <width>198</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="1" column="5" >
-       <widget class="QPushButton" name="DeleteButton" >
-        <property name="toolTip" >
-         <string>Delete Author</string>
-        </property>
-        <property name="text" >
-         <string>Delete</string>
-        </property>
-        <property name="icon" >
-         <iconset resource="../images/openlp-2.qrc" >
-          <normaloff>:/services/service_delete.png</normaloff>:/services/service_delete.png</iconset>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="4" >
-       <widget class="QPushButton" name="AddUpdateButton" >
-        <property name="toolTip" >
-         <string>Add Update Author</string>
-        </property>
-        <property name="text" >
-         <string>Save</string>
-        </property>
-        <property name="icon" >
-         <iconset resource="../images/openlp-2.qrc" >
-          <normaloff>:/services/service_save.png</normaloff>:/services/service_save.png</iconset>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="3" >
-       <widget class="QPushButton" name="ClearButton" >
-        <property name="toolTip" >
-         <string>Clear Selection</string>
-        </property>
-        <property name="text" >
-         <string>New</string>
-        </property>
-        <property name="icon" >
-         <iconset resource="../images/openlp-2.qrc" >
-          <normaloff>:/services/service_new.png</normaloff>:/services/service_new.png</iconset>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item row="0" column="0" >
-    <widget class="QTableWidget" name="TopicsListView" >
-     <property name="alternatingRowColors" >
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="0" >
-    <widget class="QDialogButtonBox" name="ButtonBox" >
-     <property name="orientation" >
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons" >
-      <set>QDialogButtonBox::Ok</set>
+  <layout class="QFormLayout" name="TopicLayout">
+   <property name="fieldGrowthPolicy">
+    <enum>QFormLayout::ExpandingFieldsGrow</enum>
+   </property>
+   <property name="horizontalSpacing">
+    <number>8</number>
+   </property>
+   <property name="verticalSpacing">
+    <number>8</number>
+   </property>
+   <property name="margin">
+    <number>8</number>
+   </property>
+   <item row="0" column="0">
+    <widget class="QLabel" name="TopicNameLabel">
+     <property name="text">
+      <string>Topic Name:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <widget class="QLineEdit" name="TopicNameEdit"/>
+   </item>
+   <item row="1" column="1">
+    <widget class="QDialogButtonBox" name="TopicButtonBox">
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Save</set>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
  <resources>
-  <include location="../images/openlp-2.qrc" />
+  <include location="../images/openlp-2.qrc"/>
  </resources>
- <connections>
-  <connection>
-   <sender>ButtonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>TopicsDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel" >
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel" >
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>ButtonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>TopicsDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel" >
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel" >
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
+ <connections/>
 </ui>

=== added file 'resources/images/author_add.png'
Binary files resources/images/author_add.png	1970-01-01 00:00:00 +0000 and resources/images/author_add.png	2009-07-23 20:20:49 +0000 differ
=== added file 'resources/images/author_delete.png'
Binary files resources/images/author_delete.png	1970-01-01 00:00:00 +0000 and resources/images/author_delete.png	2009-07-23 20:20:49 +0000 differ
=== added file 'resources/images/author_edit.png'
Binary files resources/images/author_edit.png	1970-01-01 00:00:00 +0000 and resources/images/author_edit.png	2009-07-23 20:20:49 +0000 differ
=== added file 'resources/images/author_maintenance.png'
Binary files resources/images/author_maintenance.png	1970-01-01 00:00:00 +0000 and resources/images/author_maintenance.png	2009-07-22 08:20:42 +0000 differ
=== added file 'resources/images/book_add.png'
Binary files resources/images/book_add.png	1970-01-01 00:00:00 +0000 and resources/images/book_add.png	2009-07-23 20:20:49 +0000 differ
=== added file 'resources/images/book_delete.png'
Binary files resources/images/book_delete.png	1970-01-01 00:00:00 +0000 and resources/images/book_delete.png	2009-07-23 20:20:49 +0000 differ
=== added file 'resources/images/book_edit.png'
Binary files resources/images/book_edit.png	1970-01-01 00:00:00 +0000 and resources/images/book_edit.png	2009-07-23 20:20:49 +0000 differ
=== added file 'resources/images/book_maintenance.png'
Binary files resources/images/book_maintenance.png	1970-01-01 00:00:00 +0000 and resources/images/book_maintenance.png	2009-07-23 20:20:49 +0000 differ
=== modified file 'resources/images/openlp-2.qrc'
--- resources/images/openlp-2.qrc	2009-07-18 05:43:50 +0000
+++ resources/images/openlp-2.qrc	2009-07-24 22:13:40 +0000
@@ -1,5 +1,18 @@
 <RCC>
   <qresource prefix="songs" >
+    <file>topic_edit.png</file>
+    <file>author_add.png</file>
+    <file>author_delete.png</file>
+    <file>book_add.png</file>
+    <file>song_maintenance.png</file>
+    <file>topic_add.png</file>
+    <file>book_delete.png</file>
+    <file>book_edit.png</file>
+    <file>author_edit.png</file>
+    <file>topic_delete.png</file>
+    <file>book_maintenance.png</file>
+    <file>author_maintenance.png</file>
+    <file>topic_maintenance.png</file>
     <file>song_delete.png</file>
     <file>song_edit.png</file>
     <file>song_export.png</file>

=== added file 'resources/images/song_maintenance.png'
Binary files resources/images/song_maintenance.png	1970-01-01 00:00:00 +0000 and resources/images/song_maintenance.png	2009-07-24 22:13:40 +0000 differ
=== added file 'resources/images/topic_add.png'
Binary files resources/images/topic_add.png	1970-01-01 00:00:00 +0000 and resources/images/topic_add.png	2009-07-23 20:20:49 +0000 differ
=== added file 'resources/images/topic_delete.png'
Binary files resources/images/topic_delete.png	1970-01-01 00:00:00 +0000 and resources/images/topic_delete.png	2009-07-23 20:20:49 +0000 differ
=== added file 'resources/images/topic_edit.png'
Binary files resources/images/topic_edit.png	1970-01-01 00:00:00 +0000 and resources/images/topic_edit.png	2009-07-23 20:20:49 +0000 differ
=== added file 'resources/images/topic_maintenance.png'
Binary files resources/images/topic_maintenance.png	1970-01-01 00:00:00 +0000 and resources/images/topic_maintenance.png	2009-07-22 08:20:42 +0000 differ

Follow ups