summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2010-11-30 20:01:11 +0100
committerAnton Khirnov <anton@khirnov.net>2010-11-30 20:01:11 +0100
commitfe25e1469cddc0c99943d04f15df913d35382f96 (patch)
tree7db1717e71cd2450cff066dcc60fe8757ecfd7a4
parentb12a662d27b700158e66943253b79c230566e8b9 (diff)
Playlist: add a shuffle button to the toolbar.
-rw-r--r--icons.qrc1
-rw-r--r--icons/shuffle.pngbin0 -> 5967 bytes
-rw-r--r--nephilim/icons.py420
-rw-r--r--nephilim/mpclient.py5
-rw-r--r--nephilim/plugins/Playlist.py1
5 files changed, 407 insertions, 20 deletions
diff --git a/icons.qrc b/icons.qrc
index f0b1d65..aa0a636 100644
--- a/icons.qrc
+++ b/icons.qrc
@@ -24,5 +24,6 @@
<file>icons/repeat.png</file>
<file>icons/save.png</file>
<file>icons/single.png</file>
+<file>icons/shuffle.png</file>
</qresource>
</RCC>
diff --git a/icons/shuffle.png b/icons/shuffle.png
new file mode 100644
index 0000000..c2a3e04
--- /dev/null
+++ b/icons/shuffle.png
Binary files differ
diff --git a/nephilim/icons.py b/nephilim/icons.py
index 41bcdd0..511f3ab 100644
--- a/nephilim/icons.py
+++ b/nephilim/icons.py
@@ -2,8 +2,8 @@
# Resource object code
#
-# Created: Fri Aug 28 11:23:50 2009
-# by: The Resource Compiler for PyQt (Qt v4.5.2)
+# Created: Tue Nov 30 20:00:38 2010
+# by: The Resource Compiler for PyQt (Qt v4.6.3)
#
# WARNING! All changes made in this file will be lost!
@@ -4183,6 +4183,381 @@ qt_resource_data = "\
\x37\x31\x30\x37\x2c\x30\x2e\x37\x30\x37\x31\x30\x37\x2c\x30\x2e\
\x30\x30\x30\x30\x30\x30\x2c\x30\x2e\x30\x30\x30\x30\x30\x30\x29\
\x22\x20\x2f\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\
+\x00\x00\x17\x4f\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\
+\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\x06\xec\x00\x00\x06\xec\
+\x01\x1e\x75\x38\x35\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\x16\xcc\x49\x44\
+\x41\x54\x78\x9c\xed\x9d\x6b\x8c\x24\x57\x75\xc7\x7f\xf5\xea\xea\
+\xc7\xf4\xcc\xf4\xbc\xbc\xde\x99\xf5\x8e\xc7\xeb\xd9\xc5\xc6\x16\
+\x42\x81\x0f\x89\x22\xc8\x53\x10\x13\x8c\x14\x14\x42\x90\x51\xe0\
+\x03\x89\x22\xc4\x9a\x38\x09\x84\x9b\x28\x10\xa9\x12\x01\x46\x32\
+\x82\x44\x51\x94\x38\x10\x42\x04\x4a\x02\x86\x80\x88\x42\x1e\x16\
+\x08\x4b\x8e\xa5\x20\x13\x84\x77\x6d\xbc\x64\x67\x77\xf0\x7a\x5e\
+\x3b\xfd\x98\xe9\x77\x55\x3e\xf4\xdc\xeb\xaa\x9a\xea\x9e\x9e\x99\
+\x7e\x8d\xbb\xff\x52\x6b\x77\xba\xeb\x71\xab\xce\xff\x9e\x7b\xee\
+\xb9\xe7\x9c\xab\x79\x9e\xc7\x08\xc3\x0b\xbd\xdf\x0d\x18\xa1\xbf\
+\x18\x11\x60\xc8\x31\x22\xc0\x90\x63\x44\x80\x21\xc7\x88\x00\x43\
+\x8e\x11\x01\x86\x1c\x23\x02\x0c\x39\x46\x04\x18\x72\x8c\x08\x30\
+\xe4\x18\x11\x60\xc8\x31\x22\xc0\x90\x63\x44\x80\x21\xc7\x88\x00\
+\x43\x8e\x11\x01\x86\x1c\x23\x02\xf4\x18\x42\x88\x5f\xe8\x77\x1b\
+\xfc\x18\x11\xa0\xf7\xf8\x3b\x21\xc4\xa3\x42\x88\xb1\x7e\x37\x04\
+\x46\x04\xe8\x07\x34\xe0\x5d\xc0\xff\x08\x21\x5e\xd3\xef\xc6\x8c\
+\x08\xd0\x3f\xdc\x09\x7c\x47\x08\xf1\x07\x42\x88\xbe\xc9\x61\x44\
+\x80\xfe\xc2\x02\xfe\x14\xf8\x0f\x21\xc4\x42\x3f\x1a\x30\x22\xc0\
+\x60\xe0\xf5\xc0\xf7\x84\x10\x6f\xed\xf5\x8d\x47\x04\x18\x1c\x64\
+\x80\x7f\x14\x42\xfc\x4d\x2f\x0d\xc4\x11\x01\xfa\x88\xf1\xf1\x71\
+\xd2\xe9\x74\xf8\xeb\x77\xd3\x43\x03\x71\x44\x80\x3e\xc2\xb2\x2c\
+\xce\x9f\x3f\xcf\xfc\xfc\x3c\x9a\xa6\xf9\x7f\xea\x99\x81\x38\x22\
+\x40\x1f\xe1\x79\x1e\xae\xeb\x72\xea\xd4\x29\xce\x9f\x3f\x4f\x3c\
+\x1e\xf7\xff\xdc\x13\x03\x71\x44\x80\x01\x80\xe7\x79\x24\x12\x09\
+\x2e\x5c\xb8\xc0\xd4\xd4\x54\xf8\xe7\xd7\xd3\x45\x03\x71\x44\x80\
+\x3e\x42\x6a\x00\xd7\x75\xf1\x3c\x0f\x4d\xd3\x38\x7b\xf6\x2c\x8b\
+\x8b\x8b\x18\x86\xe1\x3f\xb4\x6b\x06\xe2\x88\x00\x7d\x86\x4c\xcd\
+\xf3\x93\x61\x62\x62\x82\x0b\x17\x2e\x30\x36\xb6\x4f\xd6\x1d\x37\
+\x10\xb5\xa8\xdc\x40\x21\xc4\x38\xf0\xb1\x4e\xdd\xe4\x00\x54\x80\
+\x1f\xef\x7d\x56\xe5\xc7\x71\x9c\x7c\x8f\xee\x7f\x68\x08\x21\x26\
+\x81\xf9\xd0\xe7\x14\x60\xb6\x71\xfa\x3b\x81\x04\x40\x26\x93\xe1\
+\xcc\x99\x33\x00\xac\xad\xad\x51\xa9\x54\x58\x58\x78\x69\xb8\xd7\
+\x34\x8d\xb5\xb5\x35\x5e\x78\xe1\x85\xf0\x35\xaa\xc0\x1f\x03\x1f\
+\x75\x1c\xc7\x3d\xce\xb3\x34\x23\xc0\x29\x60\xdf\x5d\x7b\x8c\x3c\
+\xf0\x2d\xe0\xcb\xc0\x57\x1d\xc7\x59\xef\x57\x43\x84\x10\x19\xe0\
+\x3e\xe0\x2d\xc0\x2f\x02\xfb\xe6\x6e\x47\x41\x26\x93\x51\x02\xbf\
+\x71\xe3\x06\x4f\x3f\xfd\x34\xb7\xdc\x72\x0b\x77\xdf\x7d\x37\x96\
+\x65\xa9\xe3\x4a\xa5\x12\x2b\x2b\x2b\x94\xcb\xe5\xf0\x25\x1e\x07\
+\x1e\x70\x1c\xe7\xfa\x51\xdb\x30\xc8\x04\xf0\xa3\x0e\x7c\x07\xf8\
+\x12\xf0\x98\xe3\x38\x57\xbb\x7d\x43\x21\xc4\x6d\xc0\x9b\x69\x08\
+\xfd\x75\xb4\xd7\xbb\x0f\x85\xa5\xa5\x25\x92\xc9\x24\x00\xd7\xae\
+\x5d\xe3\x99\x67\x9e\x01\xc0\xb6\x6d\xee\xb9\xe7\x9e\x7d\x06\xe1\
+\xea\xea\x2a\x37\x6f\xde\x0c\x5f\xe6\x26\xf0\x1e\xc7\x71\xfe\xe9\
+\x28\x6d\x68\x8b\x00\xa9\x54\x8a\x58\x2c\x76\x94\xeb\x1f\x08\xd7\
+\x75\xa9\x56\xab\x54\x2a\x15\x6a\xb5\x5a\xbb\xa7\x3d\x06\x7c\xc0\
+\x71\x9c\x67\x3b\xdd\x1e\x21\xc4\x39\xe0\xc3\xc0\xdb\x69\xd3\x46\
+\x32\x4d\x93\x58\x2c\x86\xae\xb7\x67\x52\x69\x9a\xc6\xf4\xf4\x34\
+\xb3\xb3\xb3\xec\xee\xee\x02\xf0\xc4\x13\x4f\xb0\xb3\xb3\x13\x38\
+\x6e\x71\x71\x91\x3b\xee\xb8\x43\x5d\x57\xd3\x34\x72\xb9\x1c\xab\
+\xab\xab\xd4\xeb\xf5\xf0\x65\x1f\x05\x2e\x3a\x8e\x53\x68\xab\x11\
+\xb2\x2d\xed\x10\xe0\xcc\x99\x33\x51\x1e\xab\x8e\x40\xd3\x34\xf5\
+\x01\xa8\x56\xab\x8a\x10\xd9\x6c\x96\x7c\x3e\x4f\x93\x1a\x06\x35\
+\xe0\x2f\x81\x8f\x38\x8e\xb3\x71\xdc\x76\x08\x21\xce\x00\x7f\x44\
+\x63\xa9\x36\xb2\xb7\xdb\xb6\xcd\xc4\xc4\x04\xc9\x64\x12\xd3\x34\
+\xb1\x2c\x0b\xd3\x6c\x1c\x7a\x94\x3a\x0b\x9e\xe7\xe1\x79\x1e\x9b\
+\x9b\x9b\x7c\xf7\xbb\xdf\x8d\x3c\x26\x9d\x4e\x73\xcf\x3d\xf7\x28\
+\x4d\x01\x50\xaf\xd7\x59\x5d\x5d\xa5\x50\xd8\x27\xeb\xe7\x80\x77\
+\x38\x8e\xf3\x54\xbb\x6d\x68\x8b\x00\x0b\x0b\x0b\xa4\x52\xa9\x76\
+\xaf\xd9\x31\xc8\x97\x5b\x28\x14\xc8\xe5\x72\xe4\x72\xb9\x28\xe6\
+\xe7\x68\x38\x4c\x3e\xe9\x38\x4e\xe9\xb0\xf7\x10\x42\xcc\x01\x1f\
+\x02\x7e\x0b\xb0\xc3\xbf\xa7\x52\x29\xd2\xe9\x34\xe9\x74\x1a\xdb\
+\xb6\xa3\xee\x7f\x2c\xe4\xf3\x79\x2e\x5d\xba\x44\x2e\x97\x6b\x7a\
+\x8c\x61\x18\xdc\x79\xe7\x9d\xcc\xcf\xcf\xab\xef\x34\x4d\x63\x73\
+\x73\x93\xb5\xb5\xb5\x30\xf9\x0e\x65\x20\xb6\x4d\x00\xc9\xc0\x7c\
+\x3e\x1f\x65\x8c\x1c\x19\xba\xae\x63\xdb\x36\xb6\x6d\x2b\x81\x47\
+\xc1\x30\x0c\x0c\xc3\x50\x0f\x1d\x21\x88\x1f\x01\xf7\x3b\x8e\xf3\
+\xbf\xed\xde\x5b\x08\xf1\xcb\xc0\x67\x69\xcc\xb3\x03\x98\x9a\x9a\
+\x62\x66\x66\x06\xd3\x34\x71\xdd\xc6\x7b\x94\x73\xf5\xf0\x3b\xab\
+\xd5\x6a\x94\x4a\xa5\x43\x69\x81\x52\xa9\xd4\x6c\x4c\x6f\x8a\xd9\
+\xd9\x59\x2e\x5c\xb8\x80\x65\x59\xaa\x2d\x95\x4a\x85\xd5\xd5\xd5\
+\x23\x1b\x88\x6d\x11\x60\x7e\x7e\x5e\x11\xe0\x99\x67\x9e\x61\x6d\
+\x6d\xad\xed\x46\x1f\x06\x92\x0c\xf1\x78\x9c\xe9\xe9\x69\x66\x66\
+\x66\xb0\xed\x60\xa7\xd4\x34\x0d\x5d\xd7\xd9\xd8\xd8\x60\x73\x73\
+\x33\xfc\xd2\xf3\xc0\xdb\x1d\xc7\xf9\x7a\xab\xfb\x08\x21\x4c\xe0\
+\xcf\x80\xdf\x0d\xff\x36\x31\x31\xc1\xec\xec\xac\x12\xbc\xdf\x47\
+\xef\xba\x2e\xdb\xdb\xdb\x6c\x6c\x6c\xb0\xb3\xb3\x43\xa5\x52\xa1\
+\x54\x2a\x29\x82\xf4\x02\xb6\x6d\xf3\x8a\x57\xbc\x82\x4c\x26\xa3\
+\x48\x00\x8d\x69\xe4\x51\x0c\xc4\xb6\x09\x90\x48\x24\x00\xb8\x74\
+\xe9\x52\xd7\x08\x10\x85\x74\x3a\xad\x0c\x26\xd9\x06\x68\x68\x04\
+\xd7\x75\x79\xf1\xc5\x17\xc3\xea\xd3\x05\x1e\x72\x1c\xe7\x91\xa8\
+\xeb\xed\x8d\xf5\x5f\x00\x7e\x32\x7c\x9f\xd9\xd9\x59\x2c\xcb\x52\
+\x02\xd5\x34\x8d\x6a\xb5\xca\xd6\xd6\x16\x9b\x9b\x9b\x6c\x6e\x6e\
+\x76\x7c\x08\x38\x0a\x34\x4d\x63\x61\x61\x81\xdb\x6f\xbf\x5d\x11\
+\x40\xd3\x34\x76\x77\x77\x79\xe1\x85\x17\x9a\x19\x88\xef\x73\x1c\
+\x67\x67\xdf\xb5\xda\x21\xc0\xe9\xd3\xa7\x03\x04\x58\x5f\xef\xfd\
+\x94\x5c\xd3\x34\xe6\xe6\xe6\x58\x5c\x5c\x0c\xcc\x48\x2c\xcb\x22\
+\x9b\xcd\xee\x73\x96\x94\xcb\xe5\x7f\xb6\x6d\xfb\xd7\x1c\xc7\x51\
+\x53\x0b\x21\xc4\x1b\x81\xcf\x01\xd3\xfe\xeb\x9e\x3a\x75\x8a\xf1\
+\xf1\x71\xf5\xe2\x34\x4d\xa3\x56\xab\x71\xfd\xfa\x75\xae\x5f\xbf\
+\x3e\x10\x42\x8f\xc2\xe4\xe4\x24\xf7\xde\x7b\xaf\xfa\x5b\xd3\x34\
+\xea\xf5\x3a\x57\xaf\x5e\x8d\x6a\xf3\xb3\xc0\x1b\x1c\xc7\xf9\x91\
+\xff\xcb\xb6\xe6\x2d\xd2\x5a\xed\x67\x45\x31\xcf\xf3\x78\xf1\xc5\
+\x17\x79\xea\xa9\xa7\xd4\x03\x7a\x9e\x47\xa5\x52\x21\x95\x4a\x71\
+\xf6\xec\x59\x35\x5d\x2a\x97\xcb\x94\x4a\xa5\x5f\x29\x16\x8b\x4f\
+\x0a\x21\x2c\x00\x21\xc4\x3b\x80\xaf\xe3\x13\x7e\x2c\x16\x63\x71\
+\x71\x91\x54\x2a\x45\xad\x56\xc3\xf3\x3c\xea\xf5\x3a\x2b\x2b\x2b\
+\x3c\xf9\xe4\x93\xcd\x5e\xe4\x40\x60\x7c\x7c\x9c\xe5\xe5\xe5\x80\
+\x6c\xca\xe5\x72\xb3\x29\x62\x99\xc6\x8c\xe9\xff\xc2\x3f\xb4\xed\
+\xdc\xf0\xfb\xac\xfb\x09\xd7\x75\x59\x59\x59\xe1\xc6\x8d\x1b\x2c\
+\x2d\x2d\x31\x3d\x3d\x4d\xbd\x5e\xc7\x30\x0c\x16\x17\x17\xb9\x72\
+\xe5\x0a\xc5\x62\x11\x4d\xd3\x28\x97\xcb\xaf\xd6\x75\xfd\x1f\x84\
+\x10\x9f\x01\x3e\x43\x23\x22\x17\x68\xbc\xc0\xb9\xb9\x39\xe5\x7f\
+\x07\xd8\xdc\xdc\xe4\x87\x3f\xfc\x21\xd5\x6a\xb5\x2f\xcf\xd6\x0e\
+\x34\x4d\xe3\xcc\x99\x33\x9c\x39\x73\x26\x60\x90\xe6\x72\xb9\x28\
+\x9b\x08\xe0\xfb\xc0\xaf\x37\x33\x8e\x0f\x4d\x80\x4c\x26\xd3\x51\
+\xa7\x50\xbd\x5e\x57\x4e\xa0\x4a\xa5\x42\xa5\x52\x69\x8b\x64\x95\
+\x4a\x85\x4b\x97\x2e\xa9\x97\x01\x8d\x9e\xaf\x69\x1a\xa6\x69\x52\
+\xaf\xd7\xa5\x2a\x7f\xab\x6d\xdb\xf7\xe3\x7b\xd6\xd9\xd9\x59\x26\
+\x26\x26\x54\x4f\xf1\x3c\x8f\xab\x57\xaf\xb2\xba\xba\xda\x76\xbb\
+\x75\x5d\x27\x99\x4c\x62\xdb\x36\xb1\x58\x8c\x58\x2c\x16\x0e\xea\
+\x68\x89\x72\xb9\xdc\x6c\x36\xd3\x14\xb6\x6d\x73\xfe\xfc\x79\xe5\
+\x93\x91\x0b\x48\xeb\xeb\xeb\xca\xa1\x14\xc2\xa7\x81\xdf\x6b\x35\
+\x3d\x6e\x8b\x00\x52\xc5\x68\x9a\xc6\xec\xec\x2c\xb3\xb3\xb3\x6d\
+\x37\xfa\xb0\xa8\xd7\xeb\xe4\x72\x39\xb6\xb7\xb7\xd9\xde\xde\xa6\
+\x58\x2c\xb6\x3c\xfe\xda\xb5\x6b\x14\x8b\x45\x96\x96\x96\xb8\x71\
+\xe3\x06\xb5\x5a\x8d\x54\x2a\x45\x3e\x9f\x57\x42\xa2\x11\x5c\x01\
+\xc0\xcc\xcc\x0c\xe9\x74\x5a\x79\x1d\x2b\x95\x0a\x97\x2f\x5f\x26\
+\x9f\x3f\x78\xed\xc9\xb2\x2c\x32\x99\x0c\x53\x53\x53\x4c\x4e\x4e\
+\xb6\xed\xf9\x6b\x86\xdb\x6e\xbb\x8d\xb5\xb5\x35\xae\x5f\xbf\x7e\
+\xa0\xd6\x99\x99\x99\xe1\x8e\x3b\xee\xc0\x30\x0c\xd5\x41\x8a\xc5\
+\x22\x1b\x1b\x1b\x51\x24\x5a\x03\xde\x7d\xd0\x6c\x08\x0e\xe9\xdf\
+\xee\x85\xfa\xd7\x75\x9d\xc9\xc9\x49\x26\x27\x27\x01\xd8\xdd\xdd\
+\xe5\xda\xb5\x6b\x6c\x6d\x6d\x35\x3d\x47\x4e\xcb\xd2\xe9\xb4\x52\
+\x8b\xa9\x54\x0a\x5d\xd7\x03\xbd\x32\x93\xc9\x90\x4e\xa7\xd5\x0b\
+\xdb\xde\xde\x6e\x4b\xe5\xc7\xe3\x71\x16\x16\x16\x98\x99\x99\x09\
+\x5c\xef\xb8\xef\x43\xd7\x75\x4e\x9d\x3a\x85\xae\xeb\x3c\xff\xfc\
+\xf3\x91\xc7\x18\x86\xc1\xd2\xd2\x12\x33\x33\x33\x81\x7b\xde\xbc\
+\x79\xb3\x99\xf3\xe8\x1b\xc0\xbb\x1c\xc7\x79\xb1\x9d\x36\xb4\x45\
+\x80\xdd\xdd\x5d\x2a\x95\x4a\x3b\x87\x1e\x09\xd2\xc9\x63\x9a\x66\
+\xc0\xf1\x02\x90\x48\x24\x58\x5e\x5e\xa6\x50\x28\x70\xfd\xfa\x75\
+\xb6\xb7\xb7\xf7\x9d\xaf\x69\x1a\xc5\x62\x91\x7a\xbd\xae\x88\x13\
+\x0a\xa8\x60\x7c\x7c\x3c\xa0\xf6\xb7\xb7\xb7\xb9\x7c\xf9\x72\x4b\
+\x21\xda\xb6\xcd\xfc\xfc\x3c\xb3\xb3\xb3\x4a\xf0\xfe\xe3\x6b\xb5\
+\x1a\xd5\x6a\x95\x5a\xad\xa6\x8c\xd2\x76\xa0\x69\x1a\x53\x53\x53\
+\xd8\xb6\x4d\xb1\x58\x64\x66\x66\x86\x95\x95\x95\x7d\x44\x4c\xa7\
+\xd3\x9c\x3b\x77\x0e\xdb\xb6\xd5\xb5\xab\xd5\x2a\x9b\x9b\x9b\x51\
+\xf2\x28\x03\xbf\x0f\x7c\xca\x71\x9c\xb6\x99\xd9\x16\x01\x5a\xb9\
+\x29\x3b\x0d\xd3\x34\x49\x24\x12\xc4\xe3\x71\x12\x89\x84\x7a\xf0\
+\x54\x2a\xc5\xf9\xf3\xe7\xd9\xdc\xdc\xe4\xca\x95\x2b\x01\x92\xc8\
+\x63\x2a\x95\x0a\x85\x42\x81\xf1\xf1\xf1\xc0\x35\xc7\xc6\xc6\xc8\
+\x64\x32\x4a\xf8\x85\x42\x81\x67\x9f\x7d\xb6\xa5\xc0\x6e\xbd\xf5\
+\x56\x16\x16\x16\x94\x9a\x97\xc7\x96\x4a\x25\x8a\xc5\x22\xa5\x52\
+\xe9\x30\x8b\x57\xfb\x90\xcb\xe5\x38\x7b\xf6\xac\xba\xee\xdc\xdc\
+\x9c\xb2\x41\x34\x4d\x63\x7e\x7e\x9e\xd3\xa7\x4f\x07\x0c\xbd\x7c\
+\x3e\x4f\x36\x9b\x3d\xb4\xa1\xd7\x0a\x1d\x5f\xe2\x3c\x2e\x6a\xb5\
+\x1a\xf9\x7c\x9e\x7c\x3e\x8f\x61\x18\x4c\x4c\x4c\x90\x4a\xa5\xd4\
+\x43\xcb\x9e\xf3\xdc\x73\xcf\x45\x6a\xa5\x4a\xa5\x12\x18\x9b\x2d\
+\xcb\x62\x6a\x6a\x4a\x09\xbf\x58\x2c\x72\xf9\xf2\xe5\xa6\xde\x3b\
+\xd3\x34\x59\x5a\x5a\x52\x9a\xc4\x3f\xde\x66\xb3\xd9\x63\x09\x3d\
+\x8c\xad\xad\x2d\x26\x26\x26\x00\x54\x40\xa8\x6d\xdb\x2c\x2d\x2d\
+\xed\x33\xf4\xb6\xb6\xb6\x28\x95\x22\x6d\xb9\x03\x0d\xbd\x56\x18\
+\x38\x02\xf8\x51\xaf\xd7\xd9\xda\xda\x22\x9b\xcd\x92\xc9\x64\x88\
+\xc7\xe3\x78\x9e\x47\x32\x99\xe4\xae\xbb\xee\xe2\xf2\xe5\xcb\xfb\
+\x8c\x44\xf9\x42\x25\xe4\x34\x11\x5e\x9a\x39\x34\x13\x62\x2a\x95\
+\xe2\xdc\xb9\x73\xc4\x62\xb1\x80\x56\xc9\x66\xb3\x5d\x19\x02\x65\
+\x2c\xa0\xbf\xad\x67\xcf\x9e\x0d\x18\x7a\xa5\x52\x89\xed\xed\xed\
+\x63\x19\x7a\xad\xd0\x8c\x00\xeb\xc0\xed\xc7\xb9\xf0\x21\x60\x03\
+\x73\xc0\x2d\xc0\xdd\xc0\x1b\x80\xd7\xe2\x73\x52\xd5\xeb\x75\x36\
+\x36\x36\x54\x22\x85\xe7\x79\x98\xa6\xc9\xdc\xdc\x1c\xd7\xae\x5d\
+\x53\xbd\x39\x91\x48\x04\xd6\x0e\xd2\xe9\x74\x60\x4a\xd8\xca\xe0\
+\x1b\x1b\x1b\x63\x79\x79\x19\x5d\xd7\xd5\xcb\x2f\x14\x0a\xad\x96\
+\xa3\xcb\xc0\xbf\x01\xff\x45\x63\x21\xea\x47\x40\xb6\x8d\xe7\x7d\
+\x0a\x98\x91\x7f\xc8\x6b\x8f\x8f\x8f\x93\xc9\x64\xd4\x77\x9e\xe7\
+\x91\xcb\xe5\xf6\xc5\x08\xec\xe1\x50\x86\x5e\x2b\x44\xba\x82\xfb\
+\x0d\x21\xc4\x14\xf0\x00\x8d\x65\xda\x39\xff\x6f\x89\x44\x82\xa9\
+\xa9\x29\x6a\xb5\x9a\x5a\x05\xcb\xe5\x72\xca\x55\x2c\xd5\xbf\xae\
+\xeb\xdc\x7a\xeb\xad\x4a\xf8\xeb\xeb\xeb\xac\xac\xac\x44\xde\x2f\
+\x99\x4c\xb2\xbc\xbc\xac\x0c\x47\xcf\xf3\xd8\xde\xde\x6e\xa6\x72\
+\x2f\x01\x1f\x05\xbe\xec\x38\x4e\x3b\x02\x0f\x3f\xdb\x0d\x1a\x64\
+\x27\x99\x4c\xee\xd3\x58\xd0\x30\xf4\xb6\xb7\xb7\xa3\x34\xd5\x91\
+\x0c\xbd\x56\x18\x48\x02\x48\x08\x21\x52\x80\x00\x3e\x88\xcf\x8b\
+\x97\x4c\x26\xd1\x34\x4d\xad\x7e\x15\x8b\x45\x0c\xc3\x08\x44\xd1\
+\x4e\x4d\x4d\x29\x55\x5e\xab\xd5\xf8\xc1\x0f\x7e\x10\xe9\x74\x89\
+\xc7\xe3\x2c\x2f\x2f\x63\x9a\xa6\x1a\x6f\x6f\xde\xbc\x19\xf5\xf2\
+\x9f\x07\x3e\x02\x7c\xfe\x38\x81\x98\x61\x02\x84\x0d\xd6\x9d\x9d\
+\x1d\x0a\x85\x42\x47\x0d\xbd\x56\x18\x68\x1b\x60\x6f\xf5\xea\x43\
+\x42\x88\x27\x69\x2c\xe2\xa4\xa1\x31\x2d\xf5\xab\xf2\x44\x22\x11\
+\x88\x25\x90\xf1\x05\xb2\xf7\x37\x5b\xd0\x31\x0c\x83\x73\xe7\xce\
+\xa9\x31\xb7\x85\xf0\xff\x9a\x46\xb8\x55\xa4\xbb\xed\x38\x90\x82\
+\x96\x4b\xcd\x4d\x86\xa8\x63\x19\x7a\xad\x30\xd0\x04\x90\x70\x1c\
+\xe7\x2b\x42\x88\x9f\xa2\x11\x18\x9a\xae\xd7\xeb\xec\xee\xee\x12\
+\x8f\xc7\x55\x7c\x80\xdf\xf2\x4f\x24\x12\x6a\x5e\x9e\xcf\xe7\x9b\
+\x06\x5d\x9c\x3e\x7d\x5a\x09\x5f\xaa\xfd\x90\xf0\x73\x34\xd6\xd3\
+\xbf\xd8\xad\x67\x73\x5d\x97\x4a\xa5\x42\x3e\x9f\x8f\x9a\x99\x74\
+\xc4\xd0\x6b\x85\x13\x93\x18\xb2\xa7\xfa\xde\x0d\xa8\xe8\x17\xd9\
+\x5b\xfc\xc2\xd7\x34\x8d\x58\x2c\xa6\x2c\xec\x66\xb1\x0b\xa9\x54\
+\x4a\x05\x55\x78\x9e\x47\xa1\x50\x08\xf7\xbe\x1c\xf0\xf3\xdd\x14\
+\xbe\x24\x68\x36\x9b\x8d\x12\xfe\x37\x80\x7b\xbb\x29\x7c\x38\x41\
+\x04\x00\xd8\x8b\x6c\xf9\x73\xd9\x4b\xeb\xf5\x3a\xae\xeb\x06\x08\
+\x10\x8f\xc7\x95\xf0\xab\xd5\x6a\x54\xe0\xa4\x72\xb4\x48\xe1\x57\
+\xab\xd5\xf0\x74\x72\x17\x78\xd3\x61\x82\x2b\x8f\x02\xe9\x50\x0a\
+\xa1\x0c\x5c\x04\xee\xeb\x84\x95\x7f\x10\x4e\xc4\x10\xe0\x47\xa5\
+\x52\xf9\x08\xf0\x1e\x7c\x0b\x3c\x7e\xd8\xb6\xad\x7a\xd3\xcd\x9b\
+\x37\x23\xa7\x70\xd3\xd3\xd3\xca\x40\xd4\x34\x2d\x8a\x24\x6f\x73\
+\x1c\xe7\xdb\x9d\x6d\x79\x5b\xe8\x8a\xa1\xd7\x0a\x27\x4a\x03\x00\
+\x7c\xfc\xe3\x1f\x5f\xd7\x75\xfd\x2b\xf2\x6f\xbf\xcf\x5f\x2e\x05\
+\xfb\xc7\xf4\x28\xf8\x55\x7f\xb1\x58\x0c\x8f\xfb\x9f\x75\x1c\xe7\
+\x6b\xdd\x6a\x7f\x0b\x7c\x1a\x78\x4d\x2f\x85\x0f\x27\x50\x03\x00\
+\x68\x9a\xf6\x87\xc0\x5b\x81\x40\x0a\x55\x32\x99\x54\xc2\xdc\x8b\
+\x0a\xda\x77\x6e\x3c\x1e\x0f\x44\xd5\x86\x54\xff\x06\xf0\x50\x17\
+\x9b\x1e\x85\xae\x1b\x7a\xad\x70\xe2\x34\x00\xc0\x23\x8f\x3c\x72\
+\xd9\x30\x8c\x17\xc2\x01\x18\xd2\x8b\xe7\x79\x1e\xd9\x6c\xb4\x8f\
+\x66\x62\x62\x22\x30\xf6\x87\x86\x88\x3f\x71\x1c\x67\xb3\x7b\x2d\
+\xdf\x87\x9e\x18\x7a\xad\x70\x22\x09\x00\x60\x9a\xe6\xb7\xc3\x01\
+\x19\x72\xe5\xcc\xf3\xbc\xc8\xde\xaf\x69\x1a\xe3\xe3\xe3\x01\x3f\
+\xbf\x0f\x65\xe0\xf3\xdd\x6b\x71\x00\x65\xe0\x41\x7a\x64\xe8\xb5\
+\xc2\x89\x1c\x02\xf6\xf0\x9f\xba\xae\xff\xaa\xff\x0b\x4d\xd3\x94\
+\x01\x18\xe5\x50\xb1\x2c\x4b\x69\x09\x99\x54\xe1\xc3\x57\x1d\xc7\
+\x69\x1e\x75\xd2\x39\x7c\x1f\xf8\x1d\xc7\x71\xbe\xd7\x83\x7b\x1d\
+\x88\x13\x4b\x00\x4d\xd3\x9e\x8e\x0a\xc9\x92\xc9\x1c\x51\x04\x90\
+\x06\x22\x10\xe5\x19\xfc\x42\x17\x9a\x19\x85\x37\xf8\x43\xd5\xfb\
+\x8d\x13\x4b\x00\x5d\xd7\xaf\xf8\x9d\x27\xfe\xc0\x09\xe9\x1f\x08\
+\xc3\x4f\x80\x88\xe9\x61\xc7\x33\x8d\xa3\x30\x48\xc2\x87\x13\x6c\
+\x03\x58\x96\xb5\xae\xeb\xba\x92\xa2\x5c\xf6\x95\xb9\x02\x4d\xce\
+\x51\x36\x42\x04\x41\xae\x75\xb1\xb9\x03\x8b\x13\x4b\x00\xc7\x71\
+\x3c\x3f\x01\x74\x5d\x57\x31\xfe\xcd\x02\x3e\xfc\x7e\x7f\xbf\x06\
+\xf0\x3c\xcf\x3b\xca\xd2\xee\xcb\x01\x27\x96\x00\x00\x7e\x02\xf8\
+\x05\xdb\x8a\x00\xd2\x4d\x1c\x22\x40\xf7\x1b\x3b\xa0\x38\xb1\x04\
+\x10\x42\x68\x9a\xa6\xa9\xf6\xfb\xa7\x80\xcd\x92\x2d\xfc\xc7\xf8\
+\x85\xee\xba\xae\x76\xf1\xe2\xc5\xe9\xc8\x93\x5e\xe6\x38\xb1\x04\
+\x00\xa6\xf0\x05\x89\xc8\x71\xfd\x20\x0d\xe0\x5f\x7f\xf7\x9f\xeb\
+\x79\xde\xab\xba\xdb\xdc\xc1\xc4\x49\x26\x40\x20\x54\xcc\xdf\xbb\
+\xa3\x66\x00\xb2\x0c\x8d\xf4\x01\xf8\xb5\xc4\xde\x8a\xe2\x4f\x74\
+\xbf\xc9\xaa\x36\xc1\xc0\xe0\x24\x13\xe0\x7c\xf8\x8b\x56\x43\x40\
+\x2b\x82\xec\x69\x85\xfb\xbb\xd5\xd0\x10\xfe\x55\x08\x71\xef\xc1\
+\x87\xf5\x06\x27\x99\x00\x3f\x1b\xfe\xc2\xef\xe3\x0f\xa3\xd9\x0c\
+\x00\x1a\x1a\xa0\x5e\xaf\xbf\xf6\xa1\x87\x1e\xba\xb5\x7b\xcd\x55\
+\x78\x25\xf0\xdf\x42\x88\x8b\x42\x88\xf6\xb3\x49\xbb\x84\x97\x05\
+\x01\x4c\xd3\x54\xf9\xfd\xb5\x5a\x2d\xd2\x06\xf0\xc7\xfa\x87\x09\
+\xb0\x47\x0a\xa3\x5a\xad\x7e\xb8\xbb\x4d\x56\xb0\x81\x47\x80\xaf\
+\x0b\x21\x6e\xe9\xd1\x3d\x23\x71\x22\x09\x20\x84\x38\x4d\x23\x87\
+\x00\x78\xa9\x32\x46\xb3\x45\x20\x78\x89\x00\xfe\x7a\x00\x12\xf2\
+\x6f\xd7\x75\x1f\x78\xf0\xc1\x07\xcf\x74\xaf\xe5\xfb\xf0\x46\x1a\
+\x95\xc0\xef\xeb\xe1\x3d\x03\x38\x91\x04\xa0\xb1\x92\x16\x80\xbf\
+\x4a\x46\x18\x9a\xa6\x05\x12\x2c\xc3\x19\xbe\x3e\x42\x24\x68\x54\
+\x0d\xeb\x25\xe6\x80\xaf\x09\x21\x3e\x25\x84\x88\x1f\x78\x74\x87\
+\x71\xe2\x08\x20\x84\x98\x01\x7e\x5b\xfe\x6d\x18\x86\x52\xff\xcd\
+\x08\x20\x83\x46\x3c\xcf\x43\xd7\xf5\x80\x91\x58\xad\x56\x03\x51\
+\x45\xa6\x69\xfe\x8c\x10\xe2\x4d\x5d\x7c\x84\x66\x78\x2f\xf0\x94\
+\x10\xe2\x9e\x5e\xde\xf4\xc4\x11\x80\x46\x11\xc4\x40\xd5\xca\x6a\
+\xb5\x8a\xeb\xba\x14\x8b\xc5\xc8\x29\xa0\xec\xfd\x51\x1e\xbf\x6a\
+\xb5\x1a\xa8\x54\xba\x97\x5f\xf0\x45\x21\xc4\x4f\x77\xa3\xf1\x7e\
+\xc8\xe5\x69\x1f\x5e\x49\x83\x04\xef\xeb\x95\x81\x78\xa2\x08\xb0\
+\xb7\x6b\xc6\x7b\xe5\xdf\xb2\xf7\x4b\x34\xc9\xa3\x0b\x84\x89\x87\
+\xd5\xbf\x34\x1a\xa5\x16\xd8\xfb\x37\x49\x43\x2d\x77\x75\xe3\x26\
+\x5d\xd7\x89\xc7\xe3\xe1\x92\x3b\x36\xf0\x49\x7a\x64\x20\x9e\x18\
+\x02\xec\xa9\xc6\x47\xc3\xdf\xd7\x6a\x35\x5c\xd7\x6d\x9a\xaf\x6f\
+\xdb\xb6\xf2\x01\x18\x86\x11\x50\xff\xb2\x1e\x91\xf4\x1d\x84\x36\
+\x68\x18\x07\xfe\x5d\x08\xf1\xb6\xce\x3f\x4d\x03\x9e\xe7\xb1\xb3\
+\xb3\xa3\x32\x9e\x43\x21\x6e\x3d\x31\x10\x07\x3a\x37\x50\x42\x08\
+\x71\x3f\xbe\xd4\x30\x68\xa8\x4f\xd9\xe3\x65\x0c\x60\x98\x00\x9a\
+\xa6\x31\x39\x39\xa9\x7c\x00\x32\xbd\x5c\x42\x66\x02\xc9\xb4\xb2\
+\xb1\xb1\x31\xd2\xe9\x74\x54\x5d\xa2\x8e\xa5\x86\xf9\x73\x03\x2d\
+\xcb\x52\x36\x8b\xac\x67\x54\x2e\x97\xa3\x1c\x59\x5d\x4b\x0d\x1b\
+\x68\x02\x34\x4b\x0e\x35\x0c\x83\x72\xb9\x4c\xad\x56\x53\x91\xbd\
+\x51\x55\xb2\xe2\xf1\xb8\x2a\x72\x6d\x18\x86\x8a\x07\x80\xc6\xd4\
+\x6f\x6d\x6d\x0d\xd7\x75\x89\xc5\x62\x98\xa6\xa9\xd2\xc9\xe3\xf1\
+\x78\x14\x09\x3a\x9e\x1c\x6a\x59\xd6\xbe\x69\x6b\x22\x91\x90\x25\
+\xee\xc2\xa7\x76\x25\x67\x60\x20\x09\xd0\x2a\x3d\x5c\x0a\x5f\x7a\
+\xfb\x64\x45\x91\x30\x34\x4d\x63\x62\x62\x42\x19\x78\xfe\x72\x33\
+\xd0\x28\xd1\xe2\x4f\x08\x49\x26\x93\x6a\x08\x30\x0c\x43\xf5\xc6\
+\x08\xa3\xb2\x63\xe9\xe1\x96\x65\x45\x56\x41\x93\x65\x72\x22\xee\
+\xdf\x9b\xf4\x70\x21\x84\x01\xf4\xca\x21\x72\x60\x81\x08\x09\xc3\
+\x30\x02\x89\x1c\xae\xeb\x36\x2d\xe0\x10\x8f\xc7\x55\xd9\x15\xcb\
+\xb2\x02\xf9\x03\xb2\xc6\xb0\xff\x3c\x4d\xd3\x54\x49\x78\xf9\x77\
+\x32\x99\x6c\xea\x5a\xa6\x03\x05\x22\x4c\xd3\x54\x04\x28\x97\xcb\
+\xaa\x50\x96\xbc\x7f\x2a\x95\x52\x1b\x6a\x84\xd0\xdd\x02\x11\x83\
+\xb6\x65\x8c\x8c\xe4\xdd\xdd\xdd\x55\x41\x9f\xf5\x7a\x9d\x9d\x9d\
+\x9d\xa6\xb1\x7f\xa9\x54\x4a\x19\x7f\x61\x03\x2b\x9b\xcd\x36\x9d\
+\x31\x24\x12\x89\xc0\xde\x08\xb2\x10\xa4\xac\x04\xd6\x49\x98\xa6\
+\xa9\x86\x2e\x39\x8c\x25\x93\xc9\x40\x51\x6c\x79\xff\x88\x02\x9a\
+\x1d\x49\x28\x19\xe8\x59\x80\xac\xf3\x57\x2c\x16\x55\xfa\xb4\x8c\
+\xf9\x2b\x14\x0a\x91\xc2\xd7\x75\x5d\xa9\x7b\x39\xbe\x87\x4b\xbe\
+\xb7\x2a\x3e\x59\x2c\x16\x03\x35\x79\x4a\xa5\x12\xf9\x7c\x9e\x7a\
+\xbd\x4e\x2c\x16\xdb\x57\x7e\xee\x38\xf0\x07\xb2\xca\xd9\xc8\xce\
+\xce\x0e\xd9\x6c\x36\x70\xff\x9d\x9d\x9d\xa8\x7b\x77\xc4\x83\x38\
+\x50\x04\xd0\x34\x0d\xc3\x30\x54\x7c\x7f\xb1\x58\x24\x97\xcb\x29\
+\xf6\xbb\xae\x4b\xb9\x5c\x66\x77\x77\x37\x52\xed\xcb\xb1\xde\x3f\
+\xed\xf3\xab\x7e\x68\x08\xd8\x34\xcd\x96\x65\x5d\x6b\xb5\x9a\xaa\
+\x52\xea\xbf\x6f\x2e\x97\x53\x9e\x43\x69\x38\x1e\xb5\x5a\xa8\xdf\
+\x28\x0d\xab\x79\x59\x22\xa6\x5c\x2e\x2b\x5f\x85\x2c\x0f\x17\x51\
+\xa6\xf7\x58\x1e\xc4\xb6\x86\x00\x5d\xd7\x3b\x5a\x1e\xcd\x0f\xbf\
+\x55\x2e\xc7\xdb\x28\x55\x2b\x6b\x09\xb7\xda\x9c\x21\x1e\x8f\xab\
+\x31\x54\xd7\x75\x35\x0c\xf8\xaf\x21\x53\xc6\xa4\x26\x89\xda\x01\
+\xc4\x0f\xc3\x30\x02\xce\x1a\xff\xf1\x96\x65\x61\x18\xc6\xbe\x02\
+\x15\xed\x40\xfa\x24\x76\x76\x76\xa8\xd5\x6a\x4d\x6b\x31\xda\xb6\
+\x1d\xd8\x2f\xc8\xb2\x2c\x52\xa9\x54\xd4\x90\x70\x24\x03\xb1\x2d\
+\x02\xd4\x6a\xb5\xa6\x63\x66\xa7\xd0\x4c\x10\xb2\x98\x74\x2b\xc1\
+\xcb\xa2\x10\x7e\x03\x6a\x6c\x6c\x2c\x20\x14\xd7\x75\xd9\xd9\xd9\
+\x09\xe4\x03\xea\xba\xde\xcc\xd2\xdf\x07\xc3\x30\xb0\x6d\x1b\xcb\
+\xb2\x22\xb5\xc7\x41\x44\x6a\x85\x83\x2a\xb1\x4a\x32\xcb\x21\x40\
+\x3e\x9f\xdc\xd7\x20\x84\x43\x19\x88\x6d\xd3\xd6\x1f\x4c\xd1\x8d\
+\x8f\xd4\x00\x52\xe0\xa5\x52\x89\xdd\xdd\xdd\x03\xb7\x64\x91\x2b\
+\x7d\xfe\xc4\xd0\x44\x22\xb1\xaf\x47\x4a\x03\xd2\xaf\xfe\x63\xb1\
+\x18\x63\x63\x63\x2d\xf7\x2a\x92\x90\x65\x69\xb2\xd9\x2c\x85\x42\
+\x41\xf9\x21\xfc\xfb\x09\x1d\x06\x52\x03\xe5\xf3\xf9\x03\x6b\x10\
+\xba\xae\x4b\xa1\x50\x50\x3e\x03\xcf\x6b\x54\x16\x29\x95\x4a\x51\
+\x43\xc2\xa1\x3c\x88\x6d\x69\x00\x7f\xa5\x8d\x6e\x58\xc3\xcd\x02\
+\x35\x0e\x82\xae\xeb\x01\xd5\x2c\xa7\x4e\x11\xe3\xbe\x5b\xa9\x54\
+\x02\x11\xc4\x96\x65\xa9\x22\x52\x52\x18\xcd\x62\x09\xda\x6d\xcb\
+\x61\xd0\x6c\x71\xea\x20\x48\x1f\x81\xbf\x1c\xde\xd8\xd8\x58\xb3\
+\x58\xc8\x03\x3d\x88\x87\xde\x31\xc4\x1f\x54\xd1\xa9\xcf\x51\x5e\
+\x86\xdc\xb7\xcf\x8f\xb1\xb1\xb1\x7d\xdf\x01\x7f\xa1\xeb\xfa\x6f\
+\x68\x9a\xa6\xde\x8e\xf4\x10\xfa\x63\x04\x62\xb1\x98\xaa\x30\x7e\
+\x14\x1c\xe5\x99\x8f\x82\x5a\xad\xa6\xea\x19\x49\x8d\x29\xdd\xe0\
+\x11\x9a\xec\x40\x03\xb1\xed\xa7\x3d\xaa\xa0\x3a\x0d\xd9\xeb\xfd\
+\x45\x1d\x65\xda\x77\xc4\x0b\xf8\x26\xf0\xe0\xc3\x0f\x3f\xfc\xb9\
+\x58\x2c\xf6\x90\xec\xf9\x72\x75\x50\x0a\x5d\x5e\x47\x8e\xb5\xf1\
+\x78\xfc\xd8\x7b\x01\x74\x13\xd2\x27\x22\x67\x29\x72\xfa\x98\xcf\
+\xe7\xa3\x66\x38\x72\x89\xf9\xfd\x51\x4b\xcc\x87\x7a\xca\xe3\x30\
+\xf7\xb8\x90\xe5\x5f\xfc\x82\x97\xd3\x22\xb9\xe0\x13\xc2\x5f\x01\
+\xbf\xe4\x38\x4e\x15\xe0\x13\x9f\xf8\xc4\x23\xb6\x6d\x3f\x90\x48\
+\x24\x54\x0a\xb8\x24\x4f\x3a\x9d\x0e\x04\x8d\x9a\xa6\x49\x32\x99\
+\x1c\x78\x22\x84\x35\x68\xb5\x5a\x65\x77\x77\x37\xca\x48\xb5\x69\
+\x6c\x8c\xb9\x18\xfe\xa1\xed\x21\xa0\x1f\xc2\x97\x35\x00\xa5\xe0\
+\xe5\x78\xed\xba\x2e\x86\x61\xa8\xda\xc1\xa1\x07\x76\x81\xf7\x3b\
+\x8e\xf3\x9b\xe1\x4c\xdc\x87\x1f\x7e\xf8\xef\x35\x4d\x7b\x15\xf0\
+\x84\xff\x7b\xcf\x6b\x6c\x30\x21\x3d\x86\xf2\x85\x1a\x86\xa1\x4a\
+\xd7\x47\x04\x6f\xf4\x15\x96\x65\x29\x57\xb7\x24\xf2\xd8\xd8\x98\
+\xd2\x6e\x21\x3c\x0a\xbc\x3a\xbc\x63\x18\xb4\x69\x04\x96\xcb\x65\
+\x35\x7f\x8e\x0a\xaa\x3c\x0e\xfc\xc2\x0b\xff\xdf\xbf\x49\x83\xfc\
+\xbf\x54\xd3\x7e\x77\xa9\x0f\xc7\xde\x38\x52\xd6\x16\x90\xb3\x86\
+\x30\xf6\x42\xc8\x23\x67\x32\xbd\x80\x7f\xd6\x23\x11\x8b\xc5\x02\
+\xbe\x02\x1f\x3a\xb3\x71\xa4\x2c\x59\xde\x4f\xc4\x62\x31\xb5\x89\
+\x44\x13\x2f\x5e\x47\xb7\x8e\x95\x4b\xb2\x72\xba\x27\xbf\xeb\x94\
+\xa0\xa5\x87\xef\x30\x3b\x8d\x48\xef\xa1\x7f\xb3\x48\xb9\x71\x55\
+\xc4\x35\x1e\xa7\x8d\xad\x63\x0f\xa5\xd3\xba\xed\x0b\x08\x7f\x62\
+\xb1\x18\xe3\xe3\xe3\xcc\xce\xce\x32\x35\x35\x15\x15\x35\x03\x8d\
+\x8a\x9e\x1f\x04\xee\x3a\xec\x5a\xb9\xe3\x38\xff\x02\x5c\xa0\x11\
+\x82\x15\x58\x80\xf7\xdf\x7f\x72\x72\x92\x64\x32\xb9\x2f\xb9\xe4\
+\x38\x1f\x68\xcc\x64\xc2\xbd\x39\x0a\xd2\x78\xf5\x07\xb7\xca\x21\
+\xd0\x9f\xef\xb0\x87\x2a\x8d\x65\xf4\x9f\x3b\x48\xf8\x70\x08\x0d\
+\xd0\xad\x6d\x63\xa4\xff\x5f\xd7\x75\xb5\x77\x90\xb4\xf4\x0f\x78\
+\x31\x3d\xdf\x3e\x5e\x42\x06\xa1\xca\x69\xd8\x51\x67\x48\xfe\xf3\
+\x9b\xed\x63\xa0\xeb\xfa\xbe\xa9\x6d\x22\x91\x68\xa6\xf2\xbb\xb3\
+\x7d\xfc\x00\xe2\x31\xe0\x03\x8e\xe3\x74\xbc\xac\x8b\x10\xe2\x1c\
+\xf0\x61\xe0\xed\x74\x71\xb1\x4c\x7a\x2e\xd7\xd7\xd7\x55\xc1\xaa\
+\xb0\x2c\x64\x87\xf0\x9f\x93\x4e\xa7\xa3\x7c\x1d\xd0\x30\xf4\x2e\
+\x3a\x8e\xb3\xbf\x36\x6e\x0b\x9c\x14\x02\xd4\x69\x54\x0a\xff\x12\
+\xf0\x98\xe3\x38\x57\xbb\x7d\x43\x21\xc4\x6d\xc0\x9b\x81\xb7\x00\
+\xaf\xa3\x0b\xf5\x94\x3c\xcf\x53\xbb\x7d\x4a\xe3\x12\x82\xab\xa2\
+\x12\xb6\x6d\xef\x5b\xdf\xd8\xc3\x81\x86\x5e\x2b\x0c\x32\x01\xf2\
+\xc0\xb7\x80\x2f\xd3\x28\xe1\xd6\xfb\x1d\xab\xf7\x20\x84\xc8\x00\
+\xf7\xd1\x20\xc3\x2f\xe2\x0b\x4e\x3d\x0e\x5c\xd7\x65\x73\xb3\x51\
+\x97\xd2\x5f\xf8\x5a\x0a\xd9\xef\xde\x6e\x32\xeb\x79\x9c\x36\x0c\
+\xbd\x56\x68\x46\x80\x71\xe0\x63\x47\xbd\xe8\x21\x51\x01\x7e\xbc\
+\xf7\x59\x95\x1f\xc7\x71\x0e\xde\xca\xb3\x4f\x10\x42\x4c\x02\xf3\
+\xa1\xcf\x29\xda\xd3\x12\xef\xa4\x91\x82\x86\xeb\xba\x6c\x6c\x6c\
+\x04\xec\x07\xff\x9e\x45\xa6\x69\x36\x73\x72\x55\x69\x24\xc8\x7c\
+\xf4\x38\x01\xaa\x30\xa0\x41\xa1\x2f\x67\xf8\x83\x42\xeb\xf5\x3a\
+\xeb\xeb\x41\xc5\xe6\xdf\xf9\x54\x6e\x1d\x17\xc2\xa1\x0d\xbd\x56\
+\x18\xa8\x6a\x15\xc3\x0c\xbf\x06\x98\x9c\x9c\x0c\xec\x7e\xe6\xc3\
+\x91\x0c\xbd\x56\x18\x11\xa0\x8f\xf0\xfb\x05\xa4\x87\x6f\x62\x62\
+\x22\x4a\xe5\x1f\xcb\xd0\x6b\x85\x11\x01\xfa\x0c\xff\x82\x54\x28\
+\x35\x4d\xe2\x71\x8e\x69\xe8\xb5\xc2\xe0\xac\x6e\x0c\x29\x4c\xd3\
+\x64\x66\x66\x26\x4a\xf8\x87\xf2\xe8\x1d\xf9\xfe\xdd\xba\xf0\x08\
+\x07\xc3\x30\x8c\xc0\xce\xe4\x3e\x74\xd4\xd0\x6b\x85\x91\x06\xe8\
+\x23\xfc\x2b\x9e\x3e\xc8\xa5\xdb\xae\x0b\x1f\x46\x1a\x60\x90\xd0\
+\x35\x43\xaf\x15\x46\x04\x18\x0c\x3c\x4e\x17\x0d\xbd\x56\x18\x0d\
+\x01\xfd\x45\x4f\x0c\xbd\x56\x18\x69\x80\xfe\xa1\x67\x86\x5e\x2b\
+\x8c\x34\x40\xef\xe1\x01\x7f\x4b\x0f\x0d\xbd\x56\x18\x69\x80\xde\
+\xe3\x9d\x8e\xe3\x7c\xb3\xdf\x8d\x90\x18\x2d\x06\x0d\x39\x46\x43\
+\xc0\x90\x63\x44\x80\x21\xc7\x88\x00\x43\x8e\x11\x01\x86\x1c\x23\
+\x02\x0c\x39\x46\x04\x18\x72\x8c\x08\x30\xe4\x18\x11\x60\xc8\x31\
+\x22\xc0\x90\x63\x44\x80\x21\xc7\x88\x00\x43\x8e\x11\x01\x86\x1c\
+\x23\x02\x0c\x39\x46\x04\x18\x72\xfc\x3f\xe6\x72\xb6\xb3\x51\xda\
+\xb2\x72\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x06\x8a\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -25777,6 +26152,10 @@ qt_resource_name = "\
\x00\x74\x00\x6b\x00\x2d\x00\x70\x00\x72\x00\x65\x00\x66\x00\x65\x00\x72\x00\x65\x00\x6e\x00\x63\x00\x65\x00\x73\x00\x2e\x00\x73\
\x00\x76\x00\x67\
\x00\x0b\
+\x0d\xd7\xa0\xc7\
+\x00\x73\
+\x00\x68\x00\x75\x00\x66\x00\x66\x00\x6c\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0b\
\x0c\xe4\x9c\x07\
\x00\x63\
\x00\x6f\x00\x6e\x00\x73\x00\x75\x00\x6d\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
@@ -25856,29 +26235,30 @@ qt_resource_name = "\
qt_resource_struct = "\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x17\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x02\
\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x01\x00\x00\x09\xe6\
\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x02\xe2\x00\x00\x00\x00\x00\x01\x00\x05\x43\xb1\
+\x00\x00\x02\xfe\x00\x00\x00\x00\x00\x01\x00\x05\x5b\x04\
\x00\x00\x00\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x4e\xd5\
-\x00\x00\x02\x8e\x00\x00\x00\x00\x00\x01\x00\x05\x38\xae\
-\x00\x00\x01\xd0\x00\x00\x00\x00\x00\x01\x00\x03\xff\xbc\
-\x00\x00\x03\x52\x00\x00\x00\x00\x00\x01\x00\x06\x0c\xef\
-\x00\x00\x02\xc0\x00\x00\x00\x00\x00\x01\x00\x05\x40\x91\
-\x00\x00\x02\x44\x00\x00\x00\x00\x00\x01\x00\x04\xa6\x21\
-\x00\x00\x02\xa4\x00\x00\x00\x00\x00\x01\x00\x05\x3d\xa1\
-\x00\x00\x01\x62\x00\x00\x00\x00\x00\x01\x00\x01\x15\xee\
-\x00\x00\x01\x7c\x00\x00\x00\x00\x00\x01\x00\x01\x2c\x95\
-\x00\x00\x03\x2e\x00\x00\x00\x00\x00\x01\x00\x05\xd4\x7d\
-\x00\x00\x02\x20\x00\x00\x00\x00\x00\x01\x00\x04\x5b\x10\
-\x00\x00\x01\x2c\x00\x00\x00\x00\x00\x01\x00\x01\x0a\xa4\
-\x00\x00\x01\xb2\x00\x00\x00\x00\x00\x01\x00\x01\x86\x08\
-\x00\x00\x02\x04\x00\x00\x00\x00\x00\x01\x00\x04\x52\x86\
-\x00\x00\x01\x48\x00\x00\x00\x00\x00\x01\x00\x01\x10\xb5\
+\x00\x00\x02\xaa\x00\x00\x00\x00\x00\x01\x00\x05\x50\x01\
+\x00\x00\x01\xec\x00\x00\x00\x00\x00\x01\x00\x04\x17\x0f\
+\x00\x00\x03\x6e\x00\x00\x00\x00\x00\x01\x00\x06\x24\x42\
+\x00\x00\x02\xdc\x00\x00\x00\x00\x00\x01\x00\x05\x57\xe4\
+\x00\x00\x02\x60\x00\x00\x00\x00\x00\x01\x00\x04\xbd\x74\
+\x00\x00\x02\xc0\x00\x00\x00\x00\x00\x01\x00\x05\x54\xf4\
+\x00\x00\x01\x7e\x00\x00\x00\x00\x00\x01\x00\x01\x2d\x41\
+\x00\x00\x01\x98\x00\x00\x00\x00\x00\x01\x00\x01\x43\xe8\
+\x00\x00\x03\x4a\x00\x00\x00\x00\x00\x01\x00\x05\xeb\xd0\
+\x00\x00\x02\x3c\x00\x00\x00\x00\x00\x01\x00\x04\x72\x63\
+\x00\x00\x01\x48\x00\x00\x00\x00\x00\x01\x00\x01\x21\xf7\
+\x00\x00\x01\xce\x00\x00\x00\x00\x00\x01\x00\x01\x9d\x5b\
+\x00\x00\x02\x20\x00\x00\x00\x00\x00\x01\x00\x04\x69\xd9\
+\x00\x00\x01\x64\x00\x00\x00\x00\x00\x01\x00\x01\x28\x08\
+\x00\x00\x01\x2c\x00\x00\x00\x00\x00\x01\x00\x01\x1b\x69\
+\x00\x00\x02\x76\x00\x00\x00\x00\x00\x01\x00\x04\xc4\x1c\
\x00\x00\x01\x10\x00\x00\x00\x00\x00\x01\x00\x01\x04\x16\
-\x00\x00\x02\x5a\x00\x00\x00\x00\x00\x01\x00\x04\xac\xc9\
\x00\x00\x00\xac\x00\x00\x00\x00\x00\x01\x00\x00\x4a\xbe\
-\x00\x00\x03\x14\x00\x00\x00\x00\x00\x01\x00\x05\xce\x4d\
+\x00\x00\x03\x30\x00\x00\x00\x00\x00\x01\x00\x05\xe5\xa0\
\x00\x00\x00\x76\x00\x00\x00\x00\x00\x01\x00\x00\x1f\xf9\
"
diff --git a/nephilim/mpclient.py b/nephilim/mpclient.py
index dbacf24..f0cf186 100644
--- a/nephilim/mpclient.py
+++ b/nephilim/mpclient.py
@@ -240,6 +240,11 @@ class MPClient(QtCore.QObject):
Move a song with given src id to position dst.
"""
self._command('moveid', src, dst)
+ def shuffle(self):
+ """
+ Shuffle the current playlist.
+ """
+ self._command('shuffle')
## database ##
def database(self, callback):
diff --git a/nephilim/plugins/Playlist.py b/nephilim/plugins/Playlist.py
index 94f7fc0..05a8596 100644
--- a/nephilim/plugins/Playlist.py
+++ b/nephilim/plugins/Playlist.py
@@ -52,6 +52,7 @@ class PlaylistWidget(QtGui.QWidget):
self.playlist = PlaylistTree(self.plugin)
self.toolbar = QtGui.QToolBar(self.plugin.name + ' toolbar', self)
+ self.toolbar.addAction(QtGui.QIcon(':icons/shuffle.png'), 'Shuffle current playlist.', self.plugin.mpclient.shuffle)
self.toolbar.addAction(QtGui.QIcon(':icons/delete.png'), 'Clear current playlist.', self.plugin.mpclient.clear)
add_url = PlaylistAddURL(self.plugin.mpclient, self)
add_url.setToolTip('Add an URL to current playlist.')