diff --git a/Spotlight/SpotlightPanel.xib b/Spotlight/SpotlightPanel.xib
index 2abb07e57..98b2e2bf8 100644
--- a/Spotlight/SpotlightPanel.xib
+++ b/Spotlight/SpotlightPanel.xib
@@ -8,7 +8,7 @@
352.00
6
- System
+ System
headerTextColor
3
@@ -130,12 +130,12 @@
337772096
2048
- Text Cell
+ Text Cell
6
-
+
controlBackgroundColor
3
@@ -144,7 +144,7 @@
6
-
+
controlTextColor
@@ -165,7 +165,7 @@
6
-
+
headerColor
3
@@ -177,7 +177,7 @@
337772096
2048
-
+
@@ -203,7 +203,7 @@
337772096
2048
-
+
@@ -310,7 +310,7 @@
337772096
67110912
-
+
@@ -326,7 +326,7 @@
6
-
+
gridColor
3
@@ -417,7 +417,7 @@
1
6
-
+
textBackgroundColor
@@ -451,7 +451,7 @@
YES
cancel
-
+
@@ -482,7 +482,7 @@
6
-
+
controlColor
@@ -546,10 +546,7 @@
YES
- SpotlightSearchController
-
-
- YES
+ SpotlightSearchController
@@ -580,7 +577,7 @@
- value
+ value
searchString
2
@@ -635,14 +632,6 @@
90
-
-
- changeSearchPath:
-
-
-
- 91
-
value: arrangedObjects.title
@@ -652,7 +641,7 @@
-
+
arrangedObjects.title
NSConditionallySetsEditable
@@ -672,7 +661,7 @@
-
+
arrangedObjects.year
@@ -692,7 +681,7 @@
-
+
arrangedObjects.album
@@ -712,7 +701,7 @@
-
+
arrangedObjects.genre
@@ -732,7 +721,7 @@
-
+
arrangedObjects.artist
@@ -752,7 +741,7 @@
-
+
arrangedObjects.length
@@ -772,7 +761,7 @@
-
+
arrangedObjects.track
@@ -783,26 +772,6 @@
107
-
-
- value: values.spotlightSearchPath
-
-
-
-
-
-
-
- values.spotlightSearchPath
-
- NSValueTransformerName
- StringToURLTransformer
-
- 2
-
-
- 110
-
tableView
@@ -827,6 +796,26 @@
151
+
+
+ value: spotlightSearchPath
+
+
+
+
+
+
+
+ spotlightSearchPath
+
+ NSValueTransformerName
+ StringToURLTransformer
+
+ 2
+
+
+ 153
+
@@ -931,11 +920,6 @@
-
- 108
-
-
-
55
@@ -1164,11 +1148,11 @@
- {{69, 17}, {480, 320}}
+ {{33, 67}, {480, 320}}
{196, 240}
-
-
+
+
{400, 260}
SpotlightPlaylistController
@@ -1243,7 +1227,7 @@
- 151
+ 153
@@ -1265,78 +1249,10 @@
PlaylistLoader
- IBProjectSource
+ IBProjectSource
Spotlight/SpotlightWindowController.h
-
- SpotlightPlaylistView
- PlaylistView
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
-
- Spotlight/SpotlightPlaylistView.h
-
-
-
- PlaylistLoader
- NSObject
-
- YES
-
- YES
-
-
- YES
-
-
-
- playlistController
- PlaylistController
-
-
-
- Playlist/PlaylistLoader.h
-
-
-
- SpotlightPlaylistController
- PlaylistController
-
- YES
-
- YES
-
-
- YES
-
-
-
- spotlightSearchController
- SpotlightSearchController
-
-
-
- Spotlight/SpotlightPlaylistController.h
-
-
TrackingSlider
NSSlider
@@ -1359,10 +1275,206 @@
-
+
Utils/TrackingSlider.h
+
+ EntriesController
+ NSObject
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+
+ Playlist/EntriesController.h
+
+
+
+ SpotlightSearchController
+
+
+ YES
+
+ YES
+ addToPlaylist:
+ changeSearchPath:
+
+
+ YES
+ id
+
+
+
+
+ YES
+
+ YES
+ pathControl
+ playlistController
+ spotlightWindowController
+
+
+ YES
+ NSPathControl
+ NSArrayController
+ SpotlightWindowController
+
+
+
+
+ Spotlight/SpotlightSearchController.h
+
+
+
+
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ IBUserSource
+
+
+
+
+ PlaylistController
+ DNDArrayController
+
+ YES
+
+ YES
+ clear:
+ clearFilterPredicate:
+ showEntryInFinder:
+ takeRepeatFromObject:
+ takeShuffleFromObject:
+
+
+ YES
+
+
+
+
+
+
+
+
+ YES
+
+ YES
+ entriesController
+ playlistLoader
+
+
+ YES
+ EntriesController
+ PlaylistLoader
+
+
+
+
+ Playlist/PlaylistController.h
+
+
+
+ SpotlightPlaylistView
+ PlaylistView
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+
+ Spotlight/SpotlightPlaylistView.h
+
+
+
+ SpotlightPlaylistController
+ PlaylistController
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ spotlightSearchController
+ SpotlightSearchController
+
+
+
+ Spotlight/SpotlightPlaylistController.h
+
+
+
+ PlaylistLoader
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ playlistController
+ PlaylistController
+
+
+
+ Playlist/PlaylistLoader.h
+
+
PlaybackController
@@ -1389,22 +1501,22 @@
YES
- id
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1431,29 +1543,46 @@
-
+
Application/PlaybackController.h
- DNDArrayController
- NSArrayController
+ PlaylistView
+ NSTableView
YES
-
+
YES
+ scrollToCurrentEntry:
+ shufflePlaylist:
+ sortByPath:
+ toggleColumn:
YES
+
+
+
+
- tableView
- NSTableView
+ YES
+
+ YES
+ playbackController
+ playlistController
+
+
+ YES
+ PlaybackController
+ PlaylistController
+
-
- Playlist/DNDArrayController.h
+
+ Playlist/PlaylistView.h
@@ -1478,111 +1607,7 @@
-
- ThirdParty/AppleRemote/AppleRemote.h
-
-
-
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
-
- ThirdParty/NDHotKeys/NDHotKeyEvent.h
-
-
-
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
-
- ThirdParty/UKKQueue/UKFileWatcher.h
-
-
-
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
-
- ThirdParty/GCWindowMenu/GCOneShotEffectTimer.h
-
-
-
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
-
+
ThirdParty/UKKQueue/UKMainThreadProxy.h
@@ -1608,53 +1633,13 @@
-
+
ThirdParty/UKKQueue/UKKQueue.h
- PlaylistController
- DNDArrayController
-
- YES
-
- YES
- clear:
- clearFilterPredicate:
- showEntryInFinder:
- takeRepeatFromObject:
- takeShuffleFromObject:
-
-
- YES
-
-
-
-
-
-
-
-
- YES
-
- YES
- entriesController
- playlistLoader
-
-
- YES
- EntriesController
- PlaylistLoader
-
-
-
-
- Playlist/PlaylistController.h
-
-
-
- EntriesController
-
+
+
YES
@@ -1674,13 +1659,13 @@
-
- Playlist/EntriesController.h
+
+ ThirdParty/NDHotKeys/NDHotKeyEvent.h
-
-
+
+
YES
@@ -1700,82 +1685,81 @@
- IBUserSource
-
+
+ ThirdParty/UKKQueue/UKFileWatcher.h
- SpotlightSearchController
-
+
+
YES
-
+
YES
- addToPlaylist:
- changeSearchPath:
YES
-
-
YES
-
+
YES
- pathControl
- playlistController
- spotlightWindowController
YES
- NSPathControl
- NSArrayController
- SpotlightWindowController
-
- Spotlight/SpotlightSearchController.h
+
+ ThirdParty/GCWindowMenu/GCOneShotEffectTimer.h
- PlaylistView
- NSTableView
+
+
YES
-
+
YES
- scrollToCurrentEntry:
- shufflePlaylist:
- sortByPath:
- toggleColumn:
YES
-
-
-
-
YES
-
+
YES
- playbackController
- playlistController
YES
- PlaybackController
- PlaylistController
-
- Playlist/PlaylistView.h
+
+ ThirdParty/AppleRemote/AppleRemote.h
+
+
+
+ DNDArrayController
+ NSArrayController
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ tableView
+ NSTableView
+
+
+
+ Playlist/DNDArrayController.h
@@ -1785,257 +1769,253 @@
3
YnBsaXN0MDDUAAEAAgADAAQABQAGAAkAClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIA
-AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxEBUgALAAwAMQA1ADYAPAA9
+AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxEBSwALAAwAMQA1ADYAPAA9
AEIAWgBbAFwAXQBeAAsAbAB0AIAAgQCZAJoAogCjAKYApwCrALEAyQDRAN8A4wEJAQoBCwEMARMBHgEf
ASIBKQEqAS0BNwFKAUsBUwFUAVkBXgFhAWkBagFrAW4BcgF7AXwBgQGCAYUBigGLAY0BkAGZAZoBoAGh
AaYBpwGqAbEBugG7AcEBwgHJAdQB1QHcAd0BewHlAe8B8AH2AfcB/gIHAggCDgIPAhYCHwIgAiYCJwIu
AjICNwI4AjsCPAI/AkACQwJPAlACUQJUAl0CXgEeAmICYwJmAm8CcAKCAocCiAKTApQClQKeAp8CowKs
Aq0CrgD8Aq8CswK0ArcCuwLEAsUCzgLPAtQC1QLXAuEC5gLnAugC7ALtAvgC+wL+AwEACwMCAwQDBQMG
-AwkDIAMoAysDLANCA0MDRANPA1ADUgNUA1UDWQNeA18DZANlA2gDbQNuA3MDdAN5A3oDfwOAA4UDhgOL
-A4wDkQOSA54DogOmA6cDqAOpA68DsAOxA7MDtgO9A74DvwPAA8gDyQPKA9AD0QPZA9oD2wPhA+kD6gPr
-A/ED+QP6A/sEAQQIBAkECgQSBBMEFAQaBCIEIwQkBCoEMgQzBDQEOgReBGEEYgRkBIgErQTSBNME1ATV
-BNYE1wTYBNkE2gTbBNwE3QTeBN8E4AThBOIE4wTkBOUE5gTnBOgE6QTqBOsE7ATtBO4E7wTwBPEE8gTz
-BPQE+QT+BTcFcAVxBXIFcwV0AFYFdQV2BXcFeACQBXkFegV7BXwFfQV+BX8FgAWBBYIFgwWEBYUFhgWH
-AWYFiAKMBYkFigWLBYwFjQWOBY8FkAWRBZIFkwWUBZUFlgWXBZgFmQWaBZsFnABXBZ0FngWfBaAFowWm
-BalVJG51bGzfEBIADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQA
-JQAmACcAKAApACoAKwAsAC0ALgAvADBWTlNSb290ViRjbGFzc11OU09iamVjdHNLZXlzXxAPTlNDbGFz
-c2VzVmFsdWVzXxAZTlNBY2Nlc3NpYmlsaXR5T2lkc1ZhbHVlc11OU0Nvbm5lY3Rpb25zW05TTmFtZXNL
-ZXlzW05TRnJhbWV3b3JrXU5TQ2xhc3Nlc0tleXNaTlNPaWRzS2V5c11OU05hbWVzVmFsdWVzXxAZTlNB
-Y2Nlc3NpYmlsaXR5Q29ubmVjdG9yc11OU0ZvbnRNYW5hZ2VyXxAQTlNWaXNpYmxlV2luZG93c18QD05T
-T2JqZWN0c1ZhbHVlc18QF05TQWNjZXNzaWJpbGl0eU9pZHNLZXlzWU5TTmV4dE9pZFxOU09pZHNWYWx1
-ZXOAAoEBUYDsgQEWgQFQgJ2A8YAFgQEVgQEXgPKBAU6AAIAGgPCBAU8QmYEBGNIADgAyADMANFtOU0Ns
-YXNzTmFtZYAEgANfEBlTcG90bGlnaHRXaW5kb3dDb250cm9sbGVy0gA3ADgAOQA6WCRjbGFzc2VzWiRj
-bGFzc25hbWWiADoAO15OU0N1c3RvbU9iamVjdFhOU09iamVjdF8QEElCQ29jb2FGcmFtZXdvcmvSAA4A
-PgA/AEBaTlMub2JqZWN0c4CRoQBBgAfcAEMADgBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBT
-AFQAVQBWAFcAWAArXE5TV2luZG93Vmlld1xOU1NjcmVlblJlY3RdTlNXaW5kb3dUaXRsZVlOU1dURmxh
-Z3NdTlNXaW5kb3dDbGFzc18QFk5TV2luZG93Q29udGVudE1pblNpemVcTlNXaW5kb3dSZWN0XxAPTlNX
-aW5kb3dCYWNraW5nXxARTlNXaW5kb3dTdHlsZU1hc2tZTlNNaW5TaXplW05TVmlld0NsYXNzgAyAnICa
-gAkSIAAAAIAKgAuACBACEB+Am4AAXxAYe3sxOTYsIDE5Mn0sIHs0ODAsIDMyMH19XxATT3BlbiBmcm9t
-IFNwb3RsaWdodFdOU1BhbmVsWns0MDAsIDI2MH3XAF8ADgBgAGEAYgBjAGQAZQBmAGcAaABpAGUAa18Q
-D05TTmV4dFJlc3BvbmRlclpOU1N1YnZpZXdzWE5TdkZsYWdzW05TRnJhbWVTaXplWE5TV2luZG93W05T
-U3VwZXJ2aWV3gA2AmYAOEQEAgJeADYCY0gAOAD4AbQBugGClAG8AcABxAHIAc4APgBmAcoCGgI3YAF8A
-DgB1AHYAYQB3AGMAZABOAHkAegB7AHwAfQBlAE5XTlNGcmFtZVZOU0NlbGxZTlNFbmFibGVkgAyAGIAQ
-gBERAQkJgA2ADF8QF3t7MzM1LCAyNzV9LCB7MTMxLCAzMn193ACCAA4AgwCEAIUAhgCHAIgAiQCKAIsA
-jACNAI4AjwCQAJEAjwCTAJQAbwCWAJcAmFtOU0NlbGxGbGFnc18QE05TQWx0ZXJuYXRlQ29udGVudHNf
-EBJOU1BlcmlvZGljSW50ZXJ2YWxeTlNCdXR0b25GbGFnczJfEA9OU0tleUVxdWl2YWxlbnRaTlNDb250
-ZW50c1lOU1N1cHBvcnRdTlNDb250cm9sVmlld18QD05TUGVyaW9kaWNEZWxheVxOU0NlbGxGbGFnczJd
-TlNCdXR0b25GbGFncxIEAf4AgBeAFhAZEIGAFoASgBOADxDIEggAAAAT/////4aCQP9fEA9BZGQgdG8g
-UGxheWxpc3TUAA4AmwCcAJ0AngCfAKAAoVZOU1NpemVWTlNOYW1lWE5TZkZsYWdzgBUjQCoAAAAAAACA
-FBEEFFxMdWNpZGFHcmFuZGXSADcAOACkAKWiAKUAO1ZOU0ZvbnRQ0gA3ADgAqACppACpAKoAdgA7XE5T
-QnV0dG9uQ2VsbFxOU0FjdGlvbkNlbGzSADcAOACsAK2lAK0ArgCvALAAO1hOU0J1dHRvbllOU0NvbnRy
-b2xWTlNWaWV3W05TUmVzcG9uZGVy3xAPAF8AsgAOAHUAswC0ALUAYAC2AGEAYwBkALcAuAC5AE4AuwC8
-AL0AvgC/AMAAwQDCAMMAZQBOAMYAxwDHW05TSFNjcm9sbGVyWE5Tc0ZsYWdzXE5TQ29ybmVyVmlld18Q
-EE5TSGVhZGVyQ2xpcFZpZXdcTlNTY3JvbGxBbXRzW05TVlNjcm9sbGVyXU5TTmV4dEtleVZpZXddTlND
-b250ZW50Vmlld4AMgGyAcYBwEQIwgCWAIoAaTxAQAAAAAAAAAABBmAAAQZgAABEBEoANgAyAaIAbgBvS
-AA4APgBtAMuAYKUAxwDGALsAwAC/gBuAaIBsgCKAJdsAXwAOAHUA0gBgAGEA0wBjANQAZAC4AHAA1gDX
-AFYA2ADZANoAZQDcAHAA2llOU2N2RmxhZ3NZTlNEb2NWaWV3WU5TQkdDb2xvcoAZgGeAZoAcEQkAgB2A
-DYA3gBmAHdIADgA+AG0A4YBgoQDagB3fEBcAXwDkAA4A5QDmAOcA6ADpALQA6gDrAOwAYQBiAHcA7QBj
-ADIA7gDvAGQA8ADxAMcA8wD0APUA9gD3ANwAfQC/APsA/AD9AP4A/wB9AQEAZQEDAQQBBQDHAQcBCF8Q
-H05TRHJhZ2dpbmdTb3VyY2VNYXNrRm9yTm9uTG9jYWxZTlNUdkZsYWdzXxATTlNPcmlnaW5hbENsYXNz
-TmFtZVxOU0hlYWRlclZpZXdfEBFOU0JhY2tncm91bmRDb2xvcl8QEk5TQWxsb3dzVHlwZVNlbGVjdF8Q
-F05TSW50ZXJjZWxsU3BhY2luZ1dpZHRoXxAZTlNDb2x1bW5BdXRvcmVzaXppbmdTdHlsZV8QGE5TSW50
-ZXJjZWxsU3BhY2luZ0hlaWdodF5OU0F1dG9zYXZlTmFtZVtOU0dyaWRDb2xvcl8QHE5TRHJhZ2dpbmdT
-b3VyY2VNYXNrRm9yTG9jYWxeTlNUYWJsZUNvbHVtbnNbTlNSb3dIZWlnaHSAGxAAgGUT/////9vAgACA
-H4AhgDcJgCUjQAgAAAAAAAAQASNAAAAAAAAAABEREoAgCYBkgA2AHoBhEA+AG4AoI0AxAAAAAAAAXxAV
-U3BvdGxpZ2h0UGxheWxpc3RWaWV3W05TVGFibGVWaWV3Wns0NDAsIDIxMX3XAF8ADgBhAGIAYwBkAQoA
-wAEOAGgBDwBlAMAA2oAigCSAI4ANgCKAHdsAXwAOANIAYABhAGIA0wBjANQAZAC4AHAA1gEWARcA2QEY
-APcAZQDcAHAA94AZgGcQBIBugG+AIYANgDeAGYAhWXs0NDAsIDE3fdIANwA4ASABIaQBIQCvALAAO18Q
-EU5TVGFibGVIZWFkZXJWaWV31gBfAA4AdQBhAGMAZABwASQBJQEmAGUAcIAZgCeAJhP/////gAABAIAN
-gBlfEBR7ey0yNiwgMH0sIHsxNiwgMTd9fdIANwA4ASsBLKQBLACvALAAO11fTlNDb3JuZXJWaWV30gAO
-AD4AbQEvgGCnATABMQEyATMBNAE1ATaAKYA+gEaAS4BRgFaAW9oBOAAOATkBOgE7ATwBPQE+AT8BCgB9
-AUEBQgFDAUQBRQFGAUcBSADaXk5TSXNSZXNpemVhYmxlXE5TSGVhZGVyQ2VsbFxOU0lkZW50aWZpZXJX
-TlNXaWR0aFpOU0RhdGFDZWxsXk5TUmVzaXppbmdNYXNrWk5TTWluV2lkdGhaTlNNYXhXaWR0aAmAPYAr
-gCojQGAAAAAAAACANRADI0BEgAAAAAAAI0CPQAAAAAAAgB1VdGl0bGXXAIIADgDoAIcAiACLAUwBTQFO
-AU8BUAFRAPMBUltOU1RleHRDb2xvchIEgf4AgDSALoAsgC2AMFVUaXRsZdQADgCbAJwAnQCeAVYAoAFY
-gBUjQCYAAAAAAACAFBEMHNMADgFaAVsBXAFGAV1cTlNDb2xvclNwYWNlV05TV2hpdGWAL0swLjMzMzMz
-Mjk5ANIANwA4AV8BYKIBYAA7V05TQ29sb3LVAA4BYAFaAWIBYwFcAWUBZgFnAWhbTlNDb2xvck5hbWVd
-TlNDYXRhbG9nTmFtZYAvgDMQBoAygDFWU3lzdGVtXxAPaGVhZGVyVGV4dENvbG9y0wAOAVoBWwFcAUYB
-bYAvQjAA0gA3ADgBbwFwpQFwAXEAqgB2ADtfEBFOU1RhYmxlSGVhZGVyQ2VsbF8QD05TVGV4dEZpZWxk
-Q2VsbNgAggAOAOgAhwCIAIkAiwFMAXMBdADcAXYAlADaAXkBehIUIf5AgDyAN4A2gBOAHREIAIA6WVRl
-eHQgQ2VsbNUADgFgAVoBYgFjAVwBfgFmAX8BaIAvgDmAOIAxXxAWY29udHJvbEJhY2tncm91bmRDb2xv
-ctMADgFaAVsBXAFGAYSAL0swLjY2NjY2NjY5ANUADgFgAVoBYgFjAVwBZQFmAYgBaIAvgDOAO4AxXxAQ
-Y29udHJvbFRleHRDb2xvctIANwA4AYwBcaQBcQCqAHYAO9IANwA4AY4Bj6IBjwA7XU5TVGFibGVDb2x1
-bW7aATgADgE5AToBOwE8AT0BPgE/AQoAfQFBAZMBlAGVAZYBRgGXAUgA2gmAPYBAgD8jQF7AAAAAAACA
-RSNAQgAAAAAAAIAdVmFydGlzdNcAggAOAOgAhwCIAIsBTACNAU4BnAGdAVEA8wFSgDSAQoBBgC2AMFZB
-cnRpc3TVAA4BYAFaAWIBYwFcAaMBZgGkAWiAL4BEgEOAMVtoZWFkZXJDb2xvctMADgFaAVsBXAFGAamA
-L0IxANgAggAOAOgAhwCIAIkAiwFMAXMBdADcAXYAlADaAXkBeoA8gDeANoATgB2AOtoBOAAOATkBOgE7
-ATwBPQE+AT8BCgB9AUEBtAG1AbYBtwFGAbgBSADaCYA9gEiARyNAX0AAAAAAAIBKI0BDgAAAAAAAgB1V
-YWxidW3XAIIADgDoAIcAiACLAUwAjQFOAZwBvgFRAPMBUoA0gEKASYAtgDBVQWxidW3YAIIADgDoAIcA
-iACJAIsBTAFzAXQA3AF2AJQA2gF5AXqAPIA3gDaAE4AdgDrbATgBygE5AToADgE7ATwBPQE+AT8BCgB9
-AH0BzQHOAUEB0AHRAUYB0gFIANpYTlNIaWRkZW4JCYBNgEyAPSNASQAAAAAAAIBPI0BET2AgAAAAgB1W
-bGVuZ3Ro1wCCAA4A6ACHAIgAiwFMAI0BTgGcAdgBUQHaAVKANIBCgE6ALRIEAAAAgDBWTGVuZ3Ro2ACC
-AA4A6ACHAIgAiQCLAUwBcwF0ANwB4ACUANoB4wF6gDyAN4BQgBOAHRIEAAgAgDrbATgBygE5AToADgE7
-ATwBPQE+AT8BCgB9AH0B6AHpAUEB6wHsAUYB7QFIANoJCYBTgFKAPSNAR4AAAAAAAIBVI0AkAAAAAAAA
-gB1UeWVhctcAggAOAOgAhwCIAIsBTACNAU4BnAHzAVEB2gFSgDSAQoBUgC2AMFRZZWFy2ACCAA4A6ACH
-AIgAiQCLAUwBcwF0ANwB4ACUANoB4wF6gDyAN4BQgBOAHYA62wE4AcoBOQE6AA4BOwE8AT0BPgE/AQoA
-fQB9AgECAgFBAgQCBQFGAe0BSADaCQmAWIBXgD0jQEcAAAAAAACAWoAdVWdlbnJl1wCCAA4A6ACHAIgA
-iwFMAI0BTgGcAgsBUQDzAVKANIBCgFmALYAwVUdlbnJl2ACCAA4A6ACHAIgAiQCLAUwBcwF0ANwB4ACU
-ANoBeQF6gDyAN4BQgBOAHYA62gE4AA4BOQE6ATsBPAE9AT4BPwEKAH0BQQIZAhoCGwIcAUYCHQIbANoJ
-gD2AXYBcI0BKAAAAAAAAgF8jQCAAAAAAAACAHVV0cmFja9cAggAOAOgAhwCIAIsBTACNAU4BnAIjAVEB
-2gFSgDSAQoBegC2AMFVUcmFja9gAggAOAOgAhwCIAIkAiwFMAXMBdADcAXYAlADaAeMBeoA8gDeANoAT
-gB2AOtIANwA4Ai8CMKMCMAIxADteTlNNdXRhYmxlQXJyYXlXTlNBcnJhedUADgFgAVoBYgFjAVwCNAFm
-AjUBaIAvgGOAYoAxWWdyaWRDb2xvctMADgFaAVsBXAFGAjqAL0QwLjUAXxAUQ29nU3BvdGxpZ2h0UGxh
-eWxpc3TSADcAOAI9Aj6iAj4AO15OU0NsYXNzU3dhcHBlcl8QFXt7MCwgMTd9LCB7NDQwLCAyMTF9fdIA
-NwA4AkECQqQCQgCvALAAO1pOU0NsaXBWaWV32QBfAkQADgB1AGEAYwJFAGQCRgBwAHACSQJKASYAZQJM
-AHACTlhOU1RhcmdldFhOU0FjdGlvbllOU1BlcmNlbnSAGYAZgGuAaYANgGqAGSM/6jeEoAAAAF8QFHt7
-ODUsIDE3fSwgezE1LCA2OH19XF9kb1Njcm9sbGVyOtIANwA4AlICU6UCUwCuAK8AsAA7Wk5TU2Nyb2xs
-ZXLaAF8CRAAOAHUAswBhAGMCRQBkAkYAcABwAkkCWAD8ASYAZQJMAHACXIAZgBmAa4BtgA2AaoAZIz/t
-pGEAAAAAXxAVe3swLCAyMTN9LCB7NDQwLCAxNX190gAOAD4AbQJggGChAPeAIV8QFnt7MjAsIDQ0fSwg
-ezQ0MCwgMjI4fX3SADcAOAJkAmWkAmUArwCwADtcTlNTY3JvbGxWaWV32ABfAA4AdQB2AGEAdwBjAGQA
-TgJoAmkCagJrAH0AZQBOgAyAhYBzgHQRAQoJgA2ADF8QFnt7MjAsIDI4Mn0sIHszMTMsIDIyfX3dAIIA
-DgJxAOgAhwCIAIkAiwJyAnMCdAJ1AUwCdgJ3AngCeQCPAJQAcQJ9APwAfQJ/AoABel8QEk5TQ2FuY2Vs
-QnV0dG9uQ2VsbF8QEE5TVGV4dEJlemVsU3R5bGVfEBFOU0RyYXdzQmFja2dyb3VuZF8QEk5TU2VhcmNo
-QnV0dG9uQ2VsbF8QEE5TTWF4aW11bVJlY2VudHMSFHH+QICEgHqAdYAWgBOAchIQAAQACYB3EP+AOtUA
-DgFgAVoBYgFjAVwBowFmAoUBaIAvgESAdoAxXxATdGV4dEJhY2tncm91bmRDb2xvctwCRACCAA4AhACF
-AIYAhwCJAIoAiwJFAIwCagKKAI4CjADzAI8CjgBxApAA8wKRApKAdBIAAf4AgBcQS4AWgHiAchEBkIB5
-EghEQP9Wc2VhcmNoXxATX3NlYXJjaEZpZWxkU2VhcmNoOt0CRACCAA4AhACFAIYClgCHAIkAigCLAkUA
-jAJqAooAjgKMAPMAjwKaApsAcQKQAPMCnQKSXxAjTlNBY2Nlc3NpYmlsaXR5T3ZlcnJpZGRlbkF0dHJp
-YnV0ZXOAdIAXgBaAfIB7gHKAg1VjbGVhctIADgA+AG0CoYBgoQKigH3TAA4CpAA+AqUCpgKpV05TLmtl
-eXOAgqICpwKogH6Af6ICqgKrgICAgV1BWERlc2NyaXB0aW9uXxApTlNBY2Nlc3NpYmlsaXR5RW5jb2Rl
-ZEF0dHJpYnV0ZXNWYWx1ZVR5cGVWY2FuY2Vs0gA3ADgCsAKxowKxArIAO18QE05TTXV0YWJsZURpY3Rp
-b25hcnlcTlNEaWN0aW9uYXJ5XxATX3NlYXJjaEZpZWxkQ2FuY2VsOtIANwA4ArUCtqUCtgFxAKoAdgA7
-XxARTlNTZWFyY2hGaWVsZENlbGzSADcAOAK4ArmmArkCugCuAK8AsAA7XU5TU2VhcmNoRmllbGRbTlNU
-ZXh0RmllbGTYAF8ADgB1AHYAYQB3AGMAZABOAr0CvgK/AsAAfQBlAE6ADICMgIeAiBEBIQmADYAMXxAU
-e3s4OCwgMTR9LCB7OTYsIDE3fX3YAIIADgDoAIcAiACJAIsBTALGAXQCyALJAJQAcgLMAXoSBAH+QIA8
-gIqAiYATgIYSEEAEAIA6XFNlYXJjaCBQYXRoOtUADgFgAVoBYgFjAVwBfgFmAtIBaIAvgDmAi4AxXGNv
-bnRyb2xDb2xvctIANwA4AtYCuqUCugCuAK8AsAA72QBfAA4AdQB2AtgAYQB3AGMAZABOAtoC2wLcAt0C
-wAB9AGUATltOU0RyYWdUeXBlc4AMgJaAkoCTgI4JgA2ADNIADgA+AD8C44CRogLkAuWAj4CQXxAZQXBw
-bGUgVVJMIHBhc3RlYm9hcmQgdHlwZV8QFU5TRmlsZW5hbWVzUGJvYXJkVHlwZdIANwA4AukC6qMC6gLr
-ADtcTlNNdXRhYmxlU2V0VU5TU2V0XxAWe3sxODksIDEwfSwgezI3MSwgMjZ9fdgC7gCCAA4AiACJAIsC
-7wLwAFYC8QLyAJQAcwL1AvYAc1tOU1BhdGhTdHlsZV8QFE5TUGF0aENvbXBvbmVudENlbGxzWk5TRGVs
-ZWdhdGUSFCH+AYCVgBOAjRGAAICUgI3SAA4APgBtAvqAYKDSADcAOAL8Av2kAv0AqgB2ADtaTlNQYXRo
-Q2VsbNIANwA4Av8DAKUDAACuAK8AsAA7XU5TUGF0aENvbnRyb2xaezQ4MCwgMzIwfdIANwA4AwMAr6MA
-rwCwADtfEBV7ezAsIDB9LCB7MTI4MCwgNzc4fX1aezQwMCwgMjc2fdIANwA4AwcDCKIDCAA7XxAQTlNX
-aW5kb3dUZW1wbGF0ZdIADgA+AG0DC4BgrxAUAwwDDQMOAw8DEAMRAxIDEwMUAxUDFgMXAxgDGQMaAxsD
-HAMdAx4DH4CegKqArICvgLGAs4C1gLeAuYC7gL2AyIDMgNGA1YDZgN2A4IDkgOjUAA4DIQMiAyMDJAMl
-AyYDJ11OU0Rlc3RpbmF0aW9uWE5TU291cmNlV05TTGFiZWyAqYChgJ+AqNIADgAyADMDKoAEgKBfEBlT
-cG90bGlnaHRTZWFyY2hDb250cm9sbGVy3AMtAA4DLgDmAy8DMAMxAzIDMwAyAzQDNQB9APQAfQM5AH0D
-OwM8Az0AfQM/AH0AfV8QGk5TRmlsdGVyUmVzdHJpY3RzSW5zZXJ0aW9uXxAUTlNQcmVzZXJ2ZXNTZWxl
-Y3Rpb25aTlNFZGl0YWJsZV8QD19OU01hbmFnZWRQcm94eV8QEU5TT2JqZWN0Q2xhc3NOYW1lXk5TRGVj
-bGFyZWRLZXlzXxAiTlNDbGVhcnNGaWx0ZXJQcmVkaWNhdGVPbkluc2VydGlvbl8QGE5TU2VsZWN0c0lu
-c2VydGVkT2JqZWN0c18QFk5TQXZvaWRzRW1wdHlTZWxlY3Rpb24JgGUJgKMJgKaApYCkCYCiCQlfEBtT
-cG90bGlnaHRQbGF5bGlzdENvbnRyb2xsZXJfEBFOU0FycmF5Q29udHJvbGxlctIADgA+AG0DRoBgqAFQ
-AUMB6QGUAbUCAgHOAhqALIAqgFKAP4BHgFeATIBcXVBsYXlsaXN0RW50cnnRAA4DUYCn0gA3ADgDUwMw
-ogMwADtfEBJwbGF5bGlzdENvbnRyb2xsZXLSADcAOANWA1ejA1cDWAA7XxAUTlNOaWJPdXRsZXRDb25u
-ZWN0b3JeTlNOaWJDb25uZWN0b3LUAA4DIQMiAyMDJAAfAyYDXYCpgAKAn4CrXxAZc3BvdGxpZ2h0V2lu
-ZG93Q29udHJvbGxlctQADgMhAyIDIwNgAyYAbwNjgK6An4APgK1eYWRkVG9QbGF5bGlzdDrSADcAOANm
-A2ejA2cDWAA7XxAVTlNOaWJDb250cm9sQ29ubmVjdG9y1AAOAyEDIgMjAyQAcwMmA2yAqYCNgJ+AsFtw
-YXRoQ29udHJvbNQADgMhAyIDIwMkAEEAHwNygKmAB4ACgLJWd2luZG931AAOAyEDIgMjAyQA2gMlA3iA
-qYAdgKGAtFl0YWJsZVZpZXfUAA4DIQMiAyMDYAMmAHMDfoCugJ+AjYC2XxARY2hhbmdlU2VhcmNoUGF0
-aDrUAA4DIQMiAyMDJABxAEEDhICpgHKAB4C4XxAVaW5pdGlhbEZpcnN0UmVzcG9uZGVy1AAOAyEDIgMj
-AyQDJgMlA4qAqYCfgKGAul8QGXNwb3RsaWdodFNlYXJjaENvbnRyb2xsZXLUAA4DIQMiAyMDJAMlANoD
-kICpgKGAHYC8WmRhdGFTb3VyY2XYAA4DIQOTA5QDIgMjA5UDlgOXA5gDmQOaAHMDnAOdAFZZTlNLZXlQ
-YXRoWU5TQmluZGluZ1lOU09wdGlvbnNfEBxOU05pYkJpbmRpbmdDb25uZWN0b3JWZXJzaW9ugMeAvoDC
-gMGAjYDAgMPSAA4DnwOgAH1fEBBOU1NoYXJlZEluc3RhbmNlgL8J0gA3ADgDowOkowOkA6UAO18QGE5T
-VXNlckRlZmF1bHRzQ29udHJvbGxlclxOU0NvbnRyb2xsZXJfECF2YWx1ZTogdmFsdWVzLnNwb3RsaWdo
-dFNlYXJjaFBhdGhVdmFsdWVfEBp2YWx1ZXMuc3BvdGxpZ2h0U2VhcmNoUGF0aNMADgKkAD4DqgOrA62A
-xqEDrIDEoQOugMVfEBZOU1ZhbHVlVHJhbnNmb3JtZXJOYW1lXxAWU3RyaW5nVG9VUkxUcmFuc2Zvcm1l
-ctIANwA4A7ICsqICsgA70gA3ADgDtAO1owO1A1gAO18QFU5TTmliQmluZGluZ0Nvbm5lY3RvctcADgMh
-A5MDlAMiAyMDlgOXAyYDuQO6AyUDvABWgMeAn4DLgMqAoYDJXxAbY29udGVudEFycmF5OiBxdWVyeS5y
-ZXN1bHRzXGNvbnRlbnRBcnJheV1xdWVyeS5yZXN1bHRz2AAOAyEDkwOUAyIDIwOVA5YDlwMlA8MDmgE0
-A8YDxwBWgMeAoYDOgMGAUYDNgM9fEBt2YWx1ZTogYXJyYW5nZWRPYmplY3RzLnllYXJfEBRhcnJhbmdl
-ZE9iamVjdHMueWVhctMADgKkAD4DqgPMA86AxqEDzYDQoQKrgIFfEBtOU0NvbmRpdGlvbmFsbHlTZXRz
-RWRpdGFibGXYAA4DIQOTA5QDIgMjA5UDlgOXAyUD1AOaATYD1wPYAFaAx4ChgNOAwYBbgNKA1F8QHHZh
-bHVlOiBhcnJhbmdlZE9iamVjdHMudHJhY2tfEBVhcnJhbmdlZE9iamVjdHMudHJhY2vTAA4CpAA+A6oD
-3QPfgMahA82A0KECq4CB2AAOAyEDkwOUAyIDIwOVA5YDlwMlA+QDmgEwA+cD6ABWgMeAoYDXgMGAKYDW
-gNhfEBx2YWx1ZTogYXJyYW5nZWRPYmplY3RzLnRpdGxlXxAVYXJyYW5nZWRPYmplY3RzLnRpdGxl0wAO
-AqQAPgOqA+0D74DGoQPNgNChAquAgdgADgMhA5MDlAMiAyMDlQOWA5cDJQP0A5oBMwP3A/gAVoDHgKGA
-24DBgEuA2oDcXxAddmFsdWU6IGFycmFuZ2VkT2JqZWN0cy5sZW5ndGhfEBZhcnJhbmdlZE9iamVjdHMu
-bGVuZ3Ro0wAOAqQAPgOqA/0D/4DGoQPNgNChAquAgdcADgMhA5MDlAMiAyMDlgOXAyYEBAOaAmoEBwBW
-gMeAn4DfgMGAdIDeXxATdmFsdWU6IHNlYXJjaFN0cmluZ1xzZWFyY2hTdHJpbmfYAA4DIQOTA5QDIgMj
-A5UDlgOXAyUEDQOaATEEEAQRAFaAx4ChgOKAwYA+gOGA418QHXZhbHVlOiBhcnJhbmdlZE9iamVjdHMu
-YXJ0aXN0XxAWYXJyYW5nZWRPYmplY3RzLmFydGlzdNMADgKkAD4DqgQWBBiAxqEDzYDQoQKrgIHYAA4D
-IQOTA5QDIgMjA5UDlgOXAyUEHQOaATUEIAQhAFaAx4ChgOaAwYBWgOWA518QHHZhbHVlOiBhcnJhbmdl
-ZE9iamVjdHMuZ2VucmVfEBVhcnJhbmdlZE9iamVjdHMuZ2VucmXTAA4CpAA+A6oEJgQogMahA82A0KEC
-q4CB2AAOAyEDkwOUAyIDIwOVA5YDlwMlBC0DmgEyBDAEMQBWgMeAoYDqgMGARoDpgOtfEBx2YWx1ZTog
-YXJyYW5nZWRPYmplY3RzLmFsYnVtXxAVYXJyYW5nZWRPYmplY3RzLmFsYnVt0wAOAqQAPgOqBDYEOIDG
-oQPNgNChAquAgdIADgA+BDsEPIDvrxAhAUUAcwByAtwAcAEyAE4AQQMlAG8BNQDaAPcAcQIFAbcDJgHR
-AhwAuwRRATYBMAGWAmoBNAB7ATEBMwHsAr8DmADGgDWAjYCGgJOAGYBGgAyAB4ChgA+AVoAdgCGAcoBa
-gEqAn4BPgF+AbIDtgFuAKYBFgHSAUYARgD6AS4BVgIiAvoBo0gAOADIAMwRggASA7l1OU0FwcGxpY2F0
-aW9u0gA3ADgEYwIxogIxADvSAA4APgQ7BGaA768QIQEwAE4ATgBzAE4A2gBBAB8AHwBOANoAcABwAE4B
-NQEyAB8BMwE2AHAAHwDaANoBMQBxANoAbwDaANoBNAByAB8AcIApgAyADICNgAyAHYAHgAKAAoAMgB2A
-GYAZgAyAVoBGgAKAS4BbgBmAAoAdgB2APoBygB2AD4AdgB2AUYCGgAKAGdIADgA+BDsEioDvrxAiAUUA
-cwByAtwAcAEyAE4AHwBBAyUAbwE1ANoA9wBxAyYBtwIFAdECHAC7BFEBNgEwA5gCagE0AHsBMQEzAewC
-vwGWAMaANYCNgIaAk4AZgEaADIACgAeAoYAPgFaAHYAhgHKAn4BKgFqAT4BfgGyA7YBbgCmAvoB0gFGA
-EYA+gEuAVYCIgEWAaNIADgA+BDsEr4DvrxAiBLAEsQSyBLMEtAS1BLYEtwS4BLkEugS7BLwEvQS+BL8E
-wATBBMIEwwTEBMUExgTHBMgEyQTKBMsEzATNBM4EzwTQBNGA84D0gPWA9oD3gPiA+YD6gPuA/ID9gP6A
-/4EBAIEBAYEBAoEBA4EBBIEBBYEBBoEBB4EBCIEBCYEBCoEBC4EBDIEBDYEBDoEBD4EBEIEBEYEBEoEB
-E4EBFF8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS0zXxAaUG9wIFVwIFBhdGggQ29udHJvbCBX
-aWRnZXRfEBpTdGF0aWMgVGV4dCAoU2VhcmNoIFBhdGg6KVlQYXRoIENlbGxbU2Nyb2xsIFZpZXdfEBRU
-YWJsZSBDb2x1bW4gKGFsYnVtKVxDb250ZW50IFZpZXdcRmlsZSdzIE93bmVyXxAbUGFuZWwgKE9wZW4g
-ZnJvbSBTcG90bGlnaHQpXxAdU3BvdGxpZ2h0IFBsYXlsaXN0IENvbnRyb2xsZXJfEB1QdXNoIEJ1dHRv
-biAoQWRkIHRvIFBsYXlsaXN0KV8QFFRhYmxlIENvbHVtbiAoZ2VucmUpXxBKU3BvdGxpZ2h0IFBsYXls
-aXN0IFZpZXcgKFRpdGxlLCBBcnRpc3QsIEFsYnVtLCBMZW5ndGgsIFllYXIsIEdlbnJlLCBUcmFjaylf
-EBFUYWJsZSBIZWFkZXIgVmlld1xTZWFyY2ggRmllbGRfEBtTcG90bGlnaHQgU2VhcmNoIENvbnRyb2xs
-ZXJfEBtUZXh0IEZpZWxkIENlbGwgKFRleHQgQ2VsbClfEB1UZXh0IEZpZWxkIENlbGwgKFRleHQgQ2Vs
-bCktMV8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS02XxAdVGV4dCBGaWVsZCBDZWxsIChUZXh0
-IENlbGwpLTJfEBNIb3Jpem9udGFsIFNjcm9sbGVyW0FwcGxpY2F0aW9uXxAUVGFibGUgQ29sdW1uICh0
-cmFjaylfEBRUYWJsZSBDb2x1bW4gKHRpdGxlKV8QH1NoYXJlZCBVc2VyIERlZmF1bHRzIENvbnRyb2xs
-ZXJfEBFTZWFyY2ggRmllbGQgQ2VsbF8QE1RhYmxlIENvbHVtbiAoeWVhcilfEB1CdXR0b24gQ2VsbCAo
-QWRkIHRvIFBsYXlsaXN0KV8QFVRhYmxlIENvbHVtbiAoYXJ0aXN0KV8QFVRhYmxlIENvbHVtbiAobGVu
-Z3RoKV8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS00XxAeVGV4dCBGaWVsZCBDZWxsIChTZWFy
-Y2ggUGF0aDopXxAdVGV4dCBGaWVsZCBDZWxsIChUZXh0IENlbGwpLTVfEBFWZXJ0aWNhbCBTY3JvbGxl
-ctIADgA+BDsE9oDvogDaAyWAHYCh0gAOAD4EOwT7gO+iAQMDP4AegKLSAA4APgQ7BQCA768QNgBzAxAD
-HQLcAB8AQQBOAyUDFwMYANoA9wMNAgUBtwMmAxUDHAC7BFEBNgMWAx8BMAGWAmoDmAB7AxoDDAK/AxEA
-xgFFAw8AcgMeAHABMgMOAG8BNQBxAxsB0QIcAxQDEwMSAxkBNAHsATEBM4CNgLGA4ICTgAKAB4AMgKGA
-yIDMgB2AIYCqgFqASoCfgLuA3YBsgO2AW4C9gOiAKYBFgHSAvoARgNWAnoCIgLOAaIA1gK+AhoDkgBmA
-RoCsgA+AVoBygNmAT4BfgLmAt4C1gNGAUYBVgD6AS9IADgA+BDsFOYDvrxA2BToFOwU8BT0FPgKrBUAF
-QQVCBUMFRAVFBUYFRwVIBUkFSgVLBUwFTQVOBU8FUAVRBVIFUwVUBVUFVgVXBVgFWQVaBVsFXAVdBV4F
-XwVgBWEFYgVjBWQFZQVmBWcFaAVpBWoFawVsBW0FbgVvgQEZgQEagQEbgQEcgQEdgIGBAR6BAR+BASCB
-ASGBASKBASOBASSBASWBASaBASeBASiBASmBASqBASuBASyBAS2BAS6BAS+BATCBATGBATKBATOBATSB
-ATWBATaBATeBATiBATmBATqBATuBATyBAT2BAT6BAT+BAUCBAUGBAUKBAUOBAUSBAUWBAUaBAUeBAUiB
-AUmBAUqBAUuBAUyBAU0QWBBIEGgQWRCYEBAQLRBeEBwQTBArECgQERCXEDoQGhP//////////RAdEG4Q
-ZRAkECcQOBBsEF0QUBCVEBsQJRBaEE8QZhAYECEQShAFEB4QNxBpECkQLBCWED0QWxBrECoQIhAg0gAO
-AD4AbQWigGCg0gAOAD4EOwWlgO+g0gAOAD4EOwWogO+g0gA3ADgFqgWrogWrADteTlNJQk9iamVjdERh
-dGEACAAZACIAJwAxADoAPwBEAFIAVABmAw4DFANfA2YDbQN7A40DqQO3A8MDzwPdA+gD9gQSBCAEMwRF
-BF8EaQR2BHgEewR9BIAEgwSFBIcEiQSMBI8EkQSUBJYEmASaBJ0EnwSiBKsEtwS5BLsE1wTgBOkE9AT5
-BQgFEQUkBS0FOAU6BT0FPwVwBX0FigWYBaIFsAXJBdYF6AX8BgYGEgYUBhYGGAYaBh8GIQYjBiUGJwYp
-BisGLQZIBl4GZgZxBo4GoAarBrQGwAbJBtUG1wbZBtsG3gbgBuIG5AbtBu8G+gb8Bv4HAAcCBwQHJQct
-BzQHPgdAB0IHRAdGB0kHSgdMB04HaAeZB6UHuwfQB98H8Qf8CAYIFAgmCDMIQQhGCEgISghMCE4IUAhS
-CFQIVghYCF0IZgh4CIkIkAiXCKAIogirCK0IsAi9CMYIywjSCNMI3AjlCPII/wkICRMJHAkmCS0JOQl4
-CYQJjQmaCa0JugnGCdQJ4gnkCeYJ6AnqCe0J7wnxCfMKBgoJCgsKDQoPChEKEwocCh4KKQorCi0KLwox
-CjMKYApqCnQKfgqACoIKhAqGCokKiwqNCo8KkQqTCpwKngqhCqMLAgskCy4LRAtRC2ULeguUC7ALywva
-C+YMBQwUDCAMIgwkDCYMLwwxDDMMNQw2DDgMQQxDDEwMTwxRDFIMVAxWDFgMWgxcDF4MYAxpDIEMjQyY
-DLUMtwy5DLsMvQy/DMEM7gzwDPIM9Az2DPgM+gz8DP4NAA0CDQwNFQ0eDTINSw1NDU8NUQ1aDVwNXg11
-DX4Nhw2VDZ4NoA2vDbENsw21DbcNuQ27Db0N5g31DgIODw4XDiIOMQ48DkcOSA5KDkwOTg5XDlkOWw5k
-Dm0Obw51DpIOng6jDqUOpw6pDqsOrQ6zDsQOxg7PDtEO1A7hDu4O9g74DwQPDQ8SDxoPLw87D0kPSw9N
-D08PUQ9TD1oPbA95D3sPfg+HD5IPpg+4D9kP3g/gD+IP5A/mD+gP6w/tD/cQDBAOEBAQEhAUEC0QOhA8
-EEgQXRBfEGEQYxBlEHgQgRCKEJMQmBCmEM8Q0BDSENQQ1hDfEOEQ6hDsEPMREBESERQRFhEYERoRIRE2
-ETgROhE8ET4RShFXEVkRXBF9EX8RgRGDEYURhxGJEbIRsxG1EbcRuRHCEcQRzRHPEdUR8hH0EfYR+BH6
-EfwSAhIjEiUSJxIpEisSLRIvElwSZRJmEmcSaRJrEm0SdhJ4EoESgxKKEqcSqRKrEq0SrxK0ErYSvRLe
-EuAS4hLkEuYS6BLtEu8THBMdEx4TIBMiEyQTLRMvEzgTOhM/E1wTXhNgE2ITZBNmE2sTjBOOE5ATkhOU
-E5YTmBPFE8YTxxPJE8sTzRPWE9gT2hPgE/0T/xQBFAMUBRQHFA0ULhQwFDIUNBQ2FDgUOhRjFGQUZhRo
-FGoUcxR1FH4UgBSGFKMUpRSnFKkUqxStFLMU1BTWFNgU2hTcFN4U4BTpFPAU/xUHFRwVHhUgFSIVJBUu
-FTsVPRVCFVkVYhVnFXYVjhWXFaAVqxXQFdkV4hXsFe4V8BXyFfQV9hX4FfoWAxYaFicWMBY7FkYWbxZx
-FnMWdRZ3FnkWexZ9FoYWnhanFqkWrBauFscW0BbZFuYXBxcJFwsXDRcPFxIXExcVFxcXMBdlF3oXjReh
-F7YXyRfOF9AX0hfUF9YX2BfaF98X4BfiF+QX5hf7F/0X/xgBGAMYGRhKGEwYURhTGFUYVxhZGFsYXhhg
-GGUYbBiCGLcY3RjfGOEY4xjlGOcY6RjrGPEY+hj8GP8ZARkOGRYZGBkdGR8ZIRkmGSgZKhk4GWQZaxl0
-GXsZkRmeGbQZvRnIGdwZ5RnyGgAaDBotGi8aMRozGjUaOBo5GjsaPRpUGnUaehp8Gn4agBqCGoQaiRqL
-GpgarRqvGrEasxq1GsIayxrWGvsbBxsJGwsbDRsPGxEbEhsUGxYbHxshGyYbKBsqG0YbXhtnG24bexuB
-G5obuxvHG94b6RvuG/Ab8hv0G/cb+Rv7HAQcBhwHHBAcGRwkHC0cOBxGHFEcWhxhHHkchByNHJIcpRyu
-HLAc2xzdHN8c4RzjHOUc5xzpHOsc7RzvHPEc8xz1HPcc+Rz7HP0c/x0BHQMdFB0iHSsdMx01HTcdOR07
-HUQdRh1IHWQdlR2yHckd1B3mHfoeCR4uHkkeYh5jHmUeZh5oHmkeax5tHm8ecB5yHnMedB6SHqYerx6x
-HsIexB7GHsgeyh7MHs4e0B7SHuAe5R7nHvAe9R8KHxMfGh8xH0AfUR9TH1UfVx9ZH3Ufhh+IH4ofjB+O
-H50fph+tH8Uf1h/YH9of3B/eH+of+x/9H/8gASADIAogGyAdIB8gISAjIC0gPiBAIEIgRCBGIFogayBt
-IG8gcSBzIIsgnCCeIKAgoiCkIMAg0SDTINUg1yDZIOQhBSEPIRkhIyFCIUQhRiFIIUohTCFOIVAhWSFs
-IW4hbyF4IX8hmiGnIcsh0SHuIfsh/SIAIgIiBSIHIiAiOSJCIkciUCJXIm8ijCKOIpAikiKUIpYimCK2
-IsMi0SLyIvQi9iL4Ivoi/CL+IwAjHiM1I0IjRCNHI0kjTCNOI2wjjSOPI5EjkyOVI5cjmSObI7oj0iPf
-I+Ej5CPmI+kj6yQMJA4kECQSJBQkFiQYJBokOSRRJF4kYCRjJGUkaCRqJIskjSSPJJEkkySVJJckmSS5
-JNIk3yThJOQk5iTpJOslCCUKJQwlDiUQJRIlFCUqJTclWCVaJVwlXiVgJWIlZCVmJYYlnyWsJa4lsSWz
-JbYluCXZJdsl3SXfJeEl4yXlJecmBiYeJismLSYwJjImNSY3JlgmWiZcJl4mYCZiJmQmZiaFJp0mqias
-Jq8msSa0JrYmvybBJwYnCCcKJwwnDicQJxInFCcWJxgnGiccJx4nICciJyQnJicoJyonLCcuJzAnMic0
-JzYnOCc6JzwnPidAJ0InRCdGJ0gnUSdTJ1UnYydsJ3Eneid8J8EnwyfFJ8cnySfLJ80nzyfRJ9Mn1SfX
-J9kn2yfdJ98n4SfjJ+Un5yfpJ+sn7SfvJ/En8yf1J/cn+Sf7J/0n/ygBKAMoDCgOKFUoVyhZKFsoXShf
-KGEoYyhlKGcoaShrKG0obyhxKHModSh3KHkoeyh9KH8ogSiDKIUohyiJKIsojSiPKJEokyiVKJcomSii
-KKQo6yjtKO8o8SjzKPUo9yj5KPso/Sj/KQEpAykFKQgpCykOKREpFCkXKRopHSkgKSMpJikpKSwpLyky
-KTUpOCk7KT4pQSlEKWQpgSmeKagptCnLKdgp5SoDKiMqQypaKqcquyrIKuYrBCskK0QrZCt6K4YrnSu0
-K9Yr6iwALCAsOCxQLHAskSyxLMUszizQLNUs1yzZLOIs5CzpLOss7Sz2LPgtZy1pLWstbS1vLXEtcy11
-LXcteS17LX0tfy2BLYMthS2HLYktiy2NLY8tkS2TLZUtly2ZLZstnS2fLaEtoy2lLactqS2rLa0try2x
-LbMttS23Lbktuy29Lb8twS3DLcUtxy3JLcstzS3PLdEt0y3cLd4uTS5QLlMuVi5ZLlwuXi5hLmQuZy5q
-Lm0ucC5zLnYueS58Ln8ugi6FLoguiy6OLpEulC6XLpounS6gLqMupi6pLqwury6yLrUuuC67Lr4uwS7E
-Lscuyi7NLtAu0y7WLtku3C7fLuIu5S7oLusu7i7wLvIu9C72Lvgu+i78Lv4vAC8CLwQvBi8ILwovDC8O
-LxcvGS8bLx0vHy8hLyMvJS8nLykvKy8tLy8vMS8zLzUvNy85LzsvPS8/L0EvQy9FL0cvSS9LL00vTy9R
-L1MvVS9eL2AvYS9qL2wvbS92L3gveS+CL4cAAAAAAAACAgAAAAAAAAWsAAAAAAAAAAAAAAAAAAAvlg
+AwkDHwMnAyoDKwMsAzADNQNLA0wDTQNYA1kDWwNdA14DYwNkA2kDagNtA3IDcwN4A3kDfgN/A4QDhQOK
+A4sDlwOYA5kDmgOgA6EDowOmA60DrgOvA7cDuAO5A78DxwPIA8kDzwPQA9ED2QPaA9sD4QPpA+oD6wPx
+A/kD+gP7BAEECAQJBAoECwQTBBQEFQQbBCMEJAQlBCsETgRRBFIEVAR3BJsEvwTABMEEwgTDBMQExQTG
+BMcEyATJBMoEywTMBM0EzgTPBNAE0QTSBNME1ATVBNYE1wTYBNkE2gTbBNwE3QTeBN8E4ATlBOoFIQVY
+BVkFWgVbBVwFXQVeBV8FYAVhBWIFYwVkBWUAkAVmBWcFaAVpBWoBZgVrBWwFbQVuAowFbwVwBXEFcgVz
+BXQFdQBXBXYFdwV4BXkFegV7BXwFfQV+BX8FgABWBYEFggWDBYQFhQWGBYkFjAWPVSRudWxs3xASAA0A
+DgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsA
+LAAtAC4ALwAwVk5TUm9vdFYkY2xhc3NdTlNPYmplY3RzS2V5c18QD05TQ2xhc3Nlc1ZhbHVlc18QGU5T
+QWNjZXNzaWJpbGl0eU9pZHNWYWx1ZXNdTlNDb25uZWN0aW9uc1tOU05hbWVzS2V5c1tOU0ZyYW1ld29y
+a11OU0NsYXNzZXNLZXlzWk5TT2lkc0tleXNdTlNOYW1lc1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eUNv
+bm5lY3RvcnNdTlNGb250TWFuYWdlcl8QEE5TVmlzaWJsZVdpbmRvd3NfEA9OU09iamVjdHNWYWx1ZXNf
+EBdOU0FjY2Vzc2liaWxpdHlPaWRzS2V5c1lOU05leHRPaWRcTlNPaWRzVmFsdWVzgAKBAUqA6IEBEYEB
+SYCdgO2ABYEBEIEBEoDugQFHgACABoDsgQFIEJuBARPSAA4AMgAzADRbTlNDbGFzc05hbWWABIADXxAZ
+U3BvdGxpZ2h0V2luZG93Q29udHJvbGxlctIANwA4ADkAOlgkY2xhc3Nlc1okY2xhc3NuYW1logA6ADte
+TlNDdXN0b21PYmplY3RYTlNPYmplY3RfEBBJQkNvY29hRnJhbWV3b3Jr0gAOAD4APwBAWk5TLm9iamVj
+dHOAkaEAQYAH3ABDAA4ARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAK1xO
+U1dpbmRvd1ZpZXdcTlNTY3JlZW5SZWN0XU5TV2luZG93VGl0bGVZTlNXVEZsYWdzXU5TV2luZG93Q2xh
+c3NfEBZOU1dpbmRvd0NvbnRlbnRNaW5TaXplXE5TV2luZG93UmVjdF8QD05TV2luZG93QmFja2luZ18Q
+EU5TV2luZG93U3R5bGVNYXNrWU5TTWluU2l6ZVtOU1ZpZXdDbGFzc4AMgJyAmoAJEiAAAACACoALgAgQ
+AhAfgJuAAF8QGHt7MTk2LCAxOTJ9LCB7NDgwLCAzMjB9fV8QE09wZW4gZnJvbSBTcG90bGlnaHRXTlNQ
+YW5lbFp7NDAwLCAyNjB91wBfAA4AYABhAGIAYwBkAGUAZgBnAGgAaQBlAGtfEA9OU05leHRSZXNwb25k
+ZXJaTlNTdWJ2aWV3c1hOU3ZGbGFnc1tOU0ZyYW1lU2l6ZVhOU1dpbmRvd1tOU1N1cGVydmlld4ANgJmA
+DhEBAICXgA2AmNIADgA+AG0AboBgpQBvAHAAcQByAHOAD4AZgHKAhoCN2ABfAA4AdQB2AGEAdwBjAGQA
+TgB5AHoAewB8AH0AZQBOV05TRnJhbWVWTlNDZWxsWU5TRW5hYmxlZIAMgBiAEIAREQEJCYANgAxfEBd7
+ezMzNSwgMjc1fSwgezEzMSwgMzJ9fdwAggAOAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAI8A
+kwCUAG8AlgCXAJhbTlNDZWxsRmxhZ3NfEBNOU0FsdGVybmF0ZUNvbnRlbnRzXxASTlNQZXJpb2RpY0lu
+dGVydmFsXk5TQnV0dG9uRmxhZ3MyXxAPTlNLZXlFcXVpdmFsZW50Wk5TQ29udGVudHNZTlNTdXBwb3J0
+XU5TQ29udHJvbFZpZXdfEA9OU1BlcmlvZGljRGVsYXlcTlNDZWxsRmxhZ3MyXU5TQnV0dG9uRmxhZ3MS
+BAH+AIAXgBYQGRCBgBaAEoATgA8QyBIIAAAAE/////+GgkD/XxAPQWRkIHRvIFBsYXlsaXN01AAOAJsA
+nACdAJ4AnwCgAKFWTlNTaXplVk5TTmFtZVhOU2ZGbGFnc4AVI0AqAAAAAAAAgBQRBBRcTHVjaWRhR3Jh
+bmRl0gA3ADgApAClogClADtWTlNGb250UNIANwA4AKgAqaQAqQCqAHYAO1xOU0J1dHRvbkNlbGxcTlNB
+Y3Rpb25DZWxs0gA3ADgArACtpQCtAK4ArwCwADtYTlNCdXR0b25ZTlNDb250cm9sVk5TVmlld1tOU1Jl
+c3BvbmRlct8QDwBfALIADgB1ALMAtAC1AGAAtgBhAGMAZAC3ALgAuQBOALsAvAC9AL4AvwDAAMEAwgDD
+AGUATgDGAMcAx1tOU0hTY3JvbGxlclhOU3NGbGFnc1xOU0Nvcm5lclZpZXdfEBBOU0hlYWRlckNsaXBW
+aWV3XE5TU2Nyb2xsQW10c1tOU1ZTY3JvbGxlcl1OU05leHRLZXlWaWV3XU5TQ29udGVudFZpZXeADIBs
+gHGAcBECMIAlgCKAGk8QEAAAAAAAAAAAQZgAAEGYAAARARKADYAMgGiAG4Ab0gAOAD4AbQDLgGClAMcA
+xgC7AMAAv4AbgGiAbIAigCXbAF8ADgB1ANIAYABhANMAYwDUAGQAuABwANYA1wBWANgA2QDaAGUA3ABw
+ANpZTlNjdkZsYWdzWU5TRG9jVmlld1lOU0JHQ29sb3KAGYBngGaAHBEJAIAdgA2AN4AZgB3SAA4APgBt
+AOGAYKEA2oAd3xAXAF8A5AAOAOUA5gDnAOgA6QC0AOoA6wDsAGEAYgB3AO0AYwAyAO4A7wBkAPAA8QDH
+APMA9AD1APYA9wDcAH0AvwD7APwA/QD+AP8AfQEBAGUBAwEEAQUAxwEHAQhfEB9OU0RyYWdnaW5nU291
+cmNlTWFza0Zvck5vbkxvY2FsWU5TVHZGbGFnc18QE05TT3JpZ2luYWxDbGFzc05hbWVcTlNIZWFkZXJW
+aWV3XxARTlNCYWNrZ3JvdW5kQ29sb3JfEBJOU0FsbG93c1R5cGVTZWxlY3RfEBdOU0ludGVyY2VsbFNw
+YWNpbmdXaWR0aF8QGU5TQ29sdW1uQXV0b3Jlc2l6aW5nU3R5bGVfEBhOU0ludGVyY2VsbFNwYWNpbmdI
+ZWlnaHReTlNBdXRvc2F2ZU5hbWVbTlNHcmlkQ29sb3JfEBxOU0RyYWdnaW5nU291cmNlTWFza0Zvckxv
+Y2FsXk5TVGFibGVDb2x1bW5zW05TUm93SGVpZ2h0gBsQAIBlE//////bwIAAgB+AIYA3CYAlI0AIAAAA
+AAAAEAEjQAAAAAAAAAARERKAIAmAZIANgB6AYRAPgBuAKCNAMQAAAAAAAF8QFVNwb3RsaWdodFBsYXls
+aXN0Vmlld1tOU1RhYmxlVmlld1p7NDQwLCAyMTF91wBfAA4AYQBiAGMAZAEKAMABDgBoAQ8AZQDAANqA
+IoAkgCOADYAigB3bAF8ADgDSAGAAYQBiANMAYwDUAGQAuABwANYBFgEXANkBGAD3AGUA3ABwAPeAGYBn
+EASAboBvgCGADYA3gBmAIVl7NDQwLCAxN33SADcAOAEgASGkASEArwCwADtfEBFOU1RhYmxlSGVhZGVy
+Vmlld9YAXwAOAHUAYQBjAGQAcAEkASUBJgBlAHCAGYAngCYT/////4AAAQCADYAZXxAUe3stMjYsIDB9
+LCB7MTYsIDE3fX3SADcAOAErASykASwArwCwADtdX05TQ29ybmVyVmlld9IADgA+AG0BL4BgpwEwATEB
+MgEzATQBNQE2gCmAPoBGgEuAUYBWgFvaATgADgE5AToBOwE8AT0BPgE/AQoAfQFBAUIBQwFEAUUBRgFH
+AUgA2l5OU0lzUmVzaXplYWJsZVxOU0hlYWRlckNlbGxcTlNJZGVudGlmaWVyV05TV2lkdGhaTlNEYXRh
+Q2VsbF5OU1Jlc2l6aW5nTWFza1pOU01pbldpZHRoWk5TTWF4V2lkdGgJgD2AK4AqI0BgAAAAAAAAgDUQ
+AyNARIAAAAAAACNAj0AAAAAAAIAdVXRpdGxl1wCCAA4A6ACHAIgAiwFMAU0BTgFPAVABUQDzAVJbTlNU
+ZXh0Q29sb3ISBIH+AIA0gC6ALIAtgDBVVGl0bGXUAA4AmwCcAJ0AngFWAKABWIAVI0AmAAAAAAAAgBQR
+DBzTAA4BWgFbAVwBRgFdXE5TQ29sb3JTcGFjZVdOU1doaXRlgC9LMC4zMzMzMzI5OQDSADcAOAFfAWCi
+AWAAO1dOU0NvbG9y1QAOAWABWgFiAWMBXAFlAWYBZwFoW05TQ29sb3JOYW1lXU5TQ2F0YWxvZ05hbWWA
+L4AzEAaAMoAxVlN5c3RlbV8QD2hlYWRlclRleHRDb2xvctMADgFaAVsBXAFGAW2AL0IwANIANwA4AW8B
+cKUBcAFxAKoAdgA7XxARTlNUYWJsZUhlYWRlckNlbGxfEA9OU1RleHRGaWVsZENlbGzYAIIADgDoAIcA
+iACJAIsBTAFzAXQA3AF2AJQA2gF5AXoSFCH+QIA8gDeANoATgB0RCACAOllUZXh0IENlbGzVAA4BYAFa
+AWIBYwFcAX4BZgF/AWiAL4A5gDiAMV8QFmNvbnRyb2xCYWNrZ3JvdW5kQ29sb3LTAA4BWgFbAVwBRgGE
+gC9LMC42NjY2NjY2OQDVAA4BYAFaAWIBYwFcAWUBZgGIAWiAL4AzgDuAMV8QEGNvbnRyb2xUZXh0Q29s
+b3LSADcAOAGMAXGkAXEAqgB2ADvSADcAOAGOAY+iAY8AO11OU1RhYmxlQ29sdW1u2gE4AA4BOQE6ATsB
+PAE9AT4BPwEKAH0BQQGTAZQBlQGWAUYBlwFIANoJgD2AQIA/I0BewAAAAAAAgEUjQEIAAAAAAACAHVZh
+cnRpc3TXAIIADgDoAIcAiACLAUwAjQFOAZwBnQFRAPMBUoA0gEKAQYAtgDBWQXJ0aXN01QAOAWABWgFi
+AWMBXAGjAWYBpAFogC+ARIBDgDFbaGVhZGVyQ29sb3LTAA4BWgFbAVwBRgGpgC9CMQDYAIIADgDoAIcA
+iACJAIsBTAFzAXQA3AF2AJQA2gF5AXqAPIA3gDaAE4AdgDraATgADgE5AToBOwE8AT0BPgE/AQoAfQFB
+AbQBtQG2AbcBRgG4AUgA2gmAPYBIgEcjQF9AAAAAAACASiNAQ4AAAAAAAIAdVWFsYnVt1wCCAA4A6ACH
+AIgAiwFMAI0BTgGcAb4BUQDzAVKANIBCgEmALYAwVUFsYnVt2ACCAA4A6ACHAIgAiQCLAUwBcwF0ANwB
+dgCUANoBeQF6gDyAN4A2gBOAHYA62wE4AcoBOQE6AA4BOwE8AT0BPgE/AQoAfQB9Ac0BzgFBAdAB0QFG
+AdIBSADaWE5TSGlkZGVuCQmATYBMgD0jQEkAAAAAAACATyNARE9gIAAAAIAdVmxlbmd0aNcAggAOAOgA
+hwCIAIsBTACNAU4BnAHYAVEB2gFSgDSAQoBOgC0SBAAAAIAwVkxlbmd0aNgAggAOAOgAhwCIAIkAiwFM
+AXMBdADcAeAAlADaAeMBeoA8gDeAUIATgB0SBAAIAIA62wE4AcoBOQE6AA4BOwE8AT0BPgE/AQoAfQB9
+AegB6QFBAesB7AFGAe0BSADaCQmAU4BSgD0jQEeAAAAAAACAVSNAJAAAAAAAAIAdVHllYXLXAIIADgDo
+AIcAiACLAUwAjQFOAZwB8wFRAdoBUoA0gEKAVIAtgDBUWWVhctgAggAOAOgAhwCIAIkAiwFMAXMBdADc
+AeAAlADaAeMBeoA8gDeAUIATgB2AOtsBOAHKATkBOgAOATsBPAE9AT4BPwEKAH0AfQIBAgIBQQIEAgUB
+RgHtAUgA2gkJgFiAV4A9I0BHAAAAAAAAgFqAHVVnZW5yZdcAggAOAOgAhwCIAIsBTACNAU4BnAILAVEA
+8wFSgDSAQoBZgC2AMFVHZW5yZdgAggAOAOgAhwCIAIkAiwFMAXMBdADcAeAAlADaAXkBeoA8gDeAUIAT
+gB2AOtoBOAAOATkBOgE7ATwBPQE+AT8BCgB9AUECGQIaAhsCHAFGAh0CGwDaCYA9gF2AXCNASgAAAAAA
+AIBfI0AgAAAAAAAAgB1VdHJhY2vXAIIADgDoAIcAiACLAUwAjQFOAZwCIwFRAdoBUoA0gEKAXoAtgDBV
+VHJhY2vYAIIADgDoAIcAiACJAIsBTAFzAXQA3AF2AJQA2gHjAXqAPIA3gDaAE4AdgDrSADcAOAIvAjCj
+AjACMQA7Xk5TTXV0YWJsZUFycmF5V05TQXJyYXnVAA4BYAFaAWIBYwFcAjQBZgI1AWiAL4BjgGKAMVln
+cmlkQ29sb3LTAA4BWgFbAVwBRgI6gC9EMC41AF8QFENvZ1Nwb3RsaWdodFBsYXlsaXN00gA3ADgCPQI+
+ogI+ADteTlNDbGFzc1N3YXBwZXJfEBV7ezAsIDE3fSwgezQ0MCwgMjExfX3SADcAOAJBAkKkAkIArwCw
+ADtaTlNDbGlwVmlld9kAXwJEAA4AdQBhAGMCRQBkAkYAcABwAkkCSgEmAGUCTABwAk5YTlNUYXJnZXRY
+TlNBY3Rpb25ZTlNQZXJjZW50gBmAGYBrgGmADYBqgBkjP+o3hKAAAABfEBR7ezg1LCAxN30sIHsxNSwg
+Njh9fVxfZG9TY3JvbGxlcjrSADcAOAJSAlOlAlMArgCvALAAO1pOU1Njcm9sbGVy2gBfAkQADgB1ALMA
+YQBjAkUAZAJGAHAAcAJJAlgA/AEmAGUCTABwAlyAGYAZgGuAbYANgGqAGSM/7aRhAAAAAF8QFXt7MCwg
+MjEzfSwgezQ0MCwgMTV9fdIADgA+AG0CYIBgoQD3gCFfEBZ7ezIwLCA0NH0sIHs0NDAsIDIyOH190gA3
+ADgCZAJlpAJlAK8AsAA7XE5TU2Nyb2xsVmlld9gAXwAOAHUAdgBhAHcAYwBkAE4CaAJpAmoCawB9AGUA
+ToAMgIWAc4B0EQEKCYANgAxfEBZ7ezIwLCAyODJ9LCB7MzEzLCAyMn193QCCAA4CcQDoAIcAiACJAIsC
+cgJzAnQCdQFMAnYCdwJ4AnkAjwCUAHECfQD8AH0CfwKAAXpfEBJOU0NhbmNlbEJ1dHRvbkNlbGxfEBBO
+U1RleHRCZXplbFN0eWxlXxARTlNEcmF3c0JhY2tncm91bmRfEBJOU1NlYXJjaEJ1dHRvbkNlbGxfEBBO
+U01heGltdW1SZWNlbnRzEhRx/kCAhIB6gHWAFoATgHISEAAEAAmAdxD/gDrVAA4BYAFaAWIBYwFcAaMB
+ZgKFAWiAL4BEgHaAMV8QE3RleHRCYWNrZ3JvdW5kQ29sb3LcAkQAggAOAIQAhQCGAIcAiQCKAIsCRQCM
+AmoCigCOAowA8wCPAo4AcQKQAPMCkQKSgHQSAAH+AIAXEEuAFoB4gHIRAZCAeRIIRED/VnNlYXJjaF8Q
+E19zZWFyY2hGaWVsZFNlYXJjaDrdAkQAggAOAIQAhQCGApYAhwCJAIoAiwJFAIwCagKKAI4CjADzAI8C
+mgKbAHECkADzAp0Ckl8QI05TQWNjZXNzaWJpbGl0eU92ZXJyaWRkZW5BdHRyaWJ1dGVzgHSAF4AWgHyA
+e4BygINVY2xlYXLSAA4APgBtAqGAYKECooB90wAOAqQAPgKlAqYCqVdOUy5rZXlzgIKiAqcCqIB+gH+i
+AqoCq4CAgIFdQVhEZXNjcmlwdGlvbl8QKU5TQWNjZXNzaWJpbGl0eUVuY29kZWRBdHRyaWJ1dGVzVmFs
+dWVUeXBlVmNhbmNlbNIANwA4ArACsaMCsQKyADtfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlv
+bmFyeV8QE19zZWFyY2hGaWVsZENhbmNlbDrSADcAOAK1AralArYBcQCqAHYAO18QEU5TU2VhcmNoRmll
+bGRDZWxs0gA3ADgCuAK5pgK5AroArgCvALAAO11OU1NlYXJjaEZpZWxkW05TVGV4dEZpZWxk2ABfAA4A
+dQB2AGEAdwBjAGQATgK9Ar4CvwLAAH0AZQBOgAyAjICHgIgRASEJgA2ADF8QFHt7ODgsIDE0fSwgezk2
+LCAxN3192ACCAA4A6ACHAIgAiQCLAUwCxgF0AsgCyQCUAHICzAF6EgQB/kCAPICKgImAE4CGEhBABACA
+OlxTZWFyY2ggUGF0aDrVAA4BYAFaAWIBYwFcAX4BZgLSAWiAL4A5gIuAMVxjb250cm9sQ29sb3LSADcA
+OALWArqlAroArgCvALAAO9kAXwAOAHUAdgLYAGEAdwBjAGQATgLaAtsC3ALdAsAAfQBlAE5bTlNEcmFn
+VHlwZXOADICWgJKAk4COCYANgAzSAA4APgA/AuOAkaIC5ALlgI+AkF8QGUFwcGxlIFVSTCBwYXN0ZWJv
+YXJkIHR5cGVfEBVOU0ZpbGVuYW1lc1Bib2FyZFR5cGXSADcAOALpAuqjAuoC6wA7XE5TTXV0YWJsZVNl
+dFVOU1NldF8QFnt7MTg5LCAxMH0sIHsyNzEsIDI2fX3YAu4AggAOAIgAiQCLAu8C8ABWAvEC8gCUAHMC
+9QL2AHNbTlNQYXRoU3R5bGVfEBROU1BhdGhDb21wb25lbnRDZWxsc1pOU0RlbGVnYXRlEhQh/gGAlYAT
+gI0RgACAlICN0gAOAD4AbQL6gGCg0gA3ADgC/AL9pAL9AKoAdgA7Wk5TUGF0aENlbGzSADcAOAL/AwCl
+AwAArgCvALAAO11OU1BhdGhDb250cm9sWns0ODAsIDMyMH3SADcAOAMDAK+jAK8AsAA7XxAVe3swLCAw
+fSwgezEyODAsIDc3OH19Wns0MDAsIDI3Nn3SADcAOAMHAwiiAwgAO18QEE5TV2luZG93VGVtcGxhdGXS
+AA4APgBtAwuAYK8QEwMMAw0DDgMPAxADEQMSAxMDFAMVAxYDFwMYAxkDGgMbAxwDHQMegJ6Ao4CsgK6A
+sYCzgLWAt4C5gLuAw4DGgMqA0IDUgNiA3IDggOTUAA4DIAMhAyIDIwAfAyUDJl1OU0Rlc3RpbmF0aW9u
+WE5TU291cmNlV05TTGFiZWyAooACgJ+AodIADgAyADMDKYAEgKBfEBlTcG90bGlnaHRTZWFyY2hDb250
+cm9sbGVyXxAZc3BvdGxpZ2h0V2luZG93Q29udHJvbGxlctIANwA4Ay0DLqMDLgMvADtfEBROU05pYk91
+dGxldENvbm5lY3Rvcl5OU05pYkNvbm5lY3RvctQADgMgAyEDIgMjAzIDJQM0gKKApICfgKvcAzYADgM3
+AOYDOAM5AzoDOwM8ADIDPQM+AH0A9AB9A0IAfQNEA0UDRgB9A0gAfQB9XxAaTlNGaWx0ZXJSZXN0cmlj
+dHNJbnNlcnRpb25fEBROU1ByZXNlcnZlc1NlbGVjdGlvblpOU0VkaXRhYmxlXxAPX05TTWFuYWdlZFBy
+b3h5XxARTlNPYmplY3RDbGFzc05hbWVeTlNEZWNsYXJlZEtleXNfECJOU0NsZWFyc0ZpbHRlclByZWRp
+Y2F0ZU9uSW5zZXJ0aW9uXxAYTlNTZWxlY3RzSW5zZXJ0ZWRPYmplY3RzXxAWTlNBdm9pZHNFbXB0eVNl
+bGVjdGlvbgmAZQmApgmAqYCogKcJgKUJCV8QG1Nwb3RsaWdodFBsYXlsaXN0Q29udHJvbGxlcl8QEU5T
+QXJyYXlDb250cm9sbGVy0gAOAD4AbQNPgGCoAVABQwHpAZQBtQICAc4CGoAsgCqAUoA/gEeAV4BMgFxd
+UGxheWxpc3RFbnRyedEADgNagKrSADcAOANcAzmiAzkAO18QEnBsYXlsaXN0Q29udHJvbGxlctQADgMg
+AyEDIgMjAHEAQQNigKKAcoAHgK1fEBVpbml0aWFsRmlyc3RSZXNwb25kZXLUAA4DIAMhAyIDZQMlAG8D
+aICwgJ+AD4CvXmFkZFRvUGxheWxpc3Q60gA3ADgDawNsowNsAy8AO18QFU5TTmliQ29udHJvbENvbm5l
+Y3RvctQADgMgAyEDIgMjAHMDJQNxgKKAjYCfgLJbcGF0aENvbnRyb2zUAA4DIAMhAyIDIwMyANoDd4Ci
+gKSAHYC0WmRhdGFTb3VyY2XUAA4DIAMhAyIDIwMlAzIDfYCigJ+ApIC2XxAZc3BvdGxpZ2h0U2VhcmNo
+Q29udHJvbGxlctQADgMgAyEDIgMjANoDMgODgKKAHYCkgLhZdGFibGVWaWV31AAOAyADIQMiAyMAQQAf
+A4mAooAHgAKAulZ3aW5kb3fYAA4DIAOMA40DIQMiA44DjwOQAzIDkgOTATYDlQOWAFZZTlNLZXlQYXRo
+WU5TQmluZGluZ1lOU09wdGlvbnNfEBxOU05pYkJpbmRpbmdDb25uZWN0b3JWZXJzaW9ugMKApIC+gL2A
+W4C8gL9fEBx2YWx1ZTogYXJyYW5nZWRPYmplY3RzLnRyYWNrVXZhbHVlXxAVYXJyYW5nZWRPYmplY3Rz
+LnRyYWNr0wAOAqQAPgObA5wDnoDBoQOdgMChAquAgV8QG05TQ29uZGl0aW9uYWxseVNldHNFZGl0YWJs
+ZdIANwA4A6ICsqICsgA70gA3ADgDpAOlowOlAy8AO18QFU5TTmliQmluZGluZ0Nvbm5lY3RvctcADgMg
+A4wDjQMhAyIDjwOQAyUDqQOTAmoDrABWgMKAn4DFgL2AdIDEXxATdmFsdWU6IHNlYXJjaFN0cmluZ1xz
+ZWFyY2hTdHJpbmfYAA4DIAOMA40DIQMiA44DjwOQAzIDsgOTATEDtQO2AFaAwoCkgMiAvYA+gMeAyV8Q
+HXZhbHVlOiBhcnJhbmdlZE9iamVjdHMuYXJ0aXN0XxAWYXJyYW5nZWRPYmplY3RzLmFydGlzdNMADgKk
+AD4DmwO7A72AwaEDnYDAoQKrgIHYAA4DIAOMA40DIQMiA44DjwOQAyUDwgOTAHMDxQPGAFaAwoCfgMyA
+vYCNgMuAzV8QGnZhbHVlOiBzcG90bGlnaHRTZWFyY2hQYXRoXxATc3BvdGxpZ2h0U2VhcmNoUGF0aNMA
+DgKkAD4DmwPLA82AwaEDzIDOoQPOgM9fEBZOU1ZhbHVlVHJhbnNmb3JtZXJOYW1lXxAWU3RyaW5nVG9V
+UkxUcmFuc2Zvcm1lctgADgMgA4wDjQMhAyIDjgOPA5ADMgPUA5MBMwPXA9gAVoDCgKSA0oC9gEuA0YDT
+XxAddmFsdWU6IGFycmFuZ2VkT2JqZWN0cy5sZW5ndGhfEBZhcnJhbmdlZE9iamVjdHMubGVuZ3Ro0wAO
+AqQAPgObA90D34DBoQOdgMChAquAgdgADgMgA4wDjQMhAyIDjgOPA5ADMgPkA5MBMAPnA+gAVoDCgKSA
+1oC9gCmA1YDXXxAcdmFsdWU6IGFycmFuZ2VkT2JqZWN0cy50aXRsZV8QFWFycmFuZ2VkT2JqZWN0cy50
+aXRsZdMADgKkAD4DmwPtA++AwaEDnYDAoQKrgIHYAA4DIAOMA40DIQMiA44DjwOQAzID9AOTATID9wP4
+AFaAwoCkgNqAvYBGgNmA218QHHZhbHVlOiBhcnJhbmdlZE9iamVjdHMuYWxidW1fEBVhcnJhbmdlZE9i
+amVjdHMuYWxidW3TAA4CpAA+A5sD/QP/gMGhA52AwKECq4CB1wAOAyADjAONAyEDIgOPA5ADJQQEBAUD
+MgQHAFaAwoCfgN+A3oCkgN1fEBtjb250ZW50QXJyYXk6IHF1ZXJ5LnJlc3VsdHNcY29udGVudEFycmF5
+XXF1ZXJ5LnJlc3VsdHPYAA4DIAOMA40DIQMiA44DjwOQAzIEDgOTATUEEQQSAFaAwoCkgOKAvYBWgOGA
+418QHHZhbHVlOiBhcnJhbmdlZE9iamVjdHMuZ2VucmVfEBVhcnJhbmdlZE9iamVjdHMuZ2VucmXTAA4C
+pAA+A5sEFwQZgMGhA52AwKECq4CB2AAOAyADjAONAyEDIgOOA48DkAMyBB4DkwE0BCEEIgBWgMKApIDm
+gL2AUYDlgOdfEBt2YWx1ZTogYXJyYW5nZWRPYmplY3RzLnllYXJfEBRhcnJhbmdlZE9iamVjdHMueWVh
+ctMADgKkAD4DmwQnBCmAwaEDnYDAoQKrgIHSAA4APgQsBC2A668QIAE1AbcCHAE0ALsB7ABwAr8CagBv
+ATEBlgDaATYAcgD3BD4DMgEwAHMCBQB7AyUAxgBOAdEBRQBBATMC3ABxATKAVoBKgF+AUYBsgFWAGYCI
+gHSAD4A+gEWAHYBbgIaAIYDpgKSAKYCNgFqAEYCfgGiADIBPgDWAB4BLgJOAcoBG0gAOADIAMwRQgASA
+6l1OU0FwcGxpY2F0aW9u0gA3ADgEUwIxogIxADvSAA4APgQsBFaA668QIADaATIBNgDaAHABNABOAHIA
+cQBOANoBMQBwANoATgBwAB8AHwDaAE4BNQBvAB8AcABBATMBMAAfANoAcwBOANqAHYBGgFuAHYAZgFGA
+DICGgHKADIAdgD6AGYAdgAyAGYACgAKAHYAMgFaAD4ACgBmAB4BLgCmAAoAdgI2ADIAd0gAOAD4ELAR5
+gOuvECEBNQIcAB8BtwE0ALsB7ABwAG8CvwJqATEBNgDaAZYAcgMyBD4A9wEwAHMCBQB7AyUAxgBOAdEB
+RQBBATMC3ABxATKAVoBfgAKASoBRgGyAVYAZgA+AiIB0gD6AW4AdgEWAhoCkgOmAIYApgI2AWoARgJ+A
+aIAMgE+ANYAHgEuAk4BygEbSAA4APgQsBJ2A668QIQSeBJ8EoAShBKIEowSkBKUEpgSnBKgEqQSqBKsE
+rAStBK4ErwSwBLEEsgSzBLQEtQS2BLcEuAS5BLoEuwS8BL0EvoDvgPCA8YDygPOA9ID1gPaA94D4gPmA
++oD7gPyA/YD+gP+BAQCBAQGBAQKBAQOBAQSBAQWBAQaBAQeBAQiBAQmBAQqBAQuBAQyBAQ2BAQ6BAQ9f
+EBRUYWJsZSBDb2x1bW4gKGdlbnJlKV8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS0zXEZpbGUn
+cyBPd25lcl8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS02XxATVGFibGUgQ29sdW1uICh5ZWFy
+KV8QE0hvcml6b250YWwgU2Nyb2xsZXJfEB1UZXh0IEZpZWxkIENlbGwgKFRleHQgQ2VsbCktMVtTY3Jv
+bGwgVmlld18QHVB1c2ggQnV0dG9uIChBZGQgdG8gUGxheWxpc3QpXxAeVGV4dCBGaWVsZCBDZWxsIChT
+ZWFyY2ggUGF0aDopXxARU2VhcmNoIEZpZWxkIENlbGxfEBVUYWJsZSBDb2x1bW4gKGFydGlzdClfEBRU
+YWJsZSBDb2x1bW4gKHRyYWNrKV8QSlNwb3RsaWdodCBQbGF5bGlzdCBWaWV3IChUaXRsZSwgQXJ0aXN0
+LCBBbGJ1bSwgTGVuZ3RoLCBZZWFyLCBHZW5yZSwgVHJhY2spXxAdVGV4dCBGaWVsZCBDZWxsIChUZXh0
+IENlbGwpLTJfEBpTdGF0aWMgVGV4dCAoU2VhcmNoIFBhdGg6KV8QHVNwb3RsaWdodCBQbGF5bGlzdCBD
+b250cm9sbGVyW0FwcGxpY2F0aW9uXxARVGFibGUgSGVhZGVyIFZpZXdfEBRUYWJsZSBDb2x1bW4gKHRp
+dGxlKV8QGlBvcCBVcCBQYXRoIENvbnRyb2wgV2lkZ2V0XxAbVGV4dCBGaWVsZCBDZWxsIChUZXh0IENl
+bGwpXxAdQnV0dG9uIENlbGwgKEFkZCB0byBQbGF5bGlzdClfEBtTcG90bGlnaHQgU2VhcmNoIENvbnRy
+b2xsZXJfEBFWZXJ0aWNhbCBTY3JvbGxlclxDb250ZW50IFZpZXdfEB1UZXh0IEZpZWxkIENlbGwgKFRl
+eHQgQ2VsbCktNV8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS00XxAbUGFuZWwgKE9wZW4gZnJv
+bSBTcG90bGlnaHQpXxAVVGFibGUgQ29sdW1uIChsZW5ndGgpWVBhdGggQ2VsbFxTZWFyY2ggRmllbGRf
+EBRUYWJsZSBDb2x1bW4gKGFsYnVtKdIADgA+BCwE4oDrogDaAzKAHYCk0gAOAD4ELATngOuiAQMDSIAe
+gKXSAA4APgQsBOyA668QNAMeAB8AuwHsAHACvwJqAG8DFwMVANoDGwMSAxkA9wMyATADFgBzAxMAewMl
+Aw4BRQEzAw0C3AMYATIBNQG3AhwDDAE0Aw8BlgMRATYBMQByBD4CBQMQAxQAxgBOAdEAQQMdAxoAcQMc
+gOSAAoBsgFWAGYCIgHSAD4DGgLuAHYDYgLWA0IAhgKSAKYDDgI2At4ARgJ+ArIA1gEuAo4CTgMqARoBW
+gEqAX4CegFGAroBFgLOAW4A+gIaA6YBagLGAuYBogAyAT4AHgOCA1IBygNzSAA4APgQsBSOA668QNAUk
+BSUFJgUnBSgFKQUqBSsFLAUtBS4FLwUwBTEFMgUzBTQFNQU2BTcFOAU5BToFOwU8BT0FPgU/BUAFQQVC
+BUMFRAVFBUYFRwVIBUkFSgVLBUwFTQVOBU8FUAVRBVICqwVUBVUFVgVXgQEUgQEVgQEWgQEXgQEYgQEZ
+gQEagQEbgQEcgQEdgQEegQEfgQEggQEhgQEigQEjgQEkgQElgQEmgQEngQEogQEpgQEqgQErgQEsgQEt
+gQEugQEvgQEwgQExgQEygQEzgQE0gQE1gQE2gQE3gQE4gQE5gQE6gQE7gQE8gQE9gQE+gQE/gQFAgQFB
+gQFCgIGBAUOBAUSBAUWBAUYQXhCaEBoQKhAYEFAQOBAFEGgQaxAcEGUQlhBpEBAQJBA6EFgQlRARED0Q
+JRAgEFkQmRAhEB4QKBAsEEwQShAnEJcQHRAiEE8T//////////0QKxBaEEgQGxApEGYQXRA3EC3SAA4A
+PgBtBYiAYKDSAA4APgQsBYuA66DSAA4APgQsBY6A66DSADcAOAWQBZGiBZEAO15OU0lCT2JqZWN0RGF0
+YQAIABkAIgAnADEAOgA/AEQAUgBUAGYDAAMGA1EDWANfA20DfwObA6kDtQPBA88D2gPoBAQEEgQlBDcE
+UQRbBGgEagRtBG8EcgR1BHcEeQR7BH4EgQSDBIYEiASKBIwEjwSRBJQEnQSpBKsErQTJBNIE2wTmBOsE
++gUDBRYFHwUqBSwFLwUxBWIFbwV8BYoFlAWiBbsFyAXaBe4F+AYEBgYGCAYKBgwGEQYTBhUGFwYZBhsG
+HQYfBjoGUAZYBmMGgAaSBp0GpgayBrsGxwbJBssGzQbQBtIG1AbWBt8G4QbsBu4G8AbyBvQG9gcXBx8H
+JgcwBzIHNAc2BzgHOwc8Bz4HQAdaB4sHlwetB8IH0QfjB+4H+AgGCBgIJQgzCDgIOgg8CD4IQAhCCEQI
+RghICEoITwhYCGoIewiCCIkIkgiUCJ0InwiiCK8IuAi9CMQIxQjOCNcI5AjxCPoJBQkOCRgJHwkrCWoJ
+dgl/CYwJnwmsCbgJxgnUCdYJ2AnaCdwJ3wnhCeMJ5Qn4CfsJ/Qn/CgEKAwoFCg4KEAobCh0KHwohCiMK
+JQpSClwKZgpwCnIKdAp2CngKewp9Cn8KgQqDCoUKjgqQCpMKlQr0CxYLIAs2C0MLVwtsC4YLogu9C8wL
+2Av3DAYMEgwUDBYMGAwhDCMMJQwnDCgMKgwzDDUMPgxBDEMMRAxGDEgMSgxMDE4MUAxSDFsMcwx/DIoM
+pwypDKsMrQyvDLEMswzgDOIM5AzmDOgM6gzsDO4M8AzyDPQM/g0HDRANJA09DT8NQQ1DDUwNTg1QDWcN
+cA15DYcNkA2SDaENow2lDacNqQ2rDa0Nrw3YDecN9A4BDgkOFA4jDi4OOQ46DjwOPg5ADkkOSw5NDlYO
+Xw5hDmcOhA6QDpUOlw6ZDpsOnQ6fDqUOtg64DsEOww7GDtMO4A7oDuoO9g7/DwQPDA8hDy0POw89Dz8P
+QQ9DD0UPTA9eD2sPbQ9wD3kPhA+YD6oPyw/QD9IP1A/WD9gP2g/dD98P6Q/+EAAQAhAEEAYQHxAsEC4Q
+OhBPEFEQUxBVEFcQahBzEHwQhRCKEJgQwRDCEMQQxhDIENEQ0xDcEN4Q5RECEQQRBhEIEQoRDBETESgR
+KhEsES4RMBE8EUkRSxFOEW8RcRFzEXURdxF5EXsRpBGlEacRqRGrEbQRthG/EcERxxHkEeYR6BHqEewR
+7hH0EhUSFxIZEhsSHRIfEiESThJXElgSWRJbEl0SXxJoEmoScxJ1EnwSmRKbEp0SnxKhEqYSqBKvEtAS
+0hLUEtYS2BLaEt8S4RMOEw8TEBMSExQTFhMfEyETKhMsEzETThNQE1ITVBNWE1gTXRN+E4ATghOEE4YT
+iBOKE7cTuBO5E7sTvRO/E8gTyhPME9IT7xPxE/MT9RP3E/kT/xQgFCIUJBQmFCgUKhQsFFUUVhRYFFoU
+XBRlFGcUcBRyFHgUlRSXFJkUmxSdFJ8UpRTGFMgUyhTMFM4U0BTSFNsU4hTxFPkVDhUQFRIVFBUWFSAV
+LRUvFTQVSxVUFVkVaBWAFYkVkhWdFcIVyxXUFd4V4BXiFeQV5hXoFeoV7BX1FgwWGRYiFi0WOBZhFmMW
+ZRZnFmkWaxZtFm8WeBaQFpkWmxaeFqAWuRbCFssW2Bb5FvsW/Rb/FwEXBBcFFwcXCRciF1cXbBd/F5MX
+qBe7F8AXwhfEF8YXyBfKF8wX0RfSF9QX1hfYF+0X7xfxF/MX9RgLGDwYPhhDGEUYRxhJGEsYTRhQGFIY
+VxheGHQYqRjPGNEY0xjVGNcY2RjbGN0Y4xjsGO4Y8RjzGQAZCBkKGQ8ZERkTGRgZGhkcGSoZVhldGWYZ
+bRmDGZAZphmvGboZzhnXGeQZ8hn+Gh8aIRojGiUaJxoqGisaLRovGkYaZxpsGm4acBpyGnQadhp7Gn0a
+ihqfGqEaoxqlGqcatBq9Gsga7Rr5Gvsa/Rr/GwEbAxsEGwYbCBsRGxMbGBsaGxwbOBtQG1kbYBttG3Mb
+jButG7kb0BvbG+Ab4hvkG+Yb6RvrG+0b9hv4G/kcAhwLHBYcHxwqHDgcQxxMHFMcaxx2HH8chByXHKAc
+ohzLHM0czxzRHNMc1RzXHNkc2xzdHN8c4RzjHOUc5xzpHOsc7RzvHPEdAh0QHRkdIR0jHSUdJx0pHTId
+NB02HVIdbh13HX4dlR2kHbUdtx25HbsdvR3uHgseIh4tHj8eUx5iHoceoh67Hrwevh6/HsEewh7EHsYe
+yB7JHssezB7NHuse/x8IHwofGx8dHx8fIR8jHyUfJx8pHysfOR8+H0AfSR9OH2MfdB92H3gfeh98H5Qf
+pR+nH6kfqx+tH7wfxR/MH+Qf9R/3H/kf+x/9IAkgGiAcIB4gICAiIC0gPiBAIEIgRCBGIGIgcyB1IHcg
+eSB7IIUgliCYIJognCCeIKUgxiDQINog5CEDIQUhByEJIQshDSEPIREhMCE2IU4hWyFdIWAhYiFlIWch
+hSGOIZMhnCGjIbsh2CHaIdwh3iHgIeIh5CH6IgciKCIqIiwiLiIwIjIiNCI2IlYibyJ8In4igSKDIoYi
+iCKpIqsirSKvIrEisyK1Irci1CLqIvci+SL8Iv4jASMDIxwjNSNWI1gjWiNcI14jYCNiI2QjhCOdI6oj
+rCOvI7EjtCO2I9cj2SPbI90j3yPhI+Mj5SQEJBwkKSQrJC4kMCQzJDUkViRYJFokXCReJGAkYiRkJIMk
+mySoJKokrSSvJLIktCTRJNMk1STXJNkk2yTdJPslCCUWJTclOSU7JT0lPyVBJUMlRSVkJXwliSWLJY4l
+kCWTJZUltiW4JbolvCW+JcAlwiXEJeIl+SYGJggmCyYNJhAmEiYbJh0mYCZiJmQmZiZoJmombCZuJnAm
+ciZ0JnYmeCZ6JnwmfiaAJoImhCaGJogmiiaMJo4mkCaSJpQmliaYJpomnCaeJqAmqSarJq0muybEJskm
+0ibUJxcnGScbJx0nHychJyMnJScnJyknKyctJy8nMSczJzUnNyc5JzsnPSc/J0EnQydFJ0cnSSdLJ00n
+TydRJ1MnVSdXJ2AnYienJ6knqyetJ68nsSezJ7Untye5J7snvSe/J8EnwyfFJ8cnySfLJ80nzyfRJ9Mn
+1SfXJ9kn2yfdJ98n4SfjJ+Un5yfpJ/In9Cg5KDsoPSg/KEEoQyhFKEcoSShLKE0oTyhRKFMoVShXKFko
+WyheKGEoZChnKGoobShwKHModih5KHwofyiCKIUoiCiLKKIowijPKO8pBSkbKTspRylnKYgpnCm0Kcsq
+GCo4KlUqdSqBKpUqrCrJKucrByslKzkrRitmK4YrpCu8K8Yr0yvqK/Mr9Sv6K/wr/iwHLAksDiwQLBIs
+GywdLIgsiiyMLI4skCySLJQsliyYLJosnCyeLKAsoiykLKYsqCyqLKwsriywLLIstCy2LLgsuiy8LL4s
+wCzCLMQsxizILMoszCzOLNAs0izULNYs2CzaLNws3izgLOIs5CzmLOgs6izsLO4s8Cz5LPstZi1pLWwt
+by1yLXUteC17LX4tgS2ELYctii2NLZAtky2WLZktnC2fLaItpS2oLastri2xLbQtty26Lb0twC3DLcYt
+yS3MLc8t0i3VLdgt2y3eLeEt5C3nLeot7S3wLfMt9S34Lfst/i4BLgMuBS4HLgkuCy4NLg8uES4TLhUu
+Fy4ZLhsuHS4fLiEuIy4lLicuKS4rLi0uLy4xLjMuNS43LjkuOy49Lj8uQS5DLkUuRy5JLlIuVC5WLlgu
+Wi5cLl4uYC5iLmQubS5vLnAueS57LnwuhS6HLogukS6WAAAAAAAAAgIAAAAAAAAFkgAAAAAAAAAAAAAA
+AAAALqU
diff --git a/Spotlight/SpotlightSearchController.h b/Spotlight/SpotlightSearchController.h
index 33622df25..780dfba09 100644
--- a/Spotlight/SpotlightSearchController.h
+++ b/Spotlight/SpotlightSearchController.h
@@ -16,15 +16,16 @@
IBOutlet NSPathControl *pathControl;
NSMetadataQuery *query;
NSString *searchString;
+ NSString *spotlightSearchPath;
}
- (IBAction)addToPlaylist:(id)sender;
-- (IBAction)changeSearchPath:(id)sender;
- (void)performSearch;
- (NSPredicate *)processSearchString;
@property(retain) NSMetadataQuery *query;
@property(copy) NSString *searchString;
+@property(copy) NSString *spotlightSearchPath;
@end
diff --git a/Spotlight/SpotlightSearchController.m b/Spotlight/SpotlightSearchController.m
index 99bef9c0f..ce8f4466a 100644
--- a/Spotlight/SpotlightSearchController.m
+++ b/Spotlight/SpotlightSearchController.m
@@ -60,8 +60,10 @@ static NSPredicate * musicOnlyPredicate = nil;
[NSArray arrayWithObjects: musicOnlyPredicate,
searchPredicate,
nil]];
- // Only preform a new search if the predicate has changed
- if(![self.query.predicate isEqual:spotlightPredicate])
+ // Only preform a new search if the predicate has changed or there is a new path
+ if(![self.query.predicate isEqual:spotlightPredicate]
+ || ![self.query.searchScopes isEqualToArray:
+ [NSArray arrayWithObjects:pathControl.URL, nil]])
{
if([self.query isStarted])
[self.query stopQuery];
@@ -136,14 +138,6 @@ static NSPredicate * musicOnlyPredicate = nil;
[super dealloc];
}
-- (IBAction)changeSearchPath:(id)sender
-{
- // When the search path is changed, restart search
- if([self.query isStarted]) {
- [self performSearch];
- }
-}
-
- (IBAction)addToPlaylist:(id)sender
{
[self.query disableUpdates];
@@ -171,11 +165,34 @@ replacementObjectForResultObject:(NSMetadataItem*)result
- (void)setSearchString:(NSString *)aString
{
// Make sure the string is changed
- if (searchString != aString)
+ if (![searchString isEqualToString:aString])
{
searchString = [aString copy];
[self performSearch];
}
}
+@dynamic spotlightSearchPath;
+// getter reads from user defaults
+- (NSString *)spotlightSearchPath
+{
+ return [[[NSUserDefaults standardUserDefaults]
+ stringForKey:@"spotlightSearchPath"]copy];
+}
+// Normally, our nspathcontrol would just bind to the user defaults
+// However, this does not allow us to perform a new search when
+// the path changes. This getter/setter combo wraps around the user
+// defaults while performing a new search when the value changes.
+- (void)setSpotlightSearchPath:(NSString *)aString
+{
+ // Make sure the string is changed
+ if (![spotlightSearchPath isEqualToString: aString])
+ {
+ spotlightSearchPath = [aString copy];
+ [[NSUserDefaults standardUserDefaults] setObject:spotlightSearchPath
+ forKey:@"spotlightSearchPath"];
+ [self performSearch];
+ }
+}
+
@end