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 YES - + YES @@ -52,7 +52,7 @@ 134217728 Add to Playlist - LucidaGrande + LucidaGrande 1.300000e+01 1044 @@ -109,7 +109,7 @@ 0 Title - + 1.100000e+01 3100 @@ -119,7 +119,7 @@ 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