diff --git a/Plugins/CoreAudio/CoreAudio.xcodeproj/project.pbxproj b/Plugins/CoreAudio/CoreAudio.xcodeproj/project.pbxproj index eb9b711df..76abfdfde 100644 --- a/Plugins/CoreAudio/CoreAudio.xcodeproj/project.pbxproj +++ b/Plugins/CoreAudio/CoreAudio.xcodeproj/project.pbxproj @@ -144,6 +144,7 @@ 089C1669FE841209C02AAC07 /* Project object */ = { isa = PBXProject; buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "CoreAudio" */; + compatibilityVersion = "Xcode 2.4"; hasScannedForEncodings = 1; mainGroup = 089C166AFE841209C02AAC07 /* CoreAudio */; projectDirPath = ""; diff --git a/Plugins/M3u/M3u.xcodeproj/project.pbxproj b/Plugins/M3u/M3u.xcodeproj/project.pbxproj index 80084c245..5223c50e0 100644 --- a/Plugins/M3u/M3u.xcodeproj/project.pbxproj +++ b/Plugins/M3u/M3u.xcodeproj/project.pbxproj @@ -139,6 +139,7 @@ 089C1669FE841209C02AAC07 /* Project object */ = { isa = PBXProject; buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "M3u" */; + compatibilityVersion = "Xcode 2.4"; hasScannedForEncodings = 1; mainGroup = 089C166AFE841209C02AAC07 /* M3u */; projectDirPath = ""; diff --git a/Spotlight/SpotlightPanel.xib b/Spotlight/SpotlightPanel.xib index 587810841..e1d7ddb62 100644 --- a/Spotlight/SpotlightPanel.xib +++ b/Spotlight/SpotlightPanel.xib @@ -2,14 +2,14 @@ 1050 - 9C7 + 9C31 629 - 949.23 + 949.26 352.00 YES + - YES @@ -53,7 +53,7 @@ 134217728 Add to Playlist - LucidaGrande + LucidaGrande 1.300000e+01 1044 @@ -110,7 +110,7 @@ 0 Title - + 1.100000e+01 3100 @@ -120,7 +120,7 @@ 6 - System + System headerTextColor 3 @@ -131,12 +131,12 @@ 337772096 2048 - Text Cell + Text Cell 6 - + controlBackgroundColor 3 @@ -145,7 +145,7 @@ 6 - + controlTextColor @@ -166,7 +166,7 @@ 6 - + headerColor 3 @@ -178,7 +178,7 @@ 337772096 2048 - + @@ -204,7 +204,7 @@ 337772096 2048 - + @@ -311,7 +311,7 @@ 337772096 67110912 - + @@ -320,6 +320,11 @@ 3 YES + + spotlightTrack + YES + compareTrackNumbers: + 3.000000e+00 @@ -327,7 +332,7 @@ 6 - + gridColor 3 @@ -418,7 +423,7 @@ 1 6 - + textBackgroundColor @@ -452,7 +457,7 @@ YES cancel - + @@ -483,7 +488,7 @@ 6 - + controlColor @@ -522,7 +527,7 @@ - {{0, 0}, {1440, 878}} + {{0, 0}, {1280, 778}} {400, 276} @@ -536,6 +541,7 @@ + spotlightTrack PlaylistEntry YES @@ -553,11 +559,11 @@ 1048576 2147483647 - NSImage + NSImage NSMenuCheckmark - + NSMenuMixedState @@ -706,26 +712,6 @@ 105 - - - value: arrangedObjects.track - - - - - - - - arrangedObjects.track - - - - - 2 - - - 107 - tableView @@ -862,6 +848,55 @@ 193 + + + value: arrangedObjects.spotlightTrack + + + + + + + value + arrangedObjects.spotlightTrack + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSAlwaysPresentsApplicationModalAlerts + NSConditionallySetsEditable + NSConditionallySetsEnabled + NSContinuouslyUpdatesValue + NSCreatesSortDescriptor + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + + + + + + + + + + 2 + + + 195 + @@ -1098,6 +1133,9 @@ 44 + + YES + @@ -1291,70 +1329,11 @@ - 193 + 195 YES - - DNDArrayController - NSArrayController - - YES - - YES - - - YES - - - - tableView - NSTableView - - - IBProjectSource - Playlist/DNDArrayController.h - - - - PlaylistView - NSTableView - - YES - - YES - scrollToCurrentEntry: - shufflePlaylist: - sortByPath: - toggleColumn: - - - YES - id - - - - - - - YES - - YES - playbackController - playlistController - - - YES - PlaybackController - PlaylistController - - - - - Playlist/PlaylistView.h - - EntriesController NSObject @@ -1377,36 +1356,10 @@ - + IBProjectSource Playlist/EntriesController.h - - TrackingSlider - NSSlider - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - - - - Utils/TrackingSlider.h - - @@ -1429,33 +1382,7 @@ - - ThirdParty/AppleRemote/AppleRemote.h - - - - - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - - - + ThirdParty/NDHotKeys/NDHotKeyEvent.h @@ -1481,10 +1408,36 @@ - + ThirdParty/GCWindowMenu/GCOneShotEffectTimer.h + + + + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + ThirdParty/AppleRemote/AppleRemote.h + + PlaylistController DNDArrayController @@ -1496,23 +1449,27 @@ clear: clearFilterPredicate: emptyQueueList: + removeFromQueue: searchByAlbum: searchByArtist: showEntryInFinder: + stopAfterCurrent: takeShuffleFromObject: toggleRepeat: YES - - - - - - - - - + id + + + + + + + + + + @@ -1531,10 +1488,31 @@ - + Playlist/PlaylistController.h + + DNDArrayController + NSArrayController + + YES + + YES + + + YES + + + + tableView + NSTableView + + + + Playlist/DNDArrayController.h + + SpotlightPlaylistController PlaylistController @@ -1557,7 +1535,7 @@ - + Spotlight/SpotlightPlaylistController.h @@ -1571,6 +1549,7 @@ changeVolume: eventSeekBackward: eventSeekForward: + fade: next: pause: pauseResume: @@ -1589,24 +1568,25 @@ YES - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -1633,7 +1613,7 @@ - + Application/PlaybackController.h @@ -1649,8 +1629,8 @@ YES - - + + @@ -1671,7 +1651,7 @@ - + Spotlight/SpotlightWindowController.h @@ -1692,10 +1672,74 @@ PlaylistController - + Playlist/PlaylistLoader.h + + PlaylistView + NSTableView + + YES + + YES + scrollToCurrentEntry: + shufflePlaylist: + sortByPath: + toggleColumn: + + + YES + + + + + + + + YES + + YES + playbackController + playlistController + + + YES + PlaybackController + PlaylistController + + + + + Playlist/PlaylistView.h + + + + TrackingSlider + NSSlider + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + Utils/TrackingSlider.h + + 0 @@ -1703,267 +1747,280 @@ 3 YnBsaXN0MDDUAAEAAgADAAQABQAGAAkAClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIA -AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxEBZwALAAwAMQA1ADYAPAA9 -AEEARQBeAGYAgACBAIIAgwCEAAsAkgCaAKYApwC/AMAAyADJAMwAzQDOANIA2ADwAPgBBgEKATABMQEy -ATMBOgFFAUYBSQFPAVABUwFdAXABcQF5AXoBfwGEAYcBjwGQAZEBlAGYAaEBogGnAagBqwGwAbEBswG2 -Ab8BwAHGAccBzAHNAdAB1wHgAeEB5wHoAe8B+gH7AgICAwGhAgsCFQIWAhwCHQIkAi0CLgI0AjUCPAJE -AkUCSwJMAlMCVwJcAl0CYAJhAmQCZQJoAnQCdQJ2AnkCgwKEAUUCiAKJAowClQKWAqgCrQKuArkCugK7 -AsQCxQLJAtIC0wLUASMC1QLZAtoC3QLhAuoC6wL0AvUC+gL7Av0DBwMMAw0DDgMPAxoDHQMgAyMACwMk -AyYDJwMoAysDLAMwAzUDNgM7A0kDSgNLA1UDVgNYA1oDWwNgA2EDZgNsA20DcQOAA4EDhgOHA4gDiwOP -A5ADkwOVA5YDmwOcA6EDogOlA6oDqwOwA7EDtgO3A7wDwQPCA84DzwPQA9ED1wPYA9oD3QPkA+UD5gPu -A+8D8AP2A/4D/wQABAYEDgQPBBAEFgQeBCIEJgQnBCgELgQvBDAEOAQ5BDoEQARIBEkESgRQBFgEWQRa -BGAEaARpBGoEawRxBHIElwSaBJsEnQTCBOgFDgUPBRAFEQUSBRMFFAUVBRYFFwUYBRkFGgUbBRwFHQUe -BR8FIAUhBSIFIwUkBSUFJgUnBSgFKQUqBSsFLAUtBS4FLwUwBTEFNgU7BXcFswW0BbUFtgW3BbgBjAW5 -BboFuwW8Bb0AtgW+Bb8FwAXBBcIFwwB9BcQFxQXGBccFyAXJBcoFywXMBc0FzgXPBdAF0QXSAHwF0wXU -BdUF1gXXBdgF2QXaBdsF3AXdBd4F3wXgBeEF4gXjBeQF5QDlBeYF6QXsBe9VJG51bGzfEBIADQAOAA8A -EAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0A -LgAvADBWTlNSb290ViRjbGFzc11OU09iamVjdHNLZXlzXxAPTlNDbGFzc2VzVmFsdWVzXxAZTlNBY2Nl -c3NpYmlsaXR5T2lkc1ZhbHVlc11OU0Nvbm5lY3Rpb25zW05TTmFtZXNLZXlzW05TRnJhbWV3b3JrXU5T -Q2xhc3Nlc0tleXNaTlNPaWRzS2V5c11OU05hbWVzVmFsdWVzXxAZTlNBY2Nlc3NpYmlsaXR5Q29ubmVj -dG9yc11OU0ZvbnRNYW5hZ2VyXxAQTlNWaXNpYmxlV2luZG93c18QD05TT2JqZWN0c1ZhbHVlc18QF05T -QWNjZXNzaWJpbGl0eU9pZHNLZXlzWU5TTmV4dE9pZFxOU09pZHNWYWx1ZXOAAoEBZoD9gQEogQFlgAiB -AQKABYEBJ4EBKYEBA4EBY4AAgAaBAQGBAWQQw4EBKtIADgAyADMANFtOU0NsYXNzTmFtZYAEgANfEBlT -cG90bGlnaHRXaW5kb3dDb250cm9sbGVy0gA3ADgAOQA6WCRjbGFzc2VzWiRjbGFzc25hbWWiADoAO15O -U0N1c3RvbU9iamVjdFhOU09iamVjdF8QEElCQ29jb2FGcmFtZXdvcmvSAA4APgA/AEBaTlMub2JqZWN0 -c4AHoNIANwA4AEIAQ6MAQwBEADtcTlNNdXRhYmxlU2V0VU5TU2V00gAOAD4ARgBHgGSvEBYASABJAEoA -SwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXYAJgKKApICtgK+AvoDAgMOAxYDHgMmA -yoDMgNSA14DbgN+A44DrgO+A84D31AAOAF8AYABhAGIAYwAfAGVdTlNEZXN0aW5hdGlvblhOU1NvdXJj -ZVdOU0xhYmVsgKGACoACgKDdAGcADgBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB2AHgAeQB6 -AHsAfAB9AH4AK1xOU1dpbmRvd1ZpZXdcTlNTY3JlZW5SZWN0XxATTlNGcmFtZUF1dG9zYXZlTmFtZV1O -U1dpbmRvd1RpdGxlWU5TV1RGbGFnc11OU1dpbmRvd0NsYXNzXxAWTlNXaW5kb3dDb250ZW50TWluU2l6 -ZVxOU1dpbmRvd1JlY3RfEA9OU1dpbmRvd0JhY2tpbmdfEBFOU1dpbmRvd1N0eWxlTWFza1lOU01pblNp -emVbTlNWaWV3Q2xhc3OAD4CfgJ2ADIAME/////+gAAAAgA2ADoALEAIQH4CegABfEBh7ezE5NiwgMTky -fSwgezQ4MCwgMzIwfX1ZU3BvdGxpZ2h0V05TUGFuZWxaezQwMCwgMjYwfdcAhQAOAIYAhwCIAIkAigCL -AIwAjQCOAI8AiwCRXxAPTlNOZXh0UmVzcG9uZGVyWk5TU3Vidmlld3NYTlN2RmxhZ3NbTlNGcmFtZVNp -emVYTlNXaW5kb3dbTlNTdXBlcnZpZXeAEICcgBERAQCAmoAQgJvSAA4APgBGAJSAZKUAlQCWAJcAmACZ -gBKAHYB2gIqAkdgAhQAOAJsAnACHAJ0AiQCKAHMAnwCgAKEAogCjAIsAc1dOU0ZyYW1lVk5TQ2VsbFlO -U0VuYWJsZWSAD4AcgBOAFBEBCQmAEIAPXxAXe3szMzUsIDI3NX0sIHsxMzEsIDMyfX3cAKgADgCpAKoA -qwCsAK0ArgCvALAAsQCyALMAtAC1ALYAtwC4ALkAugCVALwAvQC+W05TQ2VsbEZsYWdzXxATTlNBbHRl -cm5hdGVDb250ZW50c18QEk5TUGVyaW9kaWNJbnRlcnZhbF5OU0J1dHRvbkZsYWdzMl8QD05TS2V5RXF1 -aXZhbGVudFpOU0NvbnRlbnRzWU5TU3VwcG9ydF1OU0NvbnRyb2xWaWV3XxAPTlNQZXJpb2RpY0RlbGF5 -XE5TQ2VsbEZsYWdzMl1OU0J1dHRvbkZsYWdzEgQB/gCAG4AZEBkQgYAagBWAFoASEMgSCAAAABP///// -hoJA/18QD0FkZCB0byBQbGF5bGlzdNQADgDBAMIAwwDEAMUAxgDHVk5TU2l6ZVZOU05hbWVYTlNmRmxh -Z3OAGCNAKgAAAAAAAIAXEQQUXEx1Y2lkYUdyYW5kZdIANwA4AMoAy6IAywA7Vk5TRm9udFBRDdIANwA4 -AM8A0KQA0ADRAJwAO1xOU0J1dHRvbkNlbGxcTlNBY3Rpb25DZWxs0gA3ADgA0wDUpQDUANUA1gDXADtY -TlNCdXR0b25ZTlNDb250cm9sVk5TVmlld1tOU1Jlc3BvbmRlct8QDwCFANkADgCbANoA2wDcAIYA3QCH -AIkAigDeAN8A4ABzAOIA4wDkAOUA5gDnAOgA6QDqAIsAcwDtAO4A7ltOU0hTY3JvbGxlclhOU3NGbGFn -c1xOU0Nvcm5lclZpZXdfEBBOU0hlYWRlckNsaXBWaWV3XE5TU2Nyb2xsQW10c1tOU1ZTY3JvbGxlcl1O -U05leHRLZXlWaWV3XU5TQ29udGVudFZpZXeAD4BwgHWAdBAQgCmAJoAeTxAQAAAAAAAAAABBmAAAQZgA -ABEBEoAQgA+AbIAfgB/SAA4APgBGAPKAZKUA7gDtAOIA5wDmgB+AbIBwgCaAKdsAhQAOAJsA+QCGAIcA -+gCJAPsAigDfAJYA/QD+AHwA/wEAAQEAiwEDAJYBAVlOU2N2RmxhZ3NZTlNEb2NWaWV3WU5TQkdDb2xv -coAdgGuAaoAgEQkAgCGAEIA7gB2AIdIADgA+AEYBCIBkoQEBgCHfEBcAhQELAA4BDAENAQ4BDwEQANsB -EQESARMAhwCIAJ0BFACJADIBFQEWAIoBFwEYAO4BGgEbARwBHQEeAQMAowDmASIBIwEkASUBJgCjASgA -iwEqASsBLADuAS4BL18QH05TRHJhZ2dpbmdTb3VyY2VNYXNrRm9yTm9uTG9jYWxZTlNUdkZsYWdzXxAT -TlNPcmlnaW5hbENsYXNzTmFtZVxOU0hlYWRlclZpZXdfEBFOU0JhY2tncm91bmRDb2xvcl8QEk5TQWxs -b3dzVHlwZVNlbGVjdF8QF05TSW50ZXJjZWxsU3BhY2luZ1dpZHRoXxAZTlNDb2x1bW5BdXRvcmVzaXpp -bmdTdHlsZV8QGE5TSW50ZXJjZWxsU3BhY2luZ0hlaWdodF5OU0F1dG9zYXZlTmFtZVtOU0dyaWRDb2xv -cl8QHE5TRHJhZ2dpbmdTb3VyY2VNYXNrRm9yTG9jYWxeTlNUYWJsZUNvbHVtbnNbTlNSb3dIZWlnaHSA -HxAAgGkT/////9vAgACAI4AlgDsJgCkjQAgAAAAAAAAQASNAAAAAAAAAABEREoAkCYBogBCAIoBlEA+A -H4AsI0AxAAAAAAAAXFBsYXlsaXN0Vmlld1tOU1RhYmxlVmlld1p7NDI1LCAyMTF91wCFAA4AhwCIAIkA -igExAOcBNQCOATYAiwDnAQGAJoAogCeAEIAmgCHbAIUADgD5AIYAhwCIAPoAiQD7AIoA3wCWAP0BPQE+ -AQABPwEeAIsBAwCWAR6AHYBrEASAcoBzgCWAEIA7gB2AJVl7NDI1LCAxN33SADcAOAFHAUikAUgA1gDX -ADtfEBFOU1RhYmxlSGVhZGVyVmlld9YAhQAOAJsAhwCJAIoAlgFLAUwAjgCLAJaAHYArgCqAEIAdXxAU -e3s0MjUsIDB9LCB7MTYsIDE3fX3SADcAOAFRAVKkAVIA1gDXADtdX05TQ29ybmVyVmlld9IADgA+AEYB -VYBkpwFWAVcBWAFZAVoBWwFcgC2AQoBKgE+AVYBagF/aAV4ADgFfAWABYQFiAWMBZAFlATEAowFnAWgB -aQFqAWsBbAFtAW4BAV5OU0lzUmVzaXplYWJsZVxOU0hlYWRlckNlbGxcTlNJZGVudGlmaWVyV05TV2lk -dGhaTlNEYXRhQ2VsbF5OU1Jlc2l6aW5nTWFza1pOU01pbldpZHRoWk5TTWF4V2lkdGgJgEGAL4AuI0Bf -QAAAAAAAgDkQAyNARIAAAAAAACNAj0AAAAAAAIAhVXRpdGxl1wCoAA4BDwCtAK4AsQFyAXMBdAF1AXYB -dwEaAXhbTlNUZXh0Q29sb3ISBIH+AIA4gDKAMIAxgDRVVGl0bGXUAA4AwQDCAMMAxAF8AMYBfoAYI0Am -AAAAAAAAgBcRDBzTAA4BgAGBAYIBbAGDXE5TQ29sb3JTcGFjZVdOU1doaXRlgDNLMC4zMzMzMzI5OQDS -ADcAOAGFAYaiAYYAO1dOU0NvbG9y1QAOAYYBgAGIAYkBggGLAYwBjQGOW05TQ29sb3JOYW1lXU5TQ2F0 -YWxvZ05hbWWAM4A3EAaANoA1VlN5c3RlbV8QD2hlYWRlclRleHRDb2xvctMADgGAAYEBggFsAZOAM0Iw -ANIANwA4AZUBlqUBlgGXANEAnAA7XxARTlNUYWJsZUhlYWRlckNlbGxfEA9OU1RleHRGaWVsZENlbGzY -AKgADgEPAK0ArgCvALEBcgGZAZoBAwGcALoBAQGfAaASFCH+QIBAgDuAOoAWgCERCACAPllUZXh0IENl -bGzVAA4BhgGAAYgBiQGCAaQBjAGlAY6AM4A9gDyANV8QFmNvbnRyb2xCYWNrZ3JvdW5kQ29sb3LTAA4B -gAGBAYIBbAGqgDNLMC42NjY2NjY2OQDVAA4BhgGAAYgBiQGCAYsBjAGuAY6AM4A3gD+ANV8QEGNvbnRy -b2xUZXh0Q29sb3LSADcAOAGyAZekAZcA0QCcADvSADcAOAG0AbWiAbUAO11OU1RhYmxlQ29sdW1u2gFe -AA4BXwFgAWEBYgFjAWQBZQExAKMBZwG5AboBuwG8AWwBvQFuAQEJgEGARIBDI0BeAAAAAAAAgEkjQEIA -AAAAAACAIVZhcnRpc3TXAKgADgEPAK0ArgCxAXIAswF0AcIBwwF3ARoBeIA4gEaARYAxgDRWQXJ0aXN0 -1QAOAYYBgAGIAYkBggHJAYwBygGOgDOASIBHgDVbaGVhZGVyQ29sb3LTAA4BgAGBAYIBbAHPgDNCMQDY -AKgADgEPAK0ArgCvALEBcgGZAZoBAwGcALoBAQGfAaCAQIA7gDqAFoAhgD7aAV4ADgFfAWABYQFiAWMB -ZAFlATEAowFnAdoB2wHcAd0BbAHeAW4BAQmAQYBMgEsjQF6AAAAAAACATiNAQ4AAAAAAAIAhVWFsYnVt -1wCoAA4BDwCtAK4AsQFyALMBdAHCAeQBdwEaAXiAOIBGgE2AMYA0VUFsYnVt2ACoAA4BDwCtAK4ArwCx -AXIBmQGaAQMBnAC6AQEBnwGggECAO4A6gBaAIYA+2wFeAfABXwFgAA4BYQFiAWMBZAFlATEAowCjAfMB -9AFnAfYB9wFsAfgBbgEBWE5TSGlkZGVuCQmAUYBQgEEjQEkAAAAAAACAUyNARE9gIAAAAIAhVmxlbmd0 -aNcAqAAOAQ8ArQCuALEBcgCzAXQBwgH+AXcCAAF4gDiARoBSgDESBAAAAIA0Vkxlbmd0aNgAqAAOAQ8A -rQCuAK8AsQFyAZkBmgEDAgYAugEBAgkBoIBAgDuAVIAWgCESBAAIAIA+2wFeAfABXwFgAA4BYQFiAWMB -ZAFlATEAowCjAg4CDwFnAhECEgFsAhMBbgEBCQmAV4BWgEEjQEeAAAAAAACAWSNAJAAAAAAAAIAhVHll -YXLXAKgADgEPAK0ArgCxAXIAswF0AcICGQF3AgABeIA4gEaAWIAxgDRUWWVhctgAqAAOAQ8ArQCuAK8A -sQFyAZkBmgEDAgYAugEBAgkBoIBAgDuAVIAWgCGAPtsBXgHwAV8BYAAOAWEBYgFjAWQBZQExAKMAowIn -AigBZwIqAisBbAITAW4BAQkJgFyAW4BBI0BHAAAAAAAAgF6AIVVnZW5yZdcAqAAOAQ8ArQCuALEBcgCz -AXQBwgIxAXcBGgF4gDiARoBdgDGANFVHZW5yZdgAqAAOAQ8ArQCuAK8AsQFyAZkBmgEDAgYAugEBAZ8B -oIBAgDuAVIAWgCGAPtoBXgAOAV8BYAFhAWIBYwFkAWUBMQCjAWcCPwJAAioCQQFsAkICKgEBCYBBgGGA -YIBjI0AgAAAAAAAAgCFVdHJhY2vXAKgADgEPAK0ArgCxAXIAswF0AcICSAF3AgABeIA4gEaAYoAxgDRV -VHJhY2vYAKgADgEPAK0ArgCvALEBcgGZAZoBAwGcALoBAQIJAaCAQIA7gDqAFoAhgD7SADcAOAJUAlWj -AlUCVgA7Xk5TTXV0YWJsZUFycmF5V05TQXJyYXnVAA4BhgGAAYgBiQGCAlkBjAJaAY6AM4BngGaANVln -cmlkQ29sb3LTAA4BgAGBAYIBbAJfgDNEMC41AF8QFENvZ1Nwb3RsaWdodFBsYXlsaXN00gA3ADgCYgJj -ogJjADteTlNDbGFzc1N3YXBwZXJfEBV7ezAsIDE3fSwgezQyNSwgMjExfX3SADcAOAJmAmekAmcA1gDX -ADtaTlNDbGlwVmlld9kAhQJpAA4AmwCHAIkCagCKAmsAlgCWAm4CbwCOAIsCcQCWAnNYTlNUYXJnZXRY -TlNBY3Rpb25ZTlNQZXJjZW50gB2AHYBvgG2AEIBugB0jP+o3hKAAAABfEBZ7ezQyNSwgMTd9LCB7MTUs -IDIxMX19XF9kb1Njcm9sbGVyOtIANwA4AncCeKUCeADVANYA1wA7Wk5TU2Nyb2xsZXLaAIUCaQAOAJsA -2gCHAIkCagCKAmsAlgCWAm4CfQEjAn4AiwJxAJYCgoAdgB2Ab4BxE/////+AAAEAgBCAboAdIz/tpGEA -AAAAXxAZe3stMTAwLCAtMTAwfSwgezQ0MCwgMTV9fdIADgA+AEYChoBkoQEegCVfEBZ7ezIwLCA0NH0s -IHs0NDAsIDIyOH190gA3ADgCigKLpAKLANYA1wA7XE5TU2Nyb2xsVmlld9gAhQAOAJsAnACHAJ0AiQCK -AHMCjgKPApACkQCjAIsAc4APgImAd4B4EQEKCYAQgA9fEBZ7ezIwLCAyODJ9LCB7MzEzLCAyMn193QCo -AA4ClwEPAK0ArgCvALECmAKZApoCmwFyApwCnQKeAp8AtQC6AJcCowEjAKMCpQKmAaBfEBJOU0NhbmNl -bEJ1dHRvbkNlbGxfEBBOU1RleHRCZXplbFN0eWxlXxARTlNEcmF3c0JhY2tncm91bmRfEBJOU1NlYXJj -aEJ1dHRvbkNlbGxfEBBOU01heGltdW1SZWNlbnRzEhRx/kCAiIB+gHmAGYAWgHYSEAAEAAmAexD/gD7V -AA4BhgGAAYgBiQGCAckBjAKrAY6AM4BIgHqANV8QE3RleHRCYWNrZ3JvdW5kQ29sb3LcAmkAqAAOAKoA -qwCsAK0ArwCwALECagCyApACsAC0ArIBGgC1ArQAlwK2ARoCtwK4gHgSAAH+AIAbEEuAGYB8gHYRAZCA -fRIIRED/VnNlYXJjaF8QE19zZWFyY2hGaWVsZFNlYXJjaDrdAmkAqAAOAKoAqwCsArwArQCvALAAsQJq -ALICkAKwALQCsgEaALUCwALBAJcCtgEaAsMCuF8QI05TQWNjZXNzaWJpbGl0eU92ZXJyaWRkZW5BdHRy -aWJ1dGVzgHiAG4AZgICAf4B2gIdVY2xlYXLSAA4APgBGAseAZKECyICB0wAOAsoAPgLLAswCz1dOUy5r -ZXlzgIaiAs0CzoCCgIOiAtAC0YCEgIVdQVhEZXNjcmlwdGlvbl8QKU5TQWNjZXNzaWJpbGl0eUVuY29k -ZWRBdHRyaWJ1dGVzVmFsdWVUeXBlVmNhbmNlbNIANwA4AtYC16MC1wLYADtfEBNOU011dGFibGVEaWN0 -aW9uYXJ5XE5TRGljdGlvbmFyeV8QE19zZWFyY2hGaWVsZENhbmNlbDrSADcAOALbAtylAtwBlwDRAJwA -O18QEU5TU2VhcmNoRmllbGRDZWxs0gA3ADgC3gLfpgLfAuAA1QDWANcAO11OU1NlYXJjaEZpZWxkW05T -VGV4dEZpZWxk2ACFAA4AmwCcAIcAnQCJAIoAcwLjAuQC5QLmAKMAiwBzgA+AkICLgIwRASEJgBCAD18Q -FHt7ODgsIDEzfSwgezk2LCAxN3192ACoAA4BDwCtAK4ArwCxAXIC7AGaAu4C7wC6AJgC8gGgEgQB/kCA -QICOgI2AFoCKEhBABACAPl5TZWFyY2ggRm9sZGVyOtUADgGGAYABiAGJAYIBpAGMAvgBjoAzgD2Aj4A1 -XGNvbnRyb2xDb2xvctIANwA4AvwC4KUC4ADVANYA1wA72QCFAA4AmwCcAv4AhwCdAIkAigBzAwADAQMC -AwMC5gCjAIsAc1tOU0RyYWdUeXBlc4APgJmAlYCWgJIJgBCAD9IADgA+AD8DCYAHogMKAwuAk4CUXxAZ -QXBwbGUgVVJMIHBhc3RlYm9hcmQgdHlwZV8QFU5TRmlsZW5hbWVzUGJvYXJkVHlwZV8QFXt7MTg5LCA5 -fSwgezI3MSwgMjZ9fdgDEACoAA4ArgCvALEDEQMSAHwDEwMUALoAmQMXAxgAmVtOU1BhdGhTdHlsZV8Q -FE5TUGF0aENvbXBvbmVudENlbGxzWk5TRGVsZWdhdGUSFCH+AYCYgBaAkRGAAICXgJHSAA4APgBGAxyA -ZKDSADcAOAMeAx+kAx8A0QCcADtaTlNQYXRoQ2VsbNIANwA4AyEDIqUDIgDVANYA1wA7XU5TUGF0aENv -bnRyb2xaezQ4MCwgMzIwfdIANwA4AyUA1qMA1gDXADtfEBV7ezAsIDB9LCB7MTQ0MCwgODc4fX1aezQw -MCwgMjc2fdIANwA4AykDKqIDKgA7XxAQTlNXaW5kb3dUZW1wbGF0ZVZ3aW5kb3fSADcAOAMtAy6jAy4D -LwA7XxAUTlNOaWJPdXRsZXRDb25uZWN0b3JeTlNOaWJDb25uZWN0b3LUAA4AXwBgAGEAYgCZAB8DNICh -gJGAAoCjW3BhdGhDb250cm9s1AAOAF8AYABhAGIDOAEBAzqAoYClgCGArNgDPAAOAQ0DPQM+Az8DQAAy -AKMBGwNDAKMDRQNGA0cDSF8QGk5TRmlsdGVyUmVzdHJpY3RzSW5zZXJ0aW9uWk5TRWRpdGFibGVfEA9f -TlNNYW5hZ2VkUHJveHlfEBFOU09iamVjdENsYXNzTmFtZV5OU0RlY2xhcmVkS2V5cwmAaYCnCYCqgKmA -qICmXxAbU3BvdGxpZ2h0UGxheWxpc3RDb250cm9sbGVyXxARTlNBcnJheUNvbnRyb2xsZXLSAA4APgBG -A02AZKcBaQIPAboB2wIoAfQCQIAugFaAQ4BLgFuAUIBgXVBsYXlsaXN0RW50cnnRAA4DV4Cr0gA3ADgD -WQM+ogM+ADtfEBJwbGF5bGlzdENvbnRyb2xsZXLUAA4AXwBgAGEAYgEBAzgDX4ChgCGApYCuWXRhYmxl -Vmlld9QADgBfAGAAYQBiA2MBAQNlgKGAsIAhgL3TAA4DZwNoA2kDagNrV05TVGl0bGVbTlNNZW51SXRl -bXOAvICxgLJeQ29udGV4dHVhbE1lbnXSAA4APgBGA2+AZKEDcICz2AAOA2cDcgNzA3QDdQN2A3cDeAN5 -A3oAtQN8A30DfgNjXxARTlNLZXlFcXVpdk1vZE1hc2taTlNLZXlFcXVpdl1OU01uZW1vbmljTG9jWU5T -T25JbWFnZVxOU01peGVkSW1hZ2VWTlNNZW51gLuAtBIAEAAAgBkSf////4C1gLmAsF5TaG93IGluIEZp -bmRlctMADgAyA4IDgwOEA4VeTlNSZXNvdXJjZU5hbWWAuIC2gLdXTlNJbWFnZV8QD05TTWVudUNoZWNr -bWFya9IANwA4A4kDiqIDigA7XxAQTlNDdXN0b21SZXNvdXJjZdMADgAyA4IDgwOEA46AuIC2gLpfEBBO -U01lbnVNaXhlZFN0YXRl0gA3ADgDkQOSogOSADtaTlNNZW51SXRlbdIANwA4A5QDd6IDdwA7VG1lbnXU -AA4AXwBgAGEAYgM4AQEDmoChgKWAIYC/WmRhdGFTb3VyY2XUAA4AXwBgAGEDnQM4A3ADoIDCgKWAs4DB -XxASc2hvd0VudHJ5SW5GaW5kZXI60gA3ADgDowOkowOkAy8AO18QFU5TTmliQ29udHJvbENvbm5lY3Rv -ctQADgBfAGAAYQBiAJcAYwOpgKGAdoAKgMRfEBVpbml0aWFsRmlyc3RSZXNwb25kZXLUAA4AXwBgAGEA -YgAfAzgDr4ChgAKApYDGXxAZc3BvdGxpZ2h0V2luZG93Q29udHJvbGxlctQADgBfAGAAYQBiAJcAHwO1 -gKGAdoACgMhbc2VhcmNoRmllbGTUAA4AXwBgAGEAYgM4AB8DOoChgKWAAoCs1AAOAF8AYABhA50AHwCV -A8CAwoACgBKAy15hZGRUb1BsYXlsaXN0OtgADgBfA8MDxABgAGEDxQPGA8cDOAPJA8oBXAPMA80AfFlO -U0tleVBhdGhZTlNCaW5kaW5nWU5TT3B0aW9uc18QHE5TTmliQmluZGluZ0Nvbm5lY3RvclZlcnNpb26A -04ClgM+AzoBfgM2A0F8QHHZhbHVlOiBhcnJhbmdlZE9iamVjdHMudHJhY2tVdmFsdWVfEBVhcnJhbmdl -ZE9iamVjdHMudHJhY2vTAA4CygA+A9ID0wPVgNKhA9SA0aEC0YCFXxAbTlNDb25kaXRpb25hbGx5U2V0 -c0VkaXRhYmxl0gA3ADgD2QLYogLYADvSADcAOAPbA9yjA9wDLwA7XxAVTlNOaWJCaW5kaW5nQ29ubmVj -dG9y1wAOAF8DwwPEAGAAYQPGA8cAHwPgA8oAlwPjAHyA04ACgNaAzoB2gNVfEBN2YWx1ZTogc2VhcmNo -U3RyaW5nXHNlYXJjaFN0cmluZ9gADgBfA8MDxABgAGEDxQPGA8cDOAPpA8oBWgPsA+0AfIDTgKWA2YDO -gFWA2IDaXxAbdmFsdWU6IGFycmFuZ2VkT2JqZWN0cy55ZWFyXxAUYXJyYW5nZWRPYmplY3RzLnllYXLT -AA4CygA+A9ID8gP0gNKhA9SA0aEC0YCF2AAOAF8DwwPEAGAAYQPFA8YDxwM4A/kDygFXA/wD/QB8gNOA -pYDdgM6AQoDcgN5fEB12YWx1ZTogYXJyYW5nZWRPYmplY3RzLmFydGlzdF8QFmFycmFuZ2VkT2JqZWN0 -cy5hcnRpc3TTAA4CygA+A9IEAgQEgNKhA9SA0aEC0YCF2AAOAF8DwwPEAGAAYQPFA8YDxwM4BAkDygFY -BAwEDQB8gNOApYDhgM6ASoDggOJfEBx2YWx1ZTogYXJyYW5nZWRPYmplY3RzLmFsYnVtXxAVYXJyYW5n -ZWRPYmplY3RzLmFsYnVt0wAOAsoAPgPSBBIEFIDSoQPUgNGhAtGAhdgADgBfA8MDxABgAGEDxQPGA8cE -GAQZA8oAmQQcBB0AfIDTgOSA54DOgJGA5oDo0gAOBB8EIACjXxAQTlNTaGFyZWRJbnN0YW5jZYDlCdIA -NwA4BCMEJKMEJAQlADtfEBhOU1VzZXJEZWZhdWx0c0NvbnRyb2xsZXJcTlNDb250cm9sbGVyXxAhdmFs -dWU6IHZhbHVlcy5zcG90bGlnaHRTZWFyY2hQYXRoXxAadmFsdWVzLnNwb3RsaWdodFNlYXJjaFBhdGjT -AA4CygA+A9IEKgQsgNKhBCuA6aEELYDqXxAWTlNWYWx1ZVRyYW5zZm9ybWVyTmFtZV8QFlN0cmluZ1Rv -VVJMVHJhbnNmb3JtZXLYAA4AXwPDA8QAYABhA8UDxgPHAzgEMwPKAVYENgQ3AHyA04ClgO2AzoAtgOyA -7l8QHHZhbHVlOiBhcnJhbmdlZE9iamVjdHMudGl0bGVfEBVhcnJhbmdlZE9iamVjdHMudGl0bGXTAA4C -ygA+A9IEPAQ+gNKhA9SA0aEC0YCF2AAOAF8DwwPEAGAAYQPFA8YDxwM4BEMDygFbBEYERwB8gNOApYDx -gM6AWoDwgPJfEBx2YWx1ZTogYXJyYW5nZWRPYmplY3RzLmdlbnJlXxAVYXJyYW5nZWRPYmplY3RzLmdl -bnJl0wAOAsoAPgPSBEwEToDSoQPUgNGhAtGAhdgADgBfA8MDxABgAGEDxQPGA8cDOARTA8oBWQRWBFcA -fIDTgKWA9YDOgE+A9ID2XxAddmFsdWU6IGFycmFuZ2VkT2JqZWN0cy5sZW5ndGhfEBZhcnJhbmdlZE9i -amVjdHMubGVuZ3Ro0wAOAsoAPgPSBFwEXoDSoQPUgNGhAtGAhdgADgBfA8MDxABgAGEDxQPGA8cAHwRj -BGQDOARmBGcAfIDTgAKA+oD5gKWA+ID7XxAbY29udGVudEFycmF5OiBxdWVyeS5yZXN1bHRzXGNvbnRl -bnRBcnJheV1xdWVyeS5yZXN1bHRz0wAOAsoAPgPSBG0Eb4DSoQQrgOmhBHCA/F8QF1BhdXNpbmdRdWVy -eVRyYW5zZm9ybWVy0gAOAD4EcwR0gQEArxAiApAC5QMCAWsB9wG8AKEBWAFcAkEBWQQYAHMEggCVAJkC -EgNjAGMA4gEeAJYBAQDtAJgBVwCXAVYBWwFaAd0CKwNwAziAeICMgJaAOYBTgEmAFIBKgF+AY4BPgOSA -D4D+gBKAkYBZgLCACoBwgCWAHYAhgGyAioBCgHaALYBagFWAToBegLOApdIADgAyADMEmYAEgP9dTlNB -cHBsaWNhdGlvbtIANwA4BJwCVqICVgA70gAOAD4EcwSfgQEArxAiAJcAmACZAVYBWQFXAJUBAQEBAVwB -AQAfAGMAHwBzAHMBWgAfAB8AlgCWAHMAlgCWAHMBAQBzAQEBAQEBAVgBWwNjAB+AdoCKgJGALYBPgEKA -EoAhgCGAX4AhgAKACoACgA+AD4BVgAKAAoAdgB2AD4AdgB2AD4AhgA+AIYAhgCGASoBagLCAAtIADgA+ -BHMExIEBAK8QIwKQAwIC5QH3AkEBXAChAVgBvAQYAVkBawBzBIIAlQCZAhIDYwDiAGMBHgCWAQEA7QCY -AVcAlwFWAVsBWgHdAB8CKwNwAziAeICWgIyAU4BjgF+AFIBKgEmA5IBPgDmAD4D+gBKAkYBZgLCAcIAK -gCWAHYAhgGyAioBCgHaALYBagFWAToACgF6As4Cl0gAOAD4EcwTqgQEArxAjBOsE7ATtBO4E7wTwBPEE -8gTzBPQE9QT2BPcE+AT5BPoE+wT8BP0E/gT/BQAFAQUCBQMFBAUFBQYFBwUIBQkFCgULBQwFDYEBBIEB -BYEBBoEBB4EBCIEBCYEBCoEBC4EBDIEBDYEBDoEBD4EBEIEBEYEBEoEBE4EBFIEBFYEBFoEBF4EBGIEB -GYEBGoEBG4EBHIEBHYEBHoEBH4EBIIEBIYEBIoEBI4EBJIEBJYEBJl8QEVNlYXJjaCBGaWVsZCBDZWxs -WVBhdGggQ2VsbF8QIFRleHQgRmllbGQgQ2VsbCAoU2VhcmNoIEZvbGRlcjopXxAdVGV4dCBGaWVsZCBD -ZWxsIChUZXh0IENlbGwpLTJfEB1UZXh0IEZpZWxkIENlbGwgKFRleHQgQ2VsbCktMV8QFFRhYmxlIENv -bHVtbiAodHJhY2spXxAdQnV0dG9uIENlbGwgKEFkZCB0byBQbGF5bGlzdClfEBRUYWJsZSBDb2x1bW4g -KGFsYnVtKV8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS0zXxAfU2hhcmVkIFVzZXIgRGVmYXVs -dHMgQ29udHJvbGxlcl8QFVRhYmxlIENvbHVtbiAobGVuZ3RoKV8QHVRleHQgRmllbGQgQ2VsbCAoVGV4 -dCBDZWxsKS00XENvbnRlbnQgVmlld1tBcHBsaWNhdGlvbl8QHVB1c2ggQnV0dG9uIChBZGQgdG8gUGxh -eWxpc3QpXxAaUG9wIFVwIFBhdGggQ29udHJvbCBXaWRnZXRfEB1UZXh0IEZpZWxkIENlbGwgKFRleHQg -Q2VsbCktNl8QFU1lbnUgKENvbnRleHR1YWxNZW51KV8QE0hvcml6b250YWwgU2Nyb2xsZXJfEBFQYW5l -bCAoU3BvdGxpZ2h0KV8QEVRhYmxlIEhlYWRlciBWaWV3W1Njcm9sbCBWaWV3XxBAUGxheWxpc3QgVmll -dyAoVGl0bGUsIEFydGlzdCwgQWxidW0sIExlbmd0aCwgWWVhciwgR2VucmUsIFRyYWNrKV8QEVZlcnRp -Y2FsIFNjcm9sbGVyXxAcU3RhdGljIFRleHQgKFNlYXJjaCBGb2xkZXI6KV8QFVRhYmxlIENvbHVtbiAo -YXJ0aXN0KVxTZWFyY2ggRmllbGRfEBRUYWJsZSBDb2x1bW4gKHRpdGxlKV8QFFRhYmxlIENvbHVtbiAo -Z2VucmUpXxATVGFibGUgQ29sdW1uICh5ZWFyKV8QG1RleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKVxG -aWxlJ3MgT3duZXJfEB1UZXh0IEZpZWxkIENlbGwgKFRleHQgQ2VsbCktNV8QGk1lbnUgSXRlbSAoU2hv -dyBpbiBGaW5kZXIpXxAdU3BvdGxpZ2h0IFBsYXlsaXN0IENvbnRyb2xsZXLSAA4APgRzBTOBAQCiAQED -OIAhgKXSAA4APgRzBTiBAQCiASoDSIAigKbSAA4APgRzBT2BAQCvEDkATALlAwIBawJBAVwAoQFYAEkC -EgSCAFEBHgCWAFgAVwCYAVcAlwFaAd0AWgAfAFYDcAKQAEsATQBTAfcBvAQYAVkATgBSAHMAmQCVAE8A -WwNjAFQAYwDiAQEA7QBKAEgBVgFbAF0AXABZAisAVQBQAziAr4CMgJaAOYBjgF+AFIBKgKKAWYD+gMeA -JYAdgN+A24CKgEKAdoBVgE6A64ACgNeAs4B4gK2AvoDKgFOASYDkgE+AwIDJgA+AkYASgMOA74CwgMyA -CoBwgCGAbICkgAmALYBagPeA84DjgF6A1IDFgKXSAA4APgRzBXmBAQCvEDkFegV7BXwFfQV+BX8FgAWB -BYIFgwWEBYUFhgWHBYgFiQWKBYsFjAWNBY4FjwWQBZEFkgWTBZQFlQWWBZcFmAWZBZoFmwWcBZ0FngWf -BaAFoQWiBaMC0QWlBaYFpwWoBakFqgWrBawFrQWuBa8FsAWxBbKBASuBASyBAS2BAS6BAS+BATCBATGB -ATKBATOBATSBATWBATaBATeBATiBATmBATqBATuBATyBAT2BAT6BAT+BAUCBAUGBAUKBAUOBAUSBAUWB -AUaBAUeBAUiBAUmBAUqBAUuBAUyBAU2BAU6BAU+BAVCBAVGBAVKBAVOBAVSAhYEBVYEBVoEBV4EBWIEB -WYEBWoEBW4EBXIEBXYEBXoEBX4EBYIEBYYEBYhCwEFAQWRAlECwQHRAhEJ8QKhP//////////RCzEBgQ -ZRBoEE8QIhA3ECgQXRDCEF4QrBA4EJUQlxCjECkQJxC6ECAQrxChEFgQBRA9EGYQqxBrEBoQHBAbELgQ -SBAkEB4QtRBpEMEQKxCaEKDSAA4APgBGBeiAZKDSAA4APgRzBeuBAQCg0gAOAD4EcwXugQEAoNIANwA4 -BfAF8aIF8QA7Xk5TSUJPYmplY3REYXRhAAgAGQAiACcAMQA6AD8ARABSAFQAZgM4Az4DiQOQA5cDpQO3 -A9MD4QPtA/kEBwQSBCAEPARKBF0EbwSJBJMEoASiBKUEpwSqBK0ErwSyBLQEtwS6BL0EwATCBMQExwTK -BMwEzwTYBOQE5gToBQQFDQUWBSEFJgU1BT4FUQVaBWUFZwVoBXEFeAWFBYsFlAWWBcUFxwXJBcsFzQXP -BdEF0wXVBdcF2QXbBd0F3wXhBeMF5QXnBekF6wXtBe8F8QYCBhAGGQYhBiMGJQYnBikGXgZrBngGjgac -BqYGtAbNBtoG7AcABwoHFgcYBxoHHAceByAHKQcrBy0HLwcxBzMHNQc3B1IHXAdkB28HjAeeB6kHsge+ -B8cH0wfVB9cH2QfcB94H4AfiB+sH7Qf4B/oH/Af+CAAIAggjCCsIMgg8CD4IQAhCCEQIRwhICEoITAhm -CJcIowi5CM4I3QjvCPoJBAkSCSQJMQk/CUQJRglICUoJTAlOCVAJUglUCVYJWwlkCXYJhwmOCZUJngmg -CakJqwmuCbsJxAnJCdAJ0QnTCdwJ5QnyCf8KCAoTChwKJgotCjkKeAqECo0KmgqtCroKxgrUCuIK5Arm -CugK6grsCu4K8AryCwULCAsKCwwLDgsQCxILGwsdCygLKgssCy4LMAsyC18LaQtzC30LfwuBC4MLhQuI -C4oLjAuOC5ALkgubC50LoAuiDAEMIwwtDEMMUAxkDHkMkwyvDMoM2QzlDQQNEw0fDSENIw0lDS4NMA0y -DTQNNQ03DUANQg1LDU4NUA1RDVMNVQ1XDVkNWw1dDV8NaA11DYENjA2pDasNrQ2vDbENsw21DeIN5A3m -DegN6g3sDe4N8A3yDfQN9g4ADgkOEg4mDj8OQQ5DDkUORw5JDmAOaQ5yDoAOiQ6LDpoOnA6eDqAOog6k -DqYOqA7RDuAO7Q76DwIPDQ8cDycPMg8zDzUPNw85D0IPRA9GD08PWA9aD2APfQ+JD44PkA+SD5QPlg+Y -D54Prw+xD7oPvA+/D8wP2Q/hD+MP7w/4D/0QBRAaECYQNBA2EDgQOhA8ED4QRRBXEGQQZhBpEHIQfRCR -EKMQxBDJEMsQzRDPENEQ0xDWENgQ4hD3EPkQ+xD9EP8RGBElEScRMxFIEUoRTBFOEVARYxFsEXURfhGD -EZERuhG7Eb0RvxHBEcoRzBHVEdcR3hH7Ef0R/xIBEgMSBRIMEiESIxIlEicSKRI1EkISRBJHEmgSahJs -Em4ScBJyEnQSnRKeEqASohKkEq0SrxK4EroSwBLdEt8S4RLjEuUS5xLtEw4TEBMSExQTFhMYExoTRxNQ -E1ETUhNUE1YTWBNhE2MTbBNuE3UTkhOUE5YTmBOaE58ToROoE8kTyxPNE88T0RPTE9gT2hQHFAgUCRQL -FA0UDxQYFBoUIxQlFCoURxRJFEsUTRRPFFEUVhR3FHkUexR9FH8UgRSDFLAUsRSyFLQUthS4FMEUwxTF -FMsU6BTqFOwU7hTwFPIU+BUZFRsVHRUfFSEVIxUlFU4VTxVRFVMVVRVXFWAVYhVoFYUVhxWJFYsVjRWP -FZUVthW4FboVvBW+FcAVwhXLFdIV4RXpFf4WABYCFgQWBhYQFh0WHxYkFjsWRBZJFlgWcBZ5FoIWjRay -FrsWxBbOFtAW0hbUFtYW2BbaFtwW5Rb+FwsXFBcfFyoXUxdVF1cXWRdbF2QXZhdoF2oXcxePF5gXmhed -F58XuBfBF8oX1xf4F/oX/Bf+GAAYAxgEGAYYCBghGFYYaxh+GJIYpxi6GL8YwRjDGMUYxxjJGMsY0BjR -GNMY1RjXGOwY7hjwGPIY9BkKGTsZPRlCGUQZRhlIGUoZTBlPGVEZVhldGXMZqBnOGdAZ0hnUGdYZ2Bna -GdwZ4hnrGe0Z8BnyGf8aBxoJGg4aEBoSGhcaGRobGikaVRpcGmUabBqCGo8apRquGrkazRrWGuMa8Rr9 -Gx4bIBsiGyQbJhspGyobLBsuG0UbZhtrG20bbxtxG3MbdRt6G3wbixugG6IbpBumG6gbtRu+G8kb7hv6 -G/wb/hwAHAIcBBwFHAccCRwSHBQcGRwbHB0cORxRHGkcihyWHK0cuBy9HL8cwRzDHMYcyBzKHNMc1RzW -HN8c6BzzHPwdBx0VHSAdKR0wHUgdUx1cHWEddB17HYQdix2iHbEdwh3EHcYdyB3KHdYd5x3pHesd7R3v -HhAeLR44HkoeXh5tHm4ecB5yHnMedR53Hnkeex6ZHq0eth64HsceyR7LHs0ezx7RHtMe1R7jHuge6h7z -HvgfDR8eHyAfIh8kHyYfMB9BH0MfRR9HH0kfVh9eH2ofbB9uH3Affx+IH4ofjR+PH7AfxB/PH90f5x/0 -H/sf/R//IAQgBiALIA0gDyARICAgLSA8ID4gQCBCIEogXCBlIGogfSCKIIwgjiCQIKMgrCCxILwgxSDK -IM8g4CDiIOQg5iDoIPMhBCEGIQghCiEMISEhKiExIUkhWiFcIV4hYCFiIXohiyGNIY8hkSGTIa8hwCHC -IcQhxiHIIdQh5SHnIekh6yHtIf4iACICIgQiBiIVIjYiQCJKIlQicyJ1IncieSJ7In0ifyKBIqAipiK+ -IssizSLQItIi1SLXIvUi/iMDIwwjEyMrI0gjSiNMI04jUCNSI1QjaiN3I5gjmiOcI54joCOiI6QjpiPE -I9sj6CPqI+0j7yPyI/QkFSQXJBkkGyQdJB8kISQjJEMkXCRpJGskbiRwJHMkdSSWJJgkmiScJJ4koCSi -JKQkwyTbJOgk6iTtJO8k8iT0JRUlFyUZJRslHSUfJSElIyUsJT8lQSVCJUslUiVtJXolniW7JcglyiXN -Jc8l0iXUJe0mBiYnJikmKyYtJi8mMSYzJjUmVCZsJnkmeyZ+JoAmgyaFJqYmqCaqJqwmriawJrImtCbT -Jusm+Cb6Jv0m/ycCJwQnJScnJyknKyctJy8nMSczJ1MnbCd5J3snfieAJ4MnhSemJ6gnqiesJ64nsCey -J7Qn0iffJ+0n+if8J/8oASgEKAYoICgpKCwocyh1KHcoeSh7KH0ofyiBKIMohSiHKIkoiyiNKI8okSiT -KJUolyiZKJsonSifKKEooyilKKcoqSirKK0oryixKLMotSi3KMAowijEKNIo2yjgKOko7CkzKTUpNyk5 -KTspPSk/KUEpQylFKUcpSSlLKU0pTylRKVMpVSlXKVkpWyldKV8pYSljKWUpZylpKWspbSlvKXEpcyl1 -KXcpgCmDKcwpzinQKdIp1CnWKdgp2incKd4p4CniKeQp5inoKeop7CnuKfAp8in0KfYp+Cn6Kfwp/ioA -KgIqBCoGKggqCioMKg4qECoSKhsqHipnKmoqbSpwKnMqdip5KnwqfyqCKoUqiCqLKo4qkSqUKpcqmiqd -KqAqoyqmKqkqrCqvKrIqtSq4KrsqvirBKsQqxyrKKs0q0CrkKu4rESsxK1EraCuIK58rvyvhK/ksGSwm -LDIsUixvLI8spyy9LNEs5SzxLTQtSC1nLX8tjC2jLbot0C3uLfsuGy44LlguYS5kLmkuay5tLnYueS5+ -LoAugi6LLo4vAy8FLwcvCS8LLw0vDy8RLxMvFS8XLxkvGy8dLx8vIS8jLyUvJy8pLysvLS8vLzEvMy81 -LzcvOS87Lz0vPy9BL0MvRS9HL0kvSy9NL08vUS9TL1UvVy9ZL1svXS9fL2EvYy9lL2cvaS9rL20vby9x -L3MvdS9+L4Ev9i/5L/wv/zACMAUwCDALMA4wETAUMBcwGjAdMCAwIzAmMCkwLDAvMDIwNTA4MDswPjBB -MEQwRzBKME0wUDBTMFYwWTBcMF8wYjBlMGgwazBuMHEwdDB2MHkwfDB/MIIwhTCIMIswjjCRMJQwlzCa -MJ0woDCiMKQwpjCoMKowrDCuMLAwsjC7ML0wvzDBMMMwxTDHMMkwyzDNMM8w0TDTMNUw1zDZMNsw3TDf -MOEw4zDlMOcw6TDrMO0w7zDxMPMw9TD3MPkw+zD9MP8xATEDMQUxBzEJMQsxDTEWMRgxGTEiMSUxJjEv -MTIxMzE8MUEAAAAAAAACAgAAAAAAAAXyAAAAAAAAAAAAAAAAAAAxUA +AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxEBfAALAAwAMQA1ADYAPAA9 +AEEARQBeAGYAeACCAIcAiACJAAsAigCaAKIAowCmAKkArQCxALcAuAC8AMEA2gDbANwA3QDeAOYA7wDw +AQQBBQEGAQcBCgENASUBLQE7AT8BZQFmAWcBaAFvAXoBewF+AYQBhQGIAZIBpQGmAa4BrwG0AbkBvAHE +AcUBxgHJAc0B1gHXAdwB3QHgAeUB5gHoAesB9AH1AfsB/AIBAgICBQIMAhUCFgIcAh0CJAIvAjACNwI4 +AdYCQAJKAksCUQJSAlkCYgJjAmkCagJxAnsCfAKCAoMCigKSApMClAKXApwCnQKgAqECpAKlAqgCtAK1 +ArYCuQLDAsQBegLIAskCzALVAtYC6ALtAu4C+QL6AvsDBAMFAwkDEgMTAxQBWAMVAxkDGgMdAyEDKQMq +AzMDNAM5AzoDPAALAz0DPwNAA0EDRANFA0oDUANRA1UDZANlA2oDawNsA28DcwN0A3cDeQN6A38DjQOO +A48CkgOaA5sDnQOfA6ADpQOmA6sDrAOvA7QDtQO6A7sDwAPFA8YDywPMA9ED0gPeA+ID5gPnA+gD6QPv +A/AD8QPzA/YD/gP/BAAEBgQHBA8EEAQRBBcEHwPnBCAEIQQ9BD4EPwRABEEEQgRDBEQERQRGBEcEBgRI +AHUBBQRKBFIEUwRUBFoEYgRjBGQEagRxBHIEcwR7BHwEfQR+BIQEhQSNBI4EjwSVBJ0EngSfBKUEygTN +BM4E0AT1BRsFQQVCBUMFRAVFBUYFRwVIBUkFSgVLBUwFTQVOBU8FUAVRBVIFUwVUBVUFVgVXBVgFWQVa +BVsFXAVdBV4FXwVgBWEFYgVjBWQFaQVuBaoF5gXnBegF6QXqBesF7AXtBe4F7wXwBfEF8gHBAJIF8wX0 +BfUF9gX3BfgF+QX6BfsF/AX9Bf4F/wYAANcGAQYCBgMGBAYFBgYGBwYIBgkGCgYLBgwGDQYOBg8GEAYR +APsGEgEaBhMGFAYVBhYGFwYYBhkGHAYfBiJVJG51bGzfEBIADQAOAA8AEAARABIAEwAUABUAFgAXABgA +GQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADBWTlNSb290ViRjbGFz +c11OU09iamVjdHNLZXlzXxAPTlNDbGFzc2VzVmFsdWVzXxAZTlNBY2Nlc3NpYmlsaXR5T2lkc1ZhbHVl +c11OU0Nvbm5lY3Rpb25zW05TTmFtZXNLZXlzW05TRnJhbWV3b3JrXU5TQ2xhc3Nlc0tleXNaTlNPaWRz +S2V5c11OU05hbWVzVmFsdWVzXxAZTlNBY2Nlc3NpYmlsaXR5Q29ubmVjdG9yc11OU0ZvbnRNYW5hZ2Vy +XxAQTlNWaXNpYmxlV2luZG93c18QD05TT2JqZWN0c1ZhbHVlc18QF05TQWNjZXNzaWJpbGl0eU9pZHNL +ZXlzWU5TTmV4dE9pZFxOU09pZHNWYWx1ZXOAAoEBe4EBEoEBPYEBeoAIgQEXgAWBATyBAT6BARiBAXiA +AIAGgQEWgQF5EMWBAT/SAA4AMgAzADRbTlNDbGFzc05hbWWABIADXxAZU3BvdGxpZ2h0V2luZG93Q29u +dHJvbGxlctIANwA4ADkAOlgkY2xhc3Nlc1okY2xhc3NuYW1logA6ADteTlNDdXN0b21PYmplY3RYTlNP +YmplY3RfEBBJQkNvY29hRnJhbWV3b3Jr0gAOAD4APwBAWk5TLm9iamVjdHOAB6DSADcAOABCAEOjAEMA +RAA7XE5TTXV0YWJsZVNldFVOU1NldNIADgA+AEYAR4AWrxAWAEgASQBKAEsATABNAE4ATwBQAFEAUgBT +AFQAVQBWAFcAWABZAFoAWwBcAF2ACYAbgKiAt4DBgMOAxoDIgMqAy4DNgM+A0YDcgOGA5YD5gP2BAQGB +AQSBAQqBAQ7UAA4AXwBgAGEAYgBjAB8AZV1OU0Rlc3RpbmF0aW9uWE5TU291cmNlV05TTGFiZWyAGoAK +gAKAGdkAZwAOAGgAaQBqAGsAbABtAG4AbwBwAHEAcgBzAHQAdQB2AG9fEA9OU05leHRSZXNwb25kZXJX +TlNGcmFtZVZOU0NlbGxbTlNEcmFnVHlwZXNYTlN2RmxhZ3NZTlNFbmFibGVkWE5TV2luZG93W05TU3Vw +ZXJ2aWV3gAuAGIAPgBGADBEBIQmAEIAL1wBnAA4AeQBrAHoAbQBuAHYAfAB9AH4AfwB2AIFaTlNTdWJ2 +aWV3c1tOU0ZyYW1lU2l6ZYAQgKOAIREBAIChgBCAotIADgA+AD8AhIAHogCFAIaADYAOXxAZQXBwbGUg +VVJMIHBhc3RlYm9hcmQgdHlwZV8QFU5TRmlsZW5hbWVzUGJvYXJkVHlwZV8QFXt7MTg5LCA5fSwgezI3 +MSwgMjZ9fdgAiwCMAA4AjQCOAI8AkACRAJIAkwCUAJUAYwCXAJgAY1tOU1BhdGhTdHlsZVtOU0NlbGxG +bGFnc1lOU1N1cHBvcnRdTlNDb250cm9sVmlld1xOU0NlbGxGbGFnczJfEBROU1BhdGhDb21wb25lbnRD +ZWxsc1pOU0RlbGVnYXRlEAISFCH+AYAXgBKAChGAAIAVgArUAA4AmwCcAJ0AngCfAKAAoVZOU1NpemVW +TlNOYW1lWE5TZkZsYWdzgBQjQCoAAAAAAACAExEEFFxMdWNpZGFHcmFuZGXSADcAOACkAKWiAKUAO1ZO +U0ZvbnTSAA4APgBGAKiAFqDSADcAOACqAKujAKsArAA7Xk5TTXV0YWJsZUFycmF5V05TQXJyYXnSADcA +OACuAK+kAK8AsABpADtaTlNQYXRoQ2VsbFxOU0FjdGlvbkNlbGzSADcAOACyALOlALMAtAC1ALYAO11O +U1BhdGhDb250cm9sWU5TQ29udHJvbFZOU1ZpZXdbTlNSZXNwb25kZXJbcGF0aENvbnRyb2zSADcAOAC5 +ALqjALoAuwA7XxAUTlNOaWJPdXRsZXRDb25uZWN0b3JeTlNOaWJDb25uZWN0b3LUAA4AXwBgAGEAYgC+ +AL8AwIAagIaAHICn3QDCAA4AwwDEAMUAxgDHAMgAyQDKAMsAzADNAG8AzwDQANEA0QDTANQA1QDWAJIA +1wDYACtcTlNXaW5kb3dWaWV3XE5TU2NyZWVuUmVjdF8QE05TRnJhbWVBdXRvc2F2ZU5hbWVdTlNXaW5k +b3dUaXRsZVlOU1dURmxhZ3NdTlNXaW5kb3dDbGFzc18QFk5TV2luZG93Q29udGVudE1pblNpemVcTlNX +aW5kb3dSZWN0XxAPTlNXaW5kb3dCYWNraW5nXxARTlNXaW5kb3dTdHlsZU1hc2tZTlNNaW5TaXplW05T +Vmlld0NsYXNzgAuApoCkgB6AHhP/////oAAAAIAfgCCAHRAfgKWAAF8QGHt7MTk2LCAxOTJ9LCB7NDgw +LCAzMjB9fVlTcG90bGlnaHRXTlNQYW5lbFp7NDAwLCAyNjB90gAOAD4ARgDggBalAOEA4gC+AOQAY4Ai +gCqAhoCagArYAGcADgBoAGkAawBsAG0AbgBvAOgA6QDqAOsAdQB2AG+AC4ApgCOAJBEBCQmAEIALXxAX +e3szMzUsIDI3NX0sIHsxMzEsIDMyfX3cAIwADgDxAPIA8wD0APUAjQCOAPYAjwD3APgA+QD6APsA/AD9 +AP4AlQDhAQEBAgEDXxATTlNBbHRlcm5hdGVDb250ZW50c18QEk5TUGVyaW9kaWNJbnRlcnZhbF5OU0J1 +dHRvbkZsYWdzMl8QD05TS2V5RXF1aXZhbGVudFpOU0NvbnRlbnRzXxAPTlNQZXJpb2RpY0RlbGF5XU5T +QnV0dG9uRmxhZ3MSBAH+AIAogCYQGRCBgCeAJYASgCIQyBIIAAAAE/////+GgkD/XxAPQWRkIHRvIFBs +YXlsaXN0UFEN0gA3ADgBCAEJpAEJALAAaQA7XE5TQnV0dG9uQ2VsbNIANwA4AQsBDKUBDAC0ALUAtgA7 +WE5TQnV0dG9u3xAPAGcBDgAOAGgBDwEQAREAeQESAGsAbQBuARMBFAEVAG8BFwEYARkBGgEbARwBHQEe +AR8AdgBvASIBIwEjW05TSFNjcm9sbGVyWE5Tc0ZsYWdzXE5TQ29ybmVyVmlld18QEE5TSGVhZGVyQ2xp +cFZpZXdcTlNTY3JvbGxBbXRzW05TVlNjcm9sbGVyXU5TTmV4dEtleVZpZXddTlNDb250ZW50Vmlld4AL +gICAhYCEEBCANoAzgCtPEBAAAAAAAAAAAEGYAABBmAAAEQESgBCAC4B8gCyALNIADgA+AEYBJ4AWpQEj +ASIBFwEcARuALIB8gICAM4A22wBnAA4AaAEuAHkAawEvAG0BMABuARQA4gEyATMAkgE0ATUBNgB2ATgA +4gE2WU5TY3ZGbGFnc1lOU0RvY1ZpZXdZTlNCR0NvbG9ygCqAe4B6gC0RCQCALoAQgEiAKoAu0gAOAD4A +RgE9gBahATaALt8QFwBnAUAADgFBAUIBQwFEAUUBEAFGAUcBSABrAHoAbAFJAG0AMgFKAUsAbgFMAU0B +IwFPAVABUQFSAVMBOAB1ARsBVwFYAVkBWgFbAHUBXQB2AV8BYAFhASMBYwFkXxAfTlNEcmFnZ2luZ1Nv +dXJjZU1hc2tGb3JOb25Mb2NhbFlOU1R2RmxhZ3NfEBNOU09yaWdpbmFsQ2xhc3NOYW1lXE5TSGVhZGVy +Vmlld18QEU5TQmFja2dyb3VuZENvbG9yXxASTlNBbGxvd3NUeXBlU2VsZWN0XxAXTlNJbnRlcmNlbGxT +cGFjaW5nV2lkdGhfEBlOU0NvbHVtbkF1dG9yZXNpemluZ1N0eWxlXxAYTlNJbnRlcmNlbGxTcGFjaW5n +SGVpZ2h0Xk5TQXV0b3NhdmVOYW1lW05TR3JpZENvbG9yXxAcTlNEcmFnZ2luZ1NvdXJjZU1hc2tGb3JM +b2NhbF5OU1RhYmxlQ29sdW1uc1tOU1Jvd0hlaWdodIAsEACAeRP/////28CAAIAwgDKASAmANiNACAAA +AAAAABABI0AAAAAAAAAAERESgDEJgHiAEIAvgHUQD4AsgDkjQDEAAAAAAABcUGxheWxpc3RWaWV3W05T +VGFibGVWaWV3Wns0MjUsIDIxMX3XAGcADgBrAHoAbQBuAWYBHAFqAH4BawB2ARwBNoAzgDWANIAQgDOA +LtsAZwAOAS4AeQBrAHoBLwBtATAAbgEUAOIBMgFyAXMBNQF0AVMAdgE4AOIBU4AqgHsQBICCgIOAMoAQ +gEiAKoAyWXs0MjUsIDE3fdIANwA4AXwBfaQBfQC1ALYAO18QEU5TVGFibGVIZWFkZXJWaWV31gBnAA4A +aABrAG0AbgDiAYABgQB+AHYA4oAqgDiAN4AQgCpfEBR7ezQyNSwgMH0sIHsxNiwgMTd9fdIANwA4AYYB +h6QBhwC1ALYAO11fTlNDb3JuZXJWaWV30gAOAD4ARgGKgBanAYsBjAGNAY4BjwGQAZGAOoBPgFeAXIBi +gGeAbNoBkwAOAZQBlQGWAZcBmAGZAZoBZgB1AZwBnQGeAZ8BoAGhAaIBowE2Xk5TSXNSZXNpemVhYmxl +XE5TSGVhZGVyQ2VsbFxOU0lkZW50aWZpZXJXTlNXaWR0aFpOU0RhdGFDZWxsXk5TUmVzaXppbmdNYXNr +Wk5TTWluV2lkdGhaTlNNYXhXaWR0aAmAToA8gDsjQF9AAAAAAACARhADI0BEgAAAAAAAI0CPQAAAAAAA +gC5VdGl0bGXXAIwADgFEAPUAjQCPAacBqAGpAaoBqwGsAU8BrVtOU1RleHRDb2xvchIEgf4AgEWAP4A9 +gD6AQVVUaXRsZdQADgCbAJwAnQCeAbEAoAGzgBQjQCYAAAAAAACAExEMHNMADgG1AbYBtwGhAbhcTlND +b2xvclNwYWNlV05TV2hpdGWAQEswLjMzMzMzMjk5ANIANwA4AboBu6IBuwA7V05TQ29sb3LVAA4BuwG1 +Ab0BvgG3AcABwQHCAcNbTlNDb2xvck5hbWVdTlNDYXRhbG9nTmFtZYBAgEQQBoBDgEJWU3lzdGVtXxAP +aGVhZGVyVGV4dENvbG9y0wAOAbUBtgG3AaEByIBAQjAA0gA3ADgBygHLpQHLAcwAsABpADtfEBFOU1Rh +YmxlSGVhZGVyQ2VsbF8QD05TVGV4dEZpZWxkQ2VsbNgAjAAOAUQA9QCNAI4AjwGnAc4BzwE4AdEAlQE2 +AdQB1RIUIf5AgE2ASIBHgBKALhEIAIBLWVRleHQgQ2VsbNUADgG7AbUBvQG+AbcB2QHBAdoBw4BAgEqA +SYBCXxAWY29udHJvbEJhY2tncm91bmRDb2xvctMADgG1AbYBtwGhAd+AQEswLjY2NjY2NjY5ANUADgG7 +AbUBvQG+AbcBwAHBAeMBw4BAgESATIBCXxAQY29udHJvbFRleHRDb2xvctIANwA4AecBzKQBzACwAGkA +O9IANwA4AekB6qIB6gA7XU5TVGFibGVDb2x1bW7aAZMADgGUAZUBlgGXAZgBmQGaAWYAdQGcAe4B7wHw +AfEBoQHyAaMBNgmAToBRgFAjQF4AAAAAAACAViNAQgAAAAAAAIAuVmFydGlzdNcAjAAOAUQA9QCNAI8B +pwD4AakB9wH4AawBTwGtgEWAU4BSgD6AQVZBcnRpc3TVAA4BuwG1Ab0BvgG3Af4BwQH/AcOAQIBVgFSA +QltoZWFkZXJDb2xvctMADgG1AbYBtwGhAgSAQEIxANgAjAAOAUQA9QCNAI4AjwGnAc4BzwE4AdEAlQE2 +AdQB1YBNgEiAR4ASgC6AS9oBkwAOAZQBlQGWAZcBmAGZAZoBZgB1AZwCDwIQAhECEgGhAhMBowE2CYBO +gFmAWCNAXoAAAAAAAIBbI0BDgAAAAAAAgC5VYWxidW3XAIwADgFEAPUAjQCPAacA+AGpAfcCGQGsAU8B +rYBFgFOAWoA+gEFVQWxidW3YAIwADgFEAPUAjQCOAI8BpwHOAc8BOAHRAJUBNgHUAdWATYBIgEeAEoAu +gEvbAZMCJQGUAZUADgGWAZcBmAGZAZoBZgB1AHUCKAIpAZwCKwIsAaECLQGjATZYTlNIaWRkZW4JCYBe +gF2ATiNASQAAAAAAAIBgI0BET2AgAAAAgC5WbGVuZ3Ro1wCMAA4BRAD1AI0AjwGnAPgBqQH3AjMBrAI1 +Aa2ARYBTgF+APhIEAAAAgEFWTGVuZ3Ro2ACMAA4BRAD1AI0AjgCPAacBzgHPATgCOwCVATYCPgHVgE2A +SIBhgBKALhIEAAgAgEvbAZMCJQGUAZUADgGWAZcBmAGZAZoBZgB1AHUCQwJEAZwCRgJHAaECSAGjATYJ +CYBkgGOATiNAR4AAAAAAAIBmI0AkAAAAAAAAgC5UeWVhctcAjAAOAUQA9QCNAI8BpwD4AakB9wJOAawC +NQGtgEWAU4BlgD6AQVRZZWFy2ACMAA4BRAD1AI0AjgCPAacBzgHPATgCOwCVATYCPgHVgE2ASIBhgBKA +LoBL2wGTAiUBlAGVAA4BlgGXAZgBmQGaAWYAdQB1AlwCXQGcAl8CYAGhAkgBowE2CQmAaYBogE4jQEcA +AAAAAACAa4AuVWdlbnJl1wCMAA4BRAD1AI0AjwGnAPgBqQH3AmYBrAFPAa2ARYBTgGqAPoBBVUdlbnJl +2ACMAA4BRAD1AI0AjgCPAacBzgHPATgCOwCVATYB1AHVgE2ASIBhgBKALoBL2wGTAA4BlAGVAZYBlwGY +AnIBmQGaAWYAdQGcAnUCdgJfAncBoQJ4AnkCXwE2XxAZTlNTb3J0RGVzY3JpcHRvclByb3RvdHlwZQmA +ToBugG2AcIBxI0AgAAAAAAAAgC5VdHJhY2vXAIwADgFEAPUAjQCPAacA+AGpAfcCfwGsAjUBrYBFgFOA +b4A+gEFVVHJhY2vYAIwADgFEAPUAjQCOAI8BpwHOAc8BOAHRAJUBNgI+AdWATYBIgEeAEoAugEvUAA4C +iwKMAo0CjgKPApAAdVVOU0tleVpOU1NlbGVjdG9yW05TQXNjZW5kaW5ngHSAcoBzCV5zcG90bGlnaHRU +cmFja18QFGNvbXBhcmVUcmFja051bWJlcnM60gA3ADgClQKWogKWADtfEBBOU1NvcnREZXNjcmlwdG9y +1QAOAbsBtQG9Ab4BtwKZAcECmgHDgECAd4B2gEJZZ3JpZENvbG9y0wAOAbUBtgG3AaECn4BARDAuNQBf +EBRDb2dTcG90bGlnaHRQbGF5bGlzdNIANwA4AqICo6ICowA7Xk5TQ2xhc3NTd2FwcGVyXxAVe3swLCAx +N30sIHs0MjUsIDIxMX190gA3ADgCpgKnpAKnALUAtgA7Wk5TQ2xpcFZpZXfZAGcCqQAOAGgAawBtAqoA +bgKrAOIA4gKuAq8AfgB2ArEA4gKzWE5TVGFyZ2V0WE5TQWN0aW9uWU5TUGVyY2VudIAqgCqAf4B9gBCA +foAqIz/qN4SgAAAAXxAWe3s0MjUsIDE3fSwgezE1LCAyMTF9fVxfZG9TY3JvbGxlcjrSADcAOAK3Aril +ArgAtAC1ALYAO1pOU1Njcm9sbGVy2gBnAqkADgBoAQ8AawBtAqoAbgKrAOIA4gKuAr0BWAK+AHYCsQDi +AsKAKoAqgH+AgRP/////gAABAIAQgH6AKiM/7aRhAAAAAF8QGXt7LTEwMCwgLTEwMH0sIHs0NDAsIDE1 +fX3SAA4APgBGAsaAFqEBU4AyXxAWe3syMCwgNDR9LCB7NDQwLCAyMjh9fdIANwA4AsoCy6QCywC1ALYA +O1xOU1Njcm9sbFZpZXfYAGcADgBoAGkAawBsAG0AbgBvAs4CzwLQAtEAdQB2AG+AC4CZgIeAiBEBCgmA +EIALXxAWe3syMCwgMjgyfSwgezMxMywgMjJ9fd0AjAAOAtcBRAD1AI0AjgCPAtgC2QLaAtsBpwLcAt0C +3gLfAPoAlQC+AuMBWAB1AuUC5gHVXxASTlNDYW5jZWxCdXR0b25DZWxsXxAQTlNUZXh0QmV6ZWxTdHls +ZV8QEU5TRHJhd3NCYWNrZ3JvdW5kXxASTlNTZWFyY2hCdXR0b25DZWxsXxAQTlNNYXhpbXVtUmVjZW50 +cxIUcf5AgJiAjoCJgCaAEoCGEhAABAAJgIsQ/4BL1QAOAbsBtQG9Ab4BtwH+AcEC6wHDgECAVYCKgEJf +EBN0ZXh0QmFja2dyb3VuZENvbG9y3AKpAIwADgDyAPMA9AD1AI4A9gCPAqoA9wLQAvAA+QLyAU8A+gL0 +AL4C9gFPAvcC+ICIEgAB/gCAKBBLgCaAjICGEQGQgI0SCERA/1ZzZWFyY2hfEBNfc2VhcmNoRmllbGRT +ZWFyY2g63QKpAIwADgDyAPMA9AL8APUAjgD2AI8CqgD3AtAC8AD5AvIBTwD6AwADAQC+AvYBTwMDAvhf +ECNOU0FjY2Vzc2liaWxpdHlPdmVycmlkZGVuQXR0cmlidXRlc4CIgCiAJoCQgI+AhoCXVWNsZWFy0gAO +AD4ARgMHgBahAwiAkdMADgMKAD4DCwMMAw9XTlMua2V5c4CWogMNAw6AkoCTogMQAxGAlICVXUFYRGVz +Y3JpcHRpb25fEClOU0FjY2Vzc2liaWxpdHlFbmNvZGVkQXR0cmlidXRlc1ZhbHVlVHlwZVZjYW5jZWzS +ADcAOAMWAxejAxcDGAA7XxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnlfEBNfc2VhcmNo +RmllbGRDYW5jZWw60gA3ADgDGwMcpQMcAcwAsABpADtfEBFOU1NlYXJjaEZpZWxkQ2VsbNIANwA4Ax4D +H6YDHwMgALQAtQC2ADtdTlNTZWFyY2hGaWVsZFtOU1RleHRGaWVsZNgAZwAOAGgAaQBrAGwAbQBuAG8D +IwMkAyUAdAB1AHYAb4ALgKCAm4CcCYAQgAtfEBR7ezg4LCAxM30sIHs5NiwgMTd9fdgAjAAOAUQA9QCN +AI4AjwGnAysBzwMtAy4AlQDkAzEB1RIEAf5AgE2AnoCdgBKAmhIQQAQAgEteU2VhcmNoIEZvbGRlcjrV +AA4BuwG1Ab0BvgG3AdkBwQM3AcOAQIBKgJ+AQlxjb250cm9sQ29sb3LSADcAOAM7AyClAyAAtAC1ALYA +O1p7NDgwLCAzMjB90gA3ADgDPgC1owC1ALYAO18QFXt7MCwgMH0sIHsxMjgwLCA3Nzh9fVp7NDAwLCAy +NzZ90gA3ADgDQgNDogNDADtfEBBOU1dpbmRvd1RlbXBsYXRlXxAVaW5pdGlhbEZpcnN0UmVzcG9uZGVy +1AAOAF8AYABhAGIDRwE2A0mAGoCpgC6AttMADgNLA0wDTQNOA09XTlNUaXRsZVtOU01lbnVJdGVtc4C1 +gKqAq15Db250ZXh0dWFsTWVuddIADgA+AEYDU4AWoQNUgKzYAA4DSwNWA1cDWANZA1oDWwNcA10DXgD6 +A2ADYQNiA0dfEBFOU0tleUVxdWl2TW9kTWFza1pOU0tleUVxdWl2XU5TTW5lbW9uaWNMb2NZTlNPbklt +YWdlXE5TTWl4ZWRJbWFnZVZOU01lbnWAtICtEgAQAACAJhJ/////gK6AsoCpXlNob3cgaW4gRmluZGVy +0wAOADIDZgNnA2gDaV5OU1Jlc291cmNlTmFtZYCxgK+AsFdOU0ltYWdlXxAPTlNNZW51Q2hlY2ttYXJr +0gA3ADgDbQNuogNuADtfEBBOU0N1c3RvbVJlc291cmNl0wAOADIDZgNnA2gDcoCxgK+As18QEE5TTWVu +dU1peGVkU3RhdGXSADcAOAN1A3aiA3YAO1pOU01lbnVJdGVt0gA3ADgDeANbogNbADtUbWVuddQADgBf +AGAAYQBiATYDfQN+gBqALoC4gMDYA4AADgFCA4EDggODA4QAMgB1AVADhwB1A4kDigOLA4xfEBpOU0Zp +bHRlclJlc3RyaWN0c0luc2VydGlvblpOU0VkaXRhYmxlXxAPX05TTWFuYWdlZFByb3h5XxARTlNPYmpl +Y3RDbGFzc05hbWVeTlNEZWNsYXJlZEtleXMJgHmAugmAvoC9gLuAuV8QG1Nwb3RsaWdodFBsYXlsaXN0 +Q29udHJvbGxlcl8QEU5TQXJyYXlDb250cm9sbGVy0gAOAD4ARgORgBaoAZ4CRAHvAhACXQIpAnYDmYA7 +gGOAUIBYgGiAXYBtgLxdUGxheWxpc3RFbnRyedEADgOcgL/SADcAOAOeA4KiA4IAO1l0YWJsZVZpZXfU +AA4AXwBgAGEAYgN9ATYDpIAagLiALoDCXxAScGxheWxpc3RDb250cm9sbGVy1AAOAF8AYABhA6cDfQNU +A6qAxYC4gKyAxF8QEnNob3dFbnRyeUluRmluZGVyOtIANwA4A60DrqMDrgC7ADtfEBVOU05pYkNvbnRy +b2xDb25uZWN0b3LUAA4AXwBgAGEDpwAfAOEDs4DFgAKAIoDHXmFkZFRvUGxheWxpc3Q61AAOAF8AYABh +AGIAvwAfA7mAGoAcgAKAyVZ3aW5kb3fUAA4AXwBgAGEAYgN9AB8DpIAagLiAAoDC1AAOAF8AYABhAGID +fQE2A8SAGoC4gC6AzFpkYXRhU291cmNl1AAOAF8AYABhAGIAHwN9A8qAGoACgLiAzl8QGXNwb3RsaWdo +dFdpbmRvd0NvbnRyb2xsZXLUAA4AXwBgAGEAYgC+AB8D0IAagIaAAoDQW3NlYXJjaEZpZWxk2AAOAF8D +0wPUAGAAYQPVA9YD1wPYA9kD2gBjA9wD3QCSWU5TS2V5UGF0aFlOU0JpbmRpbmdZTlNPcHRpb25zXxAc +TlNOaWJCaW5kaW5nQ29ubmVjdG9yVmVyc2lvboDbgNKA1oDVgAqA1IDX0gAOA98D4AB1XxAQTlNTaGFy +ZWRJbnN0YW5jZYDTCdIANwA4A+MD5KMD5APlADtfEBhOU1VzZXJEZWZhdWx0c0NvbnRyb2xsZXJcTlND +b250cm9sbGVyXxAhdmFsdWU6IHZhbHVlcy5zcG90bGlnaHRTZWFyY2hQYXRoVXZhbHVlXxAadmFsdWVz +LnNwb3RsaWdodFNlYXJjaFBhdGjTAA4DCgA+A+oD6wPtgNqhA+yA2KED7oDZXxAWTlNWYWx1ZVRyYW5z +Zm9ybWVyTmFtZV8QFlN0cmluZ1RvVVJMVHJhbnNmb3JtZXLSADcAOAPyAxiiAxgAO9IANwA4A/QD9aMD +9QC7ADtfEBVOU05pYkJpbmRpbmdDb25uZWN0b3LYAA4AXwPTA9QAYABhA9UD1gPXA30D+QPaAY4D/AP9 +AJKA24C4gN6A1YBcgN2A318QHXZhbHVlOiBhcnJhbmdlZE9iamVjdHMubGVuZ3RoXxAWYXJyYW5nZWRP +YmplY3RzLmxlbmd0aNMADgMKAD4D6gQCBASA2qEEA4DgoQMRgJVfEBtOU0NvbmRpdGlvbmFsbHlTZXRz +RWRpdGFibGXYAA4AXwPTA9QAYABhA9UD1gPXA30ECgPaAYwEDQQOAJKA24C4gOOA1YBPgOKA5F8QHXZh +bHVlOiBhcnJhbmdlZE9iamVjdHMuYXJ0aXN0XxAWYXJyYW5nZWRPYmplY3RzLmFydGlzdNMADgMKAD4D +6gQTBBWA2qEEA4DgoQMRgJXYAA4AXwPTA9QAYABhA9UD1gPXA30EGgQbAZEEHQQeAJKA24C4gOiA54Bs +gOaA6V8QJXZhbHVlOiBhcnJhbmdlZE9iamVjdHMuc3BvdGxpZ2h0VHJhY2tfEB5hcnJhbmdlZE9iamVj +dHMuc3BvdGxpZ2h0VHJhY2vTAA4DCgA+A+oEIwQwgNqsBCQEJQQmBCcEKAQpBCoEKwQsBC0ELgQvgOqA +64DsgO2A7oDvgPCA8YDygPOA9ID1rAQxBDIEMQQxBDUENQQxBDEENQQ1BDIEMoD2gPeA9oD2gPiA+ID2 +gPaA+ID4gPeA918QGk5TQ29uZGl0aW9uYWxseVNldHNFbmFibGVkXxAcTlNSYWlzZXNGb3JOb3RBcHBs +aWNhYmxlS2V5c18QFk5TVmFsaWRhdGVzSW1tZWRpYXRlbHlfECZOU0Fsd2F5c1ByZXNlbnRzQXBwbGlj +YXRpb25Nb2RhbEFsZXJ0c18QG05TTXVsdGlwbGVWYWx1ZXNQbGFjZWhvbGRlcl8QEU5TTnVsbFBsYWNl +aG9sZGVyXxAaTlNDb250aW51b3VzbHlVcGRhdGVzVmFsdWVfEBdOU0NyZWF0ZXNTb3J0RGVzY3JpcHRv +cl8QGk5TTm90QXBwbGljYWJsZVBsYWNlaG9sZGVyXxAYTlNOb1NlbGVjdGlvblBsYWNlaG9sZGVyXxAm +TlNBbGxvd3NFZGl0aW5nTXVsdGlwbGVWYWx1ZXNTZWxlY3Rpb24ICdgADgBfA9MD1ABgAGED1QPWA9cD +fQRNA9oBiwRQBFEAkoDbgLiA+4DVgDqA+oD8XxAcdmFsdWU6IGFycmFuZ2VkT2JqZWN0cy50aXRsZV8Q +FWFycmFuZ2VkT2JqZWN0cy50aXRsZdMADgMKAD4D6gRWBFiA2qEEA4DgoQMRgJXYAA4AXwPTA9QAYABh +A9UD1gPXA30EXQPaAY0EYARhAJKA24C4gP+A1YBXgP6BAQBfEBx2YWx1ZTogYXJyYW5nZWRPYmplY3Rz +LmFsYnVtXxAVYXJyYW5nZWRPYmplY3RzLmFsYnVt0wAOAwoAPgPqBGYEaIDaoQQDgOChAxGAldcADgBf +A9MD1ABgAGED1gPXAB8EbQPaAL4EcACSgNuAAoEBA4DVgIaBAQJfEBN2YWx1ZTogc2VhcmNoU3RyaW5n +XHNlYXJjaFN0cmluZ9gADgBfA9MD1ABgAGED1QPWA9cAHwR2BHcDfQR5BHoAkoDbgAKBAQeBAQaAuIEB +BYEBCF8QG2NvbnRlbnRBcnJheTogcXVlcnkucmVzdWx0c1xjb250ZW50QXJyYXldcXVlcnkucmVzdWx0 +c9MADgMKAD4D6gSABIKA2qED7IDYoQSDgQEJXxAXUGF1c2luZ1F1ZXJ5VHJhbnNmb3JtZXLYAA4AXwPT +A9QAYABhA9UD1gPXA30EiAPaAZAEiwSMAJKA24C4gQEMgNWAZ4EBC4EBDV8QHHZhbHVlOiBhcnJhbmdl +ZE9iamVjdHMuZ2VucmVfEBVhcnJhbmdlZE9iamVjdHMuZ2VucmXTAA4DCgA+A+oEkQSTgNqhBAOA4KED +EYCV2AAOAF8D0wPUAGAAYQPVA9YD1wN9BJgD2gGPBJsEnACSgNuAuIEBEIDVgGKBAQ+BARFfEBt2YWx1 +ZTogYXJyYW5nZWRPYmplY3RzLnllYXJfEBRhcnJhbmdlZE9iamVjdHMueWVhctMADgMKAD4D6gShBKOA +2qEEA4DgoQMRgJXSAA4APgSmBKeBARWvECICLANHATYBjQGRAmACdwDhAYsA5ADiAaACEgDqAG8AcgMl +ASIC0AGOAZABFwFTA9gAvgJHA30EwwHxAYwBjwC/AGMDVIBggKmALoBXgGyAa4BwgCKAOoCagCqARoBb +gCSAC4ARgJyAfICIgFyAZ4CAgDKA0oCGgGaAuIEBE4BWgE+AYoAcgAqArNIADgAyADMEzIAEgQEUXU5T +QXBwbGljYXRpb27SADcAOATPAKyiAKwAO9IADgA+BKYE0oEBFa8QIgGOAB8A4gE2ATYBkAGRAG8BNgBv +AG8BiwGNAOEAvwBjAOQA4gC+ATYBNgDiAOIAHwBvAY8AHwAfAYwBNgE2AB8AbwNHgFyAAoAqgC6ALoBn +gGyAC4AugAuAC4A6gFeAIoAcgAqAmoAqgIaALoAugCqAKoACgAuAYoACgAKAT4AugC6AAoALgKnSAA4A +PgSmBPeBARWvECMCLANHATYBjQGRAncCYADhAYsA5ADiAaAAHwISAHIA6gEXAG8DJQLQASID2AFTAY4B +kAC+AkcDfQTDAY8BjAHxAL8AYwNUgGCAqYAugFeAbIBwgGuAIoA6gJqAKoBGgAKAW4ARgCSAgIALgJyA +iIB8gNKAMoBcgGeAhoBmgLiBAROAYoBPgFaAHIAKgKzSAA4APgSmBR2BARWvECMFHgUfBSAFIQUiBSMF +JAUlBSYFJwUoBSkFKgUrBSwFLQUuBS8FMAUxBTIFMwU0BTUFNgU3BTgFOQU6BTsFPAU9BT4FPwVAgQEZ +gQEagQEbgQEcgQEdgQEegQEfgQEggQEhgQEigQEjgQEkgQElgQEmgQEngQEogQEpgQEqgQErgQEsgQEt +gQEugQEvgQEwgQExgQEygQEzgQE0gQE1gQE2gQE3gQE4gQE5gQE6gQE7XxAdVGV4dCBGaWVsZCBDZWxs +IChUZXh0IENlbGwpLTNfEBVNZW51IChDb250ZXh0dWFsTWVudSlfEEBQbGF5bGlzdCBWaWV3IChUaXRs +ZSwgQXJ0aXN0LCBBbGJ1bSwgTGVuZ3RoLCBZZWFyLCBHZW5yZSwgVHJhY2spXxAUVGFibGUgQ29sdW1u +IChhbGJ1bSlfEBRUYWJsZSBDb2x1bW4gKHRyYWNrKV8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxs +KS0xXxAdVGV4dCBGaWVsZCBDZWxsIChUZXh0IENlbGwpLTRfEB1QdXNoIEJ1dHRvbiAoQWRkIHRvIFBs +YXlsaXN0KV8QFFRhYmxlIENvbHVtbiAodGl0bGUpXxAcU3RhdGljIFRleHQgKFNlYXJjaCBGb2xkZXI6 +KVtTY3JvbGwgVmlld18QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS0yXEZpbGUncyBPd25lcl8Q +G1RleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKVlQYXRoIENlbGxfEB1CdXR0b24gQ2VsbCAoQWRkIHRv +IFBsYXlsaXN0KV8QE0hvcml6b250YWwgU2Nyb2xsZXJcQ29udGVudCBWaWV3XxAgVGV4dCBGaWVsZCBD +ZWxsIChTZWFyY2ggRm9sZGVyOilfEBFTZWFyY2ggRmllbGQgQ2VsbF8QEVZlcnRpY2FsIFNjcm9sbGVy +XxAfU2hhcmVkIFVzZXIgRGVmYXVsdHMgQ29udHJvbGxlcl8QEVRhYmxlIEhlYWRlciBWaWV3XxAVVGFi +bGUgQ29sdW1uIChsZW5ndGgpXxAUVGFibGUgQ29sdW1uIChnZW5yZSlcU2VhcmNoIEZpZWxkXxAdVGV4 +dCBGaWVsZCBDZWxsIChUZXh0IENlbGwpLTZfEB1TcG90bGlnaHQgUGxheWxpc3QgQ29udHJvbGxlcltB +cHBsaWNhdGlvbl8QE1RhYmxlIENvbHVtbiAoeWVhcilfEBVUYWJsZSBDb2x1bW4gKGFydGlzdClfEB1U +ZXh0IEZpZWxkIENlbGwgKFRleHQgQ2VsbCktNV8QEVBhbmVsIChTcG90bGlnaHQpXxAaUG9wIFVwIFBh +dGggQ29udHJvbCBXaWRnZXRfEBpNZW51IEl0ZW0gKFNob3cgaW4gRmluZGVyKdIADgA+BKYFZoEBFaIB +NgN9gC6AuNIADgA+BKYFa4EBFaIBXwOMgC+AudIADgA+BKYFcIEBFa8QOQIsA0cAWQE2AY0BkQJ3AEkA +4QGLAEgA4gISAOoAbwEiAyUBFwLQAY4BkABVAL4CRwBLAFYAVwBPBMMBjwGMAFwAvwBjAFgATABUAFoA +TgBQAmAA5ABNAaAAWwBRAB8AcgFTA9gDfQBSAF0ASgHxAFMDVIBggKmA/YAugFeAbIBwgBuAIoA6gAmA +KoBbgCSAC4B8gJyAgICIgFyAZ4DcgIaAZoC3gOGA5YDIgQETgGKAT4EBCoAcgAqA+YDBgNGBAQGAxoDK +gGuAmoDDgEaBAQSAy4ACgBGAMoDSgLiAzYEBDoCogFaAz4Cs0gAOAD4EpgWsgQEVrxA5Ba0FrgWvBbAF +sQWyBbMFtAW1BbYFtwW4BbkFugW7BbwFvQW+Bb8FwAXBBcIFwwXEBcUFxgXHBcgFyQXKBcsFzAMRBc4F +zwXQBdEF0gXTBdQF1QXWBdcF2AXZBdoF2wXcBd0F3gXfBeAF4QXiBeMF5AXlgQFAgQFBgQFCgQFDgQFE +gQFFgQFGgQFHgQFIgQFJgQFKgQFLgQFMgQFNgQFOgQFPgQFQgQFRgQFSgQFTgQFUgQFVgQFWgQFXgQFY +gQFZgQFagQFbgQFcgQFdgQFegQFfgJWBAWCBAWGBAWKBAWOBAWSBAWWBAWaBAWeBAWiBAWmBAWqBAWuB +AWyBAW2BAW6BAW+BAXCBAXGBAXKBAXOBAXSBAXWBAXaBAXcQKRCrEGUQHBAhEB0QLBA9EAUQJBCfEBgQ +KBAbEFAQGhA4ECAQHhBpEDcQKhCVEGgQwxBIE//////////9ECIQZhBYEF0QuBDBEJoQoxChECsQTxCv +ECUQtRCXEMQQWRC6EKAQXhCwECcQsxCs0gAOAD4ARgYbgBag0gAOAD4EpgYegQEVoNIADgA+BKYGIYEB +FaDSADcAOAYjBiSiBiQAO15OU0lCT2JqZWN0RGF0YQAIABkAIgAnADEAOgA/AEQAUgBUAGYDYgNoA7MD +ugPBA88D4QP9BAsEFwQjBDEEPARKBGYEdASHBJkEswS9BMoEzATPBNIE1QTYBNoE3QTfBOIE5QToBOsE +7QTvBPIE9QT3BPoFAwUPBREFEwUvBTgFQQVMBVEFYAVpBXwFhQWQBZIFkwWcBaMFsAW2Bb8FwQXwBfIF +9AX2BfgF+gX8Bf4GAAYCBgQGBgYIBgoGDAYOBhAGEgYUBhcGGgYdBiAGMQY/BkgGUAZSBlQGVgZYBn0G +jwaXBp4GqgazBr0GxgbSBtQG1gbYBtoG3AbfBuAG4gbkBwEHDAcYBxoHHAceByEHIwclBycHMAcyBzcH +OQc7B1cHbweHB6gHtAfAB8oH2AflB/wIBwgJCA4IEAgSCBQIFwgZCBsILAgzCDoIQwhFCE4IUAhTCGAI +aQhuCHUIfgiACIEIigiRCKAIqAixCLoIxQjSCNsI5gj0CP4JBQkRCR0JJgktCUQJUwlkCWYJaAlqCWwJ +oQmuCbsJ0QnfCekJ9woQCh0KLwpDCk0KWQpbCl0KXwphCmMKbApuCnAKcgp0CnYKeAqTCp0KpQqwCrkK +uwrGCsgKygrMCs4K0ArxCvMK9Qr3CvkK/Ar9Cv8LAQsbC0wLYgt3C4YLmAujC7ULwwvIC8oLzAvOC9AL +0gvUC9YL2AvaC98L6Av6C/sL/QwGDA8MHAwlDDAMOQx4DIQMjQyaDK0MugzGDNQM4gzkDOYM6AzqDOwM +7gzwDPINBQ0IDQoNDA0ODRANEg0bDR0NKA0qDSwNLg0wDTINXw1pDXMNfQ1/DYENgw2FDYgNig2MDY4N +kA2SDZsNnQ2gDaIOAQ4jDi0OQw5QDmQOeQ6TDq8Oyg7ZDuUPBA8TDx8PIQ8jDyUPLg8wDzIPNA81DzcP +QA9CD0sPTg9QD1EPUw9VD1cPWQ9bD10PXw9oD3UPgQ+MD6kPqw+tD68PsQ+zD7UP4g/kD+YP6A/qD+wP +7g/wD/IP9A/2EAAQCRASECYQPxBBEEMQRRBHEEkQYBBpEHIQgBCJEIsQmhCcEJ4QoBCiEKQQphCoENEQ +4BDtEPoRAhENERwRJxEyETMRNRE3ETkRQhFEEUYRTxFYEVoRYBF9EYkRjhGQEZIRlBGWEZgRnhGvEbER +uhG8Eb8RzBHZEeER4xHvEfgR/RIFEhoSJhI0EjYSOBI6EjwSPhJFElcSZBJmEmkSchJ9EpESoxLEEskS +yxLNEs8S0RLTEtYS2BLiEvcS+RL7Ev0S/xMYEyUTJxMzE0gTShNME04TUBNjE2wTdRN+E4MTkRO6E7sT +vRO/E8ETyhPME9UT1xPeE/sT/RP/FAEUAxQFFAwUIRQjFCUUJxQpFDUUQhREFEcUaBRqFGwUbhRwFHIU +dBSdFJ4UoBSiFKQUrRSvFLgUuhTAFN0U3xThFOMU5RTnFO0VDhUQFRIVFBUWFRgVGhVHFVAVURVSFVQV +VhVYFWEVYxVsFW4VdRWSFZQVlhWYFZoVnxWhFagVyRXLFc0VzxXRFdMV2BXaFgcWCBYJFgsWDRYPFhgW +GhYjFiUWKhZHFkkWSxZNFk8WURZWFncWeRZ7Fn0WfxaBFoMWsBaxFrIWtBa2FrgWwRbDFsUWyxboFuoW +7BbuFvAW8hb4FxkXGxcdFx8XIRcjFyUXUhduF28XcRdzF3UXdxd5F4IXhBeKF6cXqRerF60XrxexF7cX +2BfaF9wX3hfgF+IX5Bf1F/sYBhgSGBQYFhgYGBkYKBg/GEgYTRhgGHUYdxh5GHsYfRiHGJQYlhibGLIY +uxjAGM8Y5xjwGPkZBBkpGTIZOxlFGUcZSRlLGU0ZTxlRGVMZXBl1GYIZixmWGaEZyhnMGc4Z0BnSGdsZ +3RnfGeEZ6hoGGg8aERoUGhYaLxo4GkEaThpvGnEacxp1Gncaehp7Gn0afxqYGs0a4hr1GwkbHhsxGzYb +OBs6GzwbPhtAG0IbRxtIG0obTBtOG2MbZRtnG2kbaxuBG7IbtBu5G7sbvRu/G8EbwxvGG8gbzRvUG+oc +HxxFHEccSRxLHE0cTxxRHFMcWRxiHGQcZxxpHHYcfhyAHIUchxyJHI4ckBySHKAczBzTHNwc4xz5HQYd +HB0lHTAdRB1NHVodaB10HZUdlx2ZHZsdnR2eHaAdoh25Hdod3x3hHeMd5R3nHekd7h3wHf8eFB4WHhge +Gh4cHikeMh49HkgeUR5YHnAeex6EHokenB60HsUexx7JHssezR7aHuIe7h7wHvIe9B8DHwwfDh8RHxMf +NB9IH1MfYR9rH3gffx+BH4MfiB+KH48fkR+TH5UfpB+xH8Afwh/EH8Yfzh/gH+kf7iABIA4gECASIBQg +JyAwIDUgQCBJIE4gUyBkIGYgaCBqIGwgjSCqILUgxyDbIOog6yDtIO8g8CDyIPQg9iD4IRYhKiEzITUh +RiFIIUohTCFOIVAhUiFUIVYhZCFpIWshdCF5IYMhlCGWIZghmiGcIbEhwiHEIcYhyCHKId8h6CHvIgci +GCIaIhwiHiIgIi8iQCJCIkQiRiJIIk8iYCJiImQiZiJoInkieyJ9In8igSKMIp0inyKhIqMipSLBItIi +1CLWItgi2iLmIwcjESMbIyUjRCNGI0gjSiNMI04jUCNSI1sjbiNwI3EjeiOBI5wjqSPNI9Mj8CP9I/8k +AiQEJAckCSQiJDskRCRJJFIkWSRxJJIklCSWJJgkmiScJJ4koCTAJNkk5iToJOsk7STwJPIlECUxJTMl +NSU3JTklOyU9JT8lXyV4JYUlhyWKJYwljyWRJbIltCW2JbgluiW8Jb4lwCXoJgkmFiYYJjEmMyY1Jjcm +OSY7Jj0mPyZBJkMmRSZHJkkmYiZkJmYmaCZqJmwmbiZwJnImdCZ2JngmeiaXJrYmzyb4JxYnKidHJ2En +fieZJ8InwyfEJ+Un5yfpJ+sn7SfvJ/En8ygSKCooNyg5KDwoPihBKEMoZChmKGgoaihsKG4ocChzKJIo +qii3KLkovCi+KMEowyjgKOIo5CjnKOko6yjuKQQpESkyKTQpNik5KTwpPilBKUQpYilvKX0piimMKY8p +kSmUKZcpsSnSKdQp1inZKdsp3SngKeMqAioaKicqKSosKi4qMSozKlQqVipYKlsqXSpfKmIqZSqDKpoq +pyqpKqwqriqxKrMqvCq/KwYrCCsKKwwrDisQKxIrFCsWKxgrGiscKx4rICsiKyQrJisoKyorLCsuKzAr +Mis0KzYrOCs6KzwrPytBK0MrRStHK0krSytUK1YrWStnK3ArdSt+K4EryCvKK8wrzivQK9Ir1CvWK9gr +2ivcK94r4CviK+Qr5ivoK+or7CvuK/Ar8iv0K/Yr+Cv6K/wr/iwALAIsBCwGLAgsCiwMLBUsGCxhLGMs +ZSxnLGksayxtLG8scSxzLHUsdyx5LHssfSx/LIEsgyyFLIcsiSyLLI0sjyyRLJMslSyXLJksnCyeLKAs +oiykLKYsqCyxLLQs/S0ALQMtBi0JLQwtDy0SLRUtGC0bLR4tIS0kLSctKi0tLTAtMy02LTktPC0/LUIt +RS1ILUstTi1RLVQtVy1aLV0tYC1jLWYthi2eLeEt+C4PLi8uTy5vLoYupS6xLtEu3i78LwYvJi88L0kv +bC+AL5Qvti/KL+Iv+TAGMCYwRjBSMGgwgDCgMLQw0TDuMPcw+jD/MQExAzEMMQ8xFDEWMRgxITEkMZkx +mzGdMZ8xoTGjMaUxpzGpMasxrTGvMbExszG1MbcxuTG7Mb0xvzHBMcMxxTHHMckxyzHNMc8x0THUMdYx +2DHbMd0x3zHhMeMx5THoMeox7DHuMfAx8jH0Mfcx+TH7Mf0x/zIBMgMyBTIIMgoyDDIOMhAyGTIcMpEy +lDKXMpoynTKgMqMypjKpMqwyrzKyMrUyuDK7Mr4ywTLEMscyyjLNMtAy0zLWMtky3DLfMuIy5TLoMusy +7jLxMvMy9jL5Mvwy/zMCMwUzCDMLMw4zETMUMxczGjMdMyAzIzMmMykzLDMvMzIzNTM4MzszPTM/M0Ez +QzNFM0czSTNLM00zTzNRM1MzVTNXM1kzWzNdM18zYTNjM2UzZzNpM2szbTNvM3gzejN8M34zgDOCM4Qz +hjOIM4ozjDOOM5AzkjOUM5YzmDOaM5wznjOgM6IzpDOmM6gzsTOzM7QzvTPAM8EzyjPNM84z1zPcAAAA +AAAAAgIAAAAAAAAGJQAAAAAAAAAAAAAAAAAAM+s diff --git a/Spotlight/SpotlightPlaylistEntry.h b/Spotlight/SpotlightPlaylistEntry.h index e34e8e0ce..4debf0097 100644 --- a/Spotlight/SpotlightPlaylistEntry.h +++ b/Spotlight/SpotlightPlaylistEntry.h @@ -12,9 +12,11 @@ @interface SpotlightPlaylistEntry : PlaylistEntry { NSNumber *length; + NSString *spotlightTrack; } + (SpotlightPlaylistEntry *)playlistEntryWithMetadataItem:(NSMetadataItem *)metadataItem; @property(retain, readwrite) NSNumber *length; +@property(retain) NSString *spotlightTrack; @end diff --git a/Spotlight/SpotlightPlaylistEntry.m b/Spotlight/SpotlightPlaylistEntry.m index af2af31ca..02ec4b2e9 100644 --- a/Spotlight/SpotlightPlaylistEntry.m +++ b/Spotlight/SpotlightPlaylistEntry.m @@ -24,11 +24,15 @@ static NSDictionary *importKeys; // Extract the artist name from the authors array NSArray *artistTransform = [NSArray arrayWithObjects:@"artist", @"AuthorToArtistTransformer", nil]; + + // Track numbers must sometimes be converted from NSNumber to NSString + NSArray *trackTransform = + [NSArray arrayWithObjects:@"spotlightTrack", @"NumberToStringTransformer", nil]; importKeys = [[NSDictionary dictionaryWithObjectsAndKeys: @"title", @"kMDItemTitle", @"album", @"kMDItemAlbum", - @"track", @"kMDItemAudioTrackNumber", + trackTransform, @"kMDItemAudioTrackNumber", @"year", @"kMDItemRecordingYear", @"genre", @"kMDItemMusicalGenre", @"length", @"kMDItemDurationSeconds", @@ -82,5 +86,6 @@ static NSDictionary *importKeys; } @synthesize length; +@synthesize spotlightTrack; @end \ No newline at end of file diff --git a/Spotlight/SpotlightTransformers.h b/Spotlight/SpotlightTransformers.h index 338948047..e562fe0ff 100644 --- a/Spotlight/SpotlightTransformers.h +++ b/Spotlight/SpotlightTransformers.h @@ -25,4 +25,7 @@ @end @interface StringToSearchScopeTransformer: NSValueTransformer {} +@end + +@interface NumberToStringTransformer: NSValueTransformer {} @end \ No newline at end of file diff --git a/Spotlight/SpotlightTransformers.m b/Spotlight/SpotlightTransformers.m index 77f7afe1b..6b5b5c15d 100644 --- a/Spotlight/SpotlightTransformers.m +++ b/Spotlight/SpotlightTransformers.m @@ -84,4 +84,24 @@ static SpotlightWindowController * searchController; return [NSArray arrayWithObject: scope]; } +@end + +@implementation NumberToStringTransformer + ++ (Class)transformedValueClass { return [NSString class]; } ++ (BOOL)allowsReverseTransformation { return NO; } + +// Convert from NSNumber to NSString +- (id)transformedValue:(id)value { + if (value == nil) return nil; + + // If there's an NS/CFNumber hiding in here... + if([value respondsToSelector:@selector(stringValue:)]) + { + return [value stringValue]; + } + + return value; +} + @end \ No newline at end of file