← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~trb143/openlp/remotea into lp:openlp

 

Tim Bentley has proposed merging lp:~trb143/openlp/remotea into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~trb143/openlp/remotea/+merge/216511

Add icons to see the state of the remote (on / SSL / authentication)
Stop restarting the server as this crashes it and should not be common.

few code fixes.

more pep8

Add this to your merge proposal:
--------------------------------
lp:~trb143/openlp/remotea (revision 2368)
[SUCCESS] http://ci.openlp.org/job/Branch-01-Pull/361/
[SUCCESS] http://ci.openlp.org/job/Branch-02-Functional-Tests/318/
[SUCCESS] http://ci.openlp.org/job/Branch-03-Interface-Tests/265/
[SUCCESS] http://ci.openlp.org/job/Branch-04-Windows_Tests/227/
[SUCCESS] http://ci.openlp.org/job/Branch-05a-Code_Analysis/154/
[SUCCESS] http://ci.openlp.org/job/Branch-05b-Test_Coverage/29/


-- 
https://code.launchpad.net/~trb143/openlp/remotea/+merge/216511
Your team OpenLP Core is requested to review the proposed merge of lp:~trb143/openlp/remotea into lp:openlp.
=== modified file 'openlp/core/resources.py'
--- openlp/core/resources.py	2013-12-31 22:27:27 +0000
+++ openlp/core/resources.py	2014-04-19 05:48:00 +0000
@@ -70979,6 +70979,158 @@
 \xdb\xf2\x1f\x19\xe0\xc8\x3c\x37\xc3\x8f\xcb\x8f\xcb\xff\xa5\xe5\
 \xff\x03\xf0\xa0\xef\xd9\x8c\x36\xd3\x0b\x00\x00\x00\x00\x49\x45\
 \x4e\x44\xae\x42\x60\x82\
+\x00\x00\x02\x41\
+\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\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\x0b\x13\x00\x00\
+\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\
+\xde\x04\x05\x10\x0b\x2c\xeb\xb4\x97\x55\x00\x00\x01\xce\x49\x44\
+\x41\x54\x38\xcb\x85\x92\xb1\x6e\x1a\x61\x10\x84\xbf\xdd\x3b\xc0\
+\x67\x0b\x14\x5b\x27\x50\x94\x22\x8a\xa2\x28\xf2\x03\xa0\xbc\x06\
+\xad\x3b\xdc\xd3\xb8\xf0\x23\x20\x21\xd9\x25\x0d\x55\xf2\x00\x2e\
+\xe8\x90\xb0\x62\x8a\x13\x65\x24\xca\x84\x26\x74\x8e\x03\x92\x4d\
+\x84\x39\x82\xc3\xbf\x29\x20\x48\x9c\xed\xb0\xdd\x3f\x9a\x9d\x7f\
+\x76\x77\x20\x51\x9d\x4e\x07\x80\x8b\x8b\x8b\xc3\x28\x8a\x4e\xbb\
+\xdd\xee\x69\xad\x56\x3b\x04\x88\xa2\x28\x49\x47\x78\xa2\x3a\x9d\
+\xce\xc7\xe9\x74\x5a\x9e\x4c\x26\x38\xe7\xc8\x66\xb3\x14\x0a\x85\
+\x4f\xc5\x62\xf1\x38\xc9\xd5\x24\xd0\x6e\xb7\x4f\x86\xc3\x61\x39\
+\x8e\xe3\xb3\xc1\x60\xe0\x57\xab\x55\x7f\x34\x1a\x9d\xf5\x7a\xbd\
+\x72\xbf\xdf\x3f\x61\x5b\xb5\x5a\xad\x9b\x46\xa3\x71\x95\xc4\xcf\
+\xcf\xcf\xaf\xa2\x28\xba\xd9\xea\x60\x3e\x9f\xe7\x67\xb3\xd9\x65\
+\xb3\xd9\x5c\x63\xf5\x7a\x1d\x55\xbd\x1c\x8f\xc7\xf9\xad\x02\x22\
+\x42\x18\x86\x56\x2a\x95\xd6\x58\xa5\x52\x21\x97\xcb\x99\x73\x8e\
+\x67\x05\xbe\x7e\x3e\x12\x00\xf1\x76\x08\x5f\xbe\x89\x93\xc4\xfd\
+\xfc\xeb\x78\x61\x3e\x00\x51\xf3\x58\x9e\xbc\xc2\xf5\x97\x23\xe3\
+\xee\x9b\xfd\xb8\x76\xf2\x73\x04\xe3\xbb\x29\xa2\x8e\x5c\x36\x20\
+\x5f\x50\x5e\xbd\x3b\xb0\x5b\x3e\xc8\xfb\x62\x6d\xdd\xe7\x6f\xd8\
+\xf1\x1e\xd8\xdd\xfb\x2e\xe1\x8b\x09\xf2\x00\x07\x01\x64\x32\x4a\
+\x90\x81\x5c\x08\xfb\x85\xb7\xf2\xeb\xd6\xdb\x70\xe6\x3f\x4e\x85\
+\x00\x06\x26\x38\x03\xcc\x61\x0e\xc0\x10\xec\x51\x74\x36\x97\x68\
+\x89\xc9\x56\x82\x22\x82\xe8\xf2\x9d\x4c\x9e\xbf\x79\x01\x50\x75\
+\x78\xb2\x40\x55\xf0\x00\x55\x41\x56\x8d\x82\x81\xd8\xf3\x02\x06\
+\x98\x29\x0b\xa7\x38\xa7\x2c\x0c\x9c\x03\x67\x06\x66\xcb\x1f\x12\
+\x1e\xfc\xe4\x0a\x44\x1c\x9e\x3a\x54\x1c\x9e\x2c\x1d\x78\x0a\xa2\
+\x2b\x07\xff\x1b\x41\x55\xf0\x3d\xf0\x3d\x23\xe5\x83\x2d\x84\xb4\
+\x3a\xd2\x1e\xa4\x3c\x43\xfc\x25\x27\xf9\xa9\x02\x3b\xbb\x81\xbf\
+\x37\x8d\xff\xc4\xc0\x1e\x10\x00\x19\x20\xfd\x2f\xe1\xc0\x6f\x20\
+\x06\xee\x83\x20\x15\xc4\xf1\xc3\x3d\x30\xfb\x0b\x7f\xbe\xa9\xbc\
+\x51\xaf\x52\xae\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\
+\x00\x00\x02\x60\
+\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\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\x0b\x13\x00\x00\
+\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\
+\xde\x04\x05\x10\x0c\x13\x12\x93\x2c\xaf\x00\x00\x01\xed\x49\x44\
+\x41\x54\x38\xcb\xb5\x93\xcf\x6b\xd2\x01\x18\xc6\x3f\x9b\xd5\x9c\
+\x4e\xd6\x21\x91\xcd\x53\x87\x45\x08\x5d\x1a\x45\x4a\x50\x6c\xff\
+\x82\x8c\xe1\x2f\x3c\x74\x0d\x47\x1b\x41\x97\x61\x56\xc8\xee\xb9\
+\x56\xab\x0e\x06\x4d\xd8\xb7\xd5\xc5\x36\x96\x8e\x1d\xc4\x6a\x99\
+\xbf\x96\x96\x2c\xc1\x28\x92\x20\xdd\x64\x5e\x0c\xe3\xed\x90\x46\
+\x54\xab\x75\xd8\x03\x2f\x3c\x87\xf7\xf3\xf0\xc2\xfb\xbe\xb0\xc7\
+\xd2\xb4\xea\xff\xa5\x28\x8a\x5f\x5a\x9a\x57\xe6\xfd\xbb\x06\xdd\
+\x6e\xf7\xf0\x7a\x26\x9b\xcb\xbc\xcf\x88\x71\xca\x28\xc6\x29\xa3\
+\xa4\xde\x25\xe5\xc5\xf3\xb5\x9c\xc3\xe9\x18\xde\x11\xf4\x8c\x9d\
+\x1f\x5d\x5d\x5d\xc9\x67\x0b\x69\x71\xdc\xb5\x0b\xd7\x10\x1e\x21\
+\x3c\x44\xb8\x8a\x8c\xdc\x1c\x91\x68\x2c\x22\xa1\xb9\xfb\xaf\x5d\
+\x2e\xc7\x68\x9b\x53\xb5\x8d\xd9\x72\xea\xd2\x46\x73\x63\xc8\xa5\
+\xb8\xc9\xaa\xd7\xe1\x30\xa0\x07\xd4\xdf\xbb\x72\xe5\x1c\xc1\xd5\
+\x20\xd4\x38\xb4\x55\xda\xfa\xf2\x76\xa3\xb8\x00\xd0\xd9\x0e\xa8\
+\x7c\xae\x14\x55\x2a\x15\x1c\x04\xba\x81\x5e\xa0\x07\xe8\x02\xff\
+\x31\x3f\x61\x6b\x18\x74\xf0\xb5\xd9\xa4\x5e\xaf\x17\xdb\xdc\x8f\
+\x80\x48\x64\x25\x66\x32\x1c\x85\x06\xcc\x9e\x9e\xc5\xaa\xb5\x42\
+\x17\x4c\x6a\x27\x99\x30\x4d\x60\x8f\xda\x01\x30\xaa\xfb\xc9\xbd\
+\xca\xc7\xda\xdc\xbe\xb6\x29\x7f\x2c\x27\x34\x0d\xed\xb6\x4e\xab\
+\xd3\x05\x92\x01\x52\xe7\x52\x04\xb3\x41\x9c\x26\x27\xfa\xb0\x9e\
+\x5a\x47\x8d\x1e\x55\x0f\xfb\xb7\x0f\xd4\xab\xd5\xcd\xc4\x6f\x13\
+\x00\xd5\xa7\x6b\xcf\x16\x1d\x26\x1b\xe9\x6a\x9a\xc1\xd0\x20\xb6\
+\x23\x36\xfa\x96\xfb\xa8\x68\x2a\xc8\x96\x70\xb6\xf7\x0c\x85\x62\
+\xe1\x31\x50\xdd\x69\x19\x27\x9f\x44\x97\x44\xed\x55\x0b\x33\x08\
+\xb7\x10\xc2\x08\x01\xa4\xdb\xdb\x2d\x97\x7d\x5e\x01\x4e\xfc\x0c\
+\x74\xfe\x12\x90\x78\xa0\x2c\x84\xee\x0c\xdd\x86\x0f\xc0\x26\xb0\
+\x0e\x7c\x82\x8b\xfd\x13\xc4\xe3\xf1\x39\xe0\xe5\xbf\x6e\xc9\x30\
+\x3d\x7d\xbd\xb4\x94\x5e\x14\xcb\x8c\x45\xcc\x37\xcc\x72\x6f\x39\
+\x28\x63\x1e\x4f\x09\x30\xec\xf6\x20\x07\x7c\x57\x7c\xa9\x42\xfe\
+\x8d\x64\xd3\x59\x19\x1f\xbf\x90\x02\x06\xfe\xd4\xd8\xf1\x97\x90\
+\x2e\xe0\x78\xcb\x27\x81\xc6\x9e\xbc\xeb\x37\x2a\x32\xcd\xb0\xbf\
+\x04\x27\x47\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x04\x6d\
+\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\x0b\x13\x00\x00\
+\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\
+\xde\x04\x05\x10\x0a\x39\x9f\x72\x42\xff\x00\x00\x03\xfa\x49\x44\
+\x41\x54\x58\xc3\xb5\x96\x41\x4b\x63\x57\x14\xc7\xff\xe7\xde\x67\
+\x92\xd1\xb4\x9d\x44\xd0\x6a\x48\x23\xe8\x68\x56\x05\x41\xa1\xe3\
+\x42\xe8\xcc\x42\xba\x95\x52\x86\x0a\x5d\xb8\x75\x91\xf8\x09\x5c\
+\x5b\xba\x2b\xfd\x0a\x53\x98\x0f\x50\xba\x91\x52\x67\xe3\x62\x2a\
+\x88\x14\xa6\x68\xba\xb0\x55\x32\x4c\x8d\x26\xcf\xbc\xf7\xf2\xde\
+\xbd\xe7\x76\xf1\x5e\x62\x62\x65\x26\x29\x79\x37\x04\x92\xfb\xce\
+\xbb\xf7\x77\xce\xff\x9c\x73\x2f\xa1\xcf\xf1\xe3\x8b\x17\x7e\xe1\
+\x93\xbc\xc8\x66\x32\x94\x4e\x7f\x40\xc9\x44\x02\x9a\x19\xbf\xbd\
+\x7a\x85\xcf\x1e\x3f\x36\xbe\xdf\xa2\x66\xd3\x31\x97\xb5\x4b\x53\
+\xa9\xfc\xc9\x5f\x3f\x7b\x96\xe8\x67\x5d\xd1\x2f\xc0\x55\xad\x36\
+\xe2\x34\x1d\x59\xab\x5d\x09\xd7\x75\x29\x99\x4c\x52\x2a\x99\xa4\
+\xa3\xa3\x23\x4a\x26\x12\x42\x08\x49\xcc\x5a\x28\xa5\xa4\x66\x3d\
+\xd2\xef\xba\x7d\x03\x64\xc7\xb3\xc8\xe5\x72\x98\x29\x14\x50\xaf\
+\xd7\x3b\xf3\x96\x94\x00\x00\x22\x02\x91\x00\x11\x61\x90\xd1\x37\
+\x80\xd6\x1a\x5a\x2b\x28\xad\x21\xa2\x4d\x7c\xad\x61\x8f\xa6\x23\
+\x80\x5b\x5b\x13\x07\x80\x31\x06\x00\x81\x08\x10\x22\x7c\xcd\xf5\
+\x03\x9c\xe7\x67\x23\x20\x0a\xbd\x27\x02\xc5\x07\x00\x18\xd3\x0e\
+\x37\x21\x69\x49\x4c\x54\xff\x86\x69\x47\x80\x10\xc2\x98\x18\x01\
+\x80\xdb\x08\x24\xa4\x44\xb6\x7e\x19\xcd\x52\xf8\x21\xc2\x20\x21\
+\x18\x1c\x20\xf2\xbe\x3d\x67\x00\x90\x08\xc3\xde\x96\x00\xb1\x49\
+\x10\x39\xd7\x0d\x20\x84\xc0\xeb\xd7\x7f\x74\xec\x06\xcb\x80\x41\
+\x00\xd8\x20\x92\xb9\xa7\xd4\x98\x19\x0b\xf3\xf3\xe1\xb6\x04\x08\
+\xd1\xb6\x1a\x36\x40\x18\xec\x36\xc1\x7f\xf2\xc2\x00\x30\xcc\xf0\
+\x3c\x0f\x4a\x05\xc3\x07\x08\x82\x00\x0d\xbb\x81\x56\xcb\x87\xef\
+\xfb\xa1\xfe\x9d\xca\x30\x50\x5a\xc3\x75\x3d\x38\x8e\x03\x66\x8e\
+\xa1\x11\x31\xa3\xd5\x6a\x21\x08\x02\x04\xc1\xad\x87\xb7\x72\x84\
+\x40\xcc\xa6\x27\x32\x43\xcd\x01\xd6\x0c\xbe\xe3\x79\xb7\x44\xe1\
+\x33\x1e\x08\xc0\xea\xd7\xf0\xe6\xc6\xc6\xf5\xf5\x35\x2c\xcb\x82\
+\x8c\xfa\x7f\xcf\x36\x86\x60\x4c\x08\xc8\x71\x00\xa4\xd3\x69\x4c\
+\x4c\x4c\x20\x9b\xcd\x22\x93\xc9\xa0\xd3\x16\xbb\xca\x34\x94\x80\
+\x61\x38\x06\x09\xfc\x20\xc0\xf5\xf5\x15\x5a\xbe\x0f\xad\x75\x4f\
+\x04\x4c\x04\xc0\xda\x84\x52\x19\x8e\x27\x07\x20\x04\x98\x75\x77\
+\x77\x02\x88\x20\x04\x85\x67\x00\x99\xb0\x5c\xe3\x90\x20\xf4\x90\
+\xc1\xfa\x36\xc9\xd8\x18\xb8\xae\x8b\x5a\xed\x0a\x8e\xe3\xa0\xd9\
+\x6c\xc2\x71\x5c\x38\xae\x3b\xfc\x08\xb0\xe1\xf0\x4e\x10\x65\xb9\
+\x01\x60\xb4\xc6\x87\x52\x62\x7c\x7c\x1c\xfb\xfb\xbf\xe2\xe5\xfe\
+\x4b\xa4\x52\x49\x8c\x58\x56\x0c\x00\xcc\xd0\xac\x3b\xa5\xa8\x94\
+\x82\xef\x38\x18\x6b\x34\xa0\x82\x00\x04\x82\x6d\x37\x22\x3b\x8e\
+\x41\x02\x36\xf0\x7d\x1f\xff\xbc\x7d\x0b\xcf\x75\x51\x28\x14\xe0\
+\x7a\x1e\xa6\xdf\xbc\x81\xe3\xba\xf8\xfc\xc9\x13\xcc\x17\x17\x70\
+\x7e\x71\x11\x4f\x27\x04\x42\xbd\x49\x10\x32\x0f\x1f\x82\xb5\x06\
+\x88\x30\xf6\xf4\x29\x6e\x6e\x6e\x60\xdb\x36\x1a\xb6\x8d\x66\xb3\
+\x09\xd6\xb1\x00\x00\x41\xcb\x87\xd6\x8c\x96\xef\xc3\x0f\x02\xa4\
+\x46\x47\x91\x5f\x59\x81\xe7\xba\xe1\xf9\xa0\x19\x5a\xe9\xde\x4a\
+\x19\xc6\x98\x7b\xf4\x48\x46\x3f\xc7\x00\x4c\x03\x58\x58\x5a\x5a\
+\xfa\xa1\x54\x2a\x99\x72\xb9\x6c\x00\x7c\x01\xa0\x18\x3d\x4b\x03\
+\xc0\xec\xdc\x9c\x1c\x5a\x0e\x9c\x9e\x9c\xb4\x5d\x6a\x46\x5f\x5a\
+\x5b\x5b\xab\xae\xae\xae\x82\x99\x71\x7c\x7c\xfc\xfb\xde\xde\xde\
+\x5f\xdd\xdd\xb9\x72\x7a\xaa\x87\x2a\x41\xb9\x5c\xee\x49\x88\xc9\
+\xc9\xc9\x60\x66\x66\x06\xf9\x7c\x1e\x30\xba\xd5\xbd\xf9\xf6\xf6\
+\x76\xdf\xd1\x1d\xe8\xfe\xb4\xbb\xbb\xfb\x9d\x66\x53\x44\xe2\x23\
+\x61\xa9\xc6\xec\xe4\xc7\x93\xf3\x5a\x6b\x5c\x54\x2f\x7f\x11\x23\
+\x0f\x5c\xe3\xd7\x31\x35\x35\xfd\xf3\xe6\xe6\xe6\xf7\xff\x1b\x60\
+\x67\x67\xa7\x90\xcb\xe5\xbe\x05\xd0\x73\xad\x51\x4a\xa9\xe5\xe5\
+\xe5\x2f\x53\xa9\x07\x63\x3e\x4b\x84\x17\x34\xd3\x59\xc6\x22\x0d\
+\x49\x0c\xa5\xd4\xf9\xc1\xc1\xc1\x9e\x6c\x1f\x99\x00\xa4\x94\x48\
+\xa5\x52\xcf\x37\x36\x36\x7e\x7a\x6f\x0e\x2c\x2e\x2e\x4e\xad\xac\
+\xac\x7c\x75\xf7\x4c\xd7\x5a\xe3\xf0\xf0\x10\xd6\x3b\xba\x9c\x31\
+\x06\xf9\x7c\x3e\xb7\xbe\xbe\xfe\x4d\x8f\xce\x42\xa0\x5a\xad\x9e\
+\x00\x78\x3f\x40\xad\x56\xa3\xb3\xb3\xb3\x4e\xbf\x27\x22\x78\x9e\
+\x07\xdb\xb6\x51\xa9\x54\xd0\xe5\xd8\xbd\xdd\x52\x4a\x09\xcf\xf3\
+\x7a\x2e\x25\x52\x4a\xd4\xeb\x75\x6b\x90\x1c\x10\xf7\xfc\x57\xa5\
+\x52\xe9\x08\xc0\xa7\xef\x02\x28\x16\x8b\xcf\xb7\xb6\xb6\x36\xee\
+\xac\x41\x00\xee\xad\x8a\x7f\x01\x07\xc8\x41\x0a\x6a\xfd\xe4\x85\
+\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\
@@ -80880,6 +81032,98 @@
 \x64\x7b\x50\x80\x2c\x83\xa4\x3c\x0a\x90\x04\x00\x22\x75\x40\x01\
 \xd9\xb4\x9c\x69\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\
+\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\x77\x49\x44\
+\x41\x54\x38\x8d\x8d\x51\x5d\x48\x53\x61\x18\x7e\xbe\x1d\x27\xc5\
+\x38\xb2\xf2\x0f\xe7\xdc\xa6\xce\x99\x90\x08\x5e\x14\x87\x4c\xdc\
+\xa0\xa0\x2e\x02\x2f\x0a\x4f\x21\x11\xb4\xba\x0a\x8e\x81\x5d\x19\
+\x84\x79\x37\x08\xaa\x0b\x85\xf0\xa2\xc2\x20\xc8\x9b\xa8\x0c\xbb\
+\x31\xc1\x18\xd1\x4d\x08\x05\x2d\x2d\x37\x9b\xba\xb9\xb5\xce\xce\
+\xe6\x99\x9e\x73\xde\x2e\xdc\x16\x53\x09\x1f\x78\xf9\xf8\xbe\xef\
+\x79\xde\x9f\xe7\x65\x44\x84\x9d\x60\x8c\x31\x00\x0d\x00\x3c\xf9\
+\xa7\x6f\x00\x22\xb4\x17\x99\x88\x76\x05\x80\xd6\x40\x20\x30\x21\
+\xcb\x72\x42\x96\xe5\x44\x20\x10\x98\x00\xd0\xba\x27\x77\x0f\xb1\
+\x45\x14\xc5\x61\xc3\xd0\x75\xe5\xf7\x42\x26\x9b\x5a\xcc\x1a\x86\
+\xa1\x8b\xa2\x38\x0c\xc0\xf2\xdf\x04\x79\x08\xb1\x68\x68\x55\xcb\
+\x46\x48\x59\x1c\x25\xe5\xc7\x38\x69\x1b\x2b\x94\x58\x0b\xad\x03\
+\x10\x76\x76\x6d\xda\x31\x11\x2f\x49\x92\x58\x5d\xe7\xae\x55\x57\
+\x5e\x42\x57\x57\xa1\xab\x51\xe4\xd6\xa6\x70\xb8\xc6\x5d\x29\x49\
+\x92\x08\x80\x2f\xf1\xab\x50\x99\x31\x06\xab\xd5\xda\x3d\xff\xf9\
+\xe3\xd3\x1a\xfe\x8f\x43\x59\xb8\x8f\xf1\x37\x07\xc1\x71\x1c\xae\
+\x9c\xd1\x60\x69\xbc\x86\x84\xc2\x2f\xdb\x1c\x6d\x7d\x00\xe6\x8a\
+\x1d\x17\x5a\x31\x9b\xcd\xfc\xd0\xd0\xd0\x28\x11\x51\x6c\xd6\x47\
+\x2b\xd3\xad\xe4\xf5\x7a\xa9\xab\xab\x8b\xa2\x53\x4e\x8a\xcd\x7a\
+\x89\x88\x48\x92\xa4\x07\x00\xf8\x12\x0f\x00\xc0\x6e\xb7\xf7\x44\
+\x97\xbf\x2f\xe7\x12\x1f\x28\x32\x09\x8a\x4c\x82\x5c\x2e\x17\xb9\
+\x5c\xae\xe2\x5d\x8d\xcf\x50\x34\xfc\xe5\x17\x80\x13\x85\xe2\x26\
+\x00\xe8\xed\xed\xad\xf4\xfb\xfd\x7d\x75\xf5\xcd\xf5\xe9\xd0\x3d\
+\x80\x71\xdb\x86\xf0\x3c\x78\xfe\xdf\xc8\xf2\xd7\x3b\xa8\x6b\x68\
+\xb3\x0d\x0c\x0c\x5c\x28\x78\x61\x02\x60\xc9\x64\x32\xc7\xaf\xfb\
+\xfb\xcf\x6d\x26\x83\x50\x57\x5f\x03\xa4\x03\x00\x3a\x9b\x15\x74\
+\x36\x2b\xc5\x04\xb9\xf8\x0c\x72\xeb\xef\x71\xeb\xe6\xd5\xf3\x00\
+\xda\x19\x63\xe0\x04\x41\x70\x57\x54\x54\xf8\x4f\x9d\x3e\x7b\x32\
+\xf9\xe9\x32\x34\x25\x54\x14\xf8\x3a\x52\xf0\x75\xa4\x4a\xd6\xa4\
+\x67\x7f\xa2\xb6\x7d\x90\x97\x65\x39\x13\x0c\x06\xe7\x98\xc7\xe3\
+\xf1\xbd\x9b\x7e\xfb\xa8\xd6\x12\x6e\x8a\xcf\xf6\x94\x90\x6f\xdc\
+\xdd\x3e\x1f\xde\x2e\xdd\x75\x75\xf7\x0c\xe2\xd9\xfa\xa5\x06\x67\
+\xcb\x45\x53\x55\x55\xd5\x51\x87\xb3\xb1\x29\x15\x7e\x95\xc5\x3e\
+\xa1\x84\x9f\xeb\x76\x87\xdb\x29\x08\xc2\xb1\x32\x55\x55\x73\x86\
+\x61\x68\x16\xf7\xe0\x96\x5a\x7e\x48\x2d\xe7\xb6\x0e\x14\x88\x8f\
+\x9f\xed\x16\x6f\x6a\xe6\x8d\x32\xdb\x25\x95\x88\xac\x86\x61\x68\
+\x00\xd0\x32\x32\x32\xf2\x24\x95\x4a\xc5\x68\x9f\x48\xa7\xd3\xc9\
+\xb1\xb1\xb1\x17\x00\x8e\x30\x00\x0c\x80\x0d\x40\x1b\x80\x1a\x00\
+\xe5\x00\xcc\x00\xca\x00\x70\xf9\x7f\x02\xa0\xe5\x63\x0b\x40\x12\
+\xc0\x3c\x80\xa5\xbf\x0f\xbe\x92\x25\xee\x27\x61\x5e\x00\x00\x00\
+\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x02\x7f\
+\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\xfc\x49\x44\
+\x41\x54\x38\x8d\x8d\x53\x3d\x68\x53\x51\x14\xfe\xae\xef\x25\x31\
+\xf0\x5e\x93\x97\x64\x78\x31\x21\x16\x12\x41\xda\x42\x9e\x24\x4e\
+\x12\xd0\x20\xd4\xa8\xc5\x51\x34\x8b\x54\x5c\xda\xa1\x93\xd2\xad\
+\x2d\x92\x0c\x0e\x16\x1c\xd4\xd5\x21\x9b\x34\x8b\x4b\x07\xd1\x21\
+\x43\xd0\x5a\x22\x21\x42\x23\x1a\xa3\xd2\x54\x48\x08\x84\xe8\xfb\
+\x69\x5e\x8f\x43\x1b\x09\x69\x78\xf1\x83\xc3\xe1\x72\x2e\xdf\x39\
+\xdf\x77\xee\x65\x44\x84\x41\xb8\xdd\x6e\x71\xf9\xc1\xf2\x6d\xbf\
+\x7c\x4a\xa9\x7c\xaa\x4c\x7f\xab\xd7\x9a\x36\xbb\xed\x49\x2e\x97\
+\x7b\x8b\x11\xe0\x07\x0f\xd9\x6c\x76\x29\x9f\xcf\xdf\xd7\x35\x3d\
+\x50\x2c\xbe\x3b\x70\x7b\xa4\x5f\xfc\xcf\x1f\xbc\xe4\x96\xd2\x00\
+\x46\x12\x80\x88\x40\x44\xc8\x64\x32\x1b\xdb\x5b\x5b\x07\xfb\x86\
+\x41\xcf\x9e\x3e\xa7\xf5\xc7\xeb\x77\xfa\x35\xab\x38\x01\x00\xa9\
+\xd4\xd5\xe9\xc9\xd3\x93\xd7\xc4\x89\x09\x53\x55\x55\xba\x94\xbc\
+\x08\x63\xdf\xe8\x8c\xec\x38\x04\xb6\xb2\xb2\x7a\xcf\xef\x97\x1f\
+\x69\x9a\x2e\x10\xd1\x1b\xc3\xd0\xe5\x2b\xb3\xb3\x7a\x28\x14\xf2\
+\x5e\x9f\x9b\x4b\x15\x0a\x85\x1d\x4b\x86\x85\x85\xc5\xed\x52\xe9\
+\x23\xcd\xcf\xdf\x7d\xd1\x1f\x2b\x1a\x8d\x9e\xaf\x94\xcb\x2d\x55\
+\x55\x1b\x89\x44\x62\xca\x52\x82\x24\x49\xc9\xb5\xb5\xd5\xbc\xc3\
+\xe1\x58\xec\x93\x96\x4a\xa5\xf7\xb7\xd2\xe9\xcb\x7b\xbb\xbb\xbc\
+\x8d\xe7\x37\x45\x51\x7c\xcd\x18\x73\x58\x9a\x38\x2a\x5c\x2e\xd7\
+\x43\x45\x51\x28\x16\x8b\x91\x24\x49\x65\x00\xf2\xf0\x9d\xb1\x2e\
+\x0b\x82\x50\x54\x14\x85\xe2\xf1\x38\xc9\xb2\xfc\x05\x80\x32\x58\
+\x67\xc3\x0f\xe9\x98\xcb\x8c\x9d\x14\x04\xe1\x43\x38\x1c\x9e\xe2\
+\x38\x0e\xed\x76\xfb\x7b\xad\x56\xbb\x49\x44\x45\x00\x87\x6b\xb4\
+\x02\x11\x69\xdd\x6e\x37\x59\xaf\xd7\xbf\xf6\x7a\x3d\x78\xbd\xde\
+\x50\x24\x12\x79\xc9\x18\xbb\x00\x60\xfc\x04\x03\x93\x84\x3d\x1e\
+\xcf\xab\x60\x30\x78\xd6\x6e\xb7\xa3\xd3\xe9\xec\x55\xab\xd5\xd4\
+\x7f\x13\x1c\x91\x9c\xf1\xf9\x7c\x1b\x81\x40\x60\x86\xe3\x38\x68\
+\x9a\x56\x18\x2b\x61\x48\xce\xe7\x66\xb3\x79\xa3\xd1\x68\xec\x98\
+\xa6\xa9\xb7\x5a\xad\xcd\xb1\x5b\x18\x15\x00\x44\xa7\xd3\x79\xee\
+\xdf\x16\x18\x63\x0c\x00\x87\xc3\xdf\xc9\x03\xb0\x1d\x65\x6e\x20\
+\xf7\x61\x02\x30\x00\xfc\x06\xf0\xe7\x2f\xfa\x13\x63\xcc\xb4\xaf\
+\x0c\xf0\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
 \x00\x00\x03\x2d\
 \x89\
 \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -81831,98 +82075,6 @@
 \x8d\x0c\xc3\x00\x40\x04\x80\xf8\x3f\x47\x00\x04\x01\xd8\x00\x2c\
 \x00\x06\x00\xfd\x93\x6f\x00\x98\xff\x01\x68\xa5\x71\xa1\x90\xf8\
 \x3b\x1c\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\
-\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\x77\x49\x44\
-\x41\x54\x38\x8d\x8d\x51\x5d\x48\x53\x61\x18\x7e\xbe\x1d\x27\xc5\
-\x38\xb2\xf2\x0f\xe7\xdc\xa6\xce\x99\x90\x08\x5e\x14\x87\x4c\xdc\
-\xa0\xa0\x2e\x02\x2f\x0a\x4f\x21\x11\xb4\xba\x0a\x8e\x81\x5d\x19\
-\x84\x79\x37\x08\xaa\x0b\x85\xf0\xa2\xc2\x20\xc8\x9b\xa8\x0c\xbb\
-\x31\xc1\x18\xd1\x4d\x08\x05\x2d\x2d\x37\x9b\xba\xb9\xb5\xce\xce\
-\xe6\x99\x9e\x73\xde\x2e\xdc\x16\x53\x09\x1f\x78\xf9\xf8\xbe\xef\
-\x79\xde\x9f\xe7\x65\x44\x84\x9d\x60\x8c\x31\x00\x0d\x00\x3c\xf9\
-\xa7\x6f\x00\x22\xb4\x17\x99\x88\x76\x05\x80\xd6\x40\x20\x30\x21\
-\xcb\x72\x42\x96\xe5\x44\x20\x10\x98\x00\xd0\xba\x27\x77\x0f\xb1\
-\x45\x14\xc5\x61\xc3\xd0\x75\xe5\xf7\x42\x26\x9b\x5a\xcc\x1a\x86\
-\xa1\x8b\xa2\x38\x0c\xc0\xf2\xdf\x04\x79\x08\xb1\x68\x68\x55\xcb\
-\x46\x48\x59\x1c\x25\xe5\xc7\x38\x69\x1b\x2b\x94\x58\x0b\xad\x03\
-\x10\x76\x76\x6d\xda\x31\x11\x2f\x49\x92\x58\x5d\xe7\xae\x55\x57\
-\x5e\x42\x57\x57\xa1\xab\x51\xe4\xd6\xa6\x70\xb8\xc6\x5d\x29\x49\
-\x92\x08\x80\x2f\xf1\xab\x50\x99\x31\x06\xab\xd5\xda\x3d\xff\xf9\
-\xe3\xd3\x1a\xfe\x8f\x43\x59\xb8\x8f\xf1\x37\x07\xc1\x71\x1c\xae\
-\x9c\xd1\x60\x69\xbc\x86\x84\xc2\x2f\xdb\x1c\x6d\x7d\x00\xe6\x8a\
-\x1d\x17\x5a\x31\x9b\xcd\xfc\xd0\xd0\xd0\x28\x11\x51\x6c\xd6\x47\
-\x2b\xd3\xad\xe4\xf5\x7a\xa9\xab\xab\x8b\xa2\x53\x4e\x8a\xcd\x7a\
-\x89\x88\x48\x92\xa4\x07\x00\xf8\x12\x0f\x00\xc0\x6e\xb7\xf7\x44\
-\x97\xbf\x2f\xe7\x12\x1f\x28\x32\x09\x8a\x4c\x82\x5c\x2e\x17\xb9\
-\x5c\xae\xe2\x5d\x8d\xcf\x50\x34\xfc\xe5\x17\x80\x13\x85\xe2\x26\
-\x00\xe8\xed\xed\xad\xf4\xfb\xfd\x7d\x75\xf5\xcd\xf5\xe9\xd0\x3d\
-\x80\x71\xdb\x86\xf0\x3c\x78\xfe\xdf\xc8\xf2\xd7\x3b\xa8\x6b\x68\
-\xb3\x0d\x0c\x0c\x5c\x28\x78\x61\x02\x60\xc9\x64\x32\xc7\xaf\xfb\
-\xfb\xcf\x6d\x26\x83\x50\x57\x5f\x03\xa4\x03\x00\x3a\x9b\x15\x74\
-\x36\x2b\xc5\x04\xb9\xf8\x0c\x72\xeb\xef\x71\xeb\xe6\xd5\xf3\x00\
-\xda\x19\x63\xe0\x04\x41\x70\x57\x54\x54\xf8\x4f\x9d\x3e\x7b\x32\
-\xf9\xe9\x32\x34\x25\x54\x14\xf8\x3a\x52\xf0\x75\xa4\x4a\xd6\xa4\
-\x67\x7f\xa2\xb6\x7d\x90\x97\x65\x39\x13\x0c\x06\xe7\x98\xc7\xe3\
-\xf1\xbd\x9b\x7e\xfb\xa8\xd6\x12\x6e\x8a\xcf\xf6\x94\x90\x6f\xdc\
-\xdd\x3e\x1f\xde\x2e\xdd\x75\x75\xf7\x0c\xe2\xd9\xfa\xa5\x06\x67\
-\xcb\x45\x53\x55\x55\xd5\x51\x87\xb3\xb1\x29\x15\x7e\x95\xc5\x3e\
-\xa1\x84\x9f\xeb\x76\x87\xdb\x29\x08\xc2\xb1\x32\x55\x55\x73\x86\
-\x61\x68\x16\xf7\xe0\x96\x5a\x7e\x48\x2d\xe7\xb6\x0e\x14\x88\x8f\
-\x9f\xed\x16\x6f\x6a\xe6\x8d\x32\xdb\x25\x95\x88\xac\x86\x61\x68\
-\x00\xd0\x32\x32\x32\xf2\x24\x95\x4a\xc5\x68\x9f\x48\xa7\xd3\xc9\
-\xb1\xb1\xb1\x17\x00\x8e\x30\x00\x0c\x80\x0d\x40\x1b\x80\x1a\x00\
-\xe5\x00\xcc\x00\xca\x00\x70\xf9\x7f\x02\xa0\xe5\x63\x0b\x40\x12\
-\xc0\x3c\x80\xa5\xbf\x0f\xbe\x92\x25\xee\x27\x61\x5e\x00\x00\x00\
-\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
-\x00\x00\x02\x7f\
-\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\xfc\x49\x44\
-\x41\x54\x38\x8d\x8d\x53\x3d\x68\x53\x51\x14\xfe\xae\xef\x25\x31\
-\xf0\x5e\x93\x97\x64\x78\x31\x21\x16\x12\x41\xda\x42\x9e\x24\x4e\
-\x12\xd0\x20\xd4\xa8\xc5\x51\x34\x8b\x54\x5c\xda\xa1\x93\xd2\xad\
-\x2d\x92\x0c\x0e\x16\x1c\xd4\xd5\x21\x9b\x34\x8b\x4b\x07\xd1\x21\
-\x43\xd0\x5a\x22\x21\x42\x23\x1a\xa3\xd2\x54\x48\x08\x84\xe8\xfb\
-\x69\x5e\x8f\x43\x1b\x09\x69\x78\xf1\x83\xc3\xe1\x72\x2e\xdf\x39\
-\xdf\x77\xee\x65\x44\x84\x41\xb8\xdd\x6e\x71\xf9\xc1\xf2\x6d\xbf\
-\x7c\x4a\xa9\x7c\xaa\x4c\x7f\xab\xd7\x9a\x36\xbb\xed\x49\x2e\x97\
-\x7b\x8b\x11\xe0\x07\x0f\xd9\x6c\x76\x29\x9f\xcf\xdf\xd7\x35\x3d\
-\x50\x2c\xbe\x3b\x70\x7b\xa4\x5f\xfc\xcf\x1f\xbc\xe4\x96\xd2\x00\
-\x46\x12\x80\x88\x40\x44\xc8\x64\x32\x1b\xdb\x5b\x5b\x07\xfb\x86\
-\x41\xcf\x9e\x3e\xa7\xf5\xc7\xeb\x77\xfa\x35\xab\x38\x01\x00\xa9\
-\xd4\xd5\xe9\xc9\xd3\x93\xd7\xc4\x89\x09\x53\x55\x55\xba\x94\xbc\
-\x08\x63\xdf\xe8\x8c\xec\x38\x04\xb6\xb2\xb2\x7a\xcf\xef\x97\x1f\
-\x69\x9a\x2e\x10\xd1\x1b\xc3\xd0\xe5\x2b\xb3\xb3\x7a\x28\x14\xf2\
-\x5e\x9f\x9b\x4b\x15\x0a\x85\x1d\x4b\x86\x85\x85\xc5\xed\x52\xe9\
-\x23\xcd\xcf\xdf\x7d\xd1\x1f\x2b\x1a\x8d\x9e\xaf\x94\xcb\x2d\x55\
-\x55\x1b\x89\x44\x62\xca\x52\x82\x24\x49\xc9\xb5\xb5\xd5\xbc\xc3\
-\xe1\x58\xec\x93\x96\x4a\xa5\xf7\xb7\xd2\xe9\xcb\x7b\xbb\xbb\xbc\
-\x8d\xe7\x37\x45\x51\x7c\xcd\x18\x73\x58\x9a\x38\x2a\x5c\x2e\xd7\
-\x43\x45\x51\x28\x16\x8b\x91\x24\x49\x65\x00\xf2\xf0\x9d\xb1\x2e\
-\x0b\x82\x50\x54\x14\x85\xe2\xf1\x38\xc9\xb2\xfc\x05\x80\x32\x58\
-\x67\xc3\x0f\xe9\x98\xcb\x8c\x9d\x14\x04\xe1\x43\x38\x1c\x9e\xe2\
-\x38\x0e\xed\x76\xfb\x7b\xad\x56\xbb\x49\x44\x45\x00\x87\x6b\xb4\
-\x02\x11\x69\xdd\x6e\x37\x59\xaf\xd7\xbf\xf6\x7a\x3d\x78\xbd\xde\
-\x50\x24\x12\x79\xc9\x18\xbb\x00\x60\xfc\x04\x03\x93\x84\x3d\x1e\
-\xcf\xab\x60\x30\x78\xd6\x6e\xb7\xa3\xd3\xe9\xec\x55\xab\xd5\xd4\
-\x7f\x13\x1c\x91\x9c\xf1\xf9\x7c\x1b\x81\x40\x60\x86\xe3\x38\x68\
-\x9a\x56\x18\x2b\x61\x48\xce\xe7\x66\xb3\x79\xa3\xd1\x68\xec\x98\
-\xa6\xa9\xb7\x5a\xad\xcd\xb1\x5b\x18\x15\x00\x44\xa7\xd3\x79\xee\
-\xdf\x16\x18\x63\x0c\x00\x87\xc3\xdf\xc9\x03\xb0\x1d\x65\x6e\x20\
-\xf7\x61\x02\x30\x00\xfc\x06\xf0\xe7\x2f\xfa\x13\x63\xcc\xb4\xaf\
-\x0c\xf0\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
 \x00\x00\x02\xcc\
 \x89\
 \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -82218,14 +82370,14 @@
 \x04\xec\x63\x15\
 \x00\x73\
 \x00\x6f\x00\x6e\x00\x67\x00\x75\x00\x73\x00\x61\x00\x67\x00\x65\
+\x00\x06\
+\x07\xb0\xaa\xbd\
+\x00\x73\
+\x00\x79\x00\x73\x00\x74\x00\x65\x00\x6d\
 \x00\x05\
 \x00\x7b\x66\x33\
 \x00\x74\
 \x00\x6f\x00\x6f\x00\x6c\x00\x73\
-\x00\x06\
-\x07\xb0\xaa\xbd\
-\x00\x73\
-\x00\x79\x00\x73\x00\x74\x00\x65\x00\x6d\
 \x00\x07\
 \x0d\xc4\xc8\xbc\
 \x00\x67\
@@ -82258,6 +82410,10 @@
 \x00\x7a\x64\xe3\
 \x00\x73\
 \x00\x6f\x00\x6e\x00\x67\x00\x73\
+\x00\x06\
+\x07\x8c\x46\xa5\
+\x00\x72\
+\x00\x65\x00\x6d\x00\x6f\x00\x74\x00\x65\
 \x00\x04\
 \x00\x06\xfa\x5e\
 \x00\x69\
@@ -82442,6 +82598,19 @@
 \x00\x6f\
 \x00\x70\x00\x65\x00\x6e\x00\x6c\x00\x70\x00\x2d\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x2d\x00\x31\x00\x32\x00\x38\x00\x78\x00\x31\
 \x00\x32\x00\x38\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0f\
+\x0d\x53\xa6\xa7\
+\x00\x6e\
+\x00\x65\x00\x74\x00\x77\x00\x6f\x00\x72\x00\x6b\x00\x5f\x00\x73\x00\x73\x00\x6c\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x10\
+\x00\x64\x4e\xa7\
+\x00\x6e\
+\x00\x65\x00\x74\x00\x77\x00\x6f\x00\x72\x00\x6b\x00\x5f\x00\x61\x00\x75\x00\x74\x00\x68\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x12\
+\x03\xda\x97\xe7\
+\x00\x6e\
+\x00\x65\x00\x74\x00\x77\x00\x6f\x00\x72\x00\x6b\x00\x5f\x00\x73\x00\x65\x00\x72\x00\x76\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\
+\x00\x67\
 \x00\x14\
 \x0d\xa9\x66\x87\
 \x00\x62\
@@ -82770,6 +82939,14 @@
 \x00\x67\
 \x00\x65\x00\x6e\x00\x65\x00\x72\x00\x61\x00\x6c\x00\x5f\x00\x65\x00\x6d\x00\x61\x00\x69\x00\x6c\x00\x2e\x00\x70\x00\x6e\x00\x67\
 \
+\x00\x0f\
+\x00\xe4\x12\x87\
+\x00\x74\
+\x00\x6f\x00\x6f\x00\x6c\x00\x73\x00\x5f\x00\x61\x00\x6c\x00\x65\x00\x72\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0d\
+\x01\x6b\x24\x07\
+\x00\x74\
+\x00\x6f\x00\x6f\x00\x6c\x00\x73\x00\x5f\x00\x61\x00\x64\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\
 \x00\x10\
 \x03\x10\x21\x87\
 \x00\x73\
@@ -82846,14 +83023,6 @@
 \x0a\x5e\xd0\xe7\
 \x00\x73\
 \x00\x79\x00\x73\x00\x74\x00\x65\x00\x6d\x00\x5f\x00\x65\x00\x78\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x0f\
-\x00\xe4\x12\x87\
-\x00\x74\
-\x00\x6f\x00\x6f\x00\x6c\x00\x73\x00\x5f\x00\x61\x00\x6c\x00\x65\x00\x72\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x0d\
-\x01\x6b\x24\x07\
-\x00\x74\
-\x00\x6f\x00\x6f\x00\x6c\x00\x73\x00\x5f\x00\x61\x00\x64\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\
 \x00\x17\
 \x03\xba\x72\x47\
 \x00\x73\
@@ -82886,154 +83055,158 @@
 "
 
 qt_resource_struct = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x13\x00\x00\x00\x01\
-\x00\x00\x00\xe6\x00\x02\x00\x00\x00\x06\x00\x00\x00\x8e\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x8a\
-\x00\x00\x00\xb4\x00\x02\x00\x00\x00\x08\x00\x00\x00\x82\
-\x00\x00\x00\xd6\x00\x02\x00\x00\x00\x14\x00\x00\x00\x6e\
-\x00\x00\x00\x2c\x00\x02\x00\x00\x00\x02\x00\x00\x00\x6c\
-\x00\x00\x00\x14\x00\x02\x00\x00\x00\x02\x00\x00\x00\x6a\
-\x00\x00\x01\x06\x00\x02\x00\x00\x00\x05\x00\x00\x00\x65\
-\x00\x00\x00\xf4\x00\x02\x00\x00\x00\x02\x00\x00\x00\x63\
-\x00\x00\x01\x40\x00\x02\x00\x00\x00\x09\x00\x00\x00\x5a\
-\x00\x00\x00\x8c\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x50\
-\x00\x00\x00\xc4\x00\x02\x00\x00\x00\x03\x00\x00\x00\x4d\
-\x00\x00\x00\x3c\x00\x02\x00\x00\x00\x10\x00\x00\x00\x3d\
-\x00\x00\x00\x62\x00\x02\x00\x00\x00\x03\x00\x00\x00\x3a\
-\x00\x00\x00\x78\x00\x02\x00\x00\x00\x01\x00\x00\x00\x39\
-\x00\x00\x01\x54\x00\x02\x00\x00\x00\x03\x00\x00\x00\x36\
-\x00\x00\x00\x9e\x00\x02\x00\x00\x00\x08\x00\x00\x00\x2e\
-\x00\x00\x01\x2c\x00\x02\x00\x00\x00\x01\x00\x00\x00\x2d\
-\x00\x00\x00\x4e\x00\x02\x00\x00\x00\x13\x00\x00\x00\x1a\
-\x00\x00\x01\x18\x00\x02\x00\x00\x00\x06\x00\x00\x00\x14\
-\x00\x00\x04\x5e\x00\x00\x00\x00\x00\x01\x00\x0a\xa7\x31\
-\x00\x00\x03\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x23\xa9\
-\x00\x00\x03\xfe\x00\x00\x00\x00\x00\x01\x00\x05\x65\x6d\
-\x00\x00\x04\x2c\x00\x00\x00\x00\x00\x01\x00\x08\x06\x4f\
-\x00\x00\x03\xce\x00\x00\x00\x00\x00\x01\x00\x02\xc4\x8b\
-\x00\x00\x04\x8e\x00\x00\x00\x00\x00\x01\x00\x0d\x48\x13\
-\x00\x00\x11\x2c\x00\x00\x00\x00\x00\x01\x00\x13\x88\xf3\
-\x00\x00\x11\xa8\x00\x00\x00\x00\x00\x01\x00\x13\x92\xba\
-\x00\x00\x11\x06\x00\x00\x00\x00\x00\x01\x00\x13\x86\x19\
-\x00\x00\x10\x8c\x00\x00\x00\x00\x00\x01\x00\x13\x7e\x01\
-\x00\x00\x12\xe8\x00\x00\x00\x00\x00\x01\x00\x13\xab\x88\
-\x00\x00\x10\xdc\x00\x00\x00\x00\x00\x01\x00\x13\x83\x7b\
-\x00\x00\x11\x7e\x00\x00\x00\x00\x00\x01\x00\x13\x8f\xd5\
-\x00\x00\x10\x2a\x00\x00\x00\x00\x00\x01\x00\x13\x76\xe7\
-\x00\x00\x12\x24\x00\x00\x00\x00\x00\x01\x00\x13\x9c\xde\
-\x00\x00\x12\x9c\x00\x00\x00\x00\x00\x01\x00\x13\xa5\x02\
-\x00\x00\x11\xd0\x00\x00\x00\x00\x00\x01\x00\x13\x96\x2e\
-\x00\x00\x12\xc2\x00\x00\x00\x00\x00\x01\x00\x13\xa8\xb4\
-\x00\x00\x10\x62\x00\x00\x00\x00\x00\x01\x00\x13\x7b\x89\
-\x00\x00\x12\x72\x00\x00\x00\x00\x00\x01\x00\x13\xa2\x80\
-\x00\x00\x10\xb8\x00\x00\x00\x00\x00\x01\x00\x13\x81\x34\
-\x00\x00\x11\x52\x00\x00\x00\x00\x00\x01\x00\x13\x8b\x2a\
-\x00\x00\x10\x06\x00\x00\x00\x00\x00\x01\x00\x13\x73\xea\
-\x00\x00\x12\x4c\x00\x00\x00\x00\x00\x01\x00\x13\x9e\xf1\
-\x00\x00\x11\xfe\x00\x00\x00\x00\x00\x01\x00\x13\x9a\xc7\
-\x00\x00\x03\x78\x00\x00\x00\x00\x00\x01\x00\x00\x21\x92\
-\x00\x00\x0c\xc6\x00\x00\x00\x00\x00\x01\x00\x11\xf5\x62\
-\x00\x00\x0d\x46\x00\x00\x00\x00\x00\x01\x00\x11\xfc\x28\
-\x00\x00\x0c\x4a\x00\x00\x00\x00\x00\x01\x00\x11\xee\x5e\
-\x00\x00\x0c\xee\x00\x00\x00\x00\x00\x01\x00\x11\xf8\x02\
-\x00\x00\x0d\x70\x00\x00\x00\x00\x00\x01\x00\x11\xfe\xf3\
-\x00\x00\x0c\x94\x00\x00\x00\x00\x00\x01\x00\x11\xf3\x78\
-\x00\x00\x0c\x6e\x00\x00\x00\x00\x00\x01\x00\x11\xf1\x05\
-\x00\x00\x0d\x24\x00\x00\x00\x00\x00\x01\x00\x11\xf9\x84\
-\x00\x00\x01\x6e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x05\xe6\
-\x00\x00\x01\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x02\xfe\
-\x00\x00\x0f\x56\x00\x00\x00\x00\x00\x01\x00\x12\x1a\x41\
-\x00\x00\x0f\x80\x00\x00\x00\x00\x00\x01\x00\x12\x1f\xab\
-\x00\x00\x0f\xb0\x00\x00\x00\x00\x00\x01\x00\x12\x8e\x34\
-\x00\x00\x0f\xd0\x00\x00\x00\x00\x00\x01\x00\x12\x94\xe5\
-\x00\x00\x13\x6a\x00\x00\x00\x00\x00\x01\x00\x13\xb3\xce\
-\x00\x00\x13\x10\x00\x00\x00\x00\x00\x01\x00\x13\xae\xcd\
-\x00\x00\x15\x86\x00\x00\x00\x00\x00\x01\x00\x13\xdd\xd3\
-\x00\x00\x14\x10\x00\x00\x00\x00\x00\x01\x00\x13\xbb\xd8\
-\x00\x00\x13\xac\x00\x00\x00\x00\x00\x01\x00\x13\xb7\x21\
-\x00\x00\x13\x36\x00\x00\x00\x00\x00\x01\x00\x13\xb1\xfe\
-\x00\x00\x14\xd8\x00\x00\x00\x00\x00\x01\x00\x13\xce\xae\
-\x00\x00\x14\x76\x00\x00\x00\x00\x00\x01\x00\x13\xc6\x7e\
-\x00\x00\x15\xac\x00\x00\x00\x00\x00\x01\x00\x13\xe0\xb5\
-\x00\x00\x15\x52\x00\x00\x00\x00\x00\x01\x00\x13\xd9\xf6\
-\x00\x00\x14\xa2\x00\x00\x00\x00\x00\x01\x00\x13\xcb\x8a\
-\x00\x00\x15\xde\x00\x00\x00\x00\x00\x01\x00\x13\xe4\x72\
-\x00\x00\x14\xfa\x00\x00\x00\x00\x00\x01\x00\x13\xd3\x1d\
-\x00\x00\x14\x3e\x00\x00\x00\x00\x00\x01\x00\x13\xc4\x08\
-\x00\x00\x15\x28\x00\x00\x00\x00\x00\x01\x00\x13\xd7\x6e\
-\x00\x00\x13\xda\x00\x00\x00\x00\x00\x01\x00\x13\xb9\x28\
-\x00\x00\x0a\xa6\x00\x00\x00\x00\x00\x01\x00\x11\x96\x51\
-\x00\x00\x0a\xc6\x00\x00\x00\x00\x00\x01\x00\x11\x9a\x2e\
-\x00\x00\x0a\x80\x00\x00\x00\x00\x00\x01\x00\x11\x93\xb3\
-\x00\x00\x0e\x34\x00\x00\x00\x00\x00\x01\x00\x12\x09\x0f\
-\x00\x00\x0e\xd2\x00\x00\x00\x00\x00\x01\x00\x12\x13\x84\
-\x00\x00\x0f\x2c\x00\x00\x00\x00\x00\x01\x00\x12\x18\x3d\
-\x00\x00\x0d\xca\x00\x00\x00\x00\x00\x01\x00\x12\x05\x1f\
-\x00\x00\x0e\xae\x00\x00\x00\x00\x00\x01\x00\x12\x10\x51\
-\x00\x00\x0d\xfe\x00\x00\x00\x00\x00\x01\x00\x12\x07\x16\
-\x00\x00\x0e\x68\x00\x00\x00\x00\x00\x01\x00\x12\x0b\x0d\
-\x00\x00\x0e\x8a\x00\x00\x00\x00\x00\x01\x00\x12\x0d\x20\
-\x00\x00\x0f\x08\x00\x00\x00\x00\x00\x01\x00\x12\x15\x6c\
-\x00\x00\x0d\xa2\x00\x00\x00\x00\x00\x01\x00\x12\x02\x63\
-\x00\x00\x03\x00\x00\x00\x00\x00\x00\x01\x00\x00\x1b\x20\
-\x00\x00\x02\x84\x00\x00\x00\x00\x00\x01\x00\x00\x11\xc5\
-\x00\x00\x02\x28\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x03\
-\x00\x00\x02\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x15\x7b\
-\x00\x00\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x09\x05\
-\x00\x00\x02\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x9a\
-\x00\x00\x02\xda\x00\x00\x00\x00\x00\x01\x00\x00\x18\xbd\
-\x00\x00\x03\x50\x00\x00\x00\x00\x00\x01\x00\x00\x1f\x8c\
-\x00\x00\x03\x28\x00\x00\x00\x00\x00\x01\x00\x00\x1d\x72\
-\x00\x00\x05\xd6\x00\x00\x00\x00\x00\x01\x00\x0f\xf8\xbd\
-\x00\x00\x05\xfa\x00\x00\x00\x00\x00\x01\x00\x0f\xfe\xdb\
-\x00\x00\x05\x38\x00\x00\x00\x00\x00\x01\x00\x0f\xf2\x3b\
-\x00\x00\x04\xca\x00\x00\x00\x00\x00\x01\x00\x0f\xe8\xf5\
-\x00\x00\x05\x06\x00\x00\x00\x00\x00\x01\x00\x0f\xf0\xe8\
-\x00\x00\x05\xa0\x00\x00\x00\x00\x00\x01\x00\x0f\xf7\x01\
-\x00\x00\x05\x6e\x00\x00\x00\x00\x00\x01\x00\x0f\xf5\x39\
-\x00\x00\x16\x46\x00\x00\x00\x00\x00\x01\x00\x13\xed\xa6\
-\x00\x00\x16\x7a\x00\x00\x00\x00\x00\x01\x00\x13\xf0\x76\
-\x00\x00\x16\x02\x00\x00\x00\x00\x00\x01\x00\x13\xe8\x25\
-\x00\x00\x16\x26\x00\x00\x00\x00\x00\x01\x00\x13\xeb\x23\
-\x00\x00\x07\x7c\x00\x00\x00\x00\x00\x01\x00\x11\x54\x8c\
-\x00\x00\x08\x5a\x00\x00\x00\x00\x00\x01\x00\x11\x64\xdc\
-\x00\x00\x0a\x60\x00\x00\x00\x00\x00\x01\x00\x11\x8f\xc0\
-\x00\x00\x0a\x2e\x00\x00\x00\x00\x00\x01\x00\x11\x88\xaa\
-\x00\x00\x09\x14\x00\x00\x00\x00\x00\x01\x00\x11\x6d\xaa\
-\x00\x00\x07\xc4\x00\x00\x00\x00\x00\x01\x00\x11\x5a\xf1\
-\x00\x00\x09\xb4\x00\x00\x00\x00\x00\x01\x00\x11\x80\x69\
-\x00\x00\x09\xde\x00\x00\x00\x00\x00\x01\x00\x11\x82\x9e\
-\x00\x00\x08\xb4\x00\x00\x00\x00\x00\x01\x00\x11\x69\x8d\
-\x00\x00\x08\xe2\x00\x00\x00\x00\x00\x01\x00\x11\x6c\x0d\
-\x00\x00\x07\xe8\x00\x00\x00\x00\x00\x01\x00\x11\x5d\x8f\
-\x00\x00\x08\x3a\x00\x00\x00\x00\x00\x01\x00\x11\x61\xd0\
-\x00\x00\x08\x82\x00\x00\x00\x00\x00\x01\x00\x11\x68\x3a\
-\x00\x00\x09\x66\x00\x00\x00\x00\x00\x01\x00\x11\x74\x1f\
-\x00\x00\x09\x3a\x00\x00\x00\x00\x00\x01\x00\x11\x71\xbc\
-\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x01\x00\x11\x86\xa2\
-\x00\x00\x07\x4e\x00\x00\x00\x00\x00\x01\x00\x11\x4d\xce\
-\x00\x00\x07\xa0\x00\x00\x00\x00\x00\x01\x00\x11\x57\x78\
-\x00\x00\x08\x18\x00\x00\x00\x00\x00\x01\x00\x11\x5e\x88\
-\x00\x00\x09\x84\x00\x00\x00\x00\x00\x01\x00\x11\x76\xc1\
-\x00\x00\x0b\x5a\x00\x00\x00\x00\x00\x01\x00\x11\xd3\x66\
-\x00\x00\x0b\x8e\x00\x00\x00\x00\x00\x01\x00\x11\xd6\x69\
-\x00\x00\x0c\x04\x00\x00\x00\x00\x00\x01\x00\x11\xe4\xa1\
-\x00\x00\x0b\x2a\x00\x00\x00\x00\x00\x01\x00\x11\xd1\x0d\
-\x00\x00\x0b\xd4\x00\x00\x00\x00\x00\x01\x00\x11\xe1\x6e\
-\x00\x00\x0c\x26\x00\x00\x00\x00\x00\x01\x00\x11\xe7\x77\
-\x00\x00\x0a\xe8\x00\x00\x00\x00\x00\x01\x00\x11\x9d\x68\
-\x00\x00\x0b\xb0\x00\x00\x00\x00\x00\x01\x00\x11\xda\x3c\
-\x00\x00\x16\xaa\x00\x00\x00\x00\x00\x01\x00\x13\xf3\x6f\
-\x00\x00\x17\x0c\x00\x00\x00\x00\x00\x01\x00\x13\xf9\xe5\
-\x00\x00\x16\xde\x00\x00\x00\x00\x00\x01\x00\x13\xf6\xd1\
-\x00\x00\x17\x34\x00\x00\x00\x00\x00\x01\x00\x13\xfc\x83\
-\x00\x00\x06\xb6\x00\x00\x00\x00\x00\x01\x00\x10\x3b\xad\
-\x00\x00\x06\x56\x00\x00\x00\x00\x00\x01\x00\x10\x0c\x6d\
-\x00\x00\x06\x26\x00\x00\x00\x00\x00\x01\x00\x10\x01\xd9\
-\x00\x00\x06\x86\x00\x00\x00\x00\x00\x01\x00\x10\x21\xa2\
-\x00\x00\x06\xe6\x00\x00\x00\x00\x00\x01\x00\x10\x3f\xca\
-\x00\x00\x07\x1a\x00\x00\x00\x00\x00\x01\x00\x11\x08\x63\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x01\
+\x00\x00\x00\xf8\x00\x02\x00\x00\x00\x06\x00\x00\x00\x92\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x8e\
+\x00\x00\x00\xb4\x00\x02\x00\x00\x00\x08\x00\x00\x00\x86\
+\x00\x00\x00\xd6\x00\x02\x00\x00\x00\x14\x00\x00\x00\x72\
+\x00\x00\x00\x3e\x00\x02\x00\x00\x00\x02\x00\x00\x00\x70\
+\x00\x00\x00\x14\x00\x02\x00\x00\x00\x02\x00\x00\x00\x6e\
+\x00\x00\x01\x18\x00\x02\x00\x00\x00\x05\x00\x00\x00\x69\
+\x00\x00\x01\x06\x00\x02\x00\x00\x00\x02\x00\x00\x00\x67\
+\x00\x00\x01\x52\x00\x02\x00\x00\x00\x09\x00\x00\x00\x5e\
+\x00\x00\x00\xe6\x00\x02\x00\x00\x00\x03\x00\x00\x00\x5b\
+\x00\x00\x00\x8c\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x51\
+\x00\x00\x00\xc4\x00\x02\x00\x00\x00\x03\x00\x00\x00\x4e\
+\x00\x00\x00\x2c\x00\x02\x00\x00\x00\x10\x00\x00\x00\x3e\
+\x00\x00\x00\x62\x00\x02\x00\x00\x00\x03\x00\x00\x00\x3b\
+\x00\x00\x00\x78\x00\x02\x00\x00\x00\x01\x00\x00\x00\x3a\
+\x00\x00\x01\x66\x00\x02\x00\x00\x00\x03\x00\x00\x00\x37\
+\x00\x00\x00\x9e\x00\x02\x00\x00\x00\x08\x00\x00\x00\x2f\
+\x00\x00\x01\x3e\x00\x02\x00\x00\x00\x01\x00\x00\x00\x2e\
+\x00\x00\x00\x4e\x00\x02\x00\x00\x00\x13\x00\x00\x00\x1b\
+\x00\x00\x01\x2a\x00\x02\x00\x00\x00\x06\x00\x00\x00\x15\
+\x00\x00\x04\x70\x00\x00\x00\x00\x00\x01\x00\x0a\xa7\x31\
+\x00\x00\x03\xae\x00\x00\x00\x00\x00\x01\x00\x00\x23\xa9\
+\x00\x00\x04\x10\x00\x00\x00\x00\x00\x01\x00\x05\x65\x6d\
+\x00\x00\x04\x3e\x00\x00\x00\x00\x00\x01\x00\x08\x06\x4f\
+\x00\x00\x03\xe0\x00\x00\x00\x00\x00\x01\x00\x02\xc4\x8b\
+\x00\x00\x04\xa0\x00\x00\x00\x00\x00\x01\x00\x0d\x48\x13\
+\x00\x00\x11\xb2\x00\x00\x00\x00\x00\x01\x00\x13\x92\x0d\
+\x00\x00\x12\x2e\x00\x00\x00\x00\x00\x01\x00\x13\x9b\xd4\
+\x00\x00\x11\x8c\x00\x00\x00\x00\x00\x01\x00\x13\x8f\x33\
+\x00\x00\x11\x12\x00\x00\x00\x00\x00\x01\x00\x13\x87\x1b\
+\x00\x00\x13\x6e\x00\x00\x00\x00\x00\x01\x00\x13\xb4\xa2\
+\x00\x00\x11\x62\x00\x00\x00\x00\x00\x01\x00\x13\x8c\x95\
+\x00\x00\x12\x04\x00\x00\x00\x00\x00\x01\x00\x13\x98\xef\
+\x00\x00\x10\xb0\x00\x00\x00\x00\x00\x01\x00\x13\x80\x01\
+\x00\x00\x12\xaa\x00\x00\x00\x00\x00\x01\x00\x13\xa5\xf8\
+\x00\x00\x13\x22\x00\x00\x00\x00\x00\x01\x00\x13\xae\x1c\
+\x00\x00\x12\x56\x00\x00\x00\x00\x00\x01\x00\x13\x9f\x48\
+\x00\x00\x13\x48\x00\x00\x00\x00\x00\x01\x00\x13\xb1\xce\
+\x00\x00\x10\xe8\x00\x00\x00\x00\x00\x01\x00\x13\x84\xa3\
+\x00\x00\x12\xf8\x00\x00\x00\x00\x00\x01\x00\x13\xab\x9a\
+\x00\x00\x11\x3e\x00\x00\x00\x00\x00\x01\x00\x13\x8a\x4e\
+\x00\x00\x11\xd8\x00\x00\x00\x00\x00\x01\x00\x13\x94\x44\
+\x00\x00\x10\x8c\x00\x00\x00\x00\x00\x01\x00\x13\x7d\x04\
+\x00\x00\x12\xd2\x00\x00\x00\x00\x00\x01\x00\x13\xa8\x0b\
+\x00\x00\x12\x84\x00\x00\x00\x00\x00\x01\x00\x13\xa3\xe1\
+\x00\x00\x03\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x21\x92\
+\x00\x00\x0d\x4c\x00\x00\x00\x00\x00\x01\x00\x11\xfe\x7c\
+\x00\x00\x0d\xcc\x00\x00\x00\x00\x00\x01\x00\x12\x05\x42\
+\x00\x00\x0c\xd0\x00\x00\x00\x00\x00\x01\x00\x11\xf7\x78\
+\x00\x00\x0d\x74\x00\x00\x00\x00\x00\x01\x00\x12\x01\x1c\
+\x00\x00\x0d\xf6\x00\x00\x00\x00\x00\x01\x00\x12\x08\x0d\
+\x00\x00\x0d\x1a\x00\x00\x00\x00\x00\x01\x00\x11\xfc\x92\
+\x00\x00\x0c\xf4\x00\x00\x00\x00\x00\x01\x00\x11\xfa\x1f\
+\x00\x00\x0d\xaa\x00\x00\x00\x00\x00\x01\x00\x12\x02\x9e\
+\x00\x00\x01\x80\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x05\xe6\
+\x00\x00\x01\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x02\xfe\
+\x00\x00\x0f\xdc\x00\x00\x00\x00\x00\x01\x00\x12\x23\x5b\
+\x00\x00\x10\x06\x00\x00\x00\x00\x00\x01\x00\x12\x28\xc5\
+\x00\x00\x10\x36\x00\x00\x00\x00\x00\x01\x00\x12\x97\x4e\
+\x00\x00\x10\x56\x00\x00\x00\x00\x00\x01\x00\x12\x9d\xff\
+\x00\x00\x14\x34\x00\x00\x00\x00\x00\x01\x00\x13\xc2\x69\
+\x00\x00\x13\xda\x00\x00\x00\x00\x00\x01\x00\x13\xbd\x68\
+\x00\x00\x16\x50\x00\x00\x00\x00\x00\x01\x00\x13\xec\x6e\
+\x00\x00\x14\xda\x00\x00\x00\x00\x00\x01\x00\x13\xca\x73\
+\x00\x00\x14\x76\x00\x00\x00\x00\x00\x01\x00\x13\xc5\xbc\
+\x00\x00\x14\x00\x00\x00\x00\x00\x00\x01\x00\x13\xc0\x99\
+\x00\x00\x15\xa2\x00\x00\x00\x00\x00\x01\x00\x13\xdd\x49\
+\x00\x00\x15\x40\x00\x00\x00\x00\x00\x01\x00\x13\xd5\x19\
+\x00\x00\x16\x76\x00\x00\x00\x00\x00\x01\x00\x13\xef\x50\
+\x00\x00\x16\x1c\x00\x00\x00\x00\x00\x01\x00\x13\xe8\x91\
+\x00\x00\x15\x6c\x00\x00\x00\x00\x00\x01\x00\x13\xda\x25\
+\x00\x00\x16\xa8\x00\x00\x00\x00\x00\x01\x00\x13\xf3\x0d\
+\x00\x00\x15\xc4\x00\x00\x00\x00\x00\x01\x00\x13\xe1\xb8\
+\x00\x00\x15\x08\x00\x00\x00\x00\x00\x01\x00\x13\xd2\xa3\
+\x00\x00\x15\xf2\x00\x00\x00\x00\x00\x01\x00\x13\xe6\x09\
+\x00\x00\x14\xa4\x00\x00\x00\x00\x00\x01\x00\x13\xc7\xc3\
+\x00\x00\x0b\x2c\x00\x00\x00\x00\x00\x01\x00\x11\x9f\x6b\
+\x00\x00\x0b\x4c\x00\x00\x00\x00\x00\x01\x00\x11\xa3\x48\
+\x00\x00\x0b\x06\x00\x00\x00\x00\x00\x01\x00\x11\x9c\xcd\
+\x00\x00\x0e\xba\x00\x00\x00\x00\x00\x01\x00\x12\x12\x29\
+\x00\x00\x0f\x58\x00\x00\x00\x00\x00\x01\x00\x12\x1c\x9e\
+\x00\x00\x0f\xb2\x00\x00\x00\x00\x00\x01\x00\x12\x21\x57\
+\x00\x00\x0e\x50\x00\x00\x00\x00\x00\x01\x00\x12\x0e\x39\
+\x00\x00\x0f\x34\x00\x00\x00\x00\x00\x01\x00\x12\x19\x6b\
+\x00\x00\x0e\x84\x00\x00\x00\x00\x00\x01\x00\x12\x10\x30\
+\x00\x00\x0e\xee\x00\x00\x00\x00\x00\x01\x00\x12\x14\x27\
+\x00\x00\x0f\x10\x00\x00\x00\x00\x00\x01\x00\x12\x16\x3a\
+\x00\x00\x0f\x8e\x00\x00\x00\x00\x00\x01\x00\x12\x1e\x86\
+\x00\x00\x0e\x28\x00\x00\x00\x00\x00\x01\x00\x12\x0b\x7d\
+\x00\x00\x07\x84\x00\x00\x00\x00\x00\x01\x00\x11\x50\x13\
+\x00\x00\x07\xaa\x00\x00\x00\x00\x00\x01\x00\x11\x52\x77\
+\x00\x00\x07\x60\x00\x00\x00\x00\x00\x01\x00\x11\x4d\xce\
+\x00\x00\x03\x12\x00\x00\x00\x00\x00\x01\x00\x00\x1b\x20\
+\x00\x00\x02\x96\x00\x00\x00\x00\x00\x01\x00\x00\x11\xc5\
+\x00\x00\x02\x3a\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x03\
+\x00\x00\x02\xc4\x00\x00\x00\x00\x00\x01\x00\x00\x15\x7b\
+\x00\x00\x02\x12\x00\x00\x00\x00\x00\x01\x00\x00\x09\x05\
+\x00\x00\x02\x60\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x9a\
+\x00\x00\x02\xec\x00\x00\x00\x00\x00\x01\x00\x00\x18\xbd\
+\x00\x00\x03\x62\x00\x00\x00\x00\x00\x01\x00\x00\x1f\x8c\
+\x00\x00\x03\x3a\x00\x00\x00\x00\x00\x01\x00\x00\x1d\x72\
+\x00\x00\x05\xe8\x00\x00\x00\x00\x00\x01\x00\x0f\xf8\xbd\
+\x00\x00\x06\x0c\x00\x00\x00\x00\x00\x01\x00\x0f\xfe\xdb\
+\x00\x00\x05\x4a\x00\x00\x00\x00\x00\x01\x00\x0f\xf2\x3b\
+\x00\x00\x04\xdc\x00\x00\x00\x00\x00\x01\x00\x0f\xe8\xf5\
+\x00\x00\x05\x18\x00\x00\x00\x00\x00\x01\x00\x0f\xf0\xe8\
+\x00\x00\x05\xb2\x00\x00\x00\x00\x00\x01\x00\x0f\xf7\x01\
+\x00\x00\x05\x80\x00\x00\x00\x00\x00\x01\x00\x0f\xf5\x39\
+\x00\x00\x16\xcc\x00\x00\x00\x00\x00\x01\x00\x13\xf6\xc0\
+\x00\x00\x17\x00\x00\x00\x00\x00\x00\x01\x00\x13\xf9\x90\
+\x00\x00\x13\x96\x00\x00\x00\x00\x00\x01\x00\x13\xb7\xe7\
+\x00\x00\x13\xba\x00\x00\x00\x00\x00\x01\x00\x13\xba\xe5\
+\x00\x00\x08\x02\x00\x00\x00\x00\x00\x01\x00\x11\x5d\xa6\
+\x00\x00\x08\xe0\x00\x00\x00\x00\x00\x01\x00\x11\x6d\xf6\
+\x00\x00\x0a\xe6\x00\x00\x00\x00\x00\x01\x00\x11\x98\xda\
+\x00\x00\x0a\xb4\x00\x00\x00\x00\x00\x01\x00\x11\x91\xc4\
+\x00\x00\x09\x9a\x00\x00\x00\x00\x00\x01\x00\x11\x76\xc4\
+\x00\x00\x08\x4a\x00\x00\x00\x00\x00\x01\x00\x11\x64\x0b\
+\x00\x00\x0a\x3a\x00\x00\x00\x00\x00\x01\x00\x11\x89\x83\
+\x00\x00\x0a\x64\x00\x00\x00\x00\x00\x01\x00\x11\x8b\xb8\
+\x00\x00\x09\x3a\x00\x00\x00\x00\x00\x01\x00\x11\x72\xa7\
+\x00\x00\x09\x68\x00\x00\x00\x00\x00\x01\x00\x11\x75\x27\
+\x00\x00\x08\x6e\x00\x00\x00\x00\x00\x01\x00\x11\x66\xa9\
+\x00\x00\x08\xc0\x00\x00\x00\x00\x00\x01\x00\x11\x6a\xea\
+\x00\x00\x09\x08\x00\x00\x00\x00\x00\x01\x00\x11\x71\x54\
+\x00\x00\x09\xec\x00\x00\x00\x00\x00\x01\x00\x11\x7d\x39\
+\x00\x00\x09\xc0\x00\x00\x00\x00\x00\x01\x00\x11\x7a\xd6\
+\x00\x00\x0a\x86\x00\x00\x00\x00\x00\x01\x00\x11\x8f\xbc\
+\x00\x00\x07\xd4\x00\x00\x00\x00\x00\x01\x00\x11\x56\xe8\
+\x00\x00\x08\x26\x00\x00\x00\x00\x00\x01\x00\x11\x60\x92\
+\x00\x00\x08\x9e\x00\x00\x00\x00\x00\x01\x00\x11\x67\xa2\
+\x00\x00\x0a\x0a\x00\x00\x00\x00\x00\x01\x00\x11\x7f\xdb\
+\x00\x00\x0b\xe0\x00\x00\x00\x00\x00\x01\x00\x11\xdc\x80\
+\x00\x00\x0c\x14\x00\x00\x00\x00\x00\x01\x00\x11\xdf\x83\
+\x00\x00\x0c\x8a\x00\x00\x00\x00\x00\x01\x00\x11\xed\xbb\
+\x00\x00\x0b\xb0\x00\x00\x00\x00\x00\x01\x00\x11\xda\x27\
+\x00\x00\x0c\x5a\x00\x00\x00\x00\x00\x01\x00\x11\xea\x88\
+\x00\x00\x0c\xac\x00\x00\x00\x00\x00\x01\x00\x11\xf0\x91\
+\x00\x00\x0b\x6e\x00\x00\x00\x00\x00\x01\x00\x11\xa6\x82\
+\x00\x00\x0c\x36\x00\x00\x00\x00\x00\x01\x00\x11\xe3\x56\
+\x00\x00\x17\x30\x00\x00\x00\x00\x00\x01\x00\x13\xfc\x89\
+\x00\x00\x17\x92\x00\x00\x00\x00\x00\x01\x00\x14\x02\xff\
+\x00\x00\x17\x64\x00\x00\x00\x00\x00\x01\x00\x13\xff\xeb\
+\x00\x00\x17\xba\x00\x00\x00\x00\x00\x01\x00\x14\x05\x9d\
+\x00\x00\x06\xc8\x00\x00\x00\x00\x00\x01\x00\x10\x3b\xad\
+\x00\x00\x06\x68\x00\x00\x00\x00\x00\x01\x00\x10\x0c\x6d\
+\x00\x00\x06\x38\x00\x00\x00\x00\x00\x01\x00\x10\x01\xd9\
+\x00\x00\x06\x98\x00\x00\x00\x00\x00\x01\x00\x10\x21\xa2\
+\x00\x00\x06\xf8\x00\x00\x00\x00\x00\x01\x00\x10\x3f\xca\
+\x00\x00\x07\x2c\x00\x00\x00\x00\x00\x01\x00\x11\x08\x63\
 "
 
 def qInitResources():

=== modified file 'openlp/plugins/remotes/lib/httprouter.py'
--- openlp/plugins/remotes/lib/httprouter.py	2014-03-18 20:36:02 +0000
+++ openlp/plugins/remotes/lib/httprouter.py	2014-04-19 05:48:00 +0000
@@ -149,11 +149,11 @@
         """
         Initialise the router stack and any other variables.
         """
-        authcode = "%s:%s" % (Settings().value('remotes/user id'), Settings().value('remotes/password'))
+        auth_code = "%s:%s" % (Settings().value('remotes/user id'), Settings().value('remotes/password'))
         try:
-            self.auth = base64.b64encode(authcode)
+            self.auth = base64.b64encode(auth_code)
         except TypeError:
-            self.auth = base64.b64encode(authcode.encode()).decode()
+            self.auth = base64.b64encode(auth_code.encode()).decode()
         self.routes = [
             ('^/$', {'function': self.serve_file, 'secure': False}),
             ('^/(stage)$', {'function': self.serve_file, 'secure': False}),
@@ -376,7 +376,6 @@
         Examines the extension of the file and determines what the content_type should be, defaults to text/plain
         Returns the extension and the content_type
         """
-        content_type = 'text/plain'
         ext = os.path.splitext(file_name)[1]
         content_type = FILE_TYPES.get(ext, 'text/plain')
         return ext, content_type
@@ -439,7 +438,7 @@
         if plugin.status == PluginStatus.Active:
             try:
                 text = json.loads(self.request_data)['request']['text']
-            except KeyError as ValueError:
+            except KeyError:
                 return self.do_http_error()
             text = urllib.parse.unquote(text)
             self.alerts_manager.emit(QtCore.SIGNAL('alerts_text'), [text])
@@ -453,6 +452,7 @@
         """
         Perform an action on the slide controller.
         """
+        log.debug("controller_text var = %s" % var)
         current_item = self.live_controller.service_item
         data = []
         if current_item:
@@ -488,7 +488,7 @@
         if self.request_data:
             try:
                 data = json.loads(self.request_data)['request']['id']
-            except KeyError as ValueError:
+            except KeyError:
                 return self.do_http_error()
             log.info(data)
             # This slot expects an int within a list.
@@ -547,7 +547,7 @@
         """
         try:
             text = json.loads(self.request_data)['request']['text']
-        except KeyError as ValueError:
+        except KeyError:
             return self.do_http_error()
         text = urllib.parse.unquote(text)
         plugin = self.plugin_manager.get_plugin_by_name(plugin_name)
@@ -563,12 +563,12 @@
         Go live on an item of type ``plugin``.
         """
         try:
-            id = json.loads(self.request_data)['request']['id']
-        except KeyError as ValueError:
+            request_id = json.loads(self.request_data)['request']['id']
+        except KeyError:
             return self.do_http_error()
         plugin = self.plugin_manager.get_plugin_by_name(plugin_name)
         if plugin.status == PluginStatus.Active and plugin.media_item:
-            plugin.media_item.emit(QtCore.SIGNAL('%s_go_live' % plugin_name), [id, True])
+            plugin.media_item.emit(QtCore.SIGNAL('%s_go_live' % plugin_name), [request_id, True])
         return self.do_http_success()
 
     def add_to_service(self, plugin_name):
@@ -576,11 +576,11 @@
         Add item of type ``plugin_name`` to the end of the service.
         """
         try:
-            id = json.loads(self.request_data)['request']['id']
-        except KeyError as ValueError:
+            request_id = json.loads(self.request_data)['request']['id']
+        except KeyError:
             return self.do_http_error()
         plugin = self.plugin_manager.get_plugin_by_name(plugin_name)
         if plugin.status == PluginStatus.Active and plugin.media_item:
-            item_id = plugin.media_item.create_item_from_id(id)
+            item_id = plugin.media_item.create_item_from_id(request_id)
             plugin.media_item.emit(QtCore.SIGNAL('%s_add_to_service' % plugin_name), [item_id, True])
         self.do_http_success()

=== modified file 'openlp/plugins/remotes/lib/httpserver.py'
--- openlp/plugins/remotes/lib/httpserver.py	2014-04-02 18:51:21 +0000
+++ openlp/plugins/remotes/lib/httpserver.py	2014-04-19 05:48:00 +0000
@@ -40,7 +40,7 @@
 
 from PyQt4 import QtCore
 
-from openlp.core.common import AppLocation, Settings
+from openlp.core.common import AppLocation, Settings, RegistryProperties
 
 from openlp.plugins.remotes.lib import HttpRouter
 
@@ -94,13 +94,18 @@
         """
         self.http_server.start_server()
 
-
-class OpenLPServer():
+    def stop(self):
+        log.debug("stop called")
+        self.http_server.stop = True
+
+
+class OpenLPServer(RegistryProperties):
     def __init__(self):
         """
         Initialise the http server, and start the server of the correct type http / https
         """
-        log.debug('Initialise httpserver')
+        super(OpenLPServer, self).__init__()
+        log.debug('Initialise OpenLP')
         self.settings_section = 'remotes'
         self.http_thread = HttpThread(self)
         self.http_thread.start()
@@ -110,32 +115,49 @@
         Start the correct server and save the handler
         """
         address = Settings().value(self.settings_section + '/ip address')
-        if Settings().value(self.settings_section + '/https enabled'):
+        self.address = address
+        self.is_secure = Settings().value(self.settings_section + '/https enabled')
+        self.needs_authentication = Settings().value(self.settings_section + '/authentication enabled')
+        if self.is_secure:
             port = Settings().value(self.settings_section + '/https port')
-            self.httpd = HTTPSServer((address, port), CustomHandler)
-            log.debug('Started ssl httpd...')
+            self.port = port
+            self.start_server_instance(address, port, HTTPSServer)
         else:
             port = Settings().value(self.settings_section + '/port')
-            loop = 1
-            while loop < 3:
-                try:
-                    self.httpd = ThreadingHTTPServer((address, port), CustomHandler)
-                except OSError:
-                    loop += 1
-                    time.sleep(0.1)
-                except:
-                    log.error('Failed to start server ')
-            log.debug('Started non ssl httpd...')
+            self.port = port
+            self.start_server_instance(address, port, ThreadingHTTPServer)
         if hasattr(self, 'httpd') and self.httpd:
             self.httpd.serve_forever()
         else:
             log.debug('Failed to start server')
 
+    def start_server_instance(self, address, port, server_class):
+        """
+        Start the server
+
+        :param address: The server address
+        :param port: The run port
+        :param server_class: the class to start
+        """
+        loop = 1
+        while loop < 4:
+            try:
+                self.httpd = server_class((address, port), CustomHandler)
+                log.debug("Server started for class %s %s %d" % (server_class, address, port))
+            except OSError:
+                log.debug("failed to start http server thread state %d %s" %
+                          (loop, self.http_thread.isRunning()))
+                loop += 1
+                time.sleep(0.1)
+            except:
+                log.error('Failed to start server ')
+
     def stop_server(self):
         """
         Stop the server
         """
-        self.http_thread.exit(0)
+        if self.http_thread.isRunning():
+            self.http_thread.stop()
         self.httpd = None
         log.debug('Stopped the server.')
 

=== modified file 'openlp/plugins/remotes/lib/remotetab.py'
--- openlp/plugins/remotes/lib/remotetab.py	2014-03-21 21:38:08 +0000
+++ openlp/plugins/remotes/lib/remotetab.py	2014-04-19 05:48:00 +0000
@@ -32,7 +32,7 @@
 from PyQt4 import QtCore, QtGui, QtNetwork
 
 from openlp.core.common import AppLocation, Settings, translate
-from openlp.core.lib import SettingsTab
+from openlp.core.lib import SettingsTab, build_icon
 
 ZERO_URL = '0.0.0.0'
 
@@ -234,6 +234,7 @@
         """
         Load the configuration and update the server configuration if necessary
         """
+        self.is_secure = Settings().value(self.settings_section + '/https enabled')
         self.port_spin_box.setValue(Settings().value(self.settings_section + '/port'))
         self.https_port_spin_box.setValue(Settings().value(self.settings_section + '/https port'))
         self.address_edit.setText(Settings().value(self.settings_section + '/ip address'))
@@ -263,9 +264,7 @@
                 Settings().value(self.settings_section + '/port') != self.port_spin_box.value() or \
                 Settings().value(self.settings_section + '/https port') != self.https_port_spin_box.value() or \
                 Settings().value(self.settings_section + '/https enabled') != \
-                self.https_settings_group_box.isChecked() or \
-                Settings().value(self.settings_section + '/authentication enabled') != \
-                self.user_login_group_box.isChecked():
+                self.https_settings_group_box.isChecked():
             self.settings_form.register_post_process('remotes_config_updated')
         Settings().setValue(self.settings_section + '/port', self.port_spin_box.value())
         Settings().setValue(self.settings_section + '/https port', self.https_port_spin_box.value())
@@ -275,6 +274,7 @@
         Settings().setValue(self.settings_section + '/authentication enabled', self.user_login_group_box.isChecked())
         Settings().setValue(self.settings_section + '/user id', self.user_id.text())
         Settings().setValue(self.settings_section + '/password', self.password.text())
+        self.generate_icon()
 
     def on_twelve_hour_check_box_changed(self, check_state):
         """
@@ -290,3 +290,25 @@
         Invert the HTTP group box based on Https group settings
         """
         self.http_settings_group_box.setEnabled(not self.https_settings_group_box.isChecked())
+
+    def generate_icon(self):
+        """
+        Generate icon for main window
+        """
+        self.remote_server_icon.hide()
+        icon = QtGui.QImage(':/remote/network_server.png')
+        icon = icon.scaled(80, 80, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
+        if self.is_secure:
+            overlay = QtGui.QImage(':/remote/network_ssl.png')
+            overlay = overlay.scaled(60, 60, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
+            painter = QtGui.QPainter(icon)
+            painter.drawImage(0, 0, overlay)
+            painter.end()
+        if Settings().value(self.settings_section + '/authentication enabled'):
+            overlay = QtGui.QImage(':/remote/network_auth.png')
+            overlay = overlay.scaled(60, 60, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
+            painter = QtGui.QPainter(icon)
+            painter.drawImage(20, 0, overlay)
+            painter.end()
+        self.remote_server_icon.setIcon(build_icon(icon))
+        self.remote_server_icon.show()

=== modified file 'openlp/plugins/remotes/remoteplugin.py'
--- openlp/plugins/remotes/remoteplugin.py	2014-04-12 20:19:22 +0000
+++ openlp/plugins/remotes/remoteplugin.py	2014-04-19 05:48:00 +0000
@@ -28,7 +28,8 @@
 ###############################################################################
 
 import logging
-import time
+
+from PyQt4 import QtGui
 
 from openlp.core.lib import Plugin, StringContent, translate, build_icon
 from openlp.plugins.remotes.lib import RemoteTab, OpenLPServer
@@ -67,6 +68,13 @@
         log.debug('initialise')
         super(RemotesPlugin, self).initialise()
         self.server = OpenLPServer()
+        self.remote_server_icon = QtGui.QToolButton(self.main_window.status_bar)
+        self.remote_server_icon.setCheckable(False)
+        self.remote_server_icon.setAutoRaise(True)
+        self.remote_server_icon.setObjectName('remote_server_icon')
+        self.main_window.status_bar.insertPermanentWidget(2, self.remote_server_icon)
+        self.settings_tab.remote_server_icon = self.remote_server_icon
+        self.settings_tab.generate_icon()
 
     def finalise(self):
         """
@@ -104,9 +112,11 @@
 
     def config_update(self):
         """
-        Called when Config is changed to restart the server on new address or port
+        Called when Config is changed to requests a restart with the server on new address or port
         """
         log.debug('remote config changed')
-        self.finalise()
-        time.sleep(0.5)
-        self.initialise()
+        QtGui.QMessageBox.information(self.main_window,
+                                      translate('RemotePlugin', 'Server Config Change'),
+                                      translate('RemotePlugin', 'Server configuration changes will require a restart '
+                                                'to take effect.'),
+                                      QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))

=== modified file 'openlp/plugins/songs/lib/songbeamerimport.py'
--- openlp/plugins/songs/lib/songbeamerimport.py	2014-04-13 17:03:28 +0000
+++ openlp/plugins/songs/lib/songbeamerimport.py	2014-04-19 05:48:00 +0000
@@ -137,7 +137,7 @@
                 if line.startswith('#') and not read_verses:
                     self.parseTags(line)
                 elif line.startswith('--'):
-                # --- and -- allowed for page-breaks (difference in Songbeamer only in printout)
+                    # --- and -- allowed for page-breaks (difference in Songbeamer only in printout)
                     if self.current_verse:
                         self.replace_html_tags()
                         self.add_verse(self.current_verse, self.current_verse_type)

=== added file 'resources/images/network_auth.png'
Binary files resources/images/network_auth.png	1970-01-01 00:00:00 +0000 and resources/images/network_auth.png	2014-04-19 05:48:00 +0000 differ
=== added file 'resources/images/network_server.png'
Binary files resources/images/network_server.png	1970-01-01 00:00:00 +0000 and resources/images/network_server.png	2014-04-19 05:48:00 +0000 differ
=== added file 'resources/images/network_ssl.png'
Binary files resources/images/network_ssl.png	1970-01-01 00:00:00 +0000 and resources/images/network_ssl.png	2014-04-19 05:48:00 +0000 differ
=== modified file 'resources/images/openlp-2.qrc'
--- resources/images/openlp-2.qrc	2013-12-31 22:27:27 +0000
+++ resources/images/openlp-2.qrc	2014-04-19 05:48:00 +0000
@@ -149,6 +149,11 @@
     <file>messagebox_info.png</file>
     <file>messagebox_warning.png</file>
   </qresource>
+  <qresource prefix="remote">
+    <file>network_server.png</file>    
+    <file>network_ssl.png</file>
+    <file>network_auth.png</file>    
+  </qresource>  
   <qresource prefix="songusage">
     <file>song_usage_active.png</file>
     <file>song_usage_inactive.png</file>

=== modified file 'scripts/jenkins_script.py'
--- scripts/jenkins_script.py	2014-04-14 19:16:46 +0000
+++ scripts/jenkins_script.py	2014-04-19 05:48:00 +0000
@@ -148,7 +148,7 @@
 
 def get_repo_name():
     """
-    This returns the name of branch of the wokring directory. For example it returns *lp:~googol/openlp/render*.
+    This returns the name of branch of the working directory. For example it returns *lp:~googol/openlp/render*.
     """
     # Run the bzr command.
     bzr = Popen(('bzr', 'info'), stdout=PIPE, stderr=PIPE)
@@ -198,7 +198,7 @@
         jenkins_trigger = JenkinsTrigger(token)
         try:
             jenkins_trigger.trigger_build()
-        except HTTPError as e:
+        except HTTPError:
             print('Wrong token.')
             return
         # Open the browser before printing the output.

=== modified file 'scripts/translation_utils.py'
--- scripts/translation_utils.py	2014-04-02 18:51:21 +0000
+++ scripts/translation_utils.py	2014-04-19 05:48:00 +0000
@@ -96,7 +96,7 @@
         return len(self.data)
 
     def __getitem__(self, index):
-        if not index in self.data:
+        if index not in self.data:
             return None
         elif self.data[index].get('arguments'):
             return self.data[index]['command'], self.data[index]['arguments']

=== modified file 'tests/functional/openlp_core_common/test_common.py'
--- tests/functional/openlp_core_common/test_common.py	2014-04-04 21:12:44 +0000
+++ tests/functional/openlp_core_common/test_common.py	2014-04-19 05:48:00 +0000
@@ -79,5 +79,5 @@
             trace_error_handler(mocked_logger)
 
             # THEN: The mocked_logger.error() method should have been called with the correct parameters
-            mocked_logger.error.assert_called_with('OpenLP Error trace\n   File openlp.fake at line 56 \n\t called trace_error_handler_test')
-
+            mocked_logger.error.assert_called_with(
+                'OpenLP Error trace\n   File openlp.fake at line 56 \n\t called trace_error_handler_test')

=== modified file 'tests/functional/openlp_core_lib/test_file_dialog.py'
--- tests/functional/openlp_core_lib/test_file_dialog.py	2014-04-02 18:51:21 +0000
+++ tests/functional/openlp_core_lib/test_file_dialog.py	2014-04-19 05:48:00 +0000
@@ -53,8 +53,8 @@
         self.mocked_os.rest()
         self.mocked_qt_gui.reset()
 
-        # GIVEN: A List of known values as a return value from QFileDialog.getOpenFileNames and a list of valid
-        #		file names.
+        # GIVEN: A List of known values as a return value from QFileDialog.getOpenFileNames and a list of valid file
+        # names.
         self.mocked_qt_gui.QFileDialog.getOpenFileNames.return_value = [
             '/Valid File', '/url%20encoded%20file%20%231', '/non-existing']
         self.mocked_os.path.exists.side_effect = lambda file_name: file_name in [

=== modified file 'tests/functional/openlp_core_lib/test_lib.py'
--- tests/functional/openlp_core_lib/test_lib.py	2014-04-02 18:51:21 +0000
+++ tests/functional/openlp_core_lib/test_lib.py	2014-04-19 05:48:00 +0000
@@ -482,7 +482,7 @@
             # WHEN: we run the validate_thumb() function
 
             # THEN: we should have called a few functions, and the result should be True
-            #mocked_os.path.exists.assert_called_with(thumb_path)
+            # mocked_os.path.exists.assert_called_with(thumb_path)
 
     def validate_thumb_file_exists_and_older_test(self):
         """

=== modified file 'tests/functional/openlp_core_lib/test_ui.py'
--- tests/functional/openlp_core_lib/test_ui.py	2014-04-15 21:11:06 +0000
+++ tests/functional/openlp_core_lib/test_ui.py	2014-04-19 05:48:00 +0000
@@ -162,7 +162,7 @@
 
         # WHEN: We create an action with some properties
         action = create_action(dialog, 'my_action', text='my text', icon=':/wizards/wizard_firsttime.bmp',
-        tooltip='my tooltip', statustip='my statustip')
+                               tooltip='my tooltip', statustip='my statustip')
 
         # THEN: These properties should be set
         self.assertIsInstance(action, QtGui.QAction)

=== modified file 'tests/functional/openlp_core_ui/test_formattingtagsform.py'
--- tests/functional/openlp_core_ui/test_formattingtagsform.py	2014-04-02 19:35:09 +0000
+++ tests/functional/openlp_core_ui/test_formattingtagsform.py	2014-04-19 05:48:00 +0000
@@ -70,7 +70,7 @@
         form.save_button = MagicMock()
 
         # WHEN: on_text_edited is called with an arbitrary value
-        #form.on_text_edited('text')
+        # form.on_text_edited('text')
 
         # THEN: setEnabled and setDefault should have been called on save_push_button
-        #form.save_button.setEnabled.assert_called_with(True)
+        # form.save_button.setEnabled.assert_called_with(True)

=== modified file 'tests/functional/openlp_core_ui/test_maindisplay.py'
--- tests/functional/openlp_core_ui/test_maindisplay.py	2014-04-08 15:23:40 +0000
+++ tests/functional/openlp_core_ui/test_maindisplay.py	2014-04-19 05:48:00 +0000
@@ -106,4 +106,4 @@
         self.assertEqual('QGraphicsView {}', main_display.styleSheet(),
                          'MainDisplay instance should not be transparent')
         self.assertFalse(main_display.testAttribute(QtCore.Qt.WA_TranslucentBackground),
-                        'MainDisplay hasnt translucent background')
+                         'MainDisplay hasnt translucent background')

=== modified file 'tests/functional/openlp_plugins/bibles/test_http.py'
--- tests/functional/openlp_plugins/bibles/test_http.py	2014-04-15 05:28:51 +0000
+++ tests/functional/openlp_plugins/bibles/test_http.py	2014-04-19 05:48:00 +0000
@@ -35,7 +35,7 @@
 from tests.functional import patch, MagicMock
 from openlp.plugins.bibles.lib.http import BSExtract
 
-#TODO: Items left to test
+# TODO: Items left to test
 #   BGExtract
 #       __init__
 #       _remove_elements
@@ -68,7 +68,7 @@
     """
     Test the BSExtractClass
     """
-    #TODO: Items left to test
+    # TODO: Items left to test
     #   BSExtract
     #       __init__
     #       get_bible_chapter

=== modified file 'tests/functional/openlp_plugins/presentations/test_pptviewcontroller.py'
--- tests/functional/openlp_plugins/presentations/test_pptviewcontroller.py	2014-04-02 19:35:09 +0000
+++ tests/functional/openlp_plugins/presentations/test_pptviewcontroller.py	2014-04-19 05:48:00 +0000
@@ -47,7 +47,7 @@
     """
     Test the PptviewController Class
     """
-#TODO: Items left to test
+# TODO: Items left to test
 #   PptviewController
 #       start_process(self)
 #       kill
@@ -108,7 +108,7 @@
     """
     Test the PptviewDocument Class
     """
-    #TODO: Items left to test
+    # TODO: Items left to test
     #   PptviewDocument
     #       __init__
     #       create_thumbnails

=== modified file 'tests/functional/openlp_plugins/songs/test_ewimport.py'
--- tests/functional/openlp_plugins/songs/test_ewimport.py	2014-04-15 05:28:51 +0000
+++ tests/functional/openlp_plugins/songs/test_ewimport.py	2014-04-19 05:48:00 +0000
@@ -141,7 +141,7 @@
         self.assertIsNotNone(field_desc_entry, 'Import should not be none')
         self.assertEqual(field_desc_entry.name, name, 'FieldDescEntry.name should be the same as the name argument')
         self.assertEqual(field_desc_entry.field_type, field_type,
-                          'FieldDescEntry.type should be the same as the type argument')
+                         'FieldDescEntry.type should be the same as the type argument')
         self.assertEqual(field_desc_entry.size, size, 'FieldDescEntry.size should be the same as the size argument')
 
     def create_importer_test(self):
@@ -231,8 +231,8 @@
 
             # THEN: get_field should return the known results
                 self.assertEqual(return_value, result,
-                                  'get_field should return "%s" when called with "%s"' %
-                                  (result, TEST_FIELDS[field_index]))
+                                 'get_field should return "%s" when called with "%s"' %
+                                 (result, TEST_FIELDS[field_index]))
 
     def get_memo_field_test(self):
         """
@@ -404,10 +404,10 @@
                     self.assertEqual(importer.copyright, song_copyright)
                 if ccli_number:
                     self.assertEqual(importer.ccli_number, ccli_number, 'ccli_number for %s should be %s'
-                                                                         % (title, ccli_number))
+                                                                        % (title, ccli_number))
                 for verse_text, verse_tag in add_verse_calls:
                     mocked_add_verse.assert_any_call(verse_text, verse_tag)
                 if verse_order_list:
                     self.assertEqual(importer.verse_order_list, verse_order_list,
-                                      'verse_order_list for %s should be %s' % (title, verse_order_list))
+                                     'verse_order_list for %s should be %s' % (title, verse_order_list))
                 mocked_finish.assert_called_with()

=== modified file 'tests/functional/openlp_plugins/songs/test_foilpresenterimport.py'
--- tests/functional/openlp_plugins/songs/test_foilpresenterimport.py	2014-03-06 20:56:31 +0000
+++ tests/functional/openlp_plugins/songs/test_foilpresenterimport.py	2014-04-19 05:48:00 +0000
@@ -44,7 +44,7 @@
     """
     Test the functions in the :mod:`foilpresenterimport` module.
     """
-    #TODO: The following modules still need tests written for
+    # TODO: The following modules still need tests written for
     #   xml_to_song
     #   _child
     #   _process_authors

=== modified file 'tests/functional/openlp_plugins/songs/test_lib.py'
--- tests/functional/openlp_plugins/songs/test_lib.py	2014-04-14 19:36:07 +0000
+++ tests/functional/openlp_plugins/songs/test_lib.py	2014-04-19 05:48:00 +0000
@@ -129,7 +129,6 @@
         # THEN: The result should be a tuple of songs..
         assert result == (self.song1, self.song2), 'The result should be the tuble of songs'
 
-
     def songs_probably_equal_different_song_test(self):
         """
         Test the songs_probably_equal function with two different songs.

=== modified file 'tests/functional/openlp_plugins/songs/test_songbeamerimport.py'
--- tests/functional/openlp_plugins/songs/test_songbeamerimport.py	2014-04-14 18:33:34 +0000
+++ tests/functional/openlp_plugins/songs/test_songbeamerimport.py	2014-04-19 05:48:00 +0000
@@ -91,7 +91,7 @@
                 # THEN: do_import should return none and the progress bar maximum should not be set.
                 self.assertIsNone(importer.do_import(), 'do_import should return None when import_source is not a list')
                 self.assertEqual(mocked_import_wizard.progress_bar.setMaximum.called, False,
-                                  'setMaxium on import_wizard.progress_bar should not have been called')
+                                 'setMaxium on import_wizard.progress_bar should not have been called')
 
     def valid_import_source_test(self):
         """
@@ -149,10 +149,10 @@
                     mocked_add_verse.assert_any_call(verse_text, verse_tag)
                 if song_book_name:
                     self.assertEqual(importer.song_book_name, song_book_name, 'song_book_name for %s should be "%s"' %
-                                                                               (song_file, song_book_name))
+                                                                              (song_file, song_book_name))
                 if song_number:
                     self.assertEqual(importer.song_number, song_number, 'song_number for %s should be %s' %
-                                                                         (song_file, song_number))
+                                                                        (song_file, song_number))
                 mocked_finish.assert_called_with()
 
     def check_verse_marks_test(self):

=== modified file 'tests/functional/openlp_plugins/songs/test_songshowplusimport.py'
--- tests/functional/openlp_plugins/songs/test_songshowplusimport.py	2014-04-15 05:28:51 +0000
+++ tests/functional/openlp_plugins/songs/test_songshowplusimport.py	2014-04-19 05:48:00 +0000
@@ -96,7 +96,7 @@
                 # THEN: do_import should return none and the progress bar maximum should not be set.
                 self.assertIsNone(importer.do_import(), 'do_import should return None when import_source is not a list')
                 self.assertEqual(mocked_import_wizard.progress_bar.setMaximum.called, False,
-                                  'setMaximum on import_wizard.progress_bar should not have been called')
+                                 'setMaximum on import_wizard.progress_bar should not have been called')
 
     def valid_import_source_test(self):
         """
@@ -144,8 +144,8 @@
             # THEN: The returned value should should correlate with the input arguments
             for original_tag, openlp_tag in test_values:
                 self.assertEqual(importer.to_openlp_verse_tag(original_tag), openlp_tag,
-                                  'SongShowPlusImport.to_openlp_verse_tag should return "%s" when called with "%s"' %
-                                  (openlp_tag, original_tag))
+                                 'SongShowPlusImport.to_openlp_verse_tag should return "%s" when called with "%s"' %
+                                 (openlp_tag, original_tag))
 
     def to_openlp_verse_tag_verse_order_test(self):
         """
@@ -173,5 +173,5 @@
             # THEN: The returned value should should correlate with the input arguments
             for original_tag, openlp_tag in test_values:
                 self.assertEqual(importer.to_openlp_verse_tag(original_tag, ignore_unique=True), openlp_tag,
-                                  'SongShowPlusImport.to_openlp_verse_tag should return "%s" when called with "%s"' %
-                                  (openlp_tag, original_tag))
+                                 'SongShowPlusImport.to_openlp_verse_tag should return "%s" when called with "%s"' %
+                                 (openlp_tag, original_tag))

=== modified file 'tests/helpers/songfileimport.py'
--- tests/helpers/songfileimport.py	2014-04-15 05:28:51 +0000
+++ tests/helpers/songfileimport.py	2014-04-19 05:48:00 +0000
@@ -117,23 +117,23 @@
             self.mocked_add_copyright.assert_called_with(song_copyright)
         if ccli_number:
             self.assertEqual(importer.ccli_number, ccli_number, 'ccli_number for %s should be %s' %
-                                                                 (source_file_name, ccli_number))
+                                                                (source_file_name, ccli_number))
         for verse_text, verse_tag in add_verse_calls:
             self.mocked_add_verse.assert_any_call(verse_text, verse_tag)
         if topics:
             self.assertEqual(importer.topics, topics, 'topics for %s should be %s' % (source_file_name, topics))
         if comments:
             self.assertEqual(importer.comments, comments, 'comments for %s should be "%s"' %
-                                                           (source_file_name, comments))
+                                                          (source_file_name, comments))
         if song_book_name:
             self.assertEqual(importer.song_book_name, song_book_name, 'song_book_name for %s should be "%s"' %
-                                                                       (source_file_name, song_book_name))
+                                                                      (source_file_name, song_book_name))
         if song_number:
             self.assertEqual(importer.song_number, song_number, 'song_number for %s should be %s' %
-                                                                 (source_file_name, song_number))
+                                                                (source_file_name, song_number))
         if verse_order_list:
             self.assertEqual(importer.verse_order_list, [], 'verse_order_list for %s should be %s' %
-                                                             (source_file_name, verse_order_list))
+                                                            (source_file_name, verse_order_list))
         self.mocked_finish.assert_called_with()
 
     def _get_data(self, data, key):

=== modified file 'tests/interfaces/openlp_plugins/bibles/test_lib_parse_reference.py'
--- tests/interfaces/openlp_plugins/bibles/test_lib_parse_reference.py	2014-04-15 05:28:51 +0000
+++ tests/interfaces/openlp_plugins/bibles/test_lib_parse_reference.py	2014-04-19 05:48:00 +0000
@@ -104,4 +104,4 @@
         results = parse_reference('1 Timothy 1:1-2:1', self.manager.db_cache['tests'], MagicMock(), 54)
         # THEN a verse array should be returned
         self.assertEqual([(54, 1, 1, -1), (54, 2, 1, 1)], results, "The bible verses should matches the expected "
-                                                                    "results")
+                                                                   "results")


Follow ups