diff --git a/Application/AppController.m b/Application/AppController.m index cea5aac28..dc94e60f6 100644 --- a/Application/AppController.m +++ b/Application/AppController.m @@ -361,8 +361,8 @@ increase/decrease as long as the user holds the left/right, plus/minus button */ [userDefaultsValuesDict setObject:@"http://cogx.org/appcast/stable.xml" forKey:@"SUFeedURL"]; - [userDefaultsValuesDict setObject:[NSNumber numberWithBool:YES] forKey:@"clearOnAdd"]; - [userDefaultsValuesDict setObject:[NSNumber numberWithBool:YES] forKey:@"playOnAdd"]; + [userDefaultsValuesDict setObject:@"clearAndPlay" forKey:@"openingFilesBehavior"]; + [userDefaultsValuesDict setObject:@"enqueue" forKey:@"openingFilesAlteredBehavior"]; //Register and sync defaults [[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsValuesDict]; diff --git a/Playlist/PlaylistController.m b/Playlist/PlaylistController.m index 84e98c4e9..306018764 100644 --- a/Playlist/PlaylistController.m +++ b/Playlist/PlaylistController.m @@ -757,9 +757,13 @@ bool modifier1_pressed = ((mods & kCGEventFlagMaskCommand)!=0)&((mods & kCGEventFlagMaskControl)!=0); modifier1_pressed |= ((mods & kCGEventFlagMaskShift)!=0); bool should_clean = false; - + NSLog(@"Behavior: %@", [[NSUserDefaults standardUserDefaults] valueForKey:@"openingFilesBehavior"]); + NSLog(@"Altered Behavior: %@", [[NSUserDefaults standardUserDefaults] valueForKey:@"openingFilesAlteredBehavior"]); + if (src >= OpenFinder_Related && src <= OpenFinder_Related_end) - should_clean = [[NSUserDefaults standardUserDefaults] boolForKey:@"clearOnAdd"] ^ modifier1_pressed; + //possible settings are "clearAndPlay", "enqueue", "enqueueAndPlay" + should_clean = (!modifier1_pressed && ![[[NSUserDefaults standardUserDefaults] valueForKey:@"openingFilesBehavior"] compare:@"clearAndPlay"]) + || ( modifier1_pressed && ![[[NSUserDefaults standardUserDefaults] valueForKey:@"openingFilesAlteredBehavior"] compare:@"clearAndPlay"]); if (src >= OpenPlaylist_related && src <= OpenPlaylist_related_end) should_clean = modifier1_pressed; @@ -780,7 +784,10 @@ bool should_autoplay = false; if (src >= OpenFinder_Related && src <= OpenFinder_Related_end) - should_autoplay = [[NSUserDefaults standardUserDefaults] boolForKey:@"playOnAdd"] ^ modifier1_pressed; + should_autoplay = (!modifier1_pressed && (![[[NSUserDefaults standardUserDefaults] valueForKey:@"openingFilesBehavior"] compare:@"clearAndPlay"] + || ![[[NSUserDefaults standardUserDefaults] valueForKey:@"openingFilesBehavior"] compare:@"enqueueAndPlay"])) + || ( modifier1_pressed && (![[[NSUserDefaults standardUserDefaults] valueForKey:@"openingFilesAlteredBehavior"] compare:@"clearAndPlay"] + || ![[[NSUserDefaults standardUserDefaults] valueForKey:@"openingFilesAlteredBehavior"] compare:@"enqueueAndPlay"])); if (src >= OpenPlaylist_related && src <= OpenPlaylist_related_end) should_autoplay = modifier1_pressed; diff --git a/Preferences/General/English.lproj/Localizable.strings b/Preferences/General/English.lproj/Localizable.strings index 9ff3417d4..140fafe14 100644 --- a/Preferences/General/English.lproj/Localizable.strings +++ b/Preferences/General/English.lproj/Localizable.strings @@ -12,3 +12,7 @@ "Playlist" = "Playlist"; "Press Key..." = "Press Key..."; + +"Clear playlist and play" = "Clear playlist and play files"; +"Enqueue" = "Enqueue files"; +"Enqueue and play" = "Enqueue files and play"; \ No newline at end of file diff --git a/Preferences/General/English.lproj/Preferences.xib b/Preferences/General/English.lproj/Preferences.xib index 3da99a822..43852ebb4 100644 --- a/Preferences/General/English.lproj/Preferences.xib +++ b/Preferences/General/English.lproj/Preferences.xib @@ -1,35 +1,36 @@ - + 1050 9C7010 - 652 + 629 949.26 352.00 YES - + + YES - com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin YES - PrefPaneController + PrefPaneController - FirstResponder + FirstResponder NSApplication - HotKeyPane + HotKeyPane @@ -41,13 +42,14 @@ 256 {{91, 70}, {82, 19}} + YES -2075001280 4326400 - + - LucidaGrande + LucidaGrande 1.100000e+01 3100 @@ -55,7 +57,7 @@ YES 6 - System + System textBackgroundColor 3 @@ -64,7 +66,7 @@ 6 - System + textColor 3 @@ -78,13 +80,14 @@ 256 {{175, 62}, {64, 32}} + YES 67239424 134217728 - Edit + Edit - LucidaGrande + 1.300000e+01 1044 @@ -92,7 +95,7 @@ -2038284033 1 - + @@ -105,6 +108,7 @@ 256 {{45, 72}, {39, 17}} + YES 67239424 @@ -114,7 +118,7 @@ 6 - System + controlColor 3 @@ -123,7 +127,7 @@ 6 - System + controlTextColor @@ -134,6 +138,7 @@ 256 {{17, 47}, {69, 17}} + YES 67239424 @@ -150,6 +155,7 @@ 256 {{40, 22}, {44, 17}} + YES 67239424 @@ -166,11 +172,12 @@ 256 {{91, 45}, {82, 19}} + YES -2075001280 4326400 - + YES @@ -183,11 +190,12 @@ 256 {{91, 20}, {82, 19}} + YES -2075001280 4326400 - + YES @@ -200,17 +208,18 @@ 256 {{175, 37}, {64, 32}} + YES 67239424 134217728 - Edit + -2038284033 1 - + @@ -223,17 +232,18 @@ 256 {{175, 12}, {64, 32}} + YES 67239424 134217728 - Edit + -2038284033 1 - + @@ -244,10 +254,11 @@ {432, 109} + NSView - NSResponder + NSResponder @@ -268,15 +279,15 @@ 1211912703 2 - - NSImage + + NSImage NSSwitch NSSwitch - - + + 200 25 @@ -295,10 +306,10 @@ 1211912703 2 - + - - + + 200 25 @@ -308,10 +319,10 @@ NSView - NSResponder + - + 256 YES @@ -320,6 +331,7 @@ 256 {{18, 46}, {299, 18}} + YES 67239424 @@ -329,10 +341,10 @@ 1211912703 2 - + - - + + 200 25 @@ -342,6 +354,7 @@ 256 {{111, 16}, {207, 26}} + YES -2076049856 @@ -351,11 +364,11 @@ 109199615 1 - LucidaGrande + 1.300000e+01 16 - + @@ -364,16 +377,16 @@ Stable - + 1048576 2147483647 1 - - NSImage + + NSMenuCheckmark - - NSImage + + NSMenuMixedState _popUpItemAction: @@ -390,22 +403,22 @@ Unstable - + 1048576 2147483647 - - + + _popUpItemAction: Nightly - + 1048576 2147483647 - - + + _popUpItemAction: @@ -422,6 +435,7 @@ 256 {{17, 23}, {92, 17}} + YES 67239424 @@ -435,14 +449,21 @@ {432, 82} - NSView - NSResponder + + + NSView + + + YES + openingFilesBehavior + openingFilesAlteredBehavior + YES - OutputPane + OutputPane @@ -454,6 +475,7 @@ 256 {{122, 16}, {252, 26}} + YES -2076049856 @@ -463,7 +485,7 @@ 109199615 1 - + @@ -472,12 +494,12 @@ Item1 - + 1048576 2147483647 1 - - + + _popUpItemAction: @@ -492,22 +514,22 @@ Item2 - + 1048576 2147483647 - - + + _popUpItemAction: Item3 - + 1048576 2147483647 - - + + _popUpItemAction: @@ -524,6 +546,7 @@ 256 {{17, 22}, {103, 17}} + YES 67239424 @@ -538,15 +561,16 @@ {432, 59} + NSView - NSResponder + YES - name + name YES @@ -566,6 +590,7 @@ 256 {{18, 38}, {396, 18}} + YES 67239424 @@ -575,10 +600,10 @@ 1211912703 2 - + - - + + 200 25 @@ -588,6 +613,7 @@ 256 {{18, 18}, {396, 18}} + YES 67239424 @@ -597,10 +623,10 @@ 1211912703 2 - + - - + + 200 25 @@ -608,15 +634,16 @@ {432, 74} + NSView - NSResponder + YES - name + url NSDictionary @@ -631,54 +658,190 @@ 268 YES - + 268 - {{18, 38}, {350, 18}} + {{157, 56}, {257, 26}} + YES - - 67239424 - 0 - Begin playback immediately when entries are added + + -2076049856 + 2048 - - 1211912703 - 130 - - - - - 200 - 25 + + 109199615 + 1 + + + 400 + 75 + + + Clear playlist and play files + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 1 + YES + YES + 2 - + 268 - {{18, 18}, {236, 18}} + {{157, 23}, {257, 26}} + YES - - 67239424 - 0 - Clear playlist when adding entries + + -2076049856 + 2048 - - 1211912703 - 130 - - - - - 200 - 25 + + 109199615 + 1 + + + 400 + 75 + + + Item 1 + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + + + YES + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 1 + YES + YES + 2 + + + + + 268 + {{17, 63}, {129, 17}} + + + YES + + 67239488 + 272630784 + When opening files: + + + + + + + + + 268 + {{17, 20}, {138, 35}} + + + YES + + 67239424 + 4194304 + V2hlbiBvcGVuaW5nIGZpbGUgd2l0aCDih6cgb3Ig4oyYK14gaGVsZDo + + + + - {432, 74} + {431, 100} - NSView + + + + + + YES + name + slug + + NSDictionary + + YES + YES + YES + YES @@ -686,7 +849,7 @@ YES - view + view @@ -702,7 +865,7 @@ - hotKeyChanged: + hotKeyChanged: @@ -710,7 +873,7 @@ - nextKeyView + nextKeyView @@ -718,7 +881,7 @@ - nextKeyView + @@ -774,7 +937,7 @@ - hotKeyChanged: + @@ -782,7 +945,7 @@ - hotKeyChanged: + @@ -790,14 +953,14 @@ - value: values.SUCheckAtStartup + value: values.SUCheckAtStartup - value: values.SUCheckAtStartup - value + + value values.SUCheckAtStartup 2 @@ -806,15 +969,15 @@ - content: arrangedObjects + content: arrangedObjects - content: arrangedObjects - content - arrangedObjects + + content + arrangedObjects 2 @@ -822,15 +985,15 @@ - contentValues: arrangedObjects.name + contentValues: arrangedObjects.name - contentValues: arrangedObjects.name - contentValues - arrangedObjects.name + + contentValues + arrangedObjects.name 2 @@ -839,13 +1002,13 @@ - selectedIndex: selectionIndex + selectedIndex: selectionIndex - selectedIndex: selectionIndex + selectedIndex selectionIndex @@ -856,7 +1019,7 @@ - view + @@ -888,14 +1051,14 @@ - value: values.remoteOnlyOnActive + value: values.remoteOnlyOnActive - value: values.remoteOnlyOnActive - value + + values.remoteOnlyOnActive 2 @@ -904,15 +1067,15 @@ - value: values.enableAudioScrobbler + value: values.enableAudioScrobbler - value: values.enableAudioScrobbler - value - values.enableAudioScrobbler + + + values.enableAudioScrobbler 2 @@ -920,15 +1083,15 @@ - enabled: values.enableAudioScrobbler + enabled: values.enableAudioScrobbler - enabled: values.enableAudioScrobbler - enabled - values.enableAudioScrobbler + + enabled + 2 @@ -936,14 +1099,14 @@ - value: values.automaticallyLaunchLastFM + value: values.automaticallyLaunchLastFM - value: values.automaticallyLaunchLastFM - value + + values.automaticallyLaunchLastFM 2 @@ -952,15 +1115,15 @@ - value: values.remoteEnabled + value: values.remoteEnabled - value: values.remoteEnabled - value - values.remoteEnabled + + + values.remoteEnabled 2 @@ -968,15 +1131,15 @@ - enabled: values.remoteEnabled + enabled: values.remoteEnabled - enabled: values.remoteEnabled - enabled - values.remoteEnabled + + + 2 @@ -1008,15 +1171,15 @@ - content: arrangedObjects + - content: arrangedObjects - content - arrangedObjects + + + 2 @@ -1024,13 +1187,13 @@ - contentObjects: arrangedObjects.url + contentObjects: arrangedObjects.url - contentObjects: arrangedObjects.url + contentObjects arrangedObjects.url @@ -1041,15 +1204,15 @@ - contentValues: arrangedObjects.name + - contentValues: arrangedObjects.name - contentValues - arrangedObjects.name + + + 2 @@ -1058,13 +1221,13 @@ - selectedObject: values.SUFeedURL + selectedObject: values.SUFeedURL - selectedObject: values.SUFeedURL + selectedObject values.SUFeedURL @@ -1073,38 +1236,6 @@ 147 - - - value: values.playOnAdd - - - - - - value: values.playOnAdd - value - values.playOnAdd - 2 - - - 239 - - - - value: values.clearOnAdd - - - - - - value: values.clearOnAdd - value - values.clearOnAdd - 2 - - - 243 - playlistView @@ -1113,6 +1244,156 @@ 244 + + + content: arrangedObjects + + + + + + + content + arrangedObjects + 2 + + + 263 + + + + content: arrangedObjects + + + + + + + + + 2 + + + 264 + + + + contentValues: arrangedObjects.name + + + + + + + contentValues + arrangedObjects.name + 2 + + + 266 + + + + contentObjects: arrangedObjects.slug + + + + + + + contentObjects + arrangedObjects.slug + + 2 + + + 283 + + + + contentValues: arrangedObjects.name + + + + + + + + arrangedObjects.name + + 2 + + + 284 + + + + contentObjects: arrangedObjects.slug + + + + + + + + arrangedObjects.slug + + 2 + + + 292 + + + + contentValues: arrangedObjects.name + + + + + + + + arrangedObjects.name + + 2 + + + 293 + + + + selectedObject: values.openingFilesBehavior + + + + + + + selectedObject + values.openingFilesBehavior + + 2 + + + 302 + + + + selectedObject: values.openingFilesAlteredBehavior + + + + + + + + values.openingFilesAlteredBehavior + + 2 + + + 303 + @@ -1147,7 +1428,7 @@ 6 - HotKeyPane + 11 @@ -1326,7 +1607,7 @@ 57 - OutputPane + 58 @@ -1553,39 +1834,135 @@ YES - - + + + + PlaylistView - 232 - + 246 + + + PlaylistBehavior + + + 247 + YES - + - 233 - - - - - 234 - + 248 + YES - + + + + + + 249 + + + YES + + + + + + + + 250 + + + + + 251 + + + + + 252 + + + + + 253 + + + YES + - 235 - - + 254 + + + YES + + + + + + 255 + + + YES + + + + + + + + 256 + + + + + 257 + + + + + 258 + + + + + 259 + + + YES + + + + + + 260 + + + + + 261 + + + YES + + + + + + 262 + + @@ -1623,16 +2000,32 @@ 17.ImportedFromIB2 231.IBEditorWindowLastContentRect 231.IBPluginDependency - 232.IBPluginDependency - 233.IBPluginDependency - 234.IBPluginDependency - 235.IBPluginDependency + 231.editorWindowContentRectSynchronizationRect 24.IBPluginDependency 24.ImportedFromIB2 + 246.CustomClassName + 246.IBPluginDependency + 247.IBPluginDependency + 248.IBPluginDependency + 249.IBPluginDependency + 249.editorWindowContentRectSynchronizationRect 25.IBPluginDependency 25.ImportedFromIB2 + 250.IBPluginDependency + 251.IBPluginDependency + 252.IBPluginDependency + 253.IBPluginDependency + 254.IBPluginDependency + 255.IBPluginDependency + 256.IBPluginDependency + 257.IBPluginDependency + 258.IBPluginDependency + 259.IBPluginDependency 26.IBPluginDependency 26.ImportedFromIB2 + 260.IBPluginDependency + 261.IBPluginDependency + 262.IBPluginDependency 27.CustomClassName 27.IBPluginDependency 27.ImportedFromIB2 @@ -1649,6 +2042,7 @@ 44.ImportedFromIB2 50.IBPluginDependency 50.ImportedFromIB2 + 50.editorWindowContentRectSynchronizationRect 51.IBPluginDependency 51.ImportedFromIB2 52.IBPluginDependency @@ -1689,98 +2083,115 @@ YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin + + + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + {{178, 505}, {432, 109}} - com.apple.InterfaceBuilder.CocoaPlugin + {{42, 829}, {432, 109}} - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + - AppcastArrayController - com.apple.InterfaceBuilder.CocoaPlugin + AppcastArrayController + - HotKeyControl - com.apple.InterfaceBuilder.CocoaPlugin + HotKeyControl + - com.apple.InterfaceBuilder.CocoaPlugin + {{449, 587}, {432, 74}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin + + {{376, 821}, {431, 100}} + + PlaylistBehaviorArrayController com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + {{522, 827}, {257, 63}} + - com.apple.InterfaceBuilder.CocoaPlugin + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + - HotKeyControl - com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + - HotKeyControl - com.apple.InterfaceBuilder.CocoaPlugin + + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + {{21, 1040}, {432, 82}} + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + {{193, 624}, {432, 59}} - com.apple.InterfaceBuilder.CocoaPlugin + {{21, 902}, {432, 59}} - OutputsArrayController - com.apple.InterfaceBuilder.CocoaPlugin + OutputsArrayController + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + {{451, 691}, {432, 74}} - com.apple.InterfaceBuilder.CocoaPlugin + {{63, 841}, {432, 74}} - com.apple.InterfaceBuilder.CocoaPlugin + - com.apple.InterfaceBuilder.CocoaPlugin + @@ -1804,64 +2215,333 @@ - 244 + 303 YES - AppcastArrayController - NSArrayController - - IBProjectSource - AppcastArrayController.h - - - - AppcastArrayController - NSArrayController - - IBUserSource - - - - - FileDrawerPane - PreferencePane + PreferencePane + NSObject - openSheet: - id + YES + + YES + + + YES + - rootPathTextView - NSTextField + view + - IBUserSource - + IBProjectSource + PreferencePane.h - FirstResponder + PreferencePane + + + - IBUserSource - + IBUserSource + + + + + + + + + + + + + + + + + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + NDHotKeyEvent.h + + + + OutputPane + PreferencePane + + takeDeviceID: + id + + + outputDevices + OutputsArrayController + + + + OutputPane.h + + + + + + + + + + + + + + PrefPaneController + + + YES + + YES + + + YES + + + + YES + + YES + hotKeyPane + outputPane + playlistView + remoteView + scrobblerView + updatesView + + + YES + HotKeyPane + OutputPane + + + + + + + + + PrefPaneController.h + + + + + + + + fileDrawerPane + FileDrawerPane + + + + + + + + + NSArrayController + + + + + + + + + OutputsArrayController + NSArrayController + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + OutputsArrayController.h + + + + NDHotKeyControl + NSTextField + + + + + + + + + NDHotKeyControl + + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + NDHotKeyControl.h + + + + + + + + + + + + + + PlaylistBehaviorArrayController + NSArrayController + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + PlaylistBehaviorArrayController.h HotKeyControl NDHotKeyControl + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + - IBProjectSource + HotKeyControl.h - HotKeyControl - NDHotKeyControl + + + + - IBUserSource - + + + + + + + + + + + + + + + + AppcastArrayController + NSArrayController + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + AppcastArrayController.h @@ -1878,10 +2558,10 @@ YES - id - id - id - id + + + + @@ -1900,153 +2580,415 @@ - IBProjectSource + HotKeyPane.h - HotKeyPane - PreferencePane + + + + - IBUserSource - + + - NDHotKeyControl - NSTextField - - IBProjectSource - NDHotKeyControl.h - - - - NDHotKeyControl - NSTextField - - IBUserSource - - - - - NSObject - - IBProjectSource - NDHotKeyEvent.h - - - - NSObject - - IBUserSource - - - - - OutputPane - PreferencePane + + - takeDeviceID: + openSheet: id - outputDevices - OutputsArrayController + rootPathTextView + - IBProjectSource - OutputPane.h - - - - OutputPane - PreferencePane - - IBUserSource - - - - - OutputsArrayController - NSArrayController - - IBProjectSource - OutputsArrayController.h - - - - OutputsArrayController - NSArrayController - - IBUserSource - - - - - PrefPaneController - NSObject - - YES - - YES - hotKeyPane - outputPane - playlistView - remoteView - scrobblerView - updatesView - - - YES - HotKeyPane - OutputPane - NSView - NSView - NSView - NSView - - - - IBProjectSource - PrefPaneController.h - - - - PrefPaneController - NSObject - - fileDrawerPane - FileDrawerPane - - - IBUserSource - - - - - PreferencePane - NSObject - - view - NSView - - - IBProjectSource - PreferencePane.h - - - - PreferencePane - NSObject - - IBUserSource - + + 0 - ../General.xcodeproj + ../../General.xcodeproj 3 + + YnBsaXN0MDDUAAEAAgADAAQABQAGAAkAClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIA +AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxECOAALAAwAMQA1ADYAPAA9 +AEEARQB0AHwAjACYAAsAmQCzALQAvAC9AMAAwQDEAMgAzADSAN0A3gDfAOAA7QDyAPwA/QD+AQMBBQEK +AQsBDgERARQBFQEZAR4BIQEiASwBLQE1ATYBOwALAUQBSQFRAVIBXwFgAWUBZgFnAWoBZgFuAXEBeQF6 +AYMBhAGIAAsBiQDRAYsBjgGPAZQBlQGYAZ0BoAGhAbUBtgG3AbsBvAG+AcABwQHGAdAB0QHZAd4B5gHn +Ae8B8QHyAfcB/wIAAggCCgILAhACHAIkAiUCLQIuAjMCNAI3AjwCPQI/AkcCSAJPAlACWAJZAmACYQAL +AmICZAJlAmoCbwALAngCfwKHAogCnwKzArgCuQK9Ar4CwgLDAsQCxgLHAs0C1gLDAtcC4ALDAuEC4wLn +AuoC8gLzAv4DBwMLAsMDDAMSAtYCwwMbAuACwwMkAywDLQM2AzcDPwNAA0gDSQALANADSgNLA1ADVQAL +A14DZANsA20DdgN3A38DgAOMA5ADkgObA58CwwOgA6IDqAOxAsMDsgO7AsMDvAPEA8UDzAPNAAsDzgPP +A9QD1QPaA+ED5gPtA+4D9wP4A/8EAAQJAYgECgQMBA0EEgQTBBgEIAQpAAsEKgQ2BDgEQQRFAsMERgRI +BE4EVwLDBFgEYQLDBGIEYwRoBGkEbgRzBHsEfASDBIQACwSFBIcEjASNBJIEkwSdBKkBtgSqAbsErwSw +BLEEswS0BLUEtgS5BMAExQTKBMsEzATQBNEE0gTTBNoE2wTcBN0E5ATlBOYE5wTwBPEE8gTzBLMEtQT7 +BQMFBAUFBQYFDQUOBQ8FFgUXBRgE5ATlBOYFHwSzBLQEtQUnBS8FMAUxBTIFOQU6BOQFQQTwBPIFSQSz +BLUFUQVZBVoFWwViBWMFagV1AbYFdgV7BLAFfAV+BYYE8QWHBYgFkAWYBQQFmQWaBaEFogWjBe8F8gXz +BfUGQQaOBtsG3AbdBt4G3wbgBuEG4gbjBuQG5QbmBucG6AbpBuoG6wbsBu0G7gbvBvAG8QbyBvMG9Ab1 +BvYG9wb4BvkG+gb7BvwG/Qb+Bv8HAAcBBwIHAwcEBwUHBgcHBwgHCQcKBwsHDAcNBw4HDwcQBxEHEgcT +BxQHFQcWBxcHGAcZBxoHGwccBx0HHgcfByAHIQciByMHLAc1B64IJwgoCCkIKggrCCwILQguCC8IMAgx +CDIIMwg0CDUINgg3CDgIOQg6CDsIPAg9CD4IPwhACEEIQghDCEQIRQhGCEcISAhJCEoISwhMCE0ITghP +CFAIUQhSCFMIVAD5CFUIVghXCFgIWQhaCFsIXAhdCF4IXwhgCGEIYghjCGQIZQOPCGYIZwhoCGkIaghr +CGwIbQhuCG8IcAhxCHIAsAhzCHQIdQh2CHcIeAh5AIgIegh7CHwIfQh+CH8IgAiBCIIIgwiECIUIhgiH +CIgIiQiKCIsAqQiMCI0IjgiPCJAIkQiSApMIkwiUCJUIlgiXCJoInQigVSRudWxs3xASAA0ADgAPABAA +EQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4A +LwAwVk5TUm9vdFYkY2xhc3NdTlNPYmplY3RzS2V5c18QD05TQ2xhc3Nlc1ZhbHVlc18QGU5TQWNjZXNz +aWJpbGl0eU9pZHNWYWx1ZXNdTlNDb25uZWN0aW9uc1tOU05hbWVzS2V5c1tOU0ZyYW1ld29ya11OU0Ns +YXNzZXNLZXlzWk5TT2lkc0tleXNdTlNOYW1lc1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eUNvbm5lY3Rv +cnNdTlNGb250TWFuYWdlcl8QEE5TVmlzaWJsZVdpbmRvd3NfEA9OU09iamVjdHNWYWx1ZXNfEBdOU0Fj +Y2Vzc2liaWxpdHlPaWRzS2V5c1lOU05leHRPaWRcTlNPaWRzVmFsdWVzgAKBAjeBAWuBAbuBAjaACIEB +cIAFgQG6gQG8gQFxgQI0gACABoEBb4ECNREBMYEBvdIADgAyADMANFtOU0NsYXNzTmFtZYAEgANfEBJQ +cmVmUGFuZUNvbnRyb2xsZXLSADcAOAA5ADpYJGNsYXNzZXNaJGNsYXNzbmFtZaIAOgA7Xk5TQ3VzdG9t +T2JqZWN0WE5TT2JqZWN0XxAQSUJDb2NvYUZyYW1ld29ya9IADgA+AD8AQFpOUy5vYmplY3RzgAeg0gA3 +ADgAQgBDowBDAEQAO1xOU011dGFibGVTZXRVTlNTZXTSAA4APgBGAEeARK8QLABIAEkASgBLAEwATQBO +AE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQAZQBmAGcAaABpAGoAawBs +AG0AbgBvAHAAcQByAHOACYAqgDGAS4BOgFmAXYBjgGmAgYCCgLeAuIDYgNqA6IDqgP6BAQCBAQmBAQuB +AQ2BARqBASOBASeBASuBAS+BATKBATaBATmBATyBAUCBAUSBAUiBAUqBAUyBAU+BAVKBAVWBAVeBAV+B +AWOBAWSBAWjUAA4AdQB2AHcAeAB5AHoAe11OU0Rlc3RpbmF0aW9uWE5TU291cmNlV05TTGFiZWyAKYAY +gAqAKNgAfQAOAH4AfwCAAIEAggCDAIQAhQCGAIcAiACJAIoAhF8QD05TTmV4dFJlc3BvbmRlcldOU0Zy +YW1lVk5TQ2VsbFhOU3ZGbGFnc1lOU0VuYWJsZWRYTlNXaW5kb3dbTlNTdXBlcnZpZXeAC4AXgAyADhEB +AAmADYAL2QB9AA4AjQCAAI4AggAyAI8AgwCKAJEAkgCIAJMAigCVAJYAl1pOU1N1YnZpZXdzW05TRnJh +bWVTaXplW05TRXh0ZW5zaW9ugA2ASYBqgH2ADYB/gEiAfl8QFXt7MTc1LCA2Mn0sIHs2NCwgMzJ9fd0A +mgAOAJsAnACdAJ4AnwCgAKEAogCjAKQApQCmAKcAqACpAKoAqwCsAK0AqwB6ALAAsQCyW05TQ2VsbEZs +YWdzXxATTlNBbHRlcm5hdGVDb250ZW50c18QEk5TUGVyaW9kaWNJbnRlcnZhbF5OU0J1dHRvbkZsYWdz +Ml8QEE5TQWx0ZXJuYXRlSW1hZ2VfEA9OU0tleUVxdWl2YWxlbnRaTlNDb250ZW50c1lOU1N1cHBvcnRd +TlNDb250cm9sVmlld18QD05TUGVyaW9kaWNEZWxheVxOU0NlbGxGbGFnczJdTlNCdXR0b25GbGFncxIE +Af4AgBaAExAZEAGAEIAUgA+AEIAKEMgSCAAAABP/////hoJA/1RFZGl01AAOALUAtgC3ALgAuQC6ALtW +TlNTaXplVk5TTmFtZVhOU2ZGbGFnc4ASI0AqAAAAAAAAgBERBBRcTHVjaWRhR3JhbmRl0gA3ADgAvgC/ +ogC/ADtWTlNGb250UNIADgDCAMMAwFlOUy5zdHJpbmeAFdIANwA4AMUAxqMAxgDHADtfEA9OU011dGFi +bGVTdHJpbmdYTlNTdHJpbmfSADcAOADJAMqkAMoAywB/ADtcTlNCdXR0b25DZWxsXE5TQWN0aW9uQ2Vs +bNIANwA4AM0AzqUAzgDPANAA0QA7WE5TQnV0dG9uWU5TQ29udHJvbFZOU1ZpZXdbTlNSZXNwb25kZXLa +AH0ADgB+ANMAfwCAAIEAggAyAIMAhADVANYA1wDYAIgAiQCKANsAhF8QE05TT3JpZ2luYWxDbGFzc05h +bWWAC4AngBuAGoAcCYANgBmAC11Ib3RLZXlDb250cm9sW05TVGV4dEZpZWxkXxAUe3s5MSwgNzB9LCB7 +ODIsIDE5fX3ZAJoADgDhAKAAoQCiAKQA4gDjAOQA5QDmAKgA6AB5AOoAiQDsXxARTlNCYWNrZ3JvdW5k +Q29sb3JfEBFOU0RyYXdzQmFja2dyb3VuZFtOU1RleHRDb2xvchP/////hFH+QIAmgB6AE4AdgBgSAEIE +AAmAI9QADgC1ALYAtwC4AO8AugDxgBIjQCYAAAAAAACAEREMHNUADgDzAPQA9QD2APcA+AD5APoA+1dO +U0NvbG9yXE5TQ29sb3JTcGFjZVtOU0NvbG9yTmFtZV1OU0NhdGFsb2dOYW1lgCKAIRAGgCCAH1ZTeXN0 +ZW1fEBN0ZXh0QmFja2dyb3VuZENvbG9y0wAOAPQA/wD3AQEBAldOU1doaXRlgCIQA0IxANIANwA4AQQA +86IA8wA71QAOAPMA9AD1APYA9wEHAPkBCAD7gCKAJYAkgB9ZdGV4dENvbG9y0wAOAPQA/wD3AQEBDYAi +QjAA0gA3ADgBDwEQpAEQAMsAfwA7XxAPTlNUZXh0RmllbGRDZWxs0gA3ADgBEgETogETADteTlNDbGFz +c1N3YXBwZXJbbmV4dEtleVZpZXfSADcAOAEWARejARcBGAA7XxAUTlNOaWJPdXRsZXRDb25uZWN0b3Je +TlNOaWJDb25uZWN0b3LUAA4AdQB2AHcAeAEbARwBHYApgC2AK4Aw0gAOADIAMwEggASALFpIb3RLZXlQ +YW5l2gB9AA4AfgDTAH8AgACBAIIAMgCDAIQA1QElANcBJwCIAIkAigDbAISAC4AngC6AGoAvCYANgBmA +C18QFHt7OTEsIDQ1fSwgezgyLCAxOX192QCaAA4A4QCgAKEAogCkAOIA4wDkAOUA5gCoAOgBGwDqAIkA +7IAmgB6AE4AdgC0JgCNfEBFwcmV2SG90S2V5Q29udHJvbNQADgB1AHYAdwB4ATgAHwE6gCmAMoACgErZ +AH0ADgCNAIAAjgCCADIAjwCDATwAkQE+AIgBPwE8AUEAlgFDgDOASYA0gEWAM4BHgEiARtIADgA+AEYB +RoBEogFHAUiANYBA2AB9AA4AfgB/AIAAgQCCAIMBOACFAUwBTQCIAIkBPAE4gDKAF4A2gDcJgDOAMl8Q +FXt7MTgsIDM4fSwgezM5NiwgMTh9fd4AmgAOAJsBUwCcAJ0AngCfAKAAoQCiAKMApAClAKYApwCoAVYA +qQFXAVgAqAFaAKsBRwCwAV0BXl1OU05vcm1hbEltYWdlgBaAE4A5EAKAPYATgDiAEIA1EAASSDxR/18Q +PEVuYWJsZSBMYXN0LmZtIHN1cHBvcnQuIChNdXN0IGhhdmUgTGFzdC5mbSBjbGllbnQgaW5zdGFsbGVk +KdMADgAyAWEBYgFjAWReTlNSZXNvdXJjZU5hbWWAPIA6gDtXTlNJbWFnZVhOU1N3aXRjaNIANwA4AWgB +aaIBaQA7XxAQTlNDdXN0b21SZXNvdXJjZdIADgFrAWwBbVtOU0ltYWdlTmFtZYA/gD7SADcAOAFvAXCi +AXAAO18QE05TQnV0dG9uSW1hZ2VTb3VyY2XYAH0ADgB+AH8AgACBAIIAgwE4AIUBdAF1AIgAiQE8ATiA +MoAXgEGAQgmAM4AyXxAVe3sxOCwgMTh9LCB7Mzk2LCAxOH193gCaAA4AmwFTAJwAnQCeAJ8AoAChAKIA +owCkAKUApgCnAKgBVgCpAVcBWACoAYAAqwFIALABXQFegBaAE4A5gD2AE4BDgBCAQF8QJEF1dG9tYXRp +Y2FsbHkgbGF1bmNoIExhc3QuZm0gY2xpZW50LtIANwA4AYUBhqMBhgGHADteTlNNdXRhYmxlQXJyYXlX +TlNBcnJheVl7NDMyLCA3NH3SAA4AwgDDANCAFdIANwA4AYwBjaQBjQDQANEAO1xOU0N1c3RvbVZpZXdd +c2Nyb2JibGVyVmlld9QADgB1AHYAdwGQARwAeQGTgE2AK4AYgExeaG90S2V5Q2hhbmdlZDrSADcAOAGW +AZejAZcBGAA7XxAVTlNOaWJDb250cm9sQ29ubmVjdG9y1AAOAHUAdgB3AHgBmgGbAZyAKYBRgE+AWNIA +DgAyADMBn4AEgFBaT3V0cHV0UGFuZdsBogAOAaMA0wGkAaUBpgGnADIBqAGpAIkA1QCJAa0AiQGvAbAA +iQGyAIkAiV8QGk5TRmlsdGVyUmVzdHJpY3RzSW5zZXJ0aW9uXxAUTlNQcmVzZXJ2ZXNTZWxlY3Rpb25a +TlNFZGl0YWJsZV8QD19OU01hbmFnZWRQcm94eV5OU0RlY2xhcmVkS2V5c18QIk5TQ2xlYXJzRmlsdGVy +UHJlZGljYXRlT25JbnNlcnRpb25fEBhOU1NlbGVjdHNJbnNlcnRlZE9iamVjdHNfEBZOU0F2b2lkc0Vt +cHR5U2VsZWN0aW9uCYAnCYBTCYBWgFQJgFIJCV8QFk91dHB1dHNBcnJheUNvbnRyb2xsZXJfEBFOU0Fy +cmF5Q29udHJvbGxlctIADgA+AEYBuYBEoQG6gFVUbmFtZdEADgG9gFfSADcAOAG/AaWiAaUAO11vdXRw +dXREZXZpY2Vz1AAOAHUAdgB3AZABHAHEAZOATYArgFqATNoAfQAOAH4A0wB/AIAAgQCCADIAgwCEANUB +yQDXAcsAiACJAIoA2wCEgAuAJ4BbgBqAXAmADYAZgAtfEBR7ezkxLCAyMH0sIHs4MiwgMTl9fdkAmgAO +AOEAoAChAKIApADiAOMA5ADlAOYAqADoAcQA6gCJAOyAJoAegBOAHYBaCYAj1AAOAHUAdgB3AZABHAHc +Ad2ATYArgF6AYtgAfQAOAH4AfwCAAIEAggCDAIQAhQHhAeIAiACJAIoAhIALgBeAX4BgCYANgAtfEBV7 +ezE3NSwgMTJ9LCB7NjQsIDMyfX3dAJoADgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsB +6wCtAKsB3ACwALEAsoAWgBOAEIBhgA+AEIBe0gAOAMIAwwDAgBVfEA9ncmFiTmV4dEhvdEtleTrUAA4A +dQB2AHcBkAEcAfUB9oBNgCuAZIBo2AB9AA4AfgB/AIAAgQCCAIMAhACFAfoB+wCIAIkAigCEgAuAF4Bl +gGYJgA2AC18QFXt7MTc1LCAzN30sIHs2NCwgMzJ9fd0AmgAOAJsAnACdAJ4AnwCgAKEAogCjAKQApQCm +AKcAqACpAKoAqwIEAK0AqwH1ALAAsQCygBaAE4AQgGeAD4AQgGTSAA4AwgDDAMCAFV8QD2dyYWJQcmV2 +SG90S2V5OtQADgB1AHYAdwB4AIQBHAIPgCmAC4ArgIDSAA4APgBGAhKARKkAeQB6AhUCFgIXARsBxAH1 +AdyAGIAKgGuAdYB5gC2AWoBkgF7YAH0ADgB+AH8AgACBAIIAgwCEAh4CHwIgAIgAiQCKAISAC4B0gGyA +bQmADYALXxAUe3s0NSwgNzJ9LCB7MzksIDE3fX3YAJoADgDhAKAAoQCiAKQA4wCmAOUCJwIoAKsCFQIr +AiyAJoBvgG6AEIBrEhBAAACAclVQbGF5OtUADgDzAPQA9QD2APcCMAD5AjEA+4AigHGAcIAfXGNvbnRy +b2xDb2xvctMADgD0AP8A9wEBAjaAIkswLjY2NjY2NjY5ANUADgDzAPQA9QD2APcBBwD5AjoA+4AigCWA +c4AfXxAQY29udHJvbFRleHRDb2xvctIANwA4Aj4A3qUA3gDPANAA0QA72AB9AA4AfgB/AIAAgQCCAIMA +hAIeAkICQwCIAIkAigCEgAuAdIB2gHcJgA2AC18QFHt7MTcsIDQ3fSwgezY5LCAxN3192ACaAA4A4QCg +AKEAogCkAOMApgDlAicCSwCrAhYCKwIsgCaAb4B4gBCAdYByWVByZXZpb3VzOtgAfQAOAH4AfwCAAIEA +ggCDAIQCHgJTAlQAiACJAIoAhIALgHSAeoB7CYANgAtfEBR7ezQwLCAyMn0sIHs0NCwgMTd9fdgAmgAO +AOEAoAChAKIApADjAKYA5QInAlwAqwIXAisCLIAmgG+AfIAQgHmAclVOZXh0Olp7NDMyLCAxMDl90gAO +AMIAwwDQgBVUdmlld9QADgB1AHYAdwGQARwBGwGTgE2AK4AtgEzUAA4AdQB2AHcAeAJsAB8CboApgIOA +AoC22AB9AA4AjQCAAI4AggAyAIMCcACRAnICcwJ0AnACdgJ3gISASYCFEQEMgLOAhIC1gLTSAA4APgBG +AnqARKQCewJ8An0CfoCGgJ2Aq4Cv2AB9AA4AfgB/AIAAgQCCAIMCbAKBAoICgwJzAIkCcAJsgIOAnICH +gIgJgISAg18QFnt7MTU3LCA1Nn0sIHsyNTcsIDI2fX3fEBIAmgKJAooAmwCcAA4AnQCfAKECiwCiAowC +jQKOAKMApAKPAKUCkACJAVcAqAKTApQAqgCoAKsClwJ7AKoAiQCJApsCnAKdAp5fEBpOU01lbnVJdGVt +UmVzcGVjdEFsaWdubWVudF8QD05TQXJyb3dQb3NpdGlvblpOU01lbnVJdGVtXxAPTlNQcmVmZXJyZWRF +ZGdlXxASTlNVc2VzSXRlbUZyb21NZW51XU5TQWx0ZXJzU3RhdGVWTlNNZW51E/////+EQf5ACYATEEuA +m4ATgBCAiYCGCQkRAZARCACAihIGgkD/2wKgAA4CoQKiAqMCpAKlAqYCjwKnAqgCgwKqAqsCrACoAq4C +rwKwAp0CsgCqWE5TVGFyZ2V0V05TVGl0bGVfEBFOU0tleUVxdWl2TW9kTWFza1pOU0tleUVxdWl2XU5T +TW5lbW9uaWNMb2NZTlNPbkltYWdlXE5TTWl4ZWRJbWFnZVhOU0FjdGlvbldOU1N0YXRlgIiAkYCLEgAQ +AACAExJ/////gIyAjoCKgJDTAA4CoQK0ArUCtgK3W05TTWVudUl0ZW1zgJqAkoCTXxAdQ2xlYXIgcGxh +eWxpc3QgYW5kIHBsYXkgZmlsZXPTAA4AMgFhAWIBYwK8gDyAOoCNXxAPTlNNZW51Q2hlY2ttYXJr0wAO +ADIBYQFiAWMCwYA8gDqAj18QEE5TTWVudU1peGVkU3RhdGVfEBFfcG9wVXBJdGVtQWN0aW9uOtIANwA4 +AsUCi6ICiwA7Wk90aGVyVmlld3PSAA4APgBGAsmARKMClwLLAsyAiYCUgJfaAqAADgKhAqICowKkAqUC +pgKPAqcCgwKqAtACrACoAq4CrwKwAp0C1YCIgJGAlYATgIyAjoCKgJZWSXRlbSAy2gKgAA4CoQKiAqMC +pAKlAqYCjwKnAoMCqgLaAqwAqAKuAq8CsAKdAt+AiICRgJiAE4CMgI6AioCZVkl0ZW0gM9IANwA4AuIC +j6ICjwA70gA3ADgC5ALlpgLlAuYAygDLAH8AO18QEU5TUG9wVXBCdXR0b25DZWxsXk5TTWVudUl0ZW1D +ZWxs0gA3ADgC6ALppgLpAM4AzwDQANEAO11OU1BvcFVwQnV0dG9u2AB9AA4AfgB/AIAAgQCCAIMCbAKB +Au0C7gJzAIkCcAJsgIOAnICegJ8JgISAg18QFnt7MTU3LCAyM30sIHsyNTcsIDI2fX3fEBIAmgKJAooA +mwCcAA4AnQCfAKECiwCiAowCjQKOAKMApAKPAKUCkACJAVcAqAKTApQAqgCoAKsC+QJ8AKoAiQCJApsC +nAL9Ap4JgBOAm4ATgBCAoICdCQmAodsCoAAOAqECogKjAqQCpQKmAo8CpwKoAu4CqgMBAqwAqAKuAq8C +sAL9AwYAqoCfgJGAooATgIyAjoChgKPTAA4CoQK0ArUCtgMKgJqAkoCkVkl0ZW0gMdIADgA+AEYDDoBE +owL5AxADEYCggKWAqNoCoAAOAqECogKjAqQCpQKmAo8CpwLuAqoDFQKsAKgCrgKvArAC/QMagJ+AkYCm +gBOAjICOgKGAp9oCoAAOAqECogKjAqQCpQKmAo8CpwLuAqoDHgKsAKgCrgKvArAC/QMjgJ+AkYCpgBOA +jICOgKGAqtgAfQAOAH4AfwCAAIEAggCDAmwCHgMnAygCcwCJAnACbICDgHSArICtCYCEgINfEBV7ezE3 +LCA2M30sIHsxMjksIDE3fX3YAJoADgDhAKAAoQCiAKQA4wMuAOUCJwMxAKsCfQM0AiwSBAH+QIAmgG+A +roAQgKsSEEAEAIByXxATV2hlbiBvcGVuaW5nIGZpbGVzOtgAfQAOAH4AfwCAAIEAggCDAmwCHgM6AzsC +cwCJAnACbICDgHSAsICxCYCEgINfEBV7ezE3LCAyMH0sIHsxMzgsIDM1fX3YAJoADgDhAKAAoQCiAKQA +4wCmAOUCJwNDAKsCfgNGAiyAJoBvgLKAEICvEgBAAACAcm8QJQBXAGgAZQBuACAAbwBwAGUAbgBpAG4A +ZwAgAGYAaQBsAGUAIAB3AGkAdABoACAh5wAgAG8AcgAgIxgAKwBeACAAaABlAGwAZAA6Wns0MzEsIDEw +MH1ccGxheWxpc3RWaWV31AAOAHUAdgB3AHgAegB5AHuAKYAKgBiAKNQADgB1AHYAdwB4A1IAHwNUgCmA +uYACgNfZAH0ADgCNAIAAjgCCADIAjwCDA1YAkQNYAIgDWQNWAnYAlgNdgLqASYC7gNWAuoC1gEiA1tIA +DgA+AEYDYIBEowNhA2IDY4C8gMCA0dgAfQAOAH4AfwCAAIEAggCDA1IAhQNnA2gAiACJA1YDUoC5gBeA +vYC+CYC6gLlfEBV7ezE4LCA0Nn0sIHsyOTksIDE4fX3eAJoADgCbAVMAnACdAJ4AnwCgAKEAogCjAKQA +pQCmAKcAqAFWAKkBVwFYAKgDcwCrA2EAsAFdAV6AFoATgDmAPYATgL+AEIC8XxArQXV0b21hdGljYWxs +eSBjaGVjayBmb3IgdXBkYXRlcyBvbiBzdGFydHVwLtgAfQAOAH4AfwCAAIEAggCDA1ICgQN6A3sAiACJ +A1YDUoC5gJyAwYDCCYC6gLlfEBZ7ezExMSwgMTZ9LCB7MjA3LCAyNn193xATAJoCiQKKAJsAnAAOAJ0A +ngCfAKECiwCiAowCjQKOAKMApAKPAKUCkACJAKoAqAKTApQAqgOEA4UAqwOHA2IBAQCJAIkCmwKcA4sC +ngmAE4CbgMOAxIAQgMWAwAkJgMbUAA4AtQC2ALcAuAC5ALoDj4ASgBEQENIADgDCAMMAwIAV2wKgAA4C +oQKiAqMCpAKlAqYCjwKnAqgDewKqA5UCrACoAq4CrwKwA4sDmgCqgMKAkYDHgBOAjICOgMaAyNMADgKh +ArQCtQOdA56AmoDJgMpWU3RhYmxl0gAOAMIAwwLGgBXSAA4APgBGA6SARKMDhwOmA6eAxYDLgM7aAqAA +DgKhAqICowKkAqUCpgKPAqcDewKqA6sCrACoAq4CrwKwA4sDsIDCgJGAzIATgIyAjoDGgM1YVW5zdGFi +bGXaAqAADgKhAqICowKkAqUCpgKPAqcDewKqA7UCrACoAq4CrwKwA4sDuoDCgJGAz4ATgIyAjoDGgNBX +TmlnaHRsedgAfQAOAH4AfwCAAIEAggCDA1ICHgO/A8AAiACJA1YDUoC5gHSA0oDTCYC6gLlfEBR7ezE3 +LCAyM30sIHs5MiwgMTd9fdgAmgAOAOEAoAChAKIApADjAKYA5QInA8gAqwNjAisCLIAmgG+A1IAQgNGA +clxVcGRhdGUgRmVlZDpZezQzMiwgODJ9W3VwZGF0ZXNWaWV31AAOAHUAdgB3AZABHAB6A9OATYArgAqA +2V8QD2dyYWJQbGF5SG90S2V5OtQADgB1AHYAdwB4A9cAHwPZgCmA24ACgOfXAH0ADgCNAIAAjgAyAI8A +KwCRA90AiAPeA98AloAAgEmA3IDlgOaASNIADgA+AEYD44BEogPkA+WA3YDh1wB9AA4AfgB/AIAAgQCD +A9cAhQPpA+oAiACJA9eA24AXgN6A3wmA218QFXt7MTgsIDE4fSwgezI4MSwgMTh9fd4AmgAOAJsBUwCc +AJ0AngCfAKAAoQCiAKMApAClAKYApwCoAVYAqQFXAVgAqAP0AKsD5ACwAV0BXoAWgBOAOYA9gBOA4IAQ +gN1fEClPbmx5IGxpc3RlbiB0byByZW1vdGUgd2hlbiBDb2cgaXMgYWN0aXZlLtcAfQAOAH4AfwCAAIEA +gwPXAIUD+wP8AIgAiQPXgNuAF4DigOMJgNtfEBV7ezE4LCAzOH0sIHsyODEsIDE4fX3eAJoADgCbAVMA +nACdAJ4AnwCgAKEAogCjAKQApQCmAKcAqAFWAKkBVwFYAKgEBgCrA+UAsAFdAV6AFoATgDmAPYATgOSA +EIDhXxAWRW5hYmxlIHJlbW90ZSBjb250cm9sLtIADgDCAMMA0IAVWnJlbW90ZVZpZXfUAA4AdQB2AHcA +eAHEARwEEYApgFqAK4DpXxARbmV4dEhvdEtleUNvbnRyb2zUAA4AdQB2AHcBkAGbBBYEF4BNgE+A64D9 +2AB9AA4AfgB/AIAAgQCCAIMEGQKBBBsEHACIAIkEHgQZgOyAnIDtgO8JgO6A7NkAfQAOAI0AgACOAIIA +MgCPAIMEHgCRBCMAiAQkBB4EJgCWBCiA7oBJgQEBgQEGgO6BAQiASIEBB18QFnt7MTIyLCAxNn0sIHsy +NTIsIDI2fX3fEBMAmgKJAooAmwCcAA4AnQCeAJ8AoQKLAKICjAKNAo4AowCkAo8ApQKQAIkAqgCoApMC +lACqA4QELwCrBDEEFgEBAIkAiQKbApwENQKeCYATgJuAw4DwgBCA8YDrCQmA8tIADgDCAMMAwIAV2wKg +AA4CoQKiAqMCpAKlAqYCjwKnAqgEHAKqBDsCrACoAq4CrwKwBDUEQACqgO+AkYDzgBOAjICOgPKA9NMA +DgKhArQCtQRDBESAmoD1gPZVSXRlbTHSAA4AwgDDAsaAFdIADgA+AEYESoBEowQxBEwETYDxgPeA+toC +oAAOAqECogKjAqQCpQKmAo8CpwQcAqoEUQKsAKgCrgKvArAENQRWgO+AkYD4gBOAjICOgPKA+VVJdGVt +MtoCoAAOAqECogKjAqQCpQKmAo8CpwQcAqoEWwKsAKgCrgKvArAENQRggO+AkYD7gBOAjICOgPKA/FVJ +dGVtM110YWtlRGV2aWNlSUQ61AAOAHUAdgB3AHgBHAAfBGeAKYArgAKA/1pob3RLZXlQYW5l1AAOAHUA +dgB3AHgEGQGbAg+AKYDsgE+AgNIADgA+AEYEcIBEogQWBHKA64EBAtgAfQAOAH4AfwCAAIEAggCDBBkC +HgR2BHcAiACJBB4EGYDsgHSBAQOBAQQJgO6A7F8QFXt7MTcsIDIyfSwgezEwMywgMTd9fdgAmgAOAOEA +oAChAKIApADjAKYA5QInBH8AqwRyAisCLIAmgG+BAQWAEIEBAoByXxAPT3V0cHV0IERldmljZTogWXs0 +MzIsIDU5fdIADgDCAMMA0IAV1AAOAHUAdgB3AHgBmwAfBIuAKYBPgAKBAQpab3V0cHV0UGFuZdQADgB1 +AHYAdwB4AHkBHASRgCmAGIArgQEMXxARcGxheUhvdEtleUNvbnRyb2zXAA4AdQSUBJUAdgB3BJYElwSY +BJkEmgKDBJwBV1lOU0tleVBhdGhZTlNCaW5kaW5nXxAcTlNOaWJCaW5kaW5nQ29ubmVjdG9yVmVyc2lv +boEBGYEBDoEBGIEBF4CIgQEW2gGiAA4BowDTAaUEngGmAacAMgGpAIkA1QCJBKIEowSkBKUAiQSnAIlf +EBFOU09iamVjdENsYXNzTmFtZQmAJwmBARCBARWBARSBAREJgQEPCV8QH1BsYXlsaXN0QmVoYXZpb3JB +cnJheUNvbnRyb2xsZXLSAA4APgBGBKyARKIErQSugQESgQETVHNsdWdcTlNEaWN0aW9uYXJ50QAOAb2A +V18QI2NvbnRlbnRWYWx1ZXM6IGFycmFuZ2VkT2JqZWN0cy5uYW1lXWNvbnRlbnRWYWx1ZXNfEBRhcnJh +bmdlZE9iamVjdHMubmFtZdIANwA4BLcEuKMEuAEYADtfEBVOU05pYkJpbmRpbmdDb25uZWN0b3LXAA4A +dQSUBJUAdgB3BJYElwS7BLwEvQPkBL8BV4EBGYEBG4EBIoEBIYDdgQEg0wAOAaYEwQTCBMMAiV8QEE5T +U2hhcmVkSW5zdGFuY2WBAR+BARwJ0gAOAD4ARgTHgESiBMgEyYEBHYEBHl8QFG9wZW5pbmdGaWxlc0Jl +aGF2aW9yXxAbb3BlbmluZ0ZpbGVzQWx0ZXJlZEJlaGF2aW9y0gA3ADgEzQTOowTOBM8AO18QGE5TVXNl +ckRlZmF1bHRzQ29udHJvbGxlclxOU0NvbnRyb2xsZXJfEB1lbmFibGVkOiB2YWx1ZXMucmVtb3RlRW5h +YmxlZFdlbmFibGVkXxAUdmFsdWVzLnJlbW90ZUVuYWJsZWTXAA4AdQSUBJUAdgB3BJYElwS7BNYE1wNh +BNkBV4EBGYEBG4EBJoEBJYC8gQEkXxAedmFsdWU6IHZhbHVlcy5TVUNoZWNrQXRTdGFydHVwVXZhbHVl +XxAXdmFsdWVzLlNVQ2hlY2tBdFN0YXJ0dXDXAA4AdQSUBJUAdgB3BJYElwSYBOAE4QJ8BOMBV4EBGYEB +DoEBKoEBKYCdgQEoXxAYY29udGVudDogYXJyYW5nZWRPYmplY3RzV2NvbnRlbnRfEA9hcnJhbmdlZE9i +amVjdHPYAA4AdQSUBJUE6AB2AHcElgSXBJgE6wTsAGACfATvAVdfEBNOU1ByZXZpb3VzQ29ubmVjdG9y +gQEZgQEOgQEugQEtgQEngJ2BASxfECRjb250ZW50T2JqZWN0czogYXJyYW5nZWRPYmplY3RzLnNsdWde +Y29udGVudE9iamVjdHNfEBRhcnJhbmdlZE9iamVjdHMuc2x1Z9gADgB1BJQElQToAHYAdwSWBJcEmAT2 +BJoAYQJ8BPoBV4EBGYEBDoEBMYEBF4EBK4CdgQEw2AAOAHUElASVBOgAdgB3BJYElwS7BP4E/wBiAnwF +AgFXgQEZgQEbgQE1gQE0gQEvgJ2BATNfEDJzZWxlY3RlZE9iamVjdDogdmFsdWVzLm9wZW5pbmdGaWxl +c0FsdGVyZWRCZWhhdmlvcl5zZWxlY3RlZE9iamVjdF8QInZhbHVlcy5vcGVuaW5nRmlsZXNBbHRlcmVk +QmVoYXZpb3LXAA4AdQSUBJUAdgB3BJYElwS7BQkE1wFIBQwBV4EBGYEBG4EBOIEBJYBAgQE3XxAndmFs +dWU6IHZhbHVlcy5hdXRvbWF0aWNhbGx5TGF1bmNoTGFzdEZNXxAgdmFsdWVzLmF1dG9tYXRpY2FsbHlM +YXVuY2hMYXN0Rk3XAA4AdQSUBJUAdgB3BJYElwS7BRIEvQFIBRUBV4EBGYEBG4EBO4EBIYBAgQE6XxAk +ZW5hYmxlZDogdmFsdWVzLmVuYWJsZUF1ZGlvU2Nyb2JibGVyXxAbdmFsdWVzLmVuYWJsZUF1ZGlvU2Ny +b2JibGVy1wAOAHUElASVAHYAdwSWBJcBmgUbBRwEFgUeAVeBARmAUYEBP4EBPoDrgQE92AAOAHUElASV +BOgAdgB3BJYElwGaBSIFIwBmBBYFJgFXgQEZgFGBAUOBAUKBATyA64EBQdgADgB1BJQElQToAHYAdwSW +BJcBmgUqBSsAZwQWBS4BV4EBGYBRgQFHgQFGgQFAgOuBAUVfEB1zZWxlY3RlZEluZGV4OiBzZWxlY3Rp +b25JbmRleF1zZWxlY3RlZEluZGV4XnNlbGVjdGlvbkluZGV41wAOAHUElASVAHYAdwSWBJcEuwUSBNcB +RwU4AVeBARmBARuBATuBASWANYEBSV8QInZhbHVlOiB2YWx1ZXMuZW5hYmxlQXVkaW9TY3JvYmJsZXLX +AA4AdQSUBJUAdgB3BJYElwSYBOAE4QJ7BUABV4EBGYEBDoEBKoEBKYCGgQFL2AAOAHUElASVBOgAdgB3 +BJYElwSYBUQE7ABqAnsFSAFXgQEZgQEOgQFOgQEtgQFKgIaBAU3YAA4AdQSUBJUE6AB2AHcElgSXBJgF +TASaAGsCewVQAVeBARmBAQ6BAVGBAReBAUyAhoEBUNgADgB1BJQElQToAHYAdwSWBJcEuwVUBP8AbAJ7 +BVgBV4EBGYEBG4EBVIEBNIEBT4CGgQFTXxArc2VsZWN0ZWRPYmplY3Q6IHZhbHVlcy5vcGVuaW5nRmls +ZXNCZWhhdmlvcl8QG3ZhbHVlcy5vcGVuaW5nRmlsZXNCZWhhdmlvctcADgB1BJQElQB2AHcElgSXBLsE +vATXA+UFYQFXgQEZgQEbgQEigQElgOGBAVZfEBt2YWx1ZTogdmFsdWVzLnJlbW90ZUVuYWJsZWTXAA4A +dQSUBJUAdgB3BJYElwVlBRsFHANiBR4BV4EBGYEBWIEBP4EBPoDAgQE92gGiAA4BowDTAaUEngGmAacA +MgGpAIkA1QCJBW4FbwVwBXEAiQVzAIkJgCcJgQFagQFegQFdgQFbCYEBWQlfEBZBcHBjYXN0QXJyYXlD +b250cm9sbGVy0gAOAD4ARgV4gESiAboFeoBVgQFcU3VybNEADgG9gFfYAA4AdQSUBJUE6AB2AHcElgSX +BWUFgQWCAG8DYgWFAVeBARmBAViBAWKBAWGBAVeAwIEBYF8QI2NvbnRlbnRPYmplY3RzOiBhcnJhbmdl +ZE9iamVjdHMudXJsXxATYXJyYW5nZWRPYmplY3RzLnVybNgADgB1BJQElQToAHYAdwSWBJcFZQUiBSMA +cANiBSYBV4EBGYEBWIEBQ4EBQoEBX4DAgQFB2AAOAHUElASVBOgAdgB3BJYElwS7BZMFlABxA2IFlwFX +gQEZgQEbgQFngQFmgQFjgMCBAWVfECBzZWxlY3RlZE9iamVjdDogdmFsdWVzLlNVRmVlZFVSTF8QEHZh +bHVlcy5TVUZlZWRVUkzXAA4AdQSUBJUAdgB3BJYElwS7BZ0E1wPkBaABV4EBGYEBG4EBaoEBJYDdgQFp +XxAgdmFsdWU6IHZhbHVlcy5yZW1vdGVPbmx5T25BY3RpdmVfEBl2YWx1ZXMucmVtb3RlT25seU9uQWN0 +aXZl0gAOAD4FpAWlgQFurxBJBDUEmAQWAScAhAOLA4cEcgB6AxAD/AB5A2gCzAHiANgCbAPlBDEDKAF1 +A+oCewGbAlQBOAXAAUcCfQMRARsC+QNiA6cD5AQcAp0AhwOmBLsCywR3A8ABywGaBWUC/QLuAhUDYQJD +AfUETAFNAiABxAHcA1ICFgEcA2MEGQIXAfsD1wRNAUgCgwKXAnwCfgM7A3uA8oEBDoDrgC+AC4DGgMWB +AQKACoClgOOAGIC+gJeAYIAcgIOA4YDxgK2AQoDfgIaAT4B7gDKBAWyANYCrgKiALYCggMCAzoDdgO+A +ioAOgMuBARuAlIEBBIDTgFyAUYEBWIChgJ+Aa4C8gHeAZID3gDeAbYBagF6AuYB1gCuA0YDsgHmAZoDb +gPqAQICIgImAnYCvgLGAwtIADgAyADMF8YAEgQFtXU5TQXBwbGljYXRpb27SADcAOAX0AYeiAYcAO9IA +DgA+BaQF94EBbq8QSQQcAB8EGQEbAB8DewOLBBkAhAL9A+UAhANhAp0B3AB5AB8D1wQ1An0BSAPkAmwA +HwIXAB8AHwE4AmwC/QCEAv0DUgOLA9cEFgKDAHoDiwAfAp0EcgNjAcQAHwAfAu4CfACEA1ICFgCEBDUB +RwIVAIQAhAAfAIQAHwNSAB8AhAH1AB8ENQE4AnsCnQJsAmwCfgNigO+AAoDsgC2AAoDCgMaA7IALgKGA +4YALgLyAioBegBiAAoDbgPKAq4BAgN2Ag4ACgHmAAoACgDKAg4ChgAuAoYC5gMaA24DrgIiACoDGgAKA +ioEBAoDRgFqAAoACgJ+AnYALgLmAdYALgPKANYBrgAuAC4ACgAuAAoC5gAKAC4BkgAKA8oAygIaAioCD +gIOAr4DA0gAOAD4FpAZDgQFurxBKBDUEmAQWAScAhAOLA4cEcgB6AxAD/AB5A2gCzAHiAB8A2AJsA+UE +MQMoAXUD6gJ7AlQBmwE4BcABRwJ9AxEBGwL5A2IDpwPkBBwCnQCHA6YEuwLLBHcDwAHLAZoFZQL9Au4C +FQNhAkMB9QRMAU0CIAQZAcQDUgHcARwCFgNjA9cCFwFIAnwB+wKDAzsETQJ+ApcDe4DygQEOgOuAL4AL +gMaAxYEBAoAKgKWA44AYgL6Al4BggAKAHICDgOGA8YCtgEKA34CGgHuAT4AygQFsgDWAq4CogC2AoIDA +gM6A3YDvgIqADoDLgQEbgJSBAQSA04BcgFGBAViAoYCfgGuAvIB3gGSA94A3gG2A7IBagLmAXoArgHWA +0YDbgHmAQICdgGaAiICxgPqAr4CJgMLSAA4APgWkBpCBAW6vEEoGkQaSBpMGlAaVBpYGlwaYBpkGmgab +BpwGnQaeBp8GoAahBqIGowakBqUGpganBqgGqQGfBqsGrAatBq4GrwawBrEGsgazBrQGtQa2BrcGuAa5 +BroGuwa8Br0Gvga/BsAGwQbCBsMGxAbFBsYGxwbIBskGygbLBswBIAbOBs8G0AbRBtIG0wbUBtUG1gbX +BtgG2QbagQFygQFzgQF0gQF1gQF2gQF3gQF4gQF5gQF6gQF7gQF8gQF9gQF+gQF/gQGAgQGBgQGCgQGD +gQGEgQGFgQGGgQGHgQGIgQGJgQGKgFCBAYuBAYyBAY2BAY6BAY+BAZCBAZGBAZKBAZOBAZSBAZWBAZaB +AZeBAZiBAZmBAZqBAZuBAZyBAZ2BAZ6BAZ+BAaCBAaGBAaKBAaOBAaSBAaWBAaaBAaeBAaiBAamBAaqB +AauBAayALIEBrYEBroEBr4EBsIEBsYEBsoEBs4EBtIEBtYEBtoEBt4EBuIEBuV8QE01lbnUgKE90aGVy +Vmlld3MpLTFfEBBQbGF5bGlzdEJlaGF2aW9yXxAUUG9wdXAgQnV0dG9uIChJdGVtMSlfEBFUZXh0IEZp +ZWxkIENlbGwtMVpIb3RLZXlWaWV3XxARTWVudSAoT3RoZXJWaWV3cylfEBJNZW51IEl0ZW0gKFN0YWJs +ZSlfEB1TdGF0aWMgVGV4dCAoT3V0cHV0IERldmljZTogKV8QElB1c2ggQnV0dG9uIChFZGl0KV8QFE1l +bnUgSXRlbSAoSXRlbSAyKS0xXxAkQnV0dG9uIENlbGwgKEVuYWJsZSByZW1vdGUgY29udHJvbC4pXxAP +SG90IEtleSBDb250cm9sXxA5QnV0dG9uIENlbGwgKEF1dG9tYXRpY2FsbHkgY2hlY2sgZm9yIHVwZGF0 +ZXMgb24gc3RhcnR1cC4pXxASTWVudSBJdGVtIChJdGVtIDMpXxAUQnV0dG9uIENlbGwgKEVkaXQpLTJc +RmlsZSdzIE93bmVyXxAPVGV4dCBGaWVsZCBDZWxsXFBsYXlsaXN0Vmlld18QIkNoZWNrIEJveCAoRW5h +YmxlIHJlbW90ZSBjb250cm9sLilfEBFNZW51IEl0ZW0gKEl0ZW0xKV8QJVRleHQgRmllbGQgQ2VsbCAo +V2hlbiBvcGVuaW5nIGZpbGVzOilfEDJCdXR0b24gQ2VsbCAoQXV0b21hdGljYWxseSBsYXVuY2ggTGFz +dC5mbSBjbGllbnQuKV8QN0J1dHRvbiBDZWxsIChPbmx5IGxpc3RlbiB0byByZW1vdGUgd2hlbiBDb2cg +aXMgYWN0aXZlLilfECxQb3B1cCBCdXR0b24gKENsZWFyIHBsYXlsaXN0IGFuZCBwbGF5IGZpbGVzKV8Q +F1RleHQgRmllbGQgQ2VsbCAoTmV4dDopXVNjcm9iYmxlclZpZXdbQXBwbGljYXRpb25fEEhDaGVjayBC +b3ggKEVuYWJsZSBMYXN0LmZtIHN1cHBvcnQuIChNdXN0IGhhdmUgTGFzdC5mbSBjbGllbnQgaW5zdGFs +bGVkKSlfECFTdGF0aWMgVGV4dCAoV2hlbiBvcGVuaW5nIGZpbGVzOilfEBRNZW51IEl0ZW0gKEl0ZW0g +MyktMV8QEUhvdCBLZXkgQ29udHJvbC0xXxASTWVudSBJdGVtIChJdGVtIDEpXxAVUG9wdXAgQnV0dG9u +IChTdGFibGUpXxATTWVudSBJdGVtIChOaWdodGx5KV8QNUNoZWNrIEJveCAoT25seSBsaXN0ZW4gdG8g +cmVtb3RlIHdoZW4gQ29nIGlzIGFjdGl2ZS4pXxAaUG9wIFVwIEJ1dHRvbiBDZWxsIChJdGVtMSlfEBNN +ZW51IChPdGhlclZpZXdzKS0yXxASQnV0dG9uIENlbGwgKEVkaXQpXxAUTWVudSBJdGVtIChVbnN0YWJs +ZSlfEA9TaGFyZWQgRGVmYXVsdHNfEBJNZW51IEl0ZW0gKEl0ZW0gMilfECFUZXh0IEZpZWxkIENlbGwg +KE91dHB1dCBEZXZpY2U6IClfEB5UZXh0IEZpZWxkIENlbGwgKFVwZGF0ZSBGZWVkOilfEBFUZXh0IEZp +ZWxkIENlbGwtMl1PdXRwdXREZXZpY2VzWEFwcGNhc3RzXxATTWVudSAoT3RoZXJWaWV3cyktM18QG1Bv +cCBVcCBCdXR0b24gQ2VsbCAoSXRlbSAxKV8QE1N0YXRpYyBUZXh0IChQbGF5OilfEDdDaGVjayBCb3gg +KEF1dG9tYXRpY2FsbHkgY2hlY2sgZm9yIHVwZGF0ZXMgb24gc3RhcnR1cC4pXxAbVGV4dCBGaWVsZCBD +ZWxsIChQcmV2aW91czopXxAUUHVzaCBCdXR0b24gKEVkaXQpLTFfEBFNZW51IEl0ZW0gKEl0ZW0yKV8Q +SkJ1dHRvbiBDZWxsIChFbmFibGUgTGFzdC5mbSBzdXBwb3J0LiAoTXVzdCBoYXZlIExhc3QuZm0gY2xp +ZW50IGluc3RhbGxlZCkpXxAXVGV4dCBGaWVsZCBDZWxsIChQbGF5OilaT3V0cHV0Vmlld18QEUhvdCBL +ZXkgQ29udHJvbC0yW1VwZGF0ZXNWaWV3XxAUUHVzaCBCdXR0b24gKEVkaXQpLTJfEBdTdGF0aWMgVGV4 +dCAoUHJldmlvdXM6KV8QGlN0YXRpYyBUZXh0IChVcGRhdGUgRmVlZDopWlJlbW90ZVZpZXdfEBNTdGF0 +aWMgVGV4dCAoTmV4dDopXxAwQ2hlY2sgQm94IChBdXRvbWF0aWNhbGx5IGxhdW5jaCBMYXN0LmZtIGNs +aWVudC4pXxAVUG9wdXAgQnV0dG9uIChJdGVtIDEpXxAUQnV0dG9uIENlbGwgKEVkaXQpLTFfEDJQb3Ag +VXAgQnV0dG9uIENlbGwgKENsZWFyIHBsYXlsaXN0IGFuZCBwbGF5IGZpbGVzKW8QNwBUAGUAeAB0ACAA +RgBpAGUAbABkACAAQwBlAGwAbAAgACgAVwBoAGUAbgAgAG8AcABlAG4AaQBuAGcAIABmAGkAbABlACAA +dwBpAHQAaAAgIecAIABvAHIAICMYACsAXgAgAGgAZQBsAGQAOgApXxARTWVudSBJdGVtIChJdGVtMylv +EDMAUwB0AGEAdABpAGMAIABUAGUAeAB0ACAAKABXAGgAZQBuACAAbwBwAGUAbgBpAG4AZwAgAGYAaQBs +AGUAIAB3AGkAdABoACAh5wAgAG8AcgAgIxgAKwBeACAAaABlAGwAZAA6AClfEClNZW51IEl0ZW0gKENs +ZWFyIHBsYXlsaXN0IGFuZCBwbGF5IGZpbGVzKV8QG1BvcCBVcCBCdXR0b24gQ2VsbCAoU3RhYmxlKdIA +DgA+BaQHJYEBbqYFZQEbBJgAeQHEAZqBAViALYEBDoAYgFqAUdIADgA+BaQHLoEBbqYFcwDbBKcA2wDb +AbKBAVmAGYEBD4AZgBmAUtIADgA+BaQHN4EBbq8QdgQ1BBYBJwCEAEoAYgMQAEkAXwBSAHMAcgBuAB8E +MQMoA+oAXgBnAZsATAJ9AxEBGwBNA+QCnQLLAGMEdwPAAcsBmgVlAGECFQJDAfUAbAM7AiABxABRAE8B +3ANSARwEGQIXBE0CfABYA3sASASYAFoAcQBpA4cDiwRyAHoAZAP8AHkATgNoAswB4gDYAmwD5QBQAXUA +agJ7AEsAXQJUATgFwAFHAFQAbQBrAFkC+QBWA2IDpwQcAGAAZgBXAIcDpgS7Av0C7gNhBEwAcAFNA2MA +aAIWAUgAUwBlA9cB+wKDAFUAWwKXAFwCfgBvgPKA64AvgAuAMYEBL4ClgCqBASOAgoEBaIEBZIEBVYAC +gPGArYDfgQEagQFAgE+AToCrgKiALYBZgN2AioCUgQEygQEEgNOAXIBRgQFYgQErgGuAd4BkgQFPgLGA +bYBagIGAY4BegLmAK4DsgHmA+oCdgOqAwoAJgQEOgQEAgQFjgQFIgMWAxoEBAoAKgQE2gOOAGIBdgL6A +l4BggByAg4DhgGmAQoEBSoCGgEuBAQ2Ae4AygQFsgDWAuIEBUoEBTID+gKCA2oDAgM6A74EBJ4EBPIDo +gA6Ay4EBG4ChgJ+AvID3gQFfgDeA0YEBRIB1gECAt4EBOYDbgGaAiIDYgQEJgImBAQuAr4EBV9IADgA+ +BaQHsIEBbq8QdgexB7IHswe0B7UHtge3B7gHuQe6B7sHvAe9B74HvwfAB8EHwgfDB8QHxQfGB8cHyAfJ +B8oHywfMB80HzgfPB9AH0QfSB9MH1AfVB9YH1wfYB9kH2gfbB9wH3QfeB98H4AfhB+IH4wfkB+UH5gfn +B+gH6QfqB+sH7AftB+4H7wfwB/EH8gfzB/QH9Qf2B/cH+Af5B/oH+wf8B/0H/gf/CAAIAQgCCAMIBAgF +CAYIBwgICAkICggLCAwIDQgOCA8IEAgRCBIIEwgUCBUIFggXCBgIGQgaCBsIHAgdCB4IHwggCCEIIggj +CCQIJQgmgQG+gQG/gQHAgQHBgQHCgQHDgQHEgQHFgQHGgQHHgQHIgQHJgQHKgQHLgQHMgQHNgQHOgQHP +gQHQgQHRgQHSgQHTgQHUgQHVgQHWgQHXgQHYgQHZgQHagQHbgQHcgQHdgQHegQHfgQHggQHhgQHigQHj +gQHkgQHlgQHmgQHngQHogQHpgQHqgQHrgQHsgQHtgQHugQHvgQHwgQHxgQHygQHzgQH0gQH1gQH2gQH3 +gQH4gQH5gQH6gQH7gQH8gQH9gQH+gQH/gQIAgQIBgQICgQIDgQIEgQIFgQIGgQIHgQIIgQIJgQIKgQIL +gQIMgQINgQIOgQIPgQIQgQIRgQISgQITgQIUgQIVgQIWgQIXgQIYgQIZgQIagQIbgQIcgQIdgQIegQIf +gQIggQIhgQIigQIjgQIkgQIlgQImgQIngQIogQIpgQIqgQIrgQIsgQItgQIugQIvgQIwgQIxgQIygQIz +ED0QPBDJEAsQZREBJREBARAjEDUQ9BBPEJMQYREBMBA+EQEEEM0QYhBHEDkQTBEBAxEBAhAbECYQLBD5 +EPsRAS8Q0xDREMoQOxBzEQEkEBgQxxAdEQEcEQEGEMYQHBAlECAQHhAyEDoQGhBAEP0QShDQEBcQ9hBJ +EJEQWhBsEGsQQRAREF8QzhAhEM8Q/BDMEMQQ5xBNEAwQ1REBBxD3EBQRAQoQVRP//////////RBXEGMR +AS4RARsQDhBkEGoQbhDSEQEIEEUQJBDFEG0QNBD/EP4QMxA/EJAQ1BBvEEgQWBAWEF0QKxDLEPgQHxD6 +ECIRAQUQh9IADgA+AEYImYBEoNIADgA+BaQInIEBbqDSAA4APgWkCJ+BAW6g0gA3ADgIoQiiogiiADte +TlNJQk9iamVjdERhdGEACAAZACIAJwAxADoAPwBEAFIAVABmBNoE4AUrBTIFOQVHBVkFdQWDBY8FmwWp +BbQFwgXeBewF/wYRBisGNQZCBkQGRwZKBk0GUAZSBlUGVwZaBl0GYAZjBmUGZwZqBm0GcAZzBnwGiAaK +BowGoQaqBrMGvgbDBtIG2wbuBvcHAgcEBwUHDgcVByIHKAcxBzMHjgeQB5IHlAeWB5gHmgecB54HoAei +B6QHpgeoB6oHrAeuB7AHsge1B7gHuwe+B8EHxAfHB8oHzQfQB9MH1gfZB9wH3wfiB+UH6AfrB+4H8Qf0 +B/cH+gf9CAAIEQgfCCgIMAgyCDQINgg4CFkIawhzCHoIgwiNCJYIogikCKYIqAiqCK0IrgiwCLII1wji +CO4I+gj8CP4JAAkCCQQJBgkICQoJIglXCWMJeQmOCZ0JsAnCCc0J1wnlCfcKBAoSChcKGQobCh0KHwoh +CiMKJQonCikKKwowCjkKPgpPClYKXQpmCmgKcQpzCnYKgwqMCpEKmAqZCqIKrAquCrcKvgrQCtkK4grr +CvgLBQsOCxkLIgssCzMLPwtoC34LgAuCC4QLhguIC4kLiwuNC48LnQupC8AL5Qv5DA0MGQwiDCQMJgwo +DCoMLAwxDDIMNAxFDEcMUAxSDFUMagxyDH8MiwyZDJsMnQyfDKEMowyqDMAMzQzVDNcM2QzcDOUM6gz/ +DQENAw0FDQcNEQ0eDSANIw0sDTUNRw1QDVUNZA1wDXkNgA2XDaYNtw25DbsNvQ2/DcgNyg3MDdcOAA4C +DgQOBg4IDgoOCw4NDg8OEQ4oDk0OTw5RDlMOVQ5XDlgOWg5uDn8OgQ6DDoUOhw6sDq4OsA6yDrQOtg64 +DroOvA7FDscOzA7ODtAO8Q7zDvUO9w75DvoO/A7+DxYPTw9dD18PYQ9jD2UPZw9pD2sPbQ9vD3EPdg+1 +D8IP0Q/TD9UP1w/fD+gP8Q/2EAkQEhAeECAQIhArEDAQRhBnEGkQaxBtEG8QcBByEHQQjBDFEMcQyRDL +EM0QzxDRENMQ1RD8EQURDBEbESMRLRE2ETgRQRFKEVcRZRF2EXgRehF8EX4RjRGWEZ0RtRHGEcgRyhHM +Ec4R1xHZEdsR5hITEjASRxJSEmQScxKYErMSzBLNEs8S0BLSEtMS1RLXEtgS2hLbEtwS9RMJExITFBMX +ExkTHhMjEyUTLhMzE0ETUhNUE1YTWBNaE4MThROHE4kTixONE44TkBOSE5QTqxPQE9IT1BPWE9gT2hPb +E90T7hPwE/IT9BP2FBcUGRQbFB0UHxQgFCIUJBQ8FHEUcxR1FHcUeRR7FH0UfxSIFIoUnBStFK8UsRSz +FLUU1hTYFNoU3BTeFN8U4RTjFPsVMBUyFTQVNhU4FToVPBU+FUcVSRVbFWwVbhVwFXIVdBV9FX8VkhWU +FZYVmBWaFZwVnhWgFaIVpBXFFccVyRXLFc0VzhXQFdIV6RYKFgwWDhYQFhIWFBYZFhsWIRY2FjgWOhY8 +Fj4WSxZYFloWZhZ7Fn0WfxaBFoMWlhafFqoWyxbNFs8W0RbTFtQW1hbYFu8XEBcSFxQXFhcYFxoXHBcm +F0cXSRdLF00XTxdQF1IXVBdrF4wXjheQF5IXlBeWF5gXnhepF7IXtBe5F8oXzBfOF9AX0hfjF+UX5xfp +F+sYDBgOGBAYEhgVGBcYGRgbGB0YJhgoGDEYMxg1GDcYORhaGFwYXhhgGGIYYxhlGGcYgBjLGOgY+hkF +GRcZLBk6GUEZShlLGU0ZTxlRGVMZVRlXGVkZWhlbGV4ZYRljGWgZlRmeGaYZuhnFGdMZ3RnqGfMZ+xn9 +Gf8aARoGGggaDRoPGhEaExoVGiIaLhowGjIaNBpUGmEaYxplGmcaeRqGGogaihqMGp8asxq8GsEazBrV +Gtca3hrgGuIa5BsNGw8bERsTGxUbFxsZGxsbHRskG00bTxtRG1MbVRtXG1kbWxtdG2QbbRtyG3sbiBuc +G6sbtBvBG88b8BvyG/Qb9hv4G/kb+xv9HBYcYRxiHGQcZhxoHGocbBxuHG8ccBxyHJ8coRyjHKUcpxyp +HKscrRyvHLwcvhzAHMIcyRzSHNQc2xzdHN8c4R0KHQwdDh0QHRIdFB0WHRgdGh1DHUUdRx1JHUsdTR1P +HVEdUx10HXYdeB16HXwdfR1/HYEdmR26Hb8dwR3DHcUdxx3JHc4d0B3mHgceCR4LHg0eDx4QHhIeFB4s +Hk0eTx5RHlMeVR5XHlweXh6rHrYewx7UHtYe2B7aHtwe7R7vHvEe8x71HxofHB8eHyAfIh8kHyYfKB8q +HzMfNR88Hz4fQB9CH2MfZR9nH2kfax9sH24fcB+IH8Efwx/FH8cfyR/LH80fzx/RH/8gICAiICQgJiAo +ICkgKyAtIEYglSCWIJggmiCcIJ4goCCiIKQgpSCmIKgguSC7IL0gvyDIIMog9yD5IPsg/SD/IQEhAyEF +IQchFCEWIRghGiEhISohLCE1ITchPiFAIUIhRCFtIW8hcSFzIXUhdyF5IXshfSGGIa8hsSGzIbUhtyG5 +IbshvSG/Icch6CHqIewh7iHwIfEh8yH1IgwiLSIvIjEiMyI1IjciOSJGIlAiXCJtIm8icSJzInUihyKY +IpoinCKeIqAivSK/IsEiwyLFIsciySLSItQi2SLbIt0i+iL8Iv4jACMCIwMjBSMdI1YjWCNaI1wjXiNg +I2IjZCNmI5IjryOxI7MjtSO3I7gjuiPSJAskDSQPJBEkEyQVJBckGSQbJDQkPSQ/JEokWyRdJF8kYSRj +JHckiCSKJIwkjiSQJLEksyS1JLckuSS6JLwkviTjJOUk5yTqJO0k7yTyJPQk9yUQJV8lYCViJWQlZiVo +JWolbCVuJW8lcCVyJXslfSWqJawlriWwJbIltCW2JbgluiXHJcklyyXNJdMl3CXeJecl6SXwJfIl9CX2 +Jh8mISYjJiUmJyYpJismLSYvJjUmXiZgJmImZCZmJmgmaiZsJm4mdCaCJpMmlSaXJpkmmyamJrcmuSa7 +Jr0mvybIJsomzybRJtQm9Sb3Jvkm/Cb/JwAnAicEJxwnPSc/J0EnRCdGJ0knSyddJ2cncCdyJ4MnhSeH +J4knjCeXJ6gnqiesJ64nsSfFJ+In7Cf2KBUoGCgbKB4oISgjKCYoTyhjKGQoZihnKGoobShwKHModCh3 +KHgomiijKKUoqiitKLAotSjCKMcoySjvKP0pFCkdKSQpPClZKVwpXyliKWUpZylqKXcpiimNKZApkSma +KZwpoSmkKacpvincKeUp7CoHKhQqNCo8KlMqcCpzKnYqeSp8Kn4qgSqiKqgqwirfKuIq5SroKusq7Srw +KwsrEyslK0YrXCtfK2IrZStoK2srbStwK5crpiu9K94r4SvkK+cr6ivtK+8r8iwTLBYsGSwcLB8sIiwk +LCcsXCxrLJAsrSywLLMstiy5LLssvizoLQstKC0rLS4tMS00LTYtOS1gLX4tmy2eLaAtoy2mLagtqy3M +Lc8t0S3ULdct2i3cLd8uAC4DLgUuCC4LLg4uEC4TLjMuQS5QLm0ucC5zLnYueS57Ln4uoy7ALsMuxi7J +Lswuzi7RLvIu9S74Lvsu/i8BLwMvBi8nLyovLS8wLzMvNi84LzsvXC9fL2IvZS9oL2svbS9wL54vvC/Z +L9wv3y/iL+Uv5y/qMAgwJTAoMCswLjAxMDMwNjBfMGAwYjBjMGYwaTBsMG8wcDBzMHQwjTCWMJgwnTCf +MKIwpjCrMK0wzjDRMNQw1zDaMN0w3zDiMQgxHjE/MUIxRTFIMUsxTjFQMVMxdDF3MXoxfTGAMYMxhTGI +MasxvjHbMd4x4THkMecx6THsMg8yKzI0MjcyzDLOMtEy0zLVMtcy2TLbMt4y4DLiMuQy5jLoMuoy7DLu +MvAy8jL0MvYy+DL6Mvwy/jMAMwIzBTMHMwkzCzMNMw8zETMTMxUzFzMZMxszHTMgMyIzJTMnMykzKzMu +MzAzMjM0MzYzODM6MzwzPjNAM0IzRDNGM0gzSjNMM04zUDNSM1QzVjNYM1ozXDNeM2AzYjNkM20zbzNy +M4AziTOOM5czmjQvNDE0MzQ1NDc0OTQ7ND00PzRBNEM0RTRHNEk0SzRNNE80UTRTNFU0VzRZNFs0XTRf +NGE0YzRlNGc0aTRrNG00bzRxNHM0dTR3NHk0ezR9NH80gTSENIY0iDSKNIw0jjSQNJI0lDSWNJg0mjSc +NJ40oDSiNKQ0pjSoNKo0rDSuNLA0sjS0NLY0uDS6NLw0vjTANMI0yzTONWU1ZzVqNWw1bjVwNXI1dDV3 +NXk1ezV9NX81gTWDNYU1hzWJNYs1jTWPNZE1kzWVNZc1mTWbNZ01oDWiNaQ1pjWoNao1rDWuNbA1sjW0 +NbY1uDW7Nb01wDXCNcQ1xjXJNcs1zTXPNdE10zXVNdc12TXbNd013zXhNeM15TXnNek16zXtNe818TXz +NfU19zX5Nfs1/TX/Ngg2CzaiNqU2qDarNq42sTa0Nrc2uja9NsA2wzbGNsk2zDbPNtI21TbYNts23jbh +NuQ25zbqNu027zbyNvU2+Db7Nv43ATcENwc3CjcNNxA3EzcWNxk3HDcfNyI3JTcoNys3LjcxNzQ3Nzc6 +Nz03QDdDN0Y3STdMN083UjdVN1c3WjddN2A3YzdmN2k3bDdvN3I3dTd4N3s3fjeUN6c3vjfSN9038TgG +OCY4OzhSOHk4izjHONw48zkAORI5HzlEOVg5gDm1Oe86Hjo4OkY6UjqdOsE62DrsOwE7GTsvO2c7hDua +O687xjvYO+08ETwyPEY8VDxdPHM8kTynPOE8/z0WPSo9dz2RPZw9sD28PdM97T4KPhU+Kz5ePnY+jT7C +PzM/Rz+wP9w/+kADQAZAE0AWQBhAG0AdQB9AIUAqQC1AOkA9QD9AQkBEQEZASEBRQFRBQ0FFQUdBSUFL +QU1BUEFSQVRBV0FZQVxBX0FiQWRBZkFoQWpBbUFwQXJBdEF2QXhBekF8QX5BgEGCQYVBiEGKQYxBjkGR +QZRBlkGYQZpBnUGfQaFBo0GlQadBqUGrQa1Br0GxQbNBtUG3QblBu0G+QcFBxEHHQclBy0HOQdBB00HV +QddB2UHbQd1B30HhQeNB5UHnQelB7EHuQfBB80H1QfdB+kH8Qf5CAUIEQgZCCEIKQgxCDkIQQhNCFkIY +QhpCHEIfQiFCI0IlQidCKkIsQi5CMUIzQjVCN0I6QjxCPkJAQkJCRUJHQkpCTEJPQlhCW0NKQ01DUENT +Q1ZDWUNcQ19DYkNlQ2hDa0NuQ3FDdEN3Q3pDfUOAQ4NDhkOJQ4xDj0OSQ5VDmEObQ55DoUOkQ6dDqkOt +Q7BDs0O2Q7lDvEO/Q8JDxUPIQ8tDzkPRQ9RD10PaQ91D4EPjQ+ZD6UPsQ+9D8kP1Q/hD+0P+RAFEBEQH +RApEDUQQRBNEFkQZRBxEH0QiRCVEKEQrRC5EMUQ0RDdEOkQ9REBEQ0RGRElETERPRFJEVURYRFtEXkRh +RGREZ0RqRG1EcERzRHZEeUR8RH9EgkSFRIhEi0SORJFElESXRJpEnUSgRKNEpkSpRKxErkSwRLJEtES2 +RLlEvES+RMBEwkTERMZEyETLRM1E0ETSRNRE1kTYRNpE3UTgROJE5ETmROhE6kTtRO9E8UTzRPVE90T6 +RPxE/kUARQNFBkUIRQpFDEUORRBFEkUURRZFGEUaRRxFHkUgRSJFJEUmRShFKkUsRS5FMEUyRTRFNkU4 +RTpFPEU+RUBFQkVERUZFSUVLRU1FUEVSRVtFXUVfRWJFZUVnRWlFa0VtRW9FckV0RXZFeEV6RXxFfkWA +RYJFhEWGRYhFikWMRY5FkEWSRZRFlkWYRZpFnEWeRaFFo0WsRa5Fr0W4RbtFvEXFRchFyUXSRdcAAAAA +AAACAgAAAAAAAAijAAAAAAAAAAAAAAAAAABF5g + diff --git a/Preferences/General/General.xcodeproj/project.pbxproj b/Preferences/General/General.xcodeproj/project.pbxproj index 072fa246f..ca7c996ce 100644 --- a/Preferences/General/General.xcodeproj/project.pbxproj +++ b/Preferences/General/General.xcodeproj/project.pbxproj @@ -29,6 +29,7 @@ 8E6C12170AACAE4100819171 /* NDHotKeyEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E6C12150AACAE4100819171 /* NDHotKeyEvent.m */; }; 8E6C123A0AACAEF200819171 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E6C12390AACAEF200819171 /* Carbon.framework */; }; 8E6C13A00AACBAB500819171 /* HotKeyControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E6C139F0AACBAB500819171 /* HotKeyControl.m */; }; + 99F1813F0DE01D7A00FD5FFB /* PlaylistBehaviorArrayController.m in Sources */ = {isa = PBXBuildFile; fileRef = 99F1813E0DE01D7A00FD5FFB /* PlaylistBehaviorArrayController.m */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -69,6 +70,8 @@ 8E6C12390AACAEF200819171 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; 8E6C139E0AACBAB500819171 /* HotKeyControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HotKeyControl.h; sourceTree = ""; }; 8E6C139F0AACBAB500819171 /* HotKeyControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HotKeyControl.m; sourceTree = ""; }; + 99F1813D0DE01D7A00FD5FFB /* PlaylistBehaviorArrayController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaylistBehaviorArrayController.h; sourceTree = ""; }; + 99F1813E0DE01D7A00FD5FFB /* PlaylistBehaviorArrayController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PlaylistBehaviorArrayController.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -175,6 +178,8 @@ 8E6C139F0AACBAB500819171 /* HotKeyControl.m */, 17C643370B8A77CC00C53518 /* OutputsArrayController.h */, 17C643360B8A77CC00C53518 /* OutputsArrayController.m */, + 99F1813D0DE01D7A00FD5FFB /* PlaylistBehaviorArrayController.h */, + 99F1813E0DE01D7A00FD5FFB /* PlaylistBehaviorArrayController.m */, ); name = Custom; sourceTree = ""; @@ -291,6 +296,7 @@ 17C643380B8A77CC00C53518 /* OutputsArrayController.m in Sources */, 17C6433F0B8A783F00C53518 /* OutputPane.m in Sources */, 170744AD0BFF3938002475C9 /* AppcastArrayController.m in Sources */, + 99F1813F0DE01D7A00FD5FFB /* PlaylistBehaviorArrayController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; };