From 6a4ba006eae20fd9b454b4b6d0fbd1cb87bb279b Mon Sep 17 00:00:00 2001 From: brian dunnington Date: Sun, 15 Mar 2015 16:51:04 -0700 Subject: [PATCH] cleanup after export to GitHub --- .gitignore | 155 +++++++ .../AIR/src/.FlashDevelop_AS3_cache | 67 ---- .../Javascript/GrowlFlashConnector.zip | Bin 0 -> 33799 bytes .../NET/Growl_NET_Connector_SDK.zip | Bin 0 -> 81526 bytes .../NET/libraries/Growl.Connector.dll | Bin 61440 -> 50176 bytes .../NET/libraries/Growl.CoreLibrary.dll | Bin 28672 -> 16896 bytes Growl Connectors/WinRT/Growl.WinRT/Class1.cs | 12 + .../WinRT/Growl.WinRT/Growl.WinRT.csproj | 119 ++++++ .../WinRT/Growl.WinRT/Growl.WinRT.sln | 38 ++ .../Growl.WinRT/Properties/AssemblyInfo.cs | 29 ++ .../Feed Subscription Plugin.csproj | 92 +++++ .../Feed Subscription Plugin.sln | 25 ++ .../Feed Subscription Plugin/FeedInfo.cs | 75 ++++ .../Feed Subscription Plugin/FeedItem.cs | 73 ++++ .../FeedSubscription.cs | 375 +++++++++++++++++ .../FeedSubscriptionHandler.cs | 96 +++++ .../FeedSubscriptionSettings.Designer.cs | 170 ++++++++ .../FeedSubscriptionSettings.cs | 181 +++++++++ .../FeedSubscriptionSettings.resx | 120 ++++++ .../GenericFeedParser.cs | 162 ++++++++ .../NotificationQueue.cs | 60 +++ .../Properties/AssemblyInfo.cs | 35 ++ .../Properties/Resources.Designer.cs | 70 ++++ .../Properties/Resources.resx | 124 ++++++ .../Feed Subscription Plugin/README.txt | 77 ++++ .../Resources/rss.png | Bin 0 -> 3927 bytes .../Rfc822DateTime.cs | 242 +++++++++++ .../Feed Subscription Plugin/feed.xml | 22 + .../Feed Subscription Plugin/formats.xml | 132 ++++++ .../libraries/Growl.Connector.dll | Bin 0 -> 50176 bytes .../libraries/Growl.CoreLibrary.dll | Bin 0 -> 16896 bytes .../libraries/Growl.Destinations.dll | Bin 0 -> 19456 bytes .../subscriber_feed.xml | 22 + .../Growl for Windows - Display SDK.zip | Bin 0 -> 106673 bytes .../libraries/Growl.CoreLibrary.dll | Bin 28672 -> 16896 bytes .../libraries/Growl.DisplayStyle.dll | Bin 53248 -> 39424 bytes .../Webhook Plugin/Properties/AssemblyInfo.cs | 35 ++ .../Properties/Resources.Designer.cs | 70 ++++ .../Webhook Plugin/Properties/Resources.resx | 124 ++++++ .../Webhook Plugin/QuerystringBuilder.cs | 63 +++ Growl Extras/Webhook Plugin/README.txt | 77 ++++ .../Webhook Plugin/Resources/internet.png | Bin 0 -> 6805 bytes .../Webhook Plugin/Webhook Plugin.csproj | 83 ++++ .../Webhook Plugin/Webhook Plugin.sln | 25 ++ .../Webhook Plugin/WebhookDestination.cs | 159 ++++++++ .../Webhook Plugin/WebhookForwardHandler.cs | 113 ++++++ Growl Extras/Webhook Plugin/WebhookInputs.cs | 203 ++++++++++ .../Webhook Plugin/WebhookInputs.resx | 120 ++++++ .../libraries/Growl.Connector.dll | Bin 0 -> 50176 bytes .../libraries/Growl.CoreLibrary.dll | Bin 0 -> 16896 bytes .../libraries/Growl.Destinations.dll | Bin 0 -> 19456 bytes Growl Extras/Webhook Plugin/webhook.xml | 22 + .../growlnotify/growlnotify - com/Program.cs | 14 + .../Properties/AssemblyInfo.cs | 33 ++ .../growlnotify - com.csproj | 66 +++ .../growlnotify/growlnotify - exe/Program.cs | 346 ++++++++++++++++ .../Properties/AssemblyInfo.cs | 33 ++ .../Properties/Resources.Designer.cs | 85 ++++ .../Properties/Resources.resx | 124 ++++++ .../growlnotify/growlnotify - exe/example.txt | 14 + .../growlnotify - exe.csproj | 101 +++++ .../growlnotify/growlnotify - exe/save.txt | 301 ++++++++++++++ .../growlnotify/growlnotify - exe/usage.txt | 115 ++++++ Growl Extras/growlnotify/growlnotify.com | Bin 0 -> 73216 bytes Growl Extras/growlnotify/growlnotify.exe | Bin 0 -> 73216 bytes Growl Extras/growlnotify/growlnotify.sln | 26 ++ Growl Extras/growlnotify/growlnotify.zip | Bin 0 -> 61550 bytes Growl Extras/growlnotify/t.bat | 5 + Growl/Growl.Connector/Growl.Connector.csproj | 8 +- .../Growl.CoreLibrary.csproj | 8 +- Growl/Growl.Daemon/Growl.Daemon.csproj | 8 +- .../Growl.Destinations.csproj | 7 +- .../Properties/Resources.Designer.cs | 2 +- .../Growl.DisplayStyle.csproj | 7 +- .../Growl.Displays.Plain.csproj | 7 +- .../Properties/Resources.Designer.cs | 2 +- .../Growl.Displays.Smokestack.csproj | 7 +- .../Properties/Resources.Designer.cs | 2 +- .../Growl.Displays.Standard.csproj | 7 +- .../Growl.Displays.Toast.csproj | 7 +- .../Growl.Displays.Visor.csproj | 7 +- .../Growl.Localization.de-DE.csproj | 7 +- .../Growl.Localization.en-GB.csproj | 7 +- .../Growl.Localization.fr-FR.csproj | 7 +- .../Growl.Localization.ja-JP.csproj | 7 +- .../Growl.Localization.ko-KR.csproj | 7 +- .../Growl.Localization.nb-NO.csproj | 7 +- .../Growl.Localization.nl-NL.csproj | 7 +- Growl/Growl.UDPLegacy/Growl.UDPLegacy.csproj | 7 +- Growl/Growl.sln | 5 +- Growl/Growl/FormResources.Designer.cs | 2 +- Growl/Growl/Growl.csproj | 7 +- Growl/Growl/Properties/Resources.Designer.cs | 2 +- Growl/Growl/Properties/Settings.Designer.cs | 4 +- .../Test App/Properties/Resources.Designer.cs | 2 +- .../Test App/Properties/Settings.Designer.cs | 4 +- Growl/Test App/Test App.csproj | 7 +- .../Properties/Resources.Designer.cs | 44 +- .../Properties/Settings.Designer.cs | 24 +- Growl/Test Server/Test Server.csproj | 8 +- .../Windows Deployment.vdproj | 378 ++++++++---------- 101 files changed, 5195 insertions(+), 357 deletions(-) create mode 100644 .gitignore delete mode 100644 Growl Connectors/AIR/src/.FlashDevelop_AS3_cache create mode 100644 Growl Connectors/Javascript/GrowlFlashConnector.zip create mode 100644 Growl Connectors/NET/Growl_NET_Connector_SDK.zip create mode 100644 Growl Connectors/WinRT/Growl.WinRT/Class1.cs create mode 100644 Growl Connectors/WinRT/Growl.WinRT/Growl.WinRT.csproj create mode 100644 Growl Connectors/WinRT/Growl.WinRT/Growl.WinRT.sln create mode 100644 Growl Connectors/WinRT/Growl.WinRT/Properties/AssemblyInfo.cs create mode 100644 Growl Extras/Feed Subscription Plugin/Feed Subscription Plugin.csproj create mode 100644 Growl Extras/Feed Subscription Plugin/Feed Subscription Plugin.sln create mode 100644 Growl Extras/Feed Subscription Plugin/FeedInfo.cs create mode 100644 Growl Extras/Feed Subscription Plugin/FeedItem.cs create mode 100644 Growl Extras/Feed Subscription Plugin/FeedSubscription.cs create mode 100644 Growl Extras/Feed Subscription Plugin/FeedSubscriptionHandler.cs create mode 100644 Growl Extras/Feed Subscription Plugin/FeedSubscriptionSettings.Designer.cs create mode 100644 Growl Extras/Feed Subscription Plugin/FeedSubscriptionSettings.cs create mode 100644 Growl Extras/Feed Subscription Plugin/FeedSubscriptionSettings.resx create mode 100644 Growl Extras/Feed Subscription Plugin/GenericFeedParser.cs create mode 100644 Growl Extras/Feed Subscription Plugin/NotificationQueue.cs create mode 100644 Growl Extras/Feed Subscription Plugin/Properties/AssemblyInfo.cs create mode 100644 Growl Extras/Feed Subscription Plugin/Properties/Resources.Designer.cs create mode 100644 Growl Extras/Feed Subscription Plugin/Properties/Resources.resx create mode 100644 Growl Extras/Feed Subscription Plugin/README.txt create mode 100644 Growl Extras/Feed Subscription Plugin/Resources/rss.png create mode 100644 Growl Extras/Feed Subscription Plugin/Rfc822DateTime.cs create mode 100644 Growl Extras/Feed Subscription Plugin/feed.xml create mode 100644 Growl Extras/Feed Subscription Plugin/formats.xml create mode 100644 Growl Extras/Feed Subscription Plugin/libraries/Growl.Connector.dll create mode 100644 Growl Extras/Feed Subscription Plugin/libraries/Growl.CoreLibrary.dll create mode 100644 Growl Extras/Feed Subscription Plugin/libraries/Growl.Destinations.dll create mode 100644 Growl Extras/Feed Subscription Plugin/subscriber_feed.xml create mode 100644 Growl Extras/Growl Display SDK/Growl for Windows - Display SDK.zip create mode 100644 Growl Extras/Webhook Plugin/Properties/AssemblyInfo.cs create mode 100644 Growl Extras/Webhook Plugin/Properties/Resources.Designer.cs create mode 100644 Growl Extras/Webhook Plugin/Properties/Resources.resx create mode 100644 Growl Extras/Webhook Plugin/QuerystringBuilder.cs create mode 100644 Growl Extras/Webhook Plugin/README.txt create mode 100644 Growl Extras/Webhook Plugin/Resources/internet.png create mode 100644 Growl Extras/Webhook Plugin/Webhook Plugin.csproj create mode 100644 Growl Extras/Webhook Plugin/Webhook Plugin.sln create mode 100644 Growl Extras/Webhook Plugin/WebhookDestination.cs create mode 100644 Growl Extras/Webhook Plugin/WebhookForwardHandler.cs create mode 100644 Growl Extras/Webhook Plugin/WebhookInputs.cs create mode 100644 Growl Extras/Webhook Plugin/WebhookInputs.resx create mode 100644 Growl Extras/Webhook Plugin/libraries/Growl.Connector.dll create mode 100644 Growl Extras/Webhook Plugin/libraries/Growl.CoreLibrary.dll create mode 100644 Growl Extras/Webhook Plugin/libraries/Growl.Destinations.dll create mode 100644 Growl Extras/Webhook Plugin/webhook.xml create mode 100644 Growl Extras/growlnotify/growlnotify - com/Program.cs create mode 100644 Growl Extras/growlnotify/growlnotify - com/Properties/AssemblyInfo.cs create mode 100644 Growl Extras/growlnotify/growlnotify - com/growlnotify - com.csproj create mode 100644 Growl Extras/growlnotify/growlnotify - exe/Program.cs create mode 100644 Growl Extras/growlnotify/growlnotify - exe/Properties/AssemblyInfo.cs create mode 100644 Growl Extras/growlnotify/growlnotify - exe/Properties/Resources.Designer.cs create mode 100644 Growl Extras/growlnotify/growlnotify - exe/Properties/Resources.resx create mode 100644 Growl Extras/growlnotify/growlnotify - exe/example.txt create mode 100644 Growl Extras/growlnotify/growlnotify - exe/growlnotify - exe.csproj create mode 100644 Growl Extras/growlnotify/growlnotify - exe/save.txt create mode 100644 Growl Extras/growlnotify/growlnotify - exe/usage.txt create mode 100644 Growl Extras/growlnotify/growlnotify.com create mode 100644 Growl Extras/growlnotify/growlnotify.exe create mode 100644 Growl Extras/growlnotify/growlnotify.sln create mode 100644 Growl Extras/growlnotify/growlnotify.zip create mode 100644 Growl Extras/growlnotify/t.bat diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cfa5003 --- /dev/null +++ b/.gitignore @@ -0,0 +1,155 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +build/ +[Bb]in/ +[Oo]bj/ + +# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets +!packages/*/build/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +######################*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +# ========================= +# Windows detritus +# ========================= + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac stuff +.DS_Store + +/SkyCast.IFE.Apps/SkyCast.IFE.EntertainmentApp/BundleArtifacts +/SkyCast.IFE.Apps/SkyCast.IFE.MusicApp/BundleArtifacts +/SkyCast.IFE.Apps/Perf +/SkyCast.IFE.Utility/SkyCast.IFE.UtilityBrokeredProxyStub/SkyCast.IFE.UtilityBrokeredComponent.winmd diff --git a/Growl Connectors/AIR/src/.FlashDevelop_AS3_cache b/Growl Connectors/AIR/src/.FlashDevelop_AS3_cache deleted file mode 100644 index 116f622..0000000 --- a/Growl Connectors/AIR/src/.FlashDevelop_AS3_cache +++ /dev/null @@ -1,67 +0,0 @@ - -#file-cache D:\_Growl\Growl Connectors\AIR\src\EncryptionAlgorithm.as -package{public class EncryptionAlgorithm{public static var PlainText : String;public static var AES : String;public static var DES : String;public static var TripleDES : String;}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\FlashSocket.as -package{import flash.external.ExternalInterface;import flash.events.*;import flash.net.Socket;import flash.utils.ByteArray;internal class FlashSocket extends EventDispatcher{private var socket : RemotingSocket;private var id : String;public function FlashSocket (id:String);private function remotingSocketHandler (event:RemotingEvent) : void;public function writeString (str:String) : void;public function write (bytes:ByteArray) : void;public function disconnect () : void;public function connect (host:String, port:int) : void;}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\GNTPResponseEvent.as -package{import flash.events.Event;public class GNTPResponseEvent extends Event{public static const RESPONSE : String;public var message : String;public var gntpSocket : GNTPSocket;public function GNTPResponseEvent (message:String, gntpSocket:GNTPSocket);public function clone () : Event;}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\GNTPSocket.as -package{import flash.external.ExternalInterface;import flash.events.*;import flash.net.Socket;import flash.utils.ByteArray;internal class GNTPSocket extends EventDispatcher{public var id : String;public var waitForCallback : Boolean;private var socket : RemotingSocket;public function GNTPSocket (id:String, waitForCallback:Boolean);private function remotingSocketHandler (event:RemotingEvent) : void;public function writeString (str:String) : void;public function write (bytes:ByteArray) : void;public function disconnect () : void;public function connect (host:String, port:int) : void;}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\GrowlAIRConnector.as -package{import com.hurlant.util.der.ByteString;import flash.events.*;import flash.external.ExternalInterface;import flash.system.Capabilities;import flash.system.System;import flash.utils.ByteArray;import SocketManager;public class GrowlAIRConnector extends EventDispatcher{private var host : String;private var port : int;private var sm : SocketManager;private var password : String;private var passwordHashAlgorithm : String;private var encryptionAlgorithm : String;private var responseRegex : RegExp;private var headerRegex : RegExp;private const HEADER_APPLICATION_NAME : String;public function GrowlAIRConnector (host:String, port:int);public function register (application:Object, notificationTypes:Array) : void;public function notify (appName:String, notification:Object) : void;public function setPassword (password:String) : void;public function setPasswordHashAlgorithm (passwordHashAlgorithm:String) : void;public function setEncryptionAlgorithm (encryptionAlgorithm:String) : void;private function addOriginHeaders (mb:MessageBuilder) : MessageBuilder;private function gntpResponseHandler (event:GNTPResponseEvent) : void;private function handleEvent (event:Event, ...rest) : void;private function parseUTCDate (value:String) : Date;private function parseResponse (response:String) : Object;}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\GrowlCallbackResponseEvent.as -package{import flash.events.Event;public class GrowlCallbackResponseEvent extends Event{public static const CALLBACK_RESPONSE : String;public var notificationID : String;public var action : String;public var context : String;public var contextType : String;public var timestamp : Date;public function GrowlCallbackResponseEvent (notificationID:String, action:String, context:String, contextType:String, timestamp:Date);}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\GrowlErrorResponseEvent.as -package{import flash.events.Event;public class GrowlErrorResponseEvent extends Event{public static const ERROR_RESPONSE : String;public var errorCode : int;public var errorDescription : String;public function GrowlErrorResponseEvent (errorCode:int, errorDescription:String);}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\GrowlOKResponseEvent.as -package{import flash.events.Event;public class GrowlOKResponseEvent extends Event{public static const OK_RESPONSE : String;public function GrowlOKResponseEvent ();}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\HashAlgorithm.as -package{public class HashAlgorithm{public static var MD5 : String;public static var SHA1 : String;}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\MessageBuilder.as -package{import com.hurlant.crypto.symmetric.CBCMode;import com.hurlant.crypto.symmetric.ECBMode;import com.hurlant.crypto.symmetric.ICipher;import com.hurlant.crypto.symmetric.ISymmetricKey;import com.hurlant.crypto.symmetric.IVMode;import flash.utils.ByteArray;import com.hurlant.crypto.symmetric.IMode;import com.hurlant.crypto.symmetric.NullPad;import com.hurlant.crypto.symmetric.AESKey;import com.hurlant.crypto.symmetric.DESKey;import com.hurlant.crypto.symmetric.TripleDESKey;import com.hurlant.crypto.hash.MD5;import com.hurlant.crypto.hash.SHA1;import com.hurlant.crypto.hash.IHash;import com.hurlant.util.Hex;public class MessageBuilder{private var messageType : String;private var password : String;private var keyHashAlgorithm : String;private var encryptionAlgorithm : String;private var bytes : ByteArray;public function MessageBuilder (messageType:String, password:String, keyHashAlgorithm:String, encryptionAlgorithm:String);public function addHeader (name:String, value:String) : void;public function addBlankLine () : void;public function getBytes () : ByteArray;public function toString () : String;private function getHasher (name:String) : IHash;private function getCipher (key:ByteArray) : IMode;private function getCipherWithIV (key:ByteArray, iv:ByteArray) : IMode;private function getKeyFromSize (key:ByteArray, size:int) : ByteArray;private function getJSFunctionName (functionName:String) : String;}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\MessageType.as -package{public class MessageType{public static var Register : String;public static var Notify : String;}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\PlainTextKey.as -package{import com.hurlant.crypto.symmetric.ISymmetricKey;import flash.utils.ByteArray;public class PlainTextKey implements ISymmetricKey{public function PlainTextKey ();public function encrypt (block:ByteArray, index:uint = 0) : void;public function decrypt (block:ByteArray, index:uint = 0) : void;public function getBlockSize () : uint;public function toString () : String;public function dispose () : void;}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\PlainTextMode.as -package{import com.hurlant.crypto.symmetric.IMode;import com.hurlant.crypto.symmetric.IPad;import com.hurlant.crypto.symmetric.ISymmetricKey;import com.hurlant.crypto.symmetric.IVMode;import com.hurlant.crypto.symmetric.NullPad;import flash.utils.ByteArray;public class PlainTextMode extends IVMode implements IMode{public function PlainTextMode ();public function encrypt (block:ByteArray) : void;public function decrypt (block:ByteArray) : void;public function toString () : String;}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\RemotingEvent.as -package{import flash.events.Event;/** -* This custom Event class adds a message property to a basic Event. -*/ -public class RemotingEvent extends Event{/** -* The name of the new RemotingEvent type. -*/ -public static const REMOTING : String;/** -* A text message that can be passed to an event handler - * with this event object. -*/ -public var message : String;/** -* Constructor. - * @param message The text to display when the alarm goes off. -*/ -public function RemotingEvent (message:String);/** -* Creates and returns a copy of the current instance. - * @return A copy of the current instance. -*/ -public function clone () : Event;/** -* Returns a String containing all the properties of the current - * instance. - * @return A string representation of the current instance. -*/ -public function toString () : String;}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\RemotingSocket.as -package{import flash.events.*;import flash.net.Socket;import flash.system.Security;import flash.utils.ByteArray;import flash.external.ExternalInterface;public class RemotingSocket extends Socket{private var _queue : Array;public function RemotingSocket ();/** -* Helper function to write to a socket -*/ -public function write (ba:ByteArray) : void;/** -* When socket connects, send out any buffered messages -*/ -private function connectHandler (event:Event) : void;/** -* Received data, create a new event to send it on -*/ -private function dataHandler (event:ProgressEvent) : void;}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\ResponseType.as -package{public class ResponseType{public static var OK : String;public static var Callback : String;public static var Error : String;}} -#file-cache D:\_Growl\Growl Connectors\AIR\src\SocketManager.as -package{import flash.events.*;import flash.net.Socket;import flash.utils.ByteArray;import flash.utils.Dictionary;import flash.external.ExternalInterface;public class SocketManager extends EventDispatcher{private var sockets : Dictionary;private var host : String;private var port : int;public function SocketManager ();public function setServer (host:String, port:int) : void;public function send (bytes:ByteArray, waitForCallback:Boolean) : void;private function disconnectHandler (id:String) : void;}} \ No newline at end of file diff --git a/Growl Connectors/Javascript/GrowlFlashConnector.zip b/Growl Connectors/Javascript/GrowlFlashConnector.zip new file mode 100644 index 0000000000000000000000000000000000000000..bbede006f1f05cacfd08e5960690e3274d4b8ba5 GIT binary patch literal 33799 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�p}IzC!Nst) zi+r*R-$sSrU^Wq69cBqUnPg#IPIl3Z)7ctfj>RS$jbK~JR8*2yuN&RfP1eREg9vE8NDyd2+tX;3#${GGG<<`@LF|9$zy zKlyL^0p5&EA`BwH3W&pOdR$xuaz`zWITYHb2<|2YLV*%VNnCV6iDX(J4T8E&H`&M*?W#~jL61D(;S>O_FMBsI#U{b#BQtQzw?x<#lXwR9Uq_ zYD3uXz1iC1LP+|(i&B4AiM#l^$kgD(8Vu(nixtIHchMeKg(=bI%rGGl@;wH)M*@H$;efiX1gtxbQfL!dwifk5&IV3#34v5$en5G5YR9v8vVUzU!_xJ*^mmhDVtBJ?AH zDFLnwDZt1LL5Kwg9C{8nKU0IY9*&lUhvqX3k5`00)atrwixj0=n>;#N7r8nu^=)QH zI?v6LF6|`CO!nUO-2$aLo5$||DACF2ie%|n<(0DQySlS=BW^Z4fnFZ-Kd@i7;+)jH zH=adiEZ_wBfdd2;rV|Kv0F%A|2*b$p38XG22mA|jFxEtu*4H#o^lfE}t5#$4`G_Zv`40|XQR000O8 zE>FKc%<>+#OjZB@0Pp|+9RL6TY-wV0VRC6@b1z47Z+C1iLvLl8}S|Ar2v7A=VLk@*8n3vtAB~ zBSK(;xIrAofH}+`q)g&qCsmMG1Y%VHS8;6=J3#EJTrS(G*cB&bcvZ;fWbwt%DE)FX{xT-4Ap3=QRu_kOQX)g|Z+yFx>0f`madSisGfa^(kg^)r?o=`POg@v({MB%^#h4QS*NW?my!9PpgtO=(fj>9_nh$D`-|&Otl9R`8E+q)uMcQqwVI0-_(FKv2%UzFrbRDpL<4FwssnWx zHGsN|nm|3EjRJLUrWq{)rK7b`>(z!W1#JZ#1ziO_1=9+0zmqgQAc938OMuH6S7n$HCgrcEa(PxC{ zwgip@t^~fpuqH&2Wca?Ci?-k&3DXz6g*VSC`ghF73a47p$%F+ZlFht~CQB@4ohQrf z(snr29@kEmSO+?_%evuIcU(JJV(sa?Vs2M7d?TDjOKLaG zYO2WUrDcj~B=c8bCy@Dq7ujNHURE@P+82%btb!4g3H1shs1PL3O`x$93sXX*CR4%v z-LYK3I8Y`_nilmC;Ug_@z-k&;nf1Yf8B8ZMQ_zCLz)A~x2}Cmze%V9~swSwS`rj~u z8O+28uh9tRfwI*ap_ZDCxfjL2X(Gq=E-n#^pO!e*b~SVc9fq+UMtbxsOsJ2#rt3=z zsbChCW`!qO(ITn{d$kBNwxWgnUIM|*#w6y@t6tF}yQ3CzjOJn?so-$T?)x;m)Pb_o zo*mgw9&;*)b2rI39ixrH|MXF~UX4lym*8?WeIO-PD!&Z^VlWD?jXx%Za;M-3Or?fb zJrNx93Bp#MOsr4y#AmkE4P7%5iLYE@s6GC1Q{Dj~u zLLng(6rq?9ii%K52qi_Bk`SgSnIPuOgP6%i;y)l*z*8(0a1Kj>P)-Qx_!K5|CxlGA zo(Vk(AsgSygy{*PXvEJmr5BXrK{4ZZm{LW-D|kUa9Do~J@jmiE)(^nHjD!BJH9y`3~hDwvO@8opO_ zE!!bU`Ic`(P}t_IV#d#Cfro`=crP%;cW9j!)>$1TtXYA5^VX_!WF5SbeX2Q4dP_xm z3)zX$8~ihi#0q{+ut^g!f}_zd`YNK3y=%zYHMHhVBBe5R*(nntIEHGhvLoxb}Sqo^kR&B%QCaEfRXe?kk%M#Cpz*Gr(l#5JLaJqt16-??Y zi3?Q}p*taTclZ?fm#`r(?yt*M!N(AVCEFOHe5f`?FqSk*+BmH?Ek^rgn@iYRz0evd z^ZIq85eT(^o8o1`Ih;>XZl!EExQ9qAevQTN8Nn}Lqa0OUo>^!435K0PRW@K3e(ogoVh|{K@(!Is0qZehS8O(xocUn?WpEn;CzM};Y5) z*obP2;`KUd@)_QZ7DHIQGDoPL*UA-ENozSr$zYX&=ZJP(pq}_X=f{x_MyudX1--om zdhvFypgwBPcY^^4<;q?rXI4KMAdF7rQIIL>Hg#_ny$Ir2VE^Z0P zQZfnFqTPZH$rjy$+ZJtRqG+?0%mOS|F~9%|en2yoc@D2EdQY@dnZ3kdUl#i(_EOd0 zU8>v3#3jj4l;h||i^H`o4pzLdO}?&0w&U$YMg;PZ5XEnxbY_d0W2sEWQi+VE@)%1c zDpr!tSZo%S@;BH;{)_D5e9>taeD0gm(p63mekR)LA&;1rqRsYviK9y^Knr=^7$WFn z%z62EFD)bfm|hKv9^Um@v=q)s5rU2!8VBNNIlKA3e3G7&BXT*9PlCIKD)T9&d1xCd zvu^Y)R>4?iOrJX@WcQlS_JuPBtyr9KkQdg_JqCqC^HP>RYFn_Okp)yQ{zt_V- zT^@UUNz(bi6OrXmc5*5zY%TZ(7OCk7l9n!yl0!mRi9b`E;yp;FLGz9?BrF*5v1VuB z&uj7VL?Aaq>>$&@w5;GyFyJ{@$|6Y`xd5iYl%qN}YB(LLqt!~*&=Ycu0%RR+hLX6s z6`ji>t(_W>#ylQi6g+FIG<_#!vr=+KCHN**alIC=#I$x!OKJjAu2(9{YQcL8Viq2) zu?AAy0D%UV3l4efIOI|0iru=NGMblyV1`8_%o z1RPwb>BUgeTXbISI#ABE&Z{!3+C|G zsU*`OJ3g0$ijPf6DAGzGfN-Je*^joaDugI_@kSHzfhk8~ycx-Ol$?9PCE(`7 zO>P9y(-@AVrmc}nl7(A-I$D=#UsBpq>6~_tMf1L_)vevAo*h@?M3-WW{BbY9-;JAa^@ZE3rsnbq~yd-yRZj`l`%i7_M z3UXP-6Uux=iDNc4kk)x}As280gyVS#+}8*MZaULce?vj9xrtdLHenzxnawNI0Gkx# z@&*lardH~_Sx@QBZ>a_h2U`ivs3J4$>mb~i5N;Ih+=iBen56CzxRc6h{tgBk+$_|o zetb?NE5bPv%0qa!N^~4a49M-&3A~m0$T7)`aYmYW{>Fgv#GJMoqdb@$-69#voo+5t z9>@^Oy;?5!CZ#nLu}Ut}@c|pSjO)|2;JQ|!OAGEu3Njm#bD~%(Dts=v9<#AH0kGtL ze=DYB*ZMWRRH_7bVIabd1ph#be@Rns-YodQu>&Ac#?8`rZjq|p4nT*d9ZDlNCmLa7 ztu~Byw1F|Kb=2RYI&4n}+ZAC)LfFxv)0YT#L#Og8=x))v8>(0!+>;Q}>gwj+M9G=> zEN*e1KnyLI!REw^v+@Rq0<5}@F;oI3=j`}KlF@-#c({bpFnWALUGo@{++iAY8qIP| zP3D|u(%h%AZM3gr$Tl$Xa&kA*zFNs>JYjjWlEtk^<1RH#jqm4uNT(D$3_blwi?5=_ z&E3#KHA}ln^FBt&)f02Q=D>b^ z%6PuZb>UGuhuL%~pR#dh+IWeDb-;QSn%+Va%esw7VBdspw#q;{jd;D6;=h-q^Ij>f zZzGS;GS2WrG;G!xCSe#w!x?@A&}@8@*QyP(aE2k9C??Wa?_90Am!=foPSWOF)fs*i zwNDc|Mn=&8ayK5-gHm=8qhwLG5*sLlNW4`Vv+V#-(?XqtZhpSNO_)hsNhx-=i zQ>byGtA$F8ij;cCm)l}%cXSO@@&<0s)BxXujhNxOFENDcyW@v&zx)vG6>hZ;wZgG{ z(evfaHv*SOlvP%E496cY?3b_-QE2ic-W?628PaM=h;HDzCcW)2XGbGIkbjdNOR^!Z z_Qfg42I%RN_9e*cMX%s*Mk&zAE3lV|EfeTF>GwMQR;0$$4f<^+Y->vX>8h^i52pA$ zBA!Vxt=0Y}deZ?y?CYRwiVr^cp?;N+5B#f2@Gy?cqk_Na94J%w6pO0)V9RG~XnW$9 zYfF9xgC@6rSh_Xr8DSX;p`BJ6Cige=fVN3*8^t26`Plf1n?7H$XF`uX<123Ze8uDK z9zCdde0;@C<11Q0tWO1{8ZHja;1Qrb!7UJh0=zYqqSr*SO_^=nRCMX&AqFWyB*z%mihYGlv3UX)R74-J|!?epZNKbpNC{!^7GsL{PD9TpO4WZ zAKZ=>&&u?)tNrni_MJHg?C(G<&(W)#GlFMW;HjgLmo5`CHYYji^J2!E3H}E$qbH^C z{oz%SL-0k>fIx^2CYP!;)$&4*U zW7oS1Hj5@p=P;IwE#>mBv}(IkE=IVd|BEPG)sw$oto~UfVBwON%Id#9_NS#@ZFB=kpr}imL&FP$)=8V&a)z$}}8G6O^ z!9)i?5WVk79C!GLi&dO$yHiO1^n!>=DWs%0yjr2BIhGN;306+D1{7CwjNm6A0ND$K z(^baS%Fq#JRR}Snw-kAgBJb%S-(iHkQc7W2#)B}Y;sWVFT}^(48ih4`MFsc_fy4}$j|KcEf88>O_wXxs_x`-JVAkz6SSyXX~BD(7YD zeNJ>YW`jy^1noLb*jDsyOgOp+OZeHC?_5O*St{#>mMaaQ@n_)vGPqYi&mDg(;2V-Z zs?#HAX}50-?1<7YkDBlR?~YCJ4ITmJNcn-;{$|ehbcEZxaKr@^ug2u`MPz zOWm=pBhQGhaawn5oPY)&KsQ!qtS=q^6V=(#Zp@O>D%!{I$E+8_Hy%I_I!Pt>XZcy8 z4|^`gAUhPZ4?RZb_ajT^FF|RWFFrC((HQH?@|bRWOn2g#lu0LJR_C|JBzfWPk;lxs zH0CTf8B>R8RI$Skln5dF75y_5rN6g+G@m%5L+iS3r(75L zZ4ZC;tI1eEe!$=JO8Asj5d5*PCgdI123o;f?4il}Z*Q%i@{cLRTQiWIRxUW*V6%{E z5mGOTSfW0^L7wkrd(*v{`mv42TX?_Abfs|bnJeZ|WT)8Z)g9MdfmD>#PA3R&*O1eH zMEr`E@N<|?Qa6!lLC6}uKykaHXTYZtJhd8&FYA;@e-9 zDw9d<+7L^KcYynJ((4b2L;QX^(W^N@pYU;N%3DT#xzeZCn|33L#1z0zQ)=xX4J6v_ zpiNJd?9IrhIV5E2jzKE^5uvUVQ8@QVr50&=VMc5P8spB-niNjGUA z`XRdM(hMeO@kOOYqinRa=$lG=yT6R~I(3&#$^Y(`=H|<_y z$FdzePVAUC8*$1KFG{S&TWmQCga*Y@Y!O*9lAOc@s12b&ftCQJ(1sRh(l&jxKv@bc z`x15tl)dl@eY6Ey3hjdeg~I=wGjpXYFA(_k^Zz`8znXJq=FFLyGc)JRy|T%7rY@;!bXG1nRubFi#RD0&0 zTywc~bDp_mz?or+)mg|HiC#xKUXM^CSXnxbJrkW<>=lYzbf<|u5!t~`%VBg7Ah{=h z?PRDH{mSH6XTH>X2g-?^XGuLJPO-08QMSqE0w*f87Wi)-8@@j8j zjSDyAn2f003&!~mizl!PiupWLqc;LQ6_>to0BU3jE^=o`YTaX5VvsA z)z*CM+1c-%8IO(#(zr;#R6^5U(SsW<%|-k(Ou6CAPyn zTaEx%t5}2d3?nW~2KXhoW^#uH<-;FzhwdVGDEb?$UboypPn4N^M~Yi%pr^~sy)(tl zRd?NzJR^C6aOv_AR9pXhq2F}j-d9H22=PP3VXloxq* zS(-+VOwmZ_lM78Aq0cw8PTx)v@-*rW>ip@eA$h-rO+!8JskMJ22PLE4Zmc(p7YP@j zC-E+5uN8`WD~iDvu-%Y{`nK>h*j8&z{Cp$FRGnL2YK}cD(ujJsPvY{cl@thh6?z-g>2vuE0k7#Y*UUV5+9Bp*fFjktdx+B0#D{!V+JroWb8Hh~YkxJf~O5VlEdnrlNrPdOcOz0rU z3&excrXJ834@kyC8sj0!cu;;mEI%Ki&t>YaN7)YUlY)twf0D?pw~0@RB(n<|#pOB8 z1uji_@8TuZ9%R+VVagTE!>OJ;!pVb_d=!$GIA7Hs0zW_*k4eq=^HPI$na{K#`XEsj z3V-7{7?{;!q+y)jrRCxggNx!J5_*xWIZI!YEM8EkRCW#Z!^nPKiLkfK0`&8;6wS{w z@_x7w#Cur=`ShS*zJX2JrU+qC>{T{}aM^ivl@3GgW5COnbrEl_)*i_VqCTTA_rGUh ziN{H?XK=9^J}D?jF4ltiX1QMH!V&AldR?I!V%c_d$ZDy#^JB@YtS5l4vJL@XWjzUU zFX_NKji9|}Wr!Vvb)!#^LWWq6md+{6HN=L9!s^-bDZR1wNg92YYZ7wJLax}O-C$`D z&+Kt-p3uzd2{~DZG{zyxcv53jyvz&QZ@n=CeMNSL)9EDEf@=Apoh&~5=J!Nd-7x7KCg>-#^ zE+fAf)${^3q#}VQR(9-EyZ#-h)1INh*7D9z&wG~gb`kQ^|040yno||Lf`J@5zs{*^aW@d> z*%W7?n_f$feUjqL#{Sbj>CDRLvCDljBlmc1?b-GmDR&+}K#k3JBwH%PS_e|Ka!vN!DEhTVQ$~-m@DqiOOJkjF zay1MdEf_pn#KJ==52-vEN|H@9FA+{Yo@sC!)_p_KepiFwSK!aH$a`PMUv&D@G!6Vd z-29fa+&^rvaAoRy1+?y#QCp>C`f7cf8vP5%uNLIil{r*)G;n)z z7)|_r0r8y=@qGbRcor{WQ>xyxFwU30PCm>(R`Ydg9n?d58xQ?_{kwXC{7O1`6p`{> zy`QJv)q|G4ueK=Su>p_m_C*Z~8MF!b* zd>3u_7SyDwzYneniRTkltNXpUsNgoFFGEYOY6;VO5Bwj_r?S5M=BzB5*ncUD=^-_> z9t9EL;Tqw%rCAYtG-Ey&O2xP`5B)ceanR`b-N^zS-^i_G%N`jast&0}*v>f4_)W%3 z7=O%oQ2j5&H`T`wKfrW0{Lb)@!2*kNow?a?Pwqp8Y$&%rWH7?%E-HT>FQD=BpA4d?GQyoz*C75+70pZG9KtHbM#f_qI~jMF2@{;YfbqwS z_cK1jm{m3?9_2*$Z5SAw)zLi%Te+33S&CaGhQGNZTTV5)=j3UGxG)x%U7Gy$!*^%T*ekKMs} z0j}4JWr#WnsZxx2)`5Z>NSy0!z%rEgbxCby>RU+F!X{jYSy=K4q_SWDMmg^nTrvpT zarSL+CsKJZ2)kecOFqtdAvm2|_&ri~lzckZdzWkt?P{|ccJq0e#Yey;@+b&UP zZhb1v?Q>A3*dfzUgkxL8SkKtXxE@h~2;(V?XET16aUbK2hFOTO8R`+=$Ry5(jGr(n zMnV%~uJJTPr;+BY)VLe50{I2dYkCFK>rJmA22HOcj+x$~woFv(+l-eX`o=Fe6JCS3 zcKmL}-!uM`(UL`2hq!Ls%eay8B*tBg-)6ju@i&Zz82`Zd55~-F!a~M6#%9J%jAM+K zGyaP4MaK6TOLGVpGOlFwF@_i?7%ye~1>>!Zk1#&X_y@*+FsivU3(IqhP0OGyx6GuC zZC@_o`dk{%&5YX^&tU%Loc=N6O^lD_R$$#VmOjLO3zgYzA^y3XzSI&%{*NppCg1oO z)*`gm3$1TK2K>-^hbaU0Tkkim9e>|SW1DFseF|(eJM(Q+cbSdmZiS7cd2Jt=j1a(F zBgDDPb}qAvQMA6-w$Qw8{9YUN?lHzcFn++8YbUH_T*=tW7-c+*aS!7aj5jeJV*EQ} zu7hv^V<+Pv;~3-ljNe17fS)*0wkoXgUL8l|3jW8A(|~mDGp!q6;v{Ti^f3k*udoxI z&glynuVNf@5JoxoX5_3Lztfqr>U%l;sFOzKNvCH2HE^w~2*>b77mehvU8h-%aIfn$ zO#jw3VO8K|*KWkDe8OY$zhyNV|DI3sKg@5mtsDQCF%x}mjh|C6j`}+pOBt&eYYS*4 zE-L7+bkrQML zF%C2CD5Q10t8j%~fioHRFkZp<rS>Sc1sJG{!%WtmMs6FWWo+v1D0|vmQFeIrK)F*xM!b6XOA-4od2m#$P}sJT9p_jW;0moTMH#-U?Oldr3WGyaTD%CH3Ff z-W+&GQg35>bKqk^0hsQCYFIv(s7oQ+^e|Fx3L#)Oj?&+8g&tyRg6(Ah|sk)+C%dbmtdE6wwi2Kexi0w-{n@Dj)h;<39ZRqn&B=<{VA6yd%d9E zW2#tEpXTmIszOpZc|^^V)GVeNCDp)GlcbJis##J!OnD`>Est7QE2(efEjKm8MoC?k zcQjG~rY?n_<+Ykx;AN)7NVLKS^;-X`O|4*Bpiy-u4-_P+M$>AjW@-|4m9+3Z0-f zq-1u2Q&8q>E&HJxW=ZN6%K@b3Na}9PLl0k4k1=%=Q)ilAvW%K~piSnzg}U@WhonBS zT!~b_q^#CcOl#ppK|zCc9I5k}I>;->2TvcNX??EA2e}Km1vtjK$J7r;GbL8edT3uL zN}g)nXIc-3m=gWl0Dlwp%-2~TGi`u>iafZ}`Yck*8;RPDRJCa%oYg4u9{TqUossJ`AU{u-1n;`Weo zm^VXok!Y{iR$|@)JcnirYK@8cjFqF$YTB*Y@S5maI55q!9(QX=n<&vV^Gy-jc;(3q4Ez2}LAF@Q@y<`j3rV;p5 z*Io=Pdhxrsv%XuG%#YyT)qz01I5!MMfrAf%7vtu{xmee0mv)yp3 zq~3Odau(bzsSH;pQV&at&WCTnQ<9?d;T!OhXaR~{%dBUE`0u_Cd zm{Pv#YPX&T<`tsedRLeAeDE6qsNUbC2sv5Y(&b9TEFf($NB?^N$P#1ehBADsxbc?>y@xiQuC0y z3T~HFU;ahbtKnHmg^~IZyq#=eDeQv}k`&4SRB(>lAGgy?QuC@LgRwk+6Sg(WEjuq6+`43uegtwE_UHaFP@bgTvEBi7N$NxE-LO1KW!Ub6P0d8z2Q;@2!ahmS+&&Dy zU}`tqp5JVJ6z-SQ!$>_2FG=dfe4FhMC6jaeTS?K}Hd~)bQkT1mZO-*hBsb zH!>ym-M_*$t)k@11zo1Uf~`%X4q#lmJ4sz#$>d?Km5Le-w3 zG=5c3rG;jDrm~5tJy4G%hV|Z&_0BG-GnFU>-5T|Py;PYm zsq;!OK2mxl^+4X^_Ss4}Nj+_ZO032e%6%e_ z&&CzXLZ7IYZQA5mq3rdg>U~Aom!zsqUr}yIQgx=Im3xv@qv=@XNv4FiEuQGmuZdCM zoich7B+`e&`7o2xKbbW-{RXFhKbv-{PcWSUijnSzO~%j5HA1P8e#=a*k=}`O8tFH} zRB)|#W`7wJdVbqPEv`3Fi$T-mGC#CxsKUwRluneV(o^dS&e_bl%tZQAZYJicsQ;Pe zsnO`mJ>0a=t`j#Q7P&YfPuy^a)Ll$TcLNKYHsiZbA1 z$7Gq)+lDr$_d2QWqt5BeKU_g&p5s2gtV{nXi7LENK@#4opw>k$trrFUTuHfqtDIan zl{Ub8l~n7`TxL-Lp|HtmWFCg)&(tqZ6>-*9rKb&2vYzuJ%XAz~hk+^$RUJo_wNhzA zTCT^Po}QX(NRyD_Xzk843!k07RHw<8n~SNn^fD)NGFU=pnuL@k8<>;9t5UPWN2)Yb z;a{B2os&v0$Cxjy_qq}-t>M|szl?X__0w`PcsI_JyYXZ>V$U>44z-20 z`Wc#NxyRS2Q_?ER5u+hEA}w}u{VDl*`*}4~zyYA>>Uzdo8SiF%2=M?s$>|puUuArQ z@$ZZuGAasT7NZ?8=%_#pJLW0mBV+-gi?NikQTeE>*69M*>;=v_&^WugpynS zsqxNW(qQF)*| z=4w=)DnG?V>2bst%Qqqaypppp{bqR+Y=k>!o#(n+c@Jw{1$Ory*F#FF`@60u6}oBN z$RpgSEO76~*7wi8*L5xg+>aps&3ef7fGXHYLS#fm!My0IcVP~T59FXhNBk8|GX;_V*+313gU$bIA`;x2yAME)L{psU+FXSj;^t#`Mkk72M)HmBzeL zxvkH@!dTjc@ptIt<Vf=464Jw26sdMfvBkIM6co^@-{1bn}0W6^G5+i-Q&)}jN7Yj(8g zaltrlyqobM#wXR63w~Pk z0;gYPe1q}tj3276&$+AUL-n0Gl>Ug*YV}8$&aXa*>H6x&5LZ<{U1T?`t9}vFCsl7U zeW>oN4m&!I4cgh_P~GDjJq}( zZm;PwZ8Y46xCb7o87LvFGx<@^yNW`HJ4#MA{JW+J#thE6^lO0=ut~ANP8dWy6~c() za53U;_#Wap@I%D&;YP#@;St13;7!EKAV;;J?)8XQLLcHj*pB#9oKXv015Y7d2k#-? z2rh#KZhxh4aA0xg4PawXF5sn2ufVoBsd<^T1qj-)L*#) z@dM>(iy2DQHxb?H+lX`2cM)sV4-xCtPY@TX2CEsCsAk0FY98WIssnMQT8P-DmLj&R z6;=y$s5O{AM_p<&!};n8#0%A95ie8Q5cjHH#49;>ALsrQbFruDFs2_=3+-ljR4qk3 zq*fq4t=1quuht>H!nI!GTCcOrzp4w7|Bkv8G1ox3HUs6l3?y^8;cdGG+6^?q9fn3n z1MGsxtOocBWFVdiI}mf=o{|P|!efY4@FHRz=k_tSLN?+WScW(NJ&17#A|B7V+mK^W z`wX||x8=2ByLY?#GL{xK7yQF;akKjMAG6Nrx&&vNc`-r@X{v(VM*>T&hEPIN_FKX6^+`jzVr*E6oaxpMMb z^CS7!=0BJJYW^Gf@8o})pH+}w;43(};K9P&qPn7vqBDvvExMxU+M@p{`mhL!=N7jV zZ!P|P@oU8&7w49Al$=l!E{T<#UUEgr4g5X;z{{=xVpcxkG5JI2x6t3JGoznnM=z@o zBlb$9=0G;ghddl13oHN|zjd|{9Iyz-Z!zS0=;W}9jN?|Y~p&f3LE?qk?2fJ-v~zJ-+-th*97F5X93-o z5tEBw+zsje@r2#B>qnD0ns#&O)9FC5)xWQ_!l4fqtU_y-in+ zNWVL!4AT{iRmfA(KFcvpUbc#sM_7kBD%2xSMQfdl*Z}hokH8!S?Y0injhKV+8=?xw zV2%pMB2Pu@T@3W?pQVT`XxA$41Wkx-xOZUG3P&TZ!m=vbcr!}yV!n#DPS}h2==Woe z3L7v-LC?~Q>Em!8QE}(!MBD`3h$o=$s=(I}RoIL*R2YPQ#GOFzx{P5x6;H+E5l_Ri zDtsMFsW5@Qp8{tfs6;I1SOkWHkOkaekz;|%BQt|xUhUxFZ zFs3hMyaJ-g`2nH|KZKJpeI=rb{&5`BS0k!;DvlyP13M7kK)qCW6L(S-{(^d`cpiQo z@t>%d0`D_^hljE+lYC}9xQ2Lv?&)O z$I56|zJnYGVm8{1)7j+gbZ&MIIe+3T&M(jJ&R>_mHUC$IcNTuFXsqbDVtYwpNqtF6 zNya!uU*bR7;ZAnYgLjQ1xSN^O^Qzz>!(^TULrfN+br#}JF)FS2PjY8XE8?LeU7U z364Q~&>slKpmj8!hz?7_6N_Qd-e7zr8i@y?EfgOK`^UQc!$If_#^e6MU>`~&36g9X z4TZU4WFR&+LOED@G@O7|e>l9wKd`OMpYXT%Q5Ngt**Os8Qlh1{V0<7J5)55i&51-T zv}H6AgyxZvu%@#n5xc~HMO5D*-`Ge{h-{4pf{^Srx2$!iH#iUsZ4U-K+k=rryFU^L zQ};ztl+l;)C#0IGQPb+C*O8i}F}0GcN>3~ljfE0pX~O`mG(_}QVn>E>`2F#r=I|gD z8yehZ_otSDDujR@q_561_hv2bV$su52Fhe4XrI)8Xn^eHuWsrl)|sm3WlX~A%CkjBpw z86B1)8d5sP8&(G+LF^iIgyM-48?_R>qme{tIM~pKdH!(d6fx7@B#GvXhQT8Iv9S{u zK_Ix*k8O7P2ZlnCARDG+^+mTPcKBn{^40}oaS|-qJz;-hYcw{jFRJmhqQklt;(F2X zNis+D!bT=Z8Q{g`Lvu}zSvJJ@ z(|WCEXc`bNt-pGPzEJCQs-`lg=+qntcq2nNQHfw6#r8#oImMwbnBe?GNT0tdrtLK> zp*1=@9F5FSeRAgHx~$hsbth%&>tePxO0;fb!@}y2t&NMGtsn8U(VjfgX`?)Ogr^RuDWewFrsZUp#d_ss6UJwYA7=3ZR441o+Kzf4Uftt zGm{(?5Emar`MBYDGQ~VrLrbvb37z7pB%7M1Vq8yf8>DkwOR%NsI}o4DNX>7WAx!EI z1C?e?Svjc0o6{LhGO(1dBNTHNYI~aHv(mCl8(o0Uqmpo_-icj8&ajT}bafywf2?MK^ zu9l`!dgIeI(AMm0-rVkKZu9hR?&FMycHd9&@&@;TPSfZ=j=UpW^eVbdm`@4K;JW(x;)8_5#>1f_K zO^&ClxuwI?md>2g46VI1+UNCkOp@gDY?!1+pU>O6W@9?9r`Oxv>-A0Iwstpnc=}qs zU8|?G)Y{z9(bC+yhNh~&!#6{w&)ezg^EG$&%#e>AnyTOA+|9m?J)W5wXzpF@`P}-V zP|~QpZJsVF@99nPIy_ygeeHmQu-eF)JubdQ*PUx(&J(Jt4}8yp-B`(vJ+BQbRM$mc@0VlcQ9V!=VrPU+;K&%7!+8VN{p zyFUz}IJ$Uvx`g5_VSi*>2cC79W*P9TW0_DqEuaX+ zbuOkj>Dcj16Q$cd#kn<*81;vfhY`D=;>eJ?igZd}L8mn=Sh~gqL#L@=Oy5z=nl3}0 zhiO^7@1}Fu(U#5X`Xc(F^+B)yB;C{WPSbe?eP_@$U8_~>(y%7MWTX_(MPPieBy*CK zK1d72yVpP{l8kktFrW``V!F^m3@;XsYYD*-A*P%$Sy`O^dP$tGZzn#PK_&E|j8fW4wCgUOR z?L%(@_f&5ep8MXm&6D^4&gKr9xwQ7ul#s>6ECV|yUCkYv`#ina>}KA@lfu_{HbSSj zuaC}8N|Q*`xJ`3aWL}!`?ah7do0~gU(`nq^nU>}0YVF-9_VrYOG{2diwg1lahfRn75<9*8}TO zLr;>T3P~cMyE9^w(b1!^aN1JuN4jq)IvNhF2?j?}S25iq!PI>Z6$(b^Dj>kSK-;7S zJi0tBt$lWReCxY=*Cdro*@k8TYr4AElaC~p)f9%#;&6!ieeF0mXf4Tdx;aYn^pgX= z)*f+qd%8PeC>l?2G&d5BCA3H)-Gfhy7}iWzVhR)Y4071JlN*+H(SBN-_nPFTqdySXtRrK=;pq0Dp2J&pTJdy_tdY*t-xem@ zr@GT-ND)txG>sDosnVE+?WLCzX%1FL( z2nXuk2KT;bRyrPeHcA2d0Bfn9)%znsz_rcF)kBJrtVotu$%sP&)pTAEaT#PO$PRP2 zg9cjU!SwiE0$MTTu^G&LuR;_LqWqm$AOW3ipKcWSR05d>`nTYgxV@>_mh!2UogIlr zt1E^Njb2{}Um6>I(N>mX$Q`t|HX4A}^{#Ln8BVDR(?6`Fo}u9J&!G>C)j8sU%P1hZ zyt{ZQsb#_Q`6`Rx=44g5H%s8`y@v~d$Z+BVX@m0<@f0+_AV<2SnKTO)+y`-T$F77C zlK3MWXm*&i7sx)gP%{}gH45~UpGz1+Lj+72T@Y*NQg`vKR1@~*21#69Y~?ywt;&_! zvPY5yCNZO+J_NgT7onV;rB>i`2dCu^85RW?@0Rf5VuzZXwSR=&*?C*|HoW0`*Xm(1 z<_8k3vE}=}r*qrShbdT>xVMXoUX`vl50mBk(H_1{ew8h@aTkAl);XLXO<>T{>e59< znOrtC1&g^dVKvLGpLCW{vQV{{ViS*W)aJ3q>gM*Y6tt6Aa68$dH;KNkd&m61qFL~l zfvuEx#&9oDxbzqhBY)~Jv6T5k#(n0ONQ3&8<@jR0duo%Sn$GmIYQ79iF(Q@f`B&~(smW^!5}L>&Mp$( z(vI-w@B@|RtAk9M7Ah3D`Akj{*1gEHp>eU@i8M03DUA@EWCU1v9jq18(7%5F%OI~v&%9&D>Hc-EDYR? zGS)u4JSGZT!e0Xtsr1X^78^`loTqYE-Ma;w^Zi(PJgEynIZ+zUw4gz+SFquq+?=TL zk;$m-M-dBYiWqV$D)z1uk_5&A_FYyiIQQ{4yG;DX$>!AgUXoC7yxSw*ABC$C(T9S_ z(TS8&_DHmTrvh`iaaJ|ZKwR?q8A0NQCBBj1Swiny~i=;KoBO7o{dZ` z6-S8cVKi9dPXGnnJ?J>LJ+$3uDB8kaIv_VHO9x5!Ub_`1cl82J^!vG<56JN8byj=P z=i$V?_GwDKn)Z@!G_K1L)fCwY* z-~>U_PzzzfBcn_@d-1;rCOcQaDhfKzj>n^b^ zcUG-4gcowKu7!4((mJ6a3!`eGK?eYFbB7d}pc%#!un9u+R^pD@(D9_^8BCo_c0U>_ z5?8QE>1B^({58pV=$=1ai&FA7CB@*nG7qvvMpEuJnus8ePD4$_wCA!WA2S11{ zJXw(2P+VWeir+JkUa}Fv1=; z8E%avcqfU#^^FD|&>%sE>x`62e`wqx=4IQo)Tkr8*}d8U2hFB|64A`cR4<{(us(`_ zwyw;=DF3SP932ZXjMGo>5>NplU zC>wtx%KlQ=K@w-Hpl|pJ7e@-XfYU+HE@GX^O7yq~_+m$aCB00ZAz5_=^E-0d7KU}T zk2v}uTXMSy^>h#-?bhPt95|&cX5DO9ZN?D?A@Y(xBMmdm!MFvzd@;y)Z?_!Yk$7Al ze6#0OW%~dUSx%McPy`Le%{j5=Yop7Cf+<~6Un7#zQ=k#NkVILHVB-T~ZvUl-adbfm zh>D_^y%lyyRxVlh@V$V3*lcoDp+cLDW^* zp)N9d&-G8^E+Bk6gpizoPlGv1M2Tw^d2C0GVx7tssK9LXqpIVBx8tw@MAo-nj9g@3RFuvYM>una@|KpUR}rV(46Z&qIj!QHpd>6H1LGU-_W zmwKK0;Flq-|CqNQ4}axKP&=E`EsdW8u7epDEYIrHg^$xuWfU~!FV>-3;*FLvrxz+d zJHs!ec&dT5`k5=yGT0vTWOO6H2TyKj45T55TcIceXXpWn@AHcW`p|t{0Jt*1 z^RpNFxiYlsNnJ2zc=M!hg)ln+&5X|8-vUgBP182 z?{BO*Zyj6w!HFdq*P^^N{ee(+)DxeznP%!gZ#Ii$fg47AhbsDv{2W7Ct@At zlCoese}8bDY#MLiU;j1kk3i949j@^YGIsz$8KwwGwlPCFSG8d_#L-;ufKrCsomUIM zJ{?+Sa!%w2YGH=7mbk;|)`Z@qm!M~F!xM?QiwJeJLlwrGE6vbMqA_ES|CtH^v|Xw? znb4${DL==ik9P5??bALwb8RRKUVlLd&`seY(u8VKD}Mg?>)x4-rMNjXzdoH*{g0$T zq`9Sr;Oz}SI?Hm?;Bks+IjoYi^>FlcE+3J3>4EUg5oKtn?#O1uA8#@{Do;G1h5wQ& z#z}C-HsZ>HY1j6SVUzwSTrQb&CNiTCqfRl~vI-ZIUmaO8lk7P;)_JE!gOW7W5f}$- z8+Am`hR04H54f9k_%#a8_-tIWPmzxL{8a;jIR~dVu(e)b!3fP7c0S*0l4#lB8IxbG zF4dpMFHO7HJ>aiZiz%Pdp;KGTgQ0I@e}8Xj4h+RRQ|+Z$Ry+h5AB>I4mE2_&8g1YUkkC6>PQ9I{2sVh#UD_m`i> z_bajTFq_dBfyLYaB2+QiNaIwMwS_*+@bmSu9S@x zYhQ~-@RS5bW2-8p@Y9tEsVATkcoPU+y9j$)d;{jx(A@5O-gPYc?EN?Tf)X>l)azMg zw!CrJ>H(0iT}6{Y7R|DxeY28joJSh*N+<#1c@7$$Ii#j+<<{o=GENp2uOW?Uo5Le?JiFFf2l z3A^v8WnYXxR`mx^t!Aj^tK?RA>p9Ol>9!vnkkf7us-wle4lN3(Zf@u8gsQCLfH|$Kn&k@soiiM-lpy zH1j}m4%E?zAF?^@#upksyb)3;Fc&Al(suc^1h~d7=U(34(XQci zI9I)h2~jjd;Jm9Ox95WdcBO#+k6{AC~S_fLS4OS|! zVxJL%e>2S8%#Aod=5tArGHmf1O$vCR+e(#y0At*;ihX^y4QQrkoUl=%zg0>Ugfz({c~VJ3ku!X~7iv+fkG^B}`me=Vr{lzOgy`yuEIlLhcR!g<+%1#eD zuU9pDm1F9C%7%MA)7_fY5Qq-7hNHi#{QBDJ7uDyHspH+IcxTR9<6`=3j%pdq$!zv5 z(B<_LW9CC(XJw94{}?^`%8ZunbJuy$1U!*ZkDBh6K%ugc*ml5u6s7tzQKC;@`$n{~ zblb7n=d-f>ypDd+&i7&WON3h9mWOnlbtA{7?k}n8>>-b6#ecgPpw@8k2vvqpmV7+- z1yT4v^=VgGcU|rG_x4scCjL#x(R0**B)*nW+Q}sC4phU{=JNSJEO~_8;3JJUa`SSP z0?dDd;Rb?@0e?E~${Ckr!!e4jNL*%$kIEC{^T%X(Jao{wY_XUH3X7LyL}y)WGS5}0 zP|K4rMM;@r;_iD@I0wsD^_X$R-#sQ#82!&D!F;~Hv|rA;L)E3LV-mx=MUFv}iZ z*&RP-Ak}0*qf$?!oY9?G)rBhR_)TfGdNdtGy2lNVjT@|wU~QrXeDo6ur86v#Nj>( z{#^!eJdrViV;|CC>eWv13+3~SQ=j{Hx%23F9%*3;`!~(BvL-}7yu2?ok5v8%E7fOmI)5o+009!V5cJ?CnLvr7R5r-+WlEO zDP2a0UhA#$F&^kp3yw|{fWq$Tl6(cCX@;YO4dNhdB$0ojr7TuM=#U16gcSjtb7l4B zcd2z@j|4W*Ba5L^e@T+;vk;;7jQ=~p>?`M&dft4j|K0zr5C&JlmI=nD9AY`Q&;da* z2F}EUC*r_+|y@?qOVL^Xvjw5JaD2NvX9Z^T-j!tmb5y0%4GbIsDJUSE30s9lU z^cbFFyVOIgD(-{EW?Auey&z4gLraQODmvlZqA7(dj_!oGH4-Y-REf|9f~`XA1HwTK zKv_5kiwU5@g@Jo>3I`XZ*{O&{T)I#@K{|G_1tE8O>Nw3wG$!=bNmME&3#597hU2<) zgDEhRlSG0%8KE#?fj(L4{bYH*UsfQ0zR{@? znUAW09WaZ%_8Z^o@Q>P0D$z}|eTE!ll+1L~(*Qvd z4uW}!GFzOg=!{+(W_YF+lG8?W6S0;QQ=(1zR*b+Rzi7z_cJmnJ{yLDK&|ionkf-Pt zroZe~rV9WPual)aQ5`I|)1l6RaD;MvA3+gR#hJR|<2+vgPIojE8j@V*bY1xz;NkPc zI$U@>@sbiGdq|Lq%S7R$jDC`BZkJ4cksWTGAiT_Yr9AFsSzYN9b+T#NPowmgA(PcM z0(#!&V6?z24B=Zw&LmDdV2KTe=}jc*cD^X%TG5$YUFedI)!w@**1zAiLudSNZz0e}*l||$_T3J@ynF9ci|lp|&pc1{ z`ENzV@>a)ANTgVKk;GXdF%am^vz-EtzPq=$310ha@{+pyif7ySM>av zci-XjeMf2gu$SMY)mCQTML)H<^x*mrxIUNP&9An7A9dL7wO@*Zt5>_}yBr>4vedVo z-}ABdUn3;;baMrfrtk26Hm zjPYjui;VVgS@9HC4wjlZM44KpG-{778z+W10Dxn zaWr;DJ*k}S=$TGRx{^P`vPkNwR*jjSWjF2d{2?#(Mpes(Q_U9b4rredny$x9CF2Wi zjAav{GBtNGnSL`Ia;B61m}H}U2!X4pQEkVWF_kjWgC!a=EksvG^p76}pS-E*Q5!PT zX0@R!Kg3!w#$T$@i63Vg)*!*7N?KXAQxX@pOc}IsN;VUT0=cv$%vtd}!4EWO7dLM= zli#dIhlf^nc1M18N4IEQ>%$P&eys3k-d}zugq?qqCKFQ`QRO)au^IOme+bDGg)j;2 z3COmY9sX8wGnFJQsaglYDD|lPiH(+pL(2wX3Dw$8M4KA4YoT{pp6Y6f%0!*Y81J<8io4h5&-qF(sSm(*%|C7wI#s`p-C2mONF#9m~2^8pmS`|mJ!?es@5!% z$ukxQhb@h5PmDCefxJpGMkd2WHuagyw45QUqI?>@UW~~%d$%lfh7M%3@nJmO7KrsVLFf%+5L@^kt7?H z^n$zj@k}(Ito$qnc(2)gtj{cmg=9g#1Hrg_);$~uA*eC;cC4HTr071m|Au#rPzhAH zb}T3+lUjt8i*DcKEt4O;rw zH$so!cq}esR;Wi45ZG57qX}hVpB_p$4oK|X){s_KA9MB3Q?DW2&dSco;DH$6(}|(n z!fP0(J!5%1uCnUiv6!&d;B`-0taacXvmtpu<6q7pulizVQ_$lZk5v zg-0~o8>dINAl%aHuU^B|bnBJ26Q23d z-P11spIH3+IxCbknK|e1w;zGr(wU2=!Rhbv!hiDe?QR~QH``Z4kh#G_OYZ1w$k(2A z<{FQL-70ptXx18&c*?2mDS!IVdZ^|HI&Ea9z3V*b)hTiA&lkdms5PP)$dCWc1O3=4 zR;JWxYo~Ty%1;};mPp!{56*gqE`b1Yz%LxE$dd=Se*dBTUHkcl+;Tb4D-Wb>rn zq4d6kSsAnur!>F%j|=Ut&h;qTdX(cKn3Rrn`8EHAgo_yu>Gvs*VP9C+;XMWcVVH5E z|3=%?xQlT?pu0z@a+H2~x(P04Yocq$h=;|*8{fFV+NvVni^UZ%ooRo55L(4vTJq3# z@|Wf3Uz)RS@0N5W*J<7Fqp$hKuVx?D%#~hv@0*i*C-~RUSE+tt?*Nv)^2-{9vLi_`oKd=8E zL+fNJ^B**==YK%7TG9T?E2;ebpWZWHe$2@x5);AdNJGXMJTe~QD9H%{gaHCbo^J%g zOalWZejLnz#rt7V@K8jH5{*isn^Z2YwX`=@ms+A}@dH(&)hqI(TB}`J+aDEen?^g% zbKkN^19rawvnxKg-+A6Qov;6lu~|mH4|)Ya!NJ~|J}?g?ljRxV*{K) zUeQp#*pHpx)D1TQ6mOI^T#>-kPw56_J3@8R2@I#5R3*-f83{^z z$|&-^n#0)Y;a?ga^?ImZ`snatw`v?}dYQ0d|2jQbn6g2Z46r2wESX?S2H5}m@!_B8 z#yXwDmkqUGXw4{a4Fd4U(;Eu&)aa=q;bB*|9gv^&noL{_$QKm z%+JU6U;`fvAItIOTwkrv-AaA*r#;N{OjXv;>1}XWbu@o2&gItUFuJZjp3kiB(es*j zp6|I@J8vsx@9SPTTsZw|7QgppCevQl^AMf&H3i4x%cS^IL;W~a8=ud2wY~d0`Se!* zWwbC~EBw~J!+JGbJdGWOUj2XxCmd*hzDZ=#g>e=84p<|S5CShBU0yP@Dj=b z08Gm@9m8(CimMKNfrx``X>cZ$Eix7lm?};kQ?G8=Ev4d*83BBD+Aaao@Om9DPIJ;d z9X73oC#Pp*VutrlX4uxbec>L3<2&qzF;K3-+l);5d6Re{f%2oZQ%Gi){=CblYkBJ0 z?U-7nqt`c`Nu9HJtxTCBS}>=kUoSxcXiaOS6R(a-FAegRm$elg5LQ5cdSRzYee2_5 z2?WZ7sskw${hiN22Vd)mMV@x#v@LogUaUwQsX(tu5GT<|KO{qs+KVLX5s(7Kr@A5i z>cx6LM2sM@=Bli5=Of2zef#(%UenIKPtj50#|%=sC3uB!u}LOkh5(#Ci4)sVki`(h z{)c8ZD^)Z$W%LowDtMG+)Q*K%K?pAGSC+1nkT4r{aZ~ivAEo+GKQIuZv$I7Jd+<6Q(yXvE0OO_E2NG zU>;_m5sLF>nJ3t`B7v9b8>z9#0Psf-b1N~mFE|=681*b&wC4kmY!0OQei&g~sU`g`Rx~Ppv zYcVfkp^B`U*Ttc|1Uv8A4U?M57YTN9qFtq6qmI11faZ8c^V}7in;2=|^+qvhIq`iK-s0owE`vf!H%K=$)igk}d{KlK zTpVgOPtceeDh$8u*fRb7fjz^^qQ=UQ-F{}h-af^97s8{70q5LMu<4O{q^Q_^y+wjE&3f~#lEG^vu(S3%@{@j=yR&^P|}}-mB}gXTZXNEZcD5| z3?yyww?i=<2-m3t#s@6vmQwC-WQgy_$^g@!X@%>Ply22es)zKnqsv?}3r!d-7_ObW z3Z~aXP&Zauar>8!H}?g9i%g#}zKhVSf=sS_N?k8XlhT{IqX|djH~Xp5hM8qkoucU0 z=>AyMNb3YQL|7f^M@FXDD;f2Bt^NadU-UgFY70PZ3)gKnJ9X+MU7f)6FDa~O$$sR0 z7kjJWn)L)0W#gkVTrju<)s)Wbl@iaVZSkPJ)MgfBd`Q2jhuq$$lzrGCu#ny`pF>xP zknIUvP-XjkuMAJ^i|hU19r&qyNv8Yj;Jm_o+OHu!X=f$QM+5r0+(agMpBAV~s#Hi>iXw$?o~D`=Q`Q7)Z&RNp}sn~MfRaqQUg_du>(iH zaiWkslyDxfCl#3_eZ`n}<0PJ&l{MDc8pW$`q9Y6zd3tKPEJZ$>BbJ0~UqxUTfTj!b z2>r1a14A@+(u1UpYtZ&i!WWQTRneLFt4iVLNtva*6R(}1C%OkzKDQ`~qLxphKe*{Q z%b!)2W0db_V`J>zjKi{rh2}gkP6r-Cp{Tk zp%4TWxQuzu)W%3B)?!eMH0tDf3XK#NPwmCv-IWHLK~mwmwMY=-E=KBu9Amn*FbmN7 z32Z0Ghd7E$Fqowqw&}5P(HbM+nkZ+aV~%y+RDk>lm&P;Vo^z}ngWr6{30aL{&J?B- zdt`RupiJ{?pm)V~0C9}JOP-jDEY`Co(+ta@bCTJpXT0S8)|h9)BZAf6{zmX?q=d6f zTi>`^XG|;F1&yh$sbUXbt9%FTt9gZh#$%HR9;bcc!E#J7kMN&@@v7*Jd$gAevhORV z{pOJBd&wDkR=lQ+2O-gWRz}`)jeTO|KP8Qmy-E0o#e3BYx9rELGC3QoK-z?ibM%SJ zU<|odcg&3xs6a6l;AX;W(luY}oQ<~E1YLV2WLk8mT;}a}!Bhm$M$8jE3Zv=FWR)kt zin1k-KM*$Yv~VPUeg7;@}VcmIe}3V#71niH}Se}JZrGt43A zMld#_dhe9t4Lzt+O)j-8MWkEZ68fnVPkv|Nhd&jtq1+d=VWPRJUYf2`Ro#kAdg)$l zmtur5#8IicX^vT5u?I6^FT%HD<5T%{%)d#zn*w_Ju=7-z7*(H#CVk6bhI#vh564l4 zc2K9sk*&g(r`&hg?-{sR-@qQa%xCDHGNgBbZ{UQ(s`rOqL79LyZ1rmUB5hEGUkjTJoHEXREt?-N zL7EE{`|ZBl>V_6i^;eGP#0QP+s^}NFCk^|R|6tkQ;Ehj-Ur@$$2*Z6MH^F$Q#(~=Y z0P=ojGB-`P;_+x6%cO$)be8{S%R-^s*sUBS{t8Vi!5^W7MuO5vHrN;jTkFoyctlriB{9kzc#Y3kV*;S z6VIa$zOF;HZq>#Fihr!@nbP2-&EyU!#)lulbqo3<5Vx!u)?2_6d(RuTH=Lq7nK-on zK&+CEmyf+8lLBaGxSsW0SuTrtz$L zJH^SW(Fo=$Q_50hlWb*sAJUFgvnx~=YSgB8YKUvCSG`knD|p&qu9`-z+D$vx%D2U1 z{&H}{&c)Fb;wATmGF0pZr_ISyp7NXq-*pDlZgRNB&E%RK)k>atO7fJDJOU}9eCG?< z{O0u0r14j6)1Gp%@4$mRig5i}RjN5J?_JGxq zcF~kKxl!;dUanY&`rhG$@Gkf>k7IK?_`?X@h|oQ;eH;bK?*VUxJVL#9^a#j3o)p!( zS$ol&U!gk0gIKH5DR-GV)Pv+dnflhc4YTdj8^POy+r9@!koDMnt;-v=y&Tot)9lp) zSyC}hv={_GWV#p7>S6@Klci=NI;?C7ScDZ{l8U_?;ntW7f?uMFkxR_$1Jas}G@FuR`it!XMe(i8wBWBZj?whwAy> zUI@|vB^-^VuQiU4J|G>bK2YUBy;X+W=Pm{Ou}V4Mbwf8oT-}R z@((n)7;H_$AjkVPxgu_k-##&%9z39KM0V)Va|9YQ-?1pJ+|sUY+Tn)P8O z-5>5r>C-J++{HVY4CHopv1zl7`@5crDG!QW%~iBmAzyC`SC2H@ErdAo;d|)R0=68O zcCu>@G&Q%Hy7<~ALrI<_m^E97@uc){BU?oqHDsxfa=9>2H>M`4KUh*?SL-zjEL}{? zU2)G!yhzfsg}4dHk|EH z+`AJ7Df=pGjwCK+@~UIU56?DE99Q|9DSY1Eu1dShNbvcKOGAgfysy#nz6ll9b($cl zBAztqZ;b=Ch)E6=##0i!+5W#b&M?9mV{LU4$qRVd`ST@K<rQ7P#b?h)!i@mPfdNA}oI}sy&oH?8%d4+AFt;IZ za3Nb;Y7v+#wEnq~RZ9>?_v{RdO!lS~(AAPSghlWIfzSPAk{Owmzlm9W*g? zCp7E^&#ZIqqK=m1nqwO5vo)#I$R^GM4GuiZ(aHvZcKvA)i)#szYd1Yjr`4dx*~A4* z98~k?YW;$X3Rs2n0S>!jTD*gGcu~fXEiPqoMeRLH!8FQKWVyL&>1(9Qpcuj!*zy*R zmV5uL&X4tfka$0var|>Gdr#e0Le48u>volD-fr0sR;ZH5r7l@4YDZ{`#Xshsqkh%b zXMN`ElHfCo0hU2gkd|2il`;$oR2VQK-1p-oVIgnOBq3xf`|w~#^dQ0!k`fSOw>ht0 ziCmX_`}ig9hp)Te9IxBX^PK<8ZS#`yoUK!tbBLJu^BAOW?97K!nN~dpXtAIU{a?69 zJLhssGb>9kJ3lv~wY1G3Jqsau>qtrK+TH#7{#0_ik*wjO*1}tw7{t>HP0=pH}+a1oq%teOW5Kn`oF85zz^K@s#za@ zkYwjf$mI9=+7rrj%-DEY-Koa?tn~QTmTl952M^CF1?>d2S8=QPDpjB5AYr=L>Cate z?X*5p3@4o$)AU%c!eo=pSm(iJ+qjLHiZ>#S5Zx@4Rh#EGnU>HN{0cMc&;O7wv_vK6 zfpl(lnZ3!tWj@Pm0Zzrwim)Q8y=e~-Y!Yi&HMzPz12i^29%Q1E?J_%t!g==PsCQ+ z1+C4`U2xOB5IM6>Psh6HU42S8dt#a}T^-44qk)q{M(c-uPE221b*0DnHfdJQXr5c) zI))$luaDuF54g=bM$$mgiRYM5N*Wa@7(Aw3G?^8WJC~|4wiX@T=Ad1@G?m##biUI3 zh{uSjRx6hU7>yvv*{xD&l-bg;BWWMSd*_~%dycy7fw-T_sZ+m8{RlF zg866phTjR__@MnLE@hrEy>7KFxw)ex}!wbJ9kb_Htj)RaQpFQ_~ZF;(qVWQ$g@@Rp3}FsA>?#?hqHbZnY9E`yI4 z6D__G8YxQIUtMVcG3f=p0?I|X(&V`t>jWV4+;ClGiX9#|&eF}RNRgo-I;q0ozw20N zEh3f`9)dUp-kHy!#!+4_%peM)imW0lystZVS1YNpQ-#egg)Zz2-D%3BJX)3I;8S+q zu>$MEXVQ12S(7xqBDQvo1BvEQYKPfDH)O!5y{7r%^;}bRkH*>9yn!OBZr5Ci!NRp> zx!|pa-Fk-9t(RAcd7LTY0M|q*T?_*n%Uw}pUZ*|Y$0W(us}(+}G(pM|PJo!M=v<9h zhw!3oQ?Hejq0J7~(*QNmc6sm#ha`*(&bzQV!9~6;8==8HaJRgYAa z1C<|M8ngk-^7HtEe_=j+exMbS_1!X zLGIjf2dZufzj!RUT)m&ET^nSrs+B8@EvzJ(!U7@=92=z2lGr_8>Wu$BXZ9PtO7*4^ zXy0ADGZ7uO3gwg+B_npE~<&$O;_ZnS)o>9 zI%vCCHg6T8rJe8nD)Z#-_wB(Mn@j41#ZskDjw?$ejCxr?WDc>S7s~J^<#_>DgI>J~X0fdKCZPMMGD-ouAe+F8f&5U-Gz-Nv1+}7xRslO>8$PESRu9S_^fb-EDYJuG+% z0&i-4eeW<(F(szR zBt=@RlcZ!Dtj%Z27Pvz^xM~l*+gU)AsR%4ZMFle+G*MZpB2Emru+W5~MVIq$yqK^+ zEF7tzI|ZiVBqfOKvDgkyMEoHZB2@9rAVstQDq_V{#UqBGrivmb^97F>N@^x{s#~L= znMh<{^3Lrjec{n?AVLTn(Xilw8wZ4=$Ut}nkfu0qF@huru9WKxe$)iuML@j0&k&Z9 z?^H+<9AX#?4#WfT1^g(OD1wyOWXL4F{3&icgrwXg#4opImfyl1Y%AaJxx^*sCg301 zA2;BNe@=LwUZzB1*YTa==dL}ER+qca_++hgEwAHf`nT&Ylz*rBWAuT&p3h?qdrj`= zx>GuET;Bh={?q?)nmV7$^&XtRcg5p$NOnGd>v!Rz_};&ao}}OHH6P#qq8Z=EkB=#> z=OO-TWlxWnkJEw1?Ux*`Lf_u!mAYF1#n&D z@T<<_ z13|P}J(^F8s%v~JGH;2$wPwRgZ_T>uWF%PB6|}KyGkA*=SEgbkDvm<1~`leC(T&Pjdnlrfwk`kSa#qDEE{n5$_wP1-O5fD?&)pGfqnZ0o(fLg`D|FJ zs$2DjS)UOK0?Wxvv)8qQ->;u-4?`cltHW(Z9*;wV>tZ_h^SbwuNmo(oPq_?8X3?yD z>U!3y=iw)#HQ^YGyxw0vwB#(oPWyh+e_%0&WW`>;<|aOnML2K`UchzOG7ksls^p~?_hNZVWA18gE8V3ec{swjJxLaw|7U0jcXCEq8fCu9> z@z>A4yL0EsA4k(vY}+_c)jnf0zkngY`mXX!o(X^H@ORoYSr@M%%s=<&6i3ebdW44F z^X9?V?@zwk{g?k-M0|25y41z2w$1xaul(Q>ZNK5vtvPp;t$WMS^6@Gw?=v? z_L*&PiQ;yQSf;XtmV4ddXaKcVN|~m$4>JL~=^|)u;mZ~r%}rjG zmjYX)H9j56^G~;Z^N{J64Tn;5lG|-_pd%+Zo=X>ci~B_z$qEKPTnwHhq*T+EZ&NDW zv1hxJQX`O>@ZcidQ{TB#(~h3@aXoK+;|wHSj`AB(E2;cmFJE)5nqUR|*h|*M72w~o zI9E2p@fDij9vr4>`>nCg{~gx<)ONv5a(_7=4&S&5z4ima@jU*^{MO&$|8Efge^MfY z4kO8%twTJ7-fm7Y~}~ctTNvUcmjpAh3>k|s^<}Ze z97$!ZM=a|*hD~+hUG@hISPi@}Hw-LfIafCEhdjG}GW)Y~^8pJ#Yq(_V-K%_?WiJ4d zI4i+{=*(BwESYF}V6Rr%G-YRAL-fHEx@WsKzaX)f+L!jR`}EhdPdm~dT*0qZVh-`< zoUzu94-9gDjj9yO!fV`bR@&txM-Ty??3!XF8|=mZBFqNsFuh!Zb4qNuwC-dZqKUue zixO;zBA6puH1HNQ{1yVo{Q${bW)1H?Df{j&q3Z+=-vE4iF$LFl-^*_risQZf8Ja1t zPL~Npg6{p7g?P0T#X4;f=2Uy(U;0mq_M{VOSZPHQ6)FOrVdXl~Y;~>uK~zPLM=BPG zJt3UMa3!Tu0SSZZCIg7@w0IOR2h5Vvmncx4KxYy0urU>7OIGlrle8@l%Cd@$`%3}(PqpCV)6yn6D-A*B$QF` zdZXdWr-wbvT;*lSQ&3)|!j%}wEUVkUI-`hP!vKm#i2+oWQ$B+D6kJ43**OZR-@aJAAq5E&>8}z7C|Uk zAZ8&09SyOrIJ4BFLM}1ZRHmv{WN)x`UcmC@tRN9;Z_&g&YhXQST2*7<1UO z((ZkcJQE?l%);TH@1O|5t-fA&T};*$zVj3UdW|pEvtQ=r#A_QH@AbQ^*uid>)-ihe*Cv9JiARoCAUlzJLoIFevF9IO*ADq%z+n7LJej#WeG4edrnS( z>#dz_pY2#z=Lo_y#@E564FBZSw4lO-3xd9iBhI)2ciAyio`T@X!WxDCvTC4dy1rGa zSf7>-ee|g2)(rICGgm+9f@eUMSDrXt>5?kp!oaGCnwE%3mU5aw)ydvSg!ry|$(S1U zW28I1K&$pzC%(?K)lbuu5-BZDXjmXmjA|y;bu_uL^DZB~;lRRZcRA%VF9JblhTvSd zt#L=87N?tf((tOmFr=1#D%K?)r>p(TUo#&7ly(Pmiy7#+?#?w$An zd)}jfu(G)WBZM&EBY-|rE(s7U=B8Nlkj0|7%L>+&n2}G0b#9jffx#e=GSCufha8Xe zi!OowMcgoG*?;ZcwX;+_EDYcET}<`|{9aIsE^MfuTnd}*v;Gu4T~tnHD{7FO@IIQ3 zRTurStYhR?W_ZPpi_z!{N2{;ql;OU~&q#&K^}TAJr~NK!@KCWvd$k7;n#I<= zu`+hM^_)WWy)VxtTLTgY6J4I?TIi(yxygf`USs02n=BDr5MU67L_Vb76$kLa5nOnb zl3nxTu-NXypSNzR5vp_><`KumM&lJpU6@aXm6jM!fYSAfT%hv|NxF3Oa(uv-NmsJM zcumlI>EVl0e`<3MgQ^^dEb7u=Tl8fcwb~p>@yyDdt4VfjDd_KQmFSPFGE^Sry!D*h zI6rvl({*~<%rm>G76sqg^7quH%$Pqw&RM6W{xS&=Y!*@hPGD(1m6j1oYF7Om>kvzO>JOnd9sSLcA8SbEnCIvyD zu0@N$k{`Qb4FV69ftlt=qdI+oN>Gt1vLt{Cq*k^OO~lsJ(4IV=#7y|7C&&+Izx<~hK_P>YC@_Pht_~_To4KfUeMRqTXYVdh+PQwVKUZC3vI53)Y zD_UfVXeBMW!Pj=88=_ch8^J>Gu(!ty7wu=KJKa$A{YDqx8kX9g4=NsJYrCl(9;6g zuXJ?C;}d&aT?(yVLa?|sFQ}7T-7Y-c0IzrYL_$IAt}YMPTZ5N_f&-X{|kW$1MlBq62lHkVOFe1;BJ zsa<}gV?El{{&HWJJigVpYL85B!Ikh41S036^h@AJA5;m~&R*RGTigguH21^%GV8lM zVGVa3pGmHW>pfWs1nLsxQ4s5l!Qqi(>W%N6)^yZIhGL&7xYG1+V7KWB(EV}@=`mew zO$|T|N&&RTI3XYRPnLaZ(RY<}!L1ZRRW$hY89;!l19NEyp%iUXmdC;YU{R zbCm`T)TwHPLI^38&YYl*47C5$<#j+^Figt(#Ip$?)`QYTd8lYfnT|*>457jDEaHY< z!O&ELMxw-i6Q*YQ5ca(nFs9~dktQ#Z@R2sDGnnx^(FP7<48%oohimjM#?BxYV>?}{)QLKg*g!RxSuHM33y}6h2KAA!6ud-ePxVB`b52-~cMvM!`y00Ji z<2Iq_UaiOz{# zk&}Zs9z7E`XwP(;xdUIGXXd+TV~OTu=AuVld}-{C&wSGLx$)z1n&Y#vgNPyLya7mo z(tJ@H9L?aA4C^i1WZ+8Z&>tCvM|Nn2THkoi&|mW^@Xm$vc8vo-r zv*wcJq*}X8=LPI{d;Sr>vshfH_q~NHsAvEH*#F9&g^V1`OstLU-weB4%}RFXJ;F<5 z@7tN}jv7js3m~WnE@U{ibz;cr9~-_E#<5=bIYp+|rfc8I+^xTzqqh3tD~Ha~^T*(; zk+96q7g8g3GD^ORe%^5g{norZS`cI6C4u3mb~^MmZ8u&X&|Q_C3W_6gLsbd~5`&&< z9aU$eHaj5!BHWQfw$d9EX3b%Y(S3j73z$QFL5`x0?n zEeLN%m~1}4$Gk(;_8-So%w=-2L3aP-`gLLPRwdd4EnF{h2uPntG?rX`D4v{|G@ds{ zA%?nh*c`{Sn|-VEs5L#jM1Xvv>Plxg7N3KkeeeFAnp%pSY|aM^H362i4<=#awG*p5-IPPQJ4jj>SMdqAc9cgj%h)$HW_)(&8j|Tv)W8# zb#2PBgtWF=eMUjqYeWuB18+64T8O&cM(=6Ic0M!}JP>7a=9Rn@0~PgA%m`6W|9CL9 zJ4NK%u}~EwAOX_v857GsDN87bM3983td1;TeoZw5vL%qK^}&(R#^NKrFMkD9O)p4B zvHg;<60bTyZ_tOC86_XYW~E9$x6$Ha_J;^+1@9`J_?5b?(ERxCG&4hGE`bPdK%b|UrUodk^Vb>1(PR8c9~=VLHmE}d zw+^fL0da6Yf8f4#PMz%`zr_);)0Ntu)L+*}X3b5x_kCaX8jNWC7DG{tP%Xd^I~rJ! z=4ol^u6$f4PFtVOZp5g(OufICegXH6BklO)owa)hsG?bxGsDImLnt~df)Hq{9fd$3 zH9xo^Q^ns8FUvJ8-HPI9(kgu0yG4A_=%@fXflnwqE!LEi21nYVvV5AQL6*mPEb)n5_t4-SXN&)i~ZK0>ZvwsE=T zIQFsXD1YL<-CCJ|U}}1Uo(*fRxpP>b8rS-z$28RPn<-O}ne5-(F-osO`TngreGB7f z_t~$f0twBXfF$X)Bw0=0WQr*_3LJ z6jHkc>z4^=5VXgSef5sSSyxbO6I|2lw?fUhw?sC|8j&e4#=({j2XN$#WRAfdoJQv$ zABA>6kXd-jlCo}LQR2P5#Amg%n_G^*gsORlW`YhW&qLhCF)06EB&nCV@={*^L!N!ekusW60xxJBnbHf->_B~tS}{UeZ%7sC$>V3r@ZL@cU0Op@noF2D+VZWQzP66P+`9Hxd3WE8ZVVzig0%S!~`!0l?f%U7coa+B>A^k3i>qZMWM_1x{;=>H^maLqGA#HQm!#S zP85CP2!ys~GUGre4VASo2ApC!n*@gTI8yJAW1E%Fff?+T(e%JtUj$) zwC-lU_P#E4vWv-tS7HH0Rj~|;%V(EbJ~Dd8x1$abl#n4}1$(U2K>H+kB+fl3Bu;OL z4F}L@sZ#5%ZLJtamTRv{g!^FV3Z-bR$o6fAHS znDVVzTG!y^__NDCfUpD6iU~>^S@t%vys=*->-~~!e~%`q1y2FyHA+25akWetlNxOg zbs3z4cA{3ZN;tnK<48)r{$7_0dCQDKs4)*S#R#eS!SP;Us6a520VJ2~ ziIS0DHwLap!z^6QCj6S;;}K-N%nFffG>`A7Hmf`eY|J+h+UD6v4t!=fHoYSs9>hjb zfg+vs(chT-xDo7xImSi|kXKb4eDvH`L!`CZkw^_oCSqU?Swc(Z$~TdmM{@)MljxZx z7@lMJw%uUhdtUqd4u0&mJbyPF)~Oskb$qw?plu?QTE~J=lEmLVr`4M=^z#==){8fz+PvRwEp)wlle#*n{prI-Pzeq_l&cS6RNKg?} zVCLNfmnDwa$OKsFce^Yiir=jZ9g!Hr(N$IC#s!yp5XO6HRH=ZuvgV03|H?qqOaz55x*@KnYIc(7A}WJR43LPj;om*@C>BIIv&tR8*;+4y#OZo za0T#(fQHz0%gM6AL0LeWd*WfAh%VrDgVJXyfj7%sFA*ztm1VB*3mTl6=f%brs>-KX zX7%@CgLM{+`>mbN@vIBwUQ*C!!fMBipb52Lku`3CdN)c{!hH7vcTT(yv?Sevk!j8}e43tl_uPpgawpPM*N(GsZ=(d#P|9~((?|vWB!{Ieqskfqo&Vnp)Y>A;-B)Iu774?`(48 z$!vN{5m+ic0se+}%=lf{;165b*2ED+WP?JQ^f zi9jwMexZ$xPfr?<{ypp|`L14WhQ`Hlg;wBfa`3paeA5+Rei41y7Mx^Z_0$=4MyAi`F|*orU9;bB$-@^)HW$ zJ~#D25_fu{S;_S+q4>JC+^Ch(qNbl-dHshq9`Kro`YcS6x%}6UAZ406E_dr+24_t# z?-@Ljc|B)3nqEI<@;0*#J?y2N*dCp=J3I!>ZL|8oKhynv6byGZUknZi0C4p7`a!Y( zunoxB+nCtvTfK$9Uh-Y$J@hbb;Fs_mq)7qkoM0pt9!u!b3vh1r&$!JZCgP+KjGp*Rz>s))fW5)GolM z(MQm~c1y?7<_}D>U=P^*I&%O3KQ_>}$@=Z*Z4dp2nX@&rcQi9{_-(cU0Q6i*d43!4 z_6yd(9YgEjZ2j9nh`+sAlA#Lf(Axm1HvmEU=L7XEEooc~-vFzvL-~X>v>zYB$IZtV zC{D)_ifZ^aVUYj?`AL=$(ilrsW0i8BOo2}|f}kGiLFqk@^x3;Gph;7e2AMfM6qL`1 zA&Mj(phgBZ5nO;bxE!O3m7R9{iUf33_{v7wg}jOi24yG=WqX_pBJ*554?ZdTRip_- zhsf$9s=mpL+c(LpNtb2E$-?*LJQyj(f~_m24Mk3rNDbfFpEfYCE^T{L7$1W2^+)z0jn!1anmGS1;FN!1~2csJH=soq7lWwYO>1kO3fxep|4N zZ|NK1pU;MowWIyp_fS418HUV&0I=b4ZsU4OpO*|-XVA98? zL0L`qXbYJ*KrXvo$*)sQjZ#qNc(^5F**XQTUMotF(y57-J>CKfJ|8=BG6_LcS4QzM zv9Mm}a{lny@SBAnE6M)Byu$MJ#j1BprtH4q@uSQB)pc>AL)j7Hau{V5E{GoZ2Jj(w zr%W);kUX>%F%LcB$gI)WX6#igyv3pn7i4&B+LpB~u^oUf{m4)t0qHF#=r0E0po=?VzPhx zIM@7ACm?Cn+42%NxY|pGGNs#&Rwr*Yf`9-V(AylyF0TZlKoSf2AQf%hO`MCje2?_& z_xaDJMDpj~=Z|$wW1#O~^qYbF^CbxW^CkXhnEzGwUbF@D!|8Lh0R2sFO=0j*#9pVhPhe8yOs|!?+ zi55r@gfv<=YB$1vO?BPY=#p03VMuY5(4T74iD?gyLW0 z&}0UbjiHr0qZVs_YqhWUC|#Ea14lYGBaz#||C%KM^SD)zIMM1(ROVpo3V~)i2@R`A zmCj123?$zqhQ9y-D4mTZ2Pk3km9xAWNW&FvAKIHx%(;0$iLM8f*cK5aMpc*?1~{2I zAl(oOZlV1ncs3CjK6t;f#Cr_sdTK^&B-?z%UST{Gn)mFm9N@b1w-{eE)tQ7bJyuKM zYfr;$IEls>;&o<=g(_R=Ot;FEt`7QMyQOF>r;l<({1fkqlp*R}T)1kz#53DU4aCP| z)0$c?%-c7L$dJ5WKWaPaabdSFf-_&`2oOCzGf4|cPi|A<``ls?OAzh8SS!l~_A`@F zFw0H^KQh0^MP*^p9J=(qxyVB~g1}W#$B0lQ%cT8WTbyomTLzgdVX6fZCN2Xf^fmTF zc=&g^yz4RQYV-pmRCU5C{>oXD+?Xf`T3?8v;AIW7Y4_&*!Uhvf_x5{6ZrN@V;XQLt z1EWf;`4Rw!{G2 zB9R*EPkr*7!J5|uRy+MVA9zw*zlLEbWmOr^JL79#mvVDT+F~&3CT&H^s~lii8)>rE zz1+zkLRI8YOf;@pNEzzvohi*h70u(o1|6;yc1AtDE@3?Wfn5Js+y~wG+huPX2PZTD zfZ$(UnF>Y@HgBbzMh>)p;9$S4&smjaYb;g-FV+no^n-jvJ%?>#VJJ@6tihld@WLP? zEYMIMxmKbO*rb)qn(l(Zq?_!_8QlY0y1FkKt*8@8Q;GGMu<+w)%@aPa-&JF=Uki`U z@x?c|?_}^Q<+3;7YT@e{%9iV^qQAlD_s|G|t0{GMnbD{_wp|Q`U~l3^plGDG8&@ve zRj##p56G;wyCJRQ99fReLeT(zga)S$6dH5`rMN@oFH*wtFZKtmaHFULtYBP#p!f=; zpb2h(F}Z??6&mn?-rh2~O%_bxkyZLu^Aq?d@X&oz=nO(F%(j?JI%^XR3MhW8_xo-H zG1^$#S$2L~FWcw%2zM$)C?ixy^t={Q%RX^@>knM}1rO(XK*@eiBBcpsk=n{~?_o4f zU~w`etWVxii!&78Bmta3yGu1A>wb;7jfvoz$hSO-&-0N=y$4V=d8rO2c;>%xliYq^ z)nq2_c`aaUN~i#=0JWw9BX$Am`-M&(@Le0)oP)R;4^j#@!bE2+H5>YfQ%D`>fTwTJ zph-8s@Fzf`PQ)kOoY+wsuQKq%))eN$8Auk6Ah{EC*Gwr- z9G)-D8&tyibPB^`A>Yjd_i9yKP)7}cWC817F@ckFDTFuXF%0-x)dbj?L#JjwF!j$R zTnf$xDWl6H!X;plwM^{43p~uIXxc)SE;D@aY~VdLdY1RxCFru;%fABSEzXZ@Dz`#- zWN)_cqIejB8p@@E0;*HJCY;j@=|C)=RH4IZ6%pi4c1SP~JF#@X?D_ijux^I1RdFU9 zvG#~G5dcRKS4D|qh&jWu^vNptsk7){ggH6JPo?2=9GAA@>un%fC^1P5b8O4$=~Cv6 zjJR{u;z|6M38;kDoDJgEEa%xhqEX>tG<(UawuVuP{lNlt3|C|S&=bwKo`jl|pXvqX z-wyw#(Jw>0$!h8%!6fEE>zIb9-7bIN2HMR}lL|sGKTnFyvw^;Uhit9$#e~bfi{!d0 zoswCL$elg105VlWa#}?tu2%m=GaIp$&%X0wx#H_g-@Q=b-R-gNH{Jx(@WCn?XW3U_ za?x=xx7+kUb;G8|88|=s3x8~7FGB^*+l#F}Olw8mh1;Qu*4$Qq{R6m{b(hiUp1SE% zqt&V5yHgOjQdP2BiXu^TC1;YP7mTvon6-nue<)jt*Kl;Md)uOp-=h5=G3?(5{J(~+ ze+xl>-==c{i07aqOW%>wx4B(*Wkb(m$)lm@;@5}a5)8v0{k8YWcL zP$hB7hP(M&eO@yk{Q)A9VVmOgyv{^`8e-hcR*zFx(TmKEm(z|k6h!OhYJpOI`*>W^ zPUV6D0ckMtU2Bfvy5$z9BL=Wz|&rDBogN&{wA0OLOc$Il{0kD0EuVH$$gMC?| z2L)qd_&%14ga)aiNq=m)a|T@^=(b2)Zh&ZnhDksbwSR=c_9|9WFQ`Y2DpEm2H7+f$ z((XWtig?%#`16Ok9MjHDk95erd-Q^C(C?r+OU^H&;chPOCoX0wKv+jgcJnvZdj}v2 z;JkjYc{zO1$5_@qp9l#$W+2W{@poN~V3bMn5rWA#bveK=;2dSTFzdpbg*7KlwRv37aGy z!Jk;;ajA-eQp~LCf}mYGs8a4orBk&VrA(-o=$XeHLV^^e^jaZ?=XNjcPZJXyYJ)H zjWn!sJEO`OstRo!-awJ1%^mrW8oR^@GE9z--Vabz^lgU45DiF7KmFbOa-0#c_DM&9 z8m0_NNHKd+3Hl}wzhNwCITC&HWi~cpSR|zK{0PA2B0QJ@D6(-rZZ$Q0J(T>n?`vAT zM<0hsrC~v5hxNMVth&@97^JeKk!s?hNQW?(>t@Wc&E4^%OH8U3RE&zH6{o#Gp$m+a zEQ)3T*!u%mt)QT~C7YSmI8afk0^p-JlOxs%G{Z*esWrCXiBvzAceoh8%UNK^QQ z%BW@fsm*$VMyh=I2lDG^c5W0P*%`w?BHRws8zS=zjRn(%)B`Ok*H7XrC-z2wwGw{efUQzr{(n zvdys&>HQWH=V{+bHu`o0jLQM!hO^EhKcbC0Ig^1XS&Svp?Jw?o`key* z{;&=-+FT>x$}JX(?}^_a-1~CeAtyhjRn4zZw9RKGH!smJkOplow=6GOcC2D)#rHWR z(?Y$yv@BOMb(&Kg@VwrpUBHb~wq`@7~MLYR}KM{a`{U2E9ey;m|`*PH`2m2dM?qqTSDhtm_z@ zd?05Hb~qwLF}h&|HhXv_fNR3~|6-Q>F%!XSm;NHPz=>b>*yF6VV%LFe}9&-fslf!oH$zWZrh_t?nGi?P1- z#syE&OYrF8E8gl0^skxMFG)*pEd}lRTP7|4mPrfz)!jhR$kEZv+T>qHhUE%fKQfm# z(IMV&dwb#*3L0g3jc5r4N;oA5)i!*%qniZ`vo?#9NF>l1y6sM~3+V9F1qxzBAclsy z)>zd`x<}Y&RSOtLMNrN$(Td z+S*gy_J#c5DQA_fx;`#XtSI^e)*E((tdryiu151F+^`z5Sei;de$@;M3ms)+ro zT~-`JE0TeYU=0~xJkc#kM?XK7$SQkTd(;l&wUHrtUW1l;ghn(_u(G>3rNJcMDImCuQik<4`n3t)>R-c%&=~>kU^smlWB@Cq5t>m6Dw>;uW5+Bt41j|vs2W&D zQF`x3<&aX233^SFkSDv7d;2y5z!^F20N(U5tdbsvMJIOITczN5lm~DlUtpNaDJgqa773 z$dIX11Ot5nF9w0e@Mk{@uD}8)?PM3`WgUDA_Sbm;_#2RV z`{=*@{AlR)XF-*f?Vq3vivK+LuMm*`gfQOj;ctNO|J$AX9v}WX8~;o~{{5Z&1N!($ zJbn_7|0BeM>ff5w?^(?s5XVol@sn))Bpd(jWP|uG82t~FG5eEX{3IAZ3C2%?@snWu zFCZ9{|JLjOD`fGLRQz8`D#-rxGWiuv{1+05Uvlt~NvjX9Z&0uA?J*Dj+vimgpp_9; z`c;8R_e+WIZ)uOSLB5){%@!N7SLMv>#%{iF31MtQe1);EVP=1 z<(%_UO^5dhTTnoCoGEJYMDMDfW$Rc%tTBsLN=X*I$@%!QS!chHQ91Z!tCvS~XS zVndgUl;SM`5G=#`z6qFHHXecp_?R6OP`=u6G5|4#1Vk^g5hpS0N5oyETs{&)wZYEl z4&*&DHXTJ$Vwt+iVaql!9>Z&RK+h2c@-MUDXk*00<{$^l*~4xPLP*mmyQZ%N{f23s zjuAmX5$MyAjuC**Z)cWV5a6AbNM#>JLpWcnWfdnggv_jq0Hb1MDYw61Z~8hFXbN*r zDBU=E-UXXU4TeySd!PuiC9^dt*W{mI2W8>K1AMam(#?ypCy}|!Gv5}hg{$@9s?$7V zU70Z+oP$fq(^8kG6d+oU!&s@GZ6B3;w4Damd)6Qeg($$w)XX`JB-$7o0X4YMW!HdG zJ}1@)(sWqiOLu6(?&LWlZ~)Y406|H29MT=cFd~!u7?D`@hcCiIqa??uSYtIe1+n%b zr0K?rp*I0tuigBa_VJknYQ_qTnAz(SFgz>MCh>xl)QEJxTJtd(%v+)|R-(N2#GXU% z9?MS5^yz7JtZZmA*nr&FMl0R$i zgw|dpOLQSg8iZh!bFgn#XV`Z^_fSIiJieen^;noNg4Mc0hptj&aLP<*8P&H!uiCr0 zcmxtgJqv$Hn?mM6;r`-86o0+s-;CI|+D3V644XR4?JJ-5#BCg4C#-P}vjUW2wmm&w z2i7B1V_>N)DJn)4*h4kbany34qI0!i$B)^Ivr=@R%^8tY-)08{Wj1@62W7&5@LaQv z+#kFr%`v@1tk`}E_aUJ~%jf@d6vpdxhi%i(}JS81QF%{LMz>fWO@I1_$~naVmN=h3gP zNhjCh!vtwRbEDK0UiUEZ$gW6aCA=Db1Yd@dnR#cF<#;e%ANh4-krjFf9OzG$3#P5CFeo@+5glUElm*#7}+1PkqEseZ)_F#Q#2h#Pyr%pR?V4*!-<_@*V;J;7us}uj6QE zgL0KF>t!~CHt<1S7|&vmre2OVnhAeHGHpYw<>0_u(}_zpW1<)!@jjH$Cy!5gABJm| zK~ZlA^n-d>na)PTnW!Z4%Y9`vaO~g9D;St3w6`_4sjH-F<2t%$-gz0Nz60P}#^c?=yCC@h$(UW&Y!~Y(@xYI+$RbnG&FoCeYGg z9B6C}8`m>BMOxo|5jW03%5i=(d?M8R@-7hdgL+Y^1Y*hEEsoSM;@NkXK6z3?CkfTD zXkz;gtcg;IN4s0>A(e?v8^kaqFqASA;^p;<*D#m5=$xf_Q%V#iPy zV@%uGA)kOEHZkgf=MON45Mkok3o}tWG=rnD`1v?<^ukgphl8{36;y8V6}6LO?(8xs zq>)q+u#ij?Kkx0f8<)0_N2AL`;a0dUObJVptMPe7YtEm}o9HR3m+qKyXX|@>Co-JC zXN+=HNlLwr%$WbQ3L8lDO~(t5K~?AzRwEF#vT4r!lFawnOBvre3XViRS>b~*>At@taqrpOk0JR_D+~eEQx1a@9(Wp#=Ngk z0zYFsda?F0t%!RK!t-gH+&by*wv^b5 zVQPGbeU%pOg4U0^+k+*(S{_x&(j^tKq)UB7HK^xK^>y`K+L6JKn=}u)A{7$fhax)n)H?kL=e-?Vrp3 zG5^^-rQPu5-Z~8#89M&qN%ubraeh3o|A+MW599t;3Hj@r{*qg7R!4YWz6~mS%ddYR zr~feckAj@(QJFU()td|@!+_H^4_9zi)~1s(fRYr%R5c!j31y17X4=}zL!sAbwZKV% zRvcUOl8o#t*tVK&d7M>7^wWL3lLC>Q{bt$+Q;#pDjZKJV2SU}HLJw>xlKpgIUz2qDmS$~HI|tby!OJpGx@@6e!!O_UrbP8r=i9i-QQ>Khj6F*R)lT) zt=!1}tpN3hjOjnj+^^!DnP%%1dIYcyok5Gdc;+69!4rFQ{!kEpgFM?pf=^f^ty==I zm5uOi&iaMb5!6^X=ze%Uuz?fIW@%V6CEx2SJ{e8lEjMeOEotrDx~C~L>$F%=ET{Lz z=7kxp)2S+Uj3rHHzD#Q$YJ%boF^g*rf4SBjAA8I^YjrO^8@CR6)+c*TT7EdUqV2Gl zES)p^CI^rWx=xr*weoQlz_H7p&}-6l{+tU=u_dj*ZmD9IZF`chIy8MRF`*9?Mu3w| zru@TPjKASYv)i<1Qoh!heBx;?^|o_tbL$pq6sOrKq!aFf%6Esnw}Wb`h>WCd(WHT* zrO3M!9gl@zmq1ci5Nd=)?|oiAWt)2$y+k{e8%Z{Dt#FAtisoR*3G?TFk-*PkW}qYp z!(UJ3>^jKT<&aijm4|qAaB9`dWgUOE%zr`p0Q1smw3Mfcst8{r_;9dKc z;5wC6-V#kbd#U9YQk#%Lb^EX2hW^|k3jP-^47hNu3~)zk1@nA8?=a2L-1m;&0RAJPN0s5<~>2v3kijKV}cyvX~5q7n&Gf}tB z*qpsTb47@Y@|7bZff4N^ko&39s7!60Vy|_1R(8=4n7yr*6==aOKHBWo%CaCXdW@G)k4#U~tw+iffrDd6A zJ_N6*c%NieK0liLk|J{az+NRTHhw1|yvd~uHpTa?lRAh`R$SL{576oLb^=)0P{pfa z>K6O=BO~m!FW;{X&kiyxylvpejL!Fp1R_-2sp+=WwWitG$)!T765-z44O&ERM9Aj| zdc!VF18u^U6XlM}^j6=ydb-Pt&pK$35BO_UK`Iam%G5{9Kdq?C-UpS-_erCDouX!EwIxn80Du!cC# zHJKW>V^>_1bxZxyZ|`eO0Uc0xdS`HR^19~A_|}b~7>mL6we50T4s)Wvr#qgx)K^?G z6th^PN;GKKLk~woA3jsvHz5~eh7_Qtz!F|#5V#m|Lcn}&a@K( zM_Efiv}s+Sh5k&kE@MGbMmZ&#ii@&o|5Ff2Ijh(zTOMb|NKsYHpjsXHr-%W%R)Acr z#4g4Xa;&DLX4gH_M$NB>`F<9XgJ_%7O2%n$pI~A!j`|78ki(S9qI1n%1XQ>^qeBQ0>vT-Cy;vLa53s^90`!jUOsd zmf0Ea_2D$*qYM-y(3y`;R21=%f%$UoFVEl>QfJ(Yv@l!TnIIyw(h_M?e3=}R9IbT% zWGco!1wf)%%zW>(XVHhK`>|0U?ekZZ0;ixgrrOklotXU-mSe8_81f2Yx8O-tRq0Gjwp_LE`W%6|{IiFC!<2omtxJKka zTah%iB5r?h&*U2FQ^*ePx~pW4bF5uH>l+w#$yt8{{oUjL&>qp78%~0~dHk2R*AMN{ zf3U%Sz4EQx^lfc_Tl0bPqvrl^+BmcaxSG4B6degU!7NB*N^UiYO04wWKqu9e#iH>! zLA>J1iQ<%kJOR4lu{)-Y%rm^nmeP0^zkZ2aL(~VrE57}L=m&JBPoMg@HOU%T<(F)} zX?)efhr|PciV9z<;Gi;8A)KQcTW+{n=3HkMZHMuT?#P!_*AXB=RnSD{0KeU)d~snY zIdW5CcX(71OV``R-%4`LJ8Wc*{G*uS zf=Sy6u}s8>f+N?f=@C}3 z&T+t&79jQb8#Kw_LIEP;&~=Du5a;=l;+bob74kZxaBwJ04s!VDW~kzoK7180%9;|` zIUh}BO)KQ(^(n8>5-Z- zOJruoOn?uIKd0d+>)r!!4tP_}fqoz?5SNdg6bUe_-4zxJX&|{%DjW!Xa=DRh%59=^ zpc2qrJu%;nKu)?ibU^9w>oJ#R>B(+vzQ8-1v%Qn3Ny~O|hD|@vREo)KR%E-D$w4I? zhNKI^WgLmN@Ni=gpzRC8nfzK-snAP0^;&L3a49flWzO`CX(Mss^!-utwsKq_VI_8- zJU-+qj915%N1!OTyqB2fCk!vsax_}R*8k2GjW#TA$0|RRNrcP37^su;Ao(ed{tAF&)qTKbkUUqS%@i2hI3;=icJ z`@@QyRT=$}Vz*98vlN-t~}sB%WP!0zGka=L}%;qWp5>ZTmY3SEI%SBI4*nh6~e z{njceLlY#M&Y>sRPhmZ&*z>9X=63ppHOPI~l2D=Al*&atC8oL@Ts%N9=J> z1ot2Z^VRb4<1lBjiB^rcK2E`L&4pjdp?qbEg&nSzka)rY00F`8=C<>dunQ5{S%#P?N=modphoqlQ^IwTHBf01-p~)p}R=%Fsqq5(HXrVn9!KrEA^?{^D5-Ox5H5h0~|Xl51Y-;WUBkBURS|9Af2$Fr8-_Wz$Xdp}i&KUIf6Rfj)ShySgr!;G3W#pbsN z@!+i?g~{ zh~Z}%VJKoF(dT-e>$qDqXH)f>4~wa;)yVi_xt}*be`XT&dO3S#wdpwG;C2(NP&>U| z20=#O`{;Ac*nx}M9joSmPh~9roGt{a-)lx=mhYBHMW%osrB^obElJXy->2Qx<$L6d z@;5sU6U1A=BRlyA_y!y=RXjM9m-3RZR37RfGAU zaPJcJ`c33pus9~_9KQssc%ERoaWX2BpL!^|B~4SY-y!D;{SeOe*chZ6Wm`-`BLS&# z-tPeMx953YeCX9~kXep7+wo7W5ehva8&LAqp2id3ru5q>z?W`H~ zkYnQKxROz-=PV!03Q)*d`SI;*Cp!-kjAAVDIr}Lc(J@Z0NE8{)Yol(~GL!B6#O z@Z$=WR*ON=H@~1@NEp+oxmP$Q-uDpC`zNFVfZP00u%?wu~ z6hfp;?n2$7H)$54o^$KXTNmQziQW{9abh|TZIf5;gU(I3M{~7-Dh<-57T?Yfx%}iI z#%1L%E-!w@x>-q#UPyN}fq|qb!mc=wamnl% zs#GgHJ^KK{Dd*(%q27u-h=FzRQmg330R&*2UV=KQMqUxf6$rYYNX z)nuqW-wqKvYuO!=ipaD}tf$f}2Q!*8Zo}C(v}|qtuClkz!1h7@#^_m&(bnc@=iOGx zr9FK3csw<|E(h>7)a8DWWkH9#$qA47b`#({s1I@y7IcJdeBGg^oLifxuKNov{fMHY zuCs|{QUZ;LE5C5D!Z(s5;H~Rk-Z?VYJGQ%}-L@2-)=!j?#_y&zy8!nEXuFm>_K94T9k>)^3Czh;{^D2 z;W~%z76r_K!^;(ssh%R9b#PbIRkb-ml{Ptg|DDu3!R!R#_#Y(6S~q?tJ#S6{?SD#) zesd1L7H|F*F)GWpT6gmy9LHS37g}J4x}F3Rh8{Q3OMnXqWb=M@Vmrh=aHfM=PbAFj zrL$#(W7{1W8yQRU@h;t4#=Hpht#ffw*%Kz6aPqEPHAxpf&D5#cJJDCMieb0Au7C~Q zu~QlbzPdp9*aEB}+&rs&zT+{*X`^3AL0P-oG>@ARW&kJ*$y^{d*^e-BL3+;F^ksCZWL<;#Sn9=E74yF}z7ALCeCNXq{`@Kn11jZPOR3pjOZ@Sxm z)|(Rj1qb@4np2v;c7eY_+5ZY6{|nmFzj#N#!@|D@5PziY41fCJ{taILN!5Q+_5T{G z{zKpT@2UD9SNPvB`cHcP=k)x~UD)4=)}0N0Qu3da{Qn0^PWPuK{4cTiPa6J{hX17D z|K&8C{4d)5FH(b_z4m_g+WXmS?`N;QpS||}JA3W@k$ThqsptQVWc@*)`;%_}q}xB~ z_Wvrn{paN7Hz)8b&i-FSv41IA1gfQ9uzstEHhVix^+&^|f1p@@|0k`p!5e`#pH(}v zerq}X%A?=)&b5ohW+xCB&+a1m`+j8AC}x|%wd~E3ASz27d6@z^W$6bSi&s-S zVZbwIx&FXPSm9l=r(BK9=~Q2G)JB_w=bUygQCI{MBP-V2t$CD-5V)j(oNBWyC!A8o zhWG3q)rf|fFucv12Lr7N51Wl96)Fktxd=8l?zZh3xvg*dBb*Catg#!$`Xl1T7R|OT zXRzTuom|*eI$VERtyYUGc8e=wldokC>f-E{!RvBR6>64-f==kQ@vL>Xb=cC%81rWL z>Xn!3`keRhN*_r9N$s+Un+3BJ42yaB*h__k%F3)Cj=BiuTWI(fHSK!OE=y})uZe$xkd|h#^2nB zPu!@nw>aLwVHH_^C-M0NiiO>fTAur$Upjv@J9=iw>3m{JlHPz5HL_s6RBbfSuy4%q zk{+xL3`(spIYRy2?!ZB08s{R}kg|gm|HtvxG@{5+vll~UFC8Ms0{luG#g+PS0=n2A zY1R1R5FS{#U-@uwcnV};X}^(ko+aE0V!~DOt^oT`HnG#@d{A3 ze)Qhoxp11(@=a;w2!BM5$^}5tj2^m?L0-O4mMKN2v#-xus0jo3IS!v!ZyeQE8x8F~ z6GHR+jIA;L9taxf(s|UAj2Tp$kEwCB`|Rxi>hmRY*^ZB)D&RV|-PTwsqlO)B*Xwff zZ09H+q!f!C3WHYC(M`fp*5Dx+c8e*3o;QGa4{nX=ES+!IZci62`W}P#*v4t*zZx%U z2{E9V7aJ-tOR)-(CTHl0`z2V-Utn3P06QL&&tl{l(qw`-kNNs8^aR}KSqWOnb-;?9 z<7_L$=)wC_`PZdBy^AvNvZkH=d_%LJ+o8c1Vsi$~lz&9(F@(f3T_w1QPTV}roXB#N z2a5VF%?m5Fd!*sL>Tt;u76zlZ{2bNVp4S{`s)ONV?CN-h#;w2R6UN(V)0P+`$2Up5 zR(3AR+VNX#6}OM#k=p({ArmHBNtmXnqrs;YUEu0*-Tcfj5DAsf>#_m`Q>8G(TE6F0Ptdkq($x=^X+)-FdkcyLKXW?hv6)P z6Y`i)QKqrOOC!mS4ipK;U`hlJ#V>)itJ&>4mUrw1&>gW~rylneF;?uAlpRbpw81z> z*T@SbY8_^j;E|=Sd2L*ruAO_!j)iAKs;8$%?`ckFN0z-$7O%d}crUOMj5xZ|SyN#l ziPE$Kp{Sn1M}Vc+Azws~D8_#a=f4${T`QY=2iFt$cKkKq+ws>BgH>buVynPI%!GL4 zK77f6E-E${_#GfODtNG50K7Lj~?bC9}SAY&ya{7NdI}4~Pm#&Y~ z-6_)DA>G{}Qqm=FN25!P1|2DS-0KoKc5wSG0Gse?5v&2(;Z>no%XN5 zkB3+AL~P#c>e1+$>Flbx24PLArv%O;kS=sw>JjHgE{~Adoh{6iA>(81T07TNPqH1T zpPd==N2nPXd^7E4;i%~EU-*dq4wC#(WL&;dOhE9;Gd(+99wKWcG#hD1oJ@*Z0VPii z6iFd9-v}}wb-hHq!>MWUeBow}OS2Ftzen&u-{4#0!FAKY!NED##;mL3j%teII{Lj> zpSnn;$;_;xt>I+Of>dfzfvX!8I?<-g_H$pUtauj#nOwkkoRSmrjv7tJhifDYzEwoZOu6 znW#8P-{aUd6M`;R@2%X8A75~UP3|WRSH8`^XMh(7$De3sAxtj$-UMr2+LDkfS=`Kk_(Np9+blK&QZZjWs(xE8ERd8NfXR(>@MHidk(h8$)FN#dCJ{Yc(yOxtu*kgOEgaU zwWf5mU^!l1w0?wBqK3G^qr$Fg7uAG;VX%~RW1Fy3ckbOhD-BUjK}Rh~9owE_M+WUX zF=hbLQ_I1A;jZKRaZ;(qhIGV)5NrEWiLa8!W|8BT|Mzi#Sorsy!sRPa!@Ml8(m{P8 z0F@AO^-b?+X!$OV-9v9Q;gQH z38}#kC1j08)Zz-BNMC@y>0xoMku1)@9}Jmm_Fh2~D8mz+PX=PIRx zfTV86+>UMp)X;iIIC7orP0Q%q6QS4=){sA?+HX9(u)f$~C4GK9*3-j}&oShTqX zJP*;v03?~G!-|pLdXvZK7|Jblh=27lOU9_vt(_k2!)ND-h*6O(Rb?Kodb^Sf(15M+ zETNCFG)W*GLokUN^7-+V6T~hEVWD-xQ{=1qDG}}4U$;hf+ww40U_=Gjzj6U$$zh>3 zIu!zxl+V9g%a+K>*JEQu*JZBf{6=muZF{SMuI~X!w$uq=O*jT#z4P{z*jLvcd8;3i z*dL+s%TgxE`a%MzLJO;ESGG0Ar>m)>hAjznGZ3<<07-W@JKELPRj-CCf0~G-QKB)m`4y> z1^2VsFwl7$fCEhLfOFw?@i~dV!Snp2tcOuDHsYQ5MZrB(7k{8k%KNH1yj2Gk>Lpd? zi*Hczd*ZE-yNlZ#?k0TH_J(>B@VgGLq&qF=FN(Z+4n*N>IkOHtmv zW=2EEtaw2UG0Su~zIaw@iv*a-3Pdh zKq^HhU=BZQsg=qBF_uPoX&OjGn=#ewBfOwnLJiVAR+|{&Gmasxg z&emIIEP>6VbT2{i;R;W`e)JxMij+vp%tAB)xDW}T`W;G zFypSj7O4b6yxTjPL0J_D?a+1Y*iq$qvj{{FvK-B9P-#)C?VYhT9q7KVQQIpk;u#OXAtxV~m5U70xcO6j>T4n!vLcE}P1*@jfI7#2tT4DgyI2nOCBD2ia}09qQ{q!QYs+^>jhI)YR7{cEQJTW-|`c&U}Wr>xq>Axi;#nw#vDO7XUmLwq8_ ztDsdVXQ&j*5%0427>H!q-YW&ZVZ#!UR@zH8f&nENLsbHmD4QsE zsVDdj=#O$Vo~V;sa1+J>2n#j{^CWm^ohoRUzKdZxDLdQ5kS5@0vJRqLJmk z;y4O`vd*UWv5$;)-h{l(^T>~}g1V}FvjTEYRgFy;R941tSBW5~%}R_DIR{yG&ebEQ zEym5k33b~pui`1`wMEMY<5*z1Mpg|1Qs;+%UFY9n(d%?m<3Yqoa?|sw%SKQ)BA>Q!%F25@ z*sahh^q`Z5tYk>rG(VG{x4^!b``qbE)~DzzwL1nsu*i+s0t5<*gHMB7XG?4l3cjPG zkzs=!(=|$b#?uf)vkQ^H12X^xxS0$UM2x}EF&3=iYb1Hn-EpIAu5oQCFzgu-C<)uf zm*}6?z+W>;PU>bFSSwvbMQ$X0G?t0$Z_hhr2@hiEP<=^6h2q3XPG^ZQJB?5X!HVlU z7Zr%;DSpJNidwkc>*dx4%G!>TwH6r`0jz8|4!5NcD_tiXfV)~LpCZ1k);ZMSua=)Z zz2PP-X%EHN_Zd5Gv`uZdHI^%qtCWG5Be(+@WAf!VO1jI^o`5(kHlC4*Eew4cvz~ww z&Lm7W4m=L&nV+OgQwSlwfR}XYaZodRdl=QM&F9xB;KI`{6^v0BgolP43^AkilOVwg zBtN%g>bL0wq?oY>(eNGK?u;NRRBRiOQyP1PEX=vXJbfx zflGzLttsRXCf{)#nVNTzyF@<&_NnK5q=7|O$OuY1z0MTf8@bT>)_e{8-3K8}I0j+_ z1q`UVTmgL!&PejIo|iU6py8fGM-e%Gpd!`;3gKJUyI`v{Wx>jlO|QfdN-4gsh|>vE*Ro^iY1~Cm*&@B1)w*=m^WQO&p_kWvFm5MoD1( zsa|!E$n=&lLgxuZdpqgp!(O14PfAXor@^V%I#FzqJ2@O|s&#CO+b#21Y37*|a>##6 z-P>eRHsP$MS2R&jTn%oZV_Oa6nto!yR6yNK08e6{6=P%$N>l zi=>n$Z^hvz3Kj*8WGf~Lc)77ht23_}CW+n~zx>K!Ufc}8ZyitY_-dYcQ<6zA$hvNb zvOjG~9Wm7;#+JxXKMt{PN~*KKM0E{UtFZaot1x>3PpePpJ(5HaInKnOU)5(3mW_r9 zh@uK)^!)_xV)@B8l%kn^^CxGi7R=$OrsTaet4#bvEFo#lFq#&z0i!Hk&6W?j_4xyn( zt3(_*2BpO$k!@qo)R@t|kO#9(sNSOJ@j2@pW137vc_(2jpC|#4xR5`+5hga~RK80Q zio%M)QZ(D>=S|z|!(0Y#`9_O1ZDuedj%ZkZ!lGe~Ljdko@=@oUf zxATl7^o#I9TI#GG{HoACbEj`RW%@L1dd^AN;!3YAHw1Tk{dVyNvQb{KLdstw3YRCC z2E@s|$4RPz#13qiB;xE*uM@<)enA^hu<@Q(Cd{f_o^{h)8^IhBwcX^rUT+2#POIe8 zqBtr(Bn(KDMyic$A^OyoLYHzSkr!0N2^#D6srOBRHK|k;Oax>)SyEggfd6gXcvFHh zV0HxRhoCc2xV&O{nO*vKwlesg-(rK#V%2rp;lmh9i-;OJqCvY4Q)6i|K#?pBmAYO* z^iab{>ZZw773TGl$oWAr!5?c!g?*q=#d1s(eJvnoYS4d}5%dA4C4BL`P)r6Bm8+*v zdYEu;%-o?;Ht(<)cK>R0RQFIgObpCHMmH845qm|73EL;zCNpb$5u+17;N@-suh5i9 zV1X>ZDo0N*W#Vmucdv4;VFdSr$(#PDG!k#wWe5Z3YyrKp;!u$2PQ7X50n&K=TFr3bew>%IM1mGivZHvAaGXUQ;_F{*_!@Wva4XBJDscCpIEya;_sR zvA5Kjv>_}ayIisExZ>0ZM8u$EwdHepe!F)ZlfB^}u45!Ov8W<<9PAda@tuB8fw&U?Ia8S#ieoeX9VQ$=hkFvbqb_?{;G^ zQ!&==TUu}7aZqslWIR5F3sKGKCkxUdE20vG0=ohbbgGc-o3+L{k>-^a##tUqKOyy@g5K&2s(Uxp0d80M5jWCZ#P>kzTDi|d& zvtr=V&Z?S~Vf!$oWh$}ZrI}bOjTcrsWOYIlF-i{UYcKOp!{5P`rf#p#1>W-r9^lhY zAZLvLHpC69ewVANi}GGaL!Zm!lo2=GvToAXV(sUQD(wr4W7#Bv1KDzEF&$GeK#LD8 z#44EBh)Jko zcQ`KG4tj&r^)A9-Z-(Hg&Tsri+P2!<3>?8(-aQ~0&>NwKUOqT4URkeO7uCsY8tU>A zDZJKb`7EN1IV4`9+GG|*t;(ON-&_{LBNU`+NsI8$~ z`Hya$nPo#Nc{DYzsTg;fl@t2XMY@?^)W1L)raC+ln7(x0IV%+v%MOH*@k@j+9V3gE zM@QdS57GMu68&X7B4ECU*Q*6v)Lr7hP5(TgQziyTUO7OrlRIm~Q!?mdhJq1u{t2Z- z70HWgStI71ud)h>;ZS5Gk!=*#Lo8oicoD#{5ZV`IAaWZ*i3kf__fz;H_2o83EZ@os zdnY7n!rZc|KpKB3Ps*(%8ayM%?K7}nS>?HeNtXu=H%b;C+_BPD6CVHz+~yR0^>*%y zJ2;Fctf530Fq2GiY7w_OHW*sK1wsrI4tlqAS{5;T``Zg&0<1BOy~VK`HT6lOnLA9z zJ%AZ372rL{O48vb-!tIKl+;_&nKSJ8Giby5AyXm8Q(>uVq8VsI+Voq<8Q1yD_ae3* zW_U)L{eZJfMMj5RoVLD7pwp_~6wtaZ!_&H~t#~i3c%ONXqQBN)Wdq8Zujg=#(Hzy6 zUPz-(oXh44&|hL{)Wlj)cDnDgv!#K>oY@a?(66!89qiccosWZiaV{d#%z=ax`~v>q zOp{&Jt0tlA_DgUD;d0~Wjjm4zv^U!u!cF%xmaNBIUpa9~9C0qb#M+F+wAI#kUW1!m zBuz(L%cY#HA|KsXV|u~NrG$INM?P%za)!7=&X8tO(i)S)VZ#H@dC`god%=1;a5L8l zzAmL?;?iqYUmVijqr)%aULQ8zXZhY#sgF)jA)(SOcR5xigh(yL2~ylj7J>usR~4rW zk)Ua|lkR=_j*PtGI&WTcWp{^h+~j!6Q(J8|NkT#*%F^t22D5v1kghK1xSHJ&!qXr( zb;vOkZ8lLkYDk;r47Jy1Sd!)pycbwwIFpj@47q1hX_nsjSz@#);7p)0B|8V_{&3aE z{$h9nhsLZ(_1kh$89avJy(j$QI6Zphd9*>3^L&J%5gHq6*4Aw5)*7R?l&H%mPdVq} zh(Z7Pp?#7?C-@nhN=<=lpqbDi{gzSiVHFnWCRgx1*h*=Sl9bm+4&5|T*K{gwXHn{q zgPJ1O9F+&DjqYd8l@j${RBFQ4r$vX@F`cfiu9vD82eg_Fm#VbQmY35fdnbd*n)YXU zD*NCgI3GFYCT#b_7>_^9BhT2v7rC|z3SCTQI2O+q>XZPt=cIA)N!=Wcrg-|k(d6*=BdB_LNU@QocWa7-tJhJNa5Ty$6(Z@WGxcX0x{xuBZCta(3^U^qAj z=je83Q;D0Z&d&kN8k*MVa|T=4%Yn~f=+|3$Vt78E^KV5WRuv#;GX z$a#vu?Fe2~eyG3w0zvzxohK7_VW>;9u*zIF0@jt|T~qA!TPFbmijNU*KG=Q2 zaS=XFy12bIOcA=)sk}EmP+Q8+KjymQ*)WI0BNKrH0p%oH0TyyvsUVZ+?Jbw&t8gL+ zgYd~!jz-Y?=qMBYF^B3#e$lHMKsGY58}b;=ZcM?H@ExENtwa zEMVms)!gzpO^4pk80}Tv-B+DyIPP^vXc5{&-hl3crnnFC8BFnjN&;O5@Z8)26_0}3 zHr%Ap9@y7GH3J6*l+ZR&@kUpATy@pYhF^U<*o|8~s&ct3{BZC+u6#jbq~2u7IwdF& zd5gV$$IL`+k3V%nxGSIM{7wZk#hHkw=nd8E?u!dFMqromH<$?6-PDlury92!V+3Y)K9dJF#kZ#k65{LSJf9#`ZTPXl z>RWQ~G8kl-UqE-cFS>Jv!9(%AQUWstw{zoYMb-jlg$Qvw);-1MTfOVL3jS`CzoAf) zm%Mp1zCp&!u->%wHo3_N{Jd6G_A`CM-H7G)P2h1Ei~@~>JQ4eaFRKs-eJ|!4ODHeS zG^GbmvA-yw-;l<&oK4Q$;%&|=&!m`KU`zpG?t_50;vXWj0td)0fiLaRKmgl%!1Dr= zNqXZnB;;Sa6#R zty(=4?HV@B+xqd3Z5+iJ$*k>GbL?&K0hB9k{^<9#TPB!X#hxM;aPc#Jw38!?B(+tV z?)(-rtviKHS0x#pW0T@xNqctaN|0~etF*8$GGy&CKCh?&RD$X)*_L7z0u;0~E^!~e z$ORpAi)nGxl2+s{UfsO?xLS~)Ie#;i-&tU))Op`sc)T@bs9925S1wf408`Q&6}oj) z1*d9J*cu8-Z<5pvlmIg*C!@!(E`NSDaCmjHo$qiLdXGKbb&w@~T@9QSkYt2kO-OZmQFjr%zta4j+RE!ZJ~Qc`g}{(1A#y+{9s3p!l#PMfa_y6u&^y+VDd z|BZwajLO`kY(`#@aZtsmq2bH*>`%r~N%1NL!g5B`iS2MZj+hfY_TD-|9fm3n8mo?! zh;NOF=MI6Yk2K5yoZuu&tpr(OzRr3I4neMEiQ#I^D!PAPdjAGoL(yrO@NjX7?gFZ# z4L3Sl0yj_gCUfgBxn0WF?qIIT>Uw`~u&553=Z?qjYsc*51r4`71G>y1d$0FM_?dvu zq%!#TD%=4jn+f^H0Wd8~q89pG!8F#joD`^wF`$T-8=<%BQW=?9RHOQF2@AjpfE&aW zSOnlZkvNcZt5z7SWh;{wQY;KqYf&oHm>cyHvevecE*RP&#fyiG_CoXvo;aW;Hdlk= z&Z?@NnYw$5k!i0-hHnlwSK`4sBw5lnGgG?t6ro4-YwJV^QUNRFqcQ3Cy6mfCdpz_F zuO)WQ-eDBHE~zAUkh>)jNLba{b49Pd{)RJhMjl|Y;r^jisx0k8vkA9xY~j=^=u>dV ztJKELz%w98u+UT3qBMBD);;^wlQ+m;n2YL{Y`qs(Et_*LOh+|M@6$!DaW6zy*I-?cvAoc+glCkz-|ubj}AiaS4+N_jUp%PPgjD>RrpV?)*RZu za#0d0vk)329rV1nDkEzI9t$2WLl!D%HIk`us(JY#$B$p)xNMBtb`8VS=4a!7zX`lhE8d zQ!Vf)h%Ufx0A9O~dJctx-l}jqLi4U^7BD+ z#>TxphB*5{N;mZW_bBYrqCswgdPCI|5y$0*^t(W|nv0Hjkm_@&Lo$2Wvg@~p2Bp}$ zVBjd4esVWy^()9Rp5!l^W8w7O;{hv@ie(&|)0&FZ3MNa{3kok#q$styJ!Bu1 z!GS_H(!&qZxhIO;yIr>1j6mXHF!Zf0h{xQm2hCiz7gMC&XRe0}aP*nqI~>kh&dJOj ziLzM_mh#k&xepKoxCg9|nX4&-=o)8=FHHb5oTfjgyxYO8;;`qhH|O*M6>!l;{H{?O z5Ub;R_yN<{IoDO{Q=Wvn0FTIgnoOPz;<7qlO}vWH%S{bmhKtW&RzQBm@9DrLM#3}` z3h8F^fa5k_1uSc83#nQ8yf~H+g}ZAqV%B-NXU&bNE~Y2{`s97~g)A-$4(s5f z?9#Z{fx%!HRR{`8Lg(7uENhDa|8KCd!m8soM@kf_b$%9zD}{LAQY}twWGMIOZxAPf z`95b2m8%JKvMsWhwT+=lFscWZRv-uf^4A~eA=z;1wE~_JV#duViLV8r8tET@U=Tut z&+YGHn{G$~f17CG6KIcR4T?I-|EYRr?%U{efg~%yM&Lo8zXivdKtjGJeT(j{6x-L< zcv-jTr1DZ*cO*ra=|(eE&qGDb_Kq9`lL50p8@x;E&v#k?7Gg;1V8tLTZmO-GOEPXJ z;xj_WVo@1OM5XZvm=NH$LpX(ewi6yUOUj2>waCPl==SKlzy>YeQ*nX3RN~)&=z4`2 zF*u=cfJ@vy9>UqvU~!2a0!@M1dQKAf-GSUeHi3kSAaMbnRpDRd2JeXZ?k$mB0Ij8I z7D@5Ffjd^xO!`j$cn>TL^Nr@|i>2 zfDE{$+o!)fv=#9JToIxkR)lSz3V|@7a$eU` z(qOVOjscuj-9v~AoJ0_Bt}t*qBsgv;HHd7tJT3NEKz$G5CH=7Bgj{$f5H!y&m_$ww zvljRz6xMn0b@1Z-Kz7Ld7HloTT;M%={}EpHO~7oA9bSL>V{^oLXE?01W_5Pn}f6L@*xrqg=_p7P%#c zAxN7N22rrMRNNOp6KQb%P(8AFsXdoj3~WFww$XohNECu8GFju4fNWX7@08eRaOazrR_MMy7z9`SOe^*hJ0}K)A|%^>i*v7dTcwCIO=5i0Uh}hu z555>*4RoZPNn)~t=;S7ABaW7eZFtPU;=@y7=Pzom5StoPo3X|c^z2_wi zpp=7etS|3uNETxF0tN`-vw5#EBx8z(EgaxL&)O*4xoqN(8NK6qXetmN?6QP2i4Mx; zRB1K|PpUZZpx0{_4qM>R0CEND;#9H^a^`-1+b7^we&-BFqP(5%fl@}RgNkj|-Ce3y zYPqc0X#Hv6>snJT`@+3>5!`in!Sw4<62~oL73`G;{)`hz>2ZfFbWwDoM#%U*f>TpF z?yWFi&fwx;IfbokBbmF>dHLW0hSv&{BdjHpo1CliHpv#RzvCL%m!9g+tn<^Q4DF=2 z&p^WUn3b%vC>^W9TuSNRFjKl@AU2PCEgH8<*PI|1-$Y{aY_&-a^5=1?v)C^Yf(eEh{^R?xo3 z1x~pr&_?(zdSK7?yFvVdsH1@%id95qy&E=t8~${LHb{RzbN+XSg)_H8`mE-L%1l_S zr-d)!u;LY9!QrS2e1LtE724ee`tp}s()7m7mxd}nu$DF#9(O|TV}%RX66UFYd!1t& z#}PE6w@>sTCc!!28@)e7d*4l|t!^x+l6&*z2@{GY)-rSjA`vc{-ZC`(4H&hH5Jq!k z;^Jbv=IwF`+ z>Mk10zP{pCQ$$#di6k=QUxD>1LGB$)K(CmBBZB2Y+MFRPF=hNp-(VDGm0HI zhOECvv(&Q5dKroYsxHyVm;z;pe`M7SDmutFi8p__lBb#8>ens#wxHJ-swS>zTZomT zE;IaIDl=T+9?Qq1{~cxyXPWWqojm=p zkY}guaL%BGsIy|Z`p$0r7sKqQ|i=b?=_5a$i=c$a{X&weZr@X@jF!6 z(Vvl2PyhxigGAP*z9UO>qK{@nw+KG=g3WD;-^(nDS_n@Vymw?`>W=NPMjYPIPS@7h zhc{JI0<-TNo15c{Gm_R>Zk(ezl)JL(eE4e7$+F@19Xcw^c1&2gUL5fqoKrIj&sII^ ziZe*7zy%U`FPiW~tfBn}MsbptO*pWNA!l{L_|2$nfrMe>g&6P(Ub7Vfc3c)Ki;Aez zn)Y-a^dF69QoL>86V|XP3rp~oyC*(1jOsA-dS0s%HSPh34PJ+@84ihsgWo|!V7-@Q zAUBJr>mAO6Btg1k{Ytc8O*OM&8~ax4rRNrXgz>k74o0+5M=5&e;v6R=3qXX$GPK3S z0ZN)AxoR&XMW{Mq&vEmLFM$Tp?BA#;sHthF3&|)IY-Y@792QC_FEiGOqCqFT4b)qWM_J`3nZeU%vNK=*3cTnNBDL7X3eqb)?(f?B6jggzw2Hr zxi7jeA;$@2g&fzP(Qfj^J3oA%=P#nXkYo2O2eTCiW&HzZ<3_{x2PX%?%1Y=(r^CvF z83c2*n!M%BngZp`gOk7)FZrl9A(BC5QbTm_lS<+(?r*6dBI8Sqh^1?@yYAd#m}7JD z^&luQ=n1qqC00e>HxyR1$e4L0I?P7%Y4GH1NshcxcgvTfgyNYJ;#W=CO>oQ3 zdw4T6=U(R?R<%< ztGAzE#go*%R<~$IIz712#Bjdhz{we+o05EeJ768yHsZDA{%kghQ;rso>AvOmhBYt z&796-ZFE1Q#e0b$e02{!!pXylv98JT6<84QrTp2t7S;uJEl?2YC2CMX3y3+>5jy{c z3wskwsNcbHqNLL~hHH(dAylt(UC5eEz>b&;pXb3{BA`CS)pYFfEdZz%4H=PxbC%L@ z3Lx>925}>ZMGhsBCQr+_ixn|8>a1u{PGzYNYP$l}q7Kws)Ok1=u&Rp8dPIwZEi7X4 z6gyW&O_@jmm4p?dDYwx%t!)*$z$aOj+|qNOn82%PGo~v==T!4tE`>s^`LEP`$LJx@ zG@|;E*s9vBSjR6{C>bS|&9c6zziY?_Iy<-1jEPJZO_504DPB0uIp(QPtogX!pm)t6 zPktZ0=8AS-(dQ6RJ7~pC%^Msq!~!<;rN$b;Zn&DtIXb}u)X?24+{NfiUFKlZtcr<0 zelz#0)~jgd5ns+(Q*Pnw2D7gg@27W#oY*uHUk0W0?39X+y-yyL{~jl>wN|RAQc;XC z^7;6odNUvp3INK(1Km%@awupmSJNMAiAy|49)Umn?_&c5!29hA0Pvt9N@Hbg`usyQ z(#_oc$2irJZy(-s2mpZnpSM0Kk9I$xjNiYr)V6%DXGQzlGvhP@W~QbOqAX^XG`hyd zzoHx`aNYeLMOn-N03I(-4e#OdTKUgVmU@!E;T?X3JwCGz-h%AB@Zdqf!#Se|Db(NE zQ)iGJp2Hqg7W7Q5^k}T@t)Khzh*%UO7)yJot9}gk)S*Yl6N1PI069_Vo19tz3_9W4&WAz;H z=nj+7k@91iceDpNDy*LXqh5ak`2QoMe=he|UBKd(bnHpC8Ua06dD`sJsRs z4tp3M`iGlF@Eh@WW=Qy7b?`Um{v&_$gZIY)BmNKXX}~lh|CaYK9nGoVX-Ha! zkDYyLkM|($pOHV`j>jqbJK*v9vxiH6k9%Ix?dPP_#OHLx^AN{y4{^-(AO6#gA&mOl zPX9puRJ%#X>i??){utkV^PE(>&D|G#?AVBW51P0{C&RtF(MvIf<3iInA$(X{#~H`92pt^ z4*U1P_Oqwo{u%irI)06U=K=S-r%&q?b@pG4<}VTUEAn|@J)V7jY){CN+`mHpX(as$ zejY$XPu%~2GYkJ2{AcUh^FX2ai5Or0SHwSyj9)!{9uTBIaa$|@k^6fD{0jY5>-~}Y zG_GY;e>heB2j%x)Y0q~BkK)IV?TNPk`7da{j^LjOXa2xkw)_Rg_T3L({uqUi@_tY4 zF$!Zl{s4I<+V`CE>;B+JYIxiq4E-(VG1oj>ET7hgU*-QEoq9^wu$_PB)NioA*(dxe zj`xEr()Ewrf3a8iIXRg2{3G*!Nn=(24*TDvv5S93{&gCAUJF+2aYP^5)6L@P{l@|L zfqizY^-p!!eoVNhIr6LQ)ep05{r{ucpGB~KHTbIl)DMHHU;i6}e<26;tGQn_etwvv z8u~BH{YiFzR?z)dqtDYk@1wT!)PT1$k=dlp=V|!Xki+1Y) uTH)*u;6JUh^DFV!$`3z?pf~?x9f&s)pkR*}&WC@tC;$N4n>8WXeDYYah zs7OW11_jiS@ePWKnU4`2^@^ZhAect0g`sM7@w598&sT$l;ym;7xpmtve9-sR z%5M$xgWtawynp@+r-tO@KlHI@^Lt00b&q^m6+L7llRK1v&=HzTC$OGZe|b*IM)jaG~; zq){vcT+EO#d_nX8^QkywaR%s{)LxgUmNG%qiAc(V7Mg5my2nA;l2wBI8ML5c1+Mt$ zDTAoKV1d$DWg8G5auQUSmvcZiX}oo!M#=?IFLF{Iw9we0ksTyzGP|fKIcfhJ>QW=Q zKrVg}Txu>@V1>XX`Gcu0IUnd`Z?lLcH~ELjSzSO)3IV(soGgGTFE=n8L8q2r091>h zDSjG!;R_ZBiTavm9x=)TbQD8PLMIXGio!~&B`{QBVZJAuM_!J@SQA=SVLZ_z4aQVrRj zS)WSnISJC^J-2cz%gHyHM_^fB%92J{V5IH=*cTG@%Q3$?we&xrnhd_dOWZxUv;e`} z!&J%`xG%_d;9An0eSL&Z;;D!IMIEWs(r`MRsZ@nvagh!oqcWr}7D6*P)aBKL=0XFi zyrTM4eB9>%YgTB+tK~W{_vtycd=&`NXzCWJO4W#lO@BC5Uo%1^*E$3bBNMDyjWDyW zZ#=Au%4b%E24EJcmiiF5jJ^qsPFIB<16r=9v=-=Vf%Y)xd zh>yJe%aLwKnb+~2MWN4NuzM6aV;hf~$ISAWK3Rt>KGU@=|o-Vbv2|vmfVxK1DlB7?(o5*s$0RyP#>KP)zIm9j#XQR8bH`b z(h_^nB2Ogi?S-Xu&wGq&*ggouAVMZIdNxvF=q`&dclRXF>6;0GaNU#18M_BhA!&}P zg>-ur*Qh1dit13c26ct*q6yPAO5;LT0Rejjs;Yxbr~_VF45`Rdf$?0UP%CH93>i~? z**^7@E5q_Mvddv*1H25yfFwL4rRzapuAw_kPXppX4PmQl$BWGj8n|LEHGw-S3Jyr28fOkRhp31x%im7|p&syd6Y9Hbl z!ihB&Z|Y#ef^fmsUPR8e4-DewT%JqBHt$>%VYkT9c} zsD0DbGF>~9+6adaxwmu}c97$xIVH@K)@u~CN({UfvSGfoimy+>mp0)m<|-?~DQq)j z9ASrR1({KP9jx{<DIx<&M)$Ab{vIur^2RurZ|yQaf~{fhxfg zXnX=Jf{m;lIvkH9`-l2q!~QU|DrFqltVo<}q`IOM`1Xn_(0QOD3^g!U+JUL83{s{t zYM@sGZhcU>BFrVlRU=K5N|GN1M}z#$Rjpw5Y1K?Xe|04oFR$MCuf`cQMT}An+D)jL z1{M$3RN*S}L5&yegxZ-YbkmuHQ*IL<8gC$PS6M)3O>J!|3!bC5EM4X-*yx9At=X{A zu@nQQK**S$EWmA{{C(bYh`u1Xx|P{i#NP~R-FpF6sK9z#T@m$wDIo#|( z(s8`>8C~=E?TxPa;O%YeRb!eJeP2SKr!QLGXXE8j(5mD%aH3oTlAuR#5#FSPvp27B z<{fr(AzO1vkl~zz*NI#2vuQ&I(&871;uLM@&#Xg^4x5V$Vim*Z_kH`dYY{l{8FDrUCdki$^8T zBWoKbz$Q4};DL>&8c_)79kI(H(Hd8Pn*84Ys?bCueKj1RJ5L!RKaJ=XU?u2vk#zh0 z5qcr1eV?9}Z~`?!Cv+3o4Bkrmj?w57WBpf-y-UY>DTXG&ODIzw1`d2CPT?#W@(Aen zDO%J|=w;AS3V!_&D}59)X|RgAR7s6X6uu%hcBBTU!kMo7@RZ(|0uM-&rmWr_FihtX`mk^DR6|U*f&WsEN2!l&}2i?odc(po>z`*P=Oef zZxU7Fn}lRHl~1MHM(@pmuMfJ-k_Dg03+$6Ypc%zK893!|I05^FOB@cM{UO{$>6M5> z>B!Tdyo(?>Guhr$kDFs3HO;}1GMi}Q(LJ_yjz>@AY|Y`(K87DK{E=ZsF6B!Zj%B!j zVI-H@5{AEH%<~N2W0;orb1p&oc@QOAKl2U4jEiX8fZxjV69^5NuueDG&Q-N2ZHa0q#6oXF9%jY5g+cM64c?JoYG|hKL5}iSdC%_+vo?{cebeX)LF%&s;2vCLI0#wH}=>lMM zijAHD#OQL{L0N^qW>!=aqw?WUfJ8Na>GYSuUCEF!^KFr{Y)+g*9SzE=cwCn=55X1q zN*&51GB7a@6cgDivSKwTCp;_6)Cfx?-U0bvh8c6Y3uUn{pZMPue6VQ0R?NF0bUIgr z=0vN>q5q)ntn9zEN;suHmFWi=HCs6in+sNsd03W)$O~=Oh@I7rB8PlTuD?vKVh2BE zFdCFqX!Nf#>iA=&XwpYah3JM)*bXx4xQFY#%#reB-oRw#5l~QZ)XsQ#jG_VCn667o z@P+;V$~|m!6~ikxAC0I#hkP2ihCc8m3!Jn2L5o8J|5kT!v?qtVq?wR8$WwXx6-JTk z+4kzqfJ4ONa3crWfzGQc(Qbx&0k@-97#^fZ&Mk07b|8!?pTy9}FpHrBFd&uzc8Ilr zl_-h%F*CF=^y4jglF5vA=M|gs(OY?blMkK9n+AARKNFZw@*Y7m@VUH7WMeuNOlKI= z8Af#?rX=)jYAu?CF6P~6s$d3sP`%&O1gg_alz-Y}L$_t`foUiO-a*vEBX_ z;7I#XQxBeOKVb^uPWx%oS|$%*#q-VfN01-)+cVJs-e|vQ+KPACd2<W%lE9_L=5MNac70!iuKV2!8Bzgn%!0tN?U6qJWi-*}$*MUIX$7 zM=hFxUbe0?AH-w9>UU_NW5E0l4ms{IzmL!A=_swSAK&751STG7f7QGe-QjrCyfy;a zA2ELn<#h{5=n2PJ^Hv;V_^#u;`7iiO2bVsMm3nF%Z_6$KM(^|iraPStDdPVaJA{G8KOWSPVbcMSn-jJT>TG=m0u`;-v~bH^J5UQp zT;oB$&sB;13@62rZmS!)$6SjoJ>1i-<$&w5ms?iBWL{w{_h;9Z)G!M!%qkIPN#4Yg zyon_?0GboFqcXJD+L*Ztne%64u4V>h$eO<(b1&YVCueTu-pX4FJl%R*Il7)Dtg=++Rq0uN{5Q8XD@%n6>>vvTYs|Z04_9WbMvVo{ zfFZ{O;BRqE%j#!LKMGX=RR+dxf$ry7S$dZKCKm4|rnHHf)vCG+zRaTQ`W?84k~xbr z>TfNWE!@ZQdpM4CnunR~!)RSLmA4nzv!8@wR%QPliaFEtd!?8t#~FKe@lI~`I@D<` zL06%Z*(Hde| z40N=i_CQNpAcVRDt#lSNu_e^9#2*T^^jva4`tGi@HyNX_d|ZX$Cn)J z>{=S00<(24B)hicUfa^KP!0vd?MtTibiwR_&V}K2nC3T%3R)cKnG#$PK%u~mOM{_6 z8~E(*Zdn+JN5b+9b}o=ntK1n5{3cBLH&|6ugJDuSU?!grWRW)qa>$bdd4vpD$qMMt z8L*M72hxZ%U{;S>8f+uSH@L{_8{Fiv4Y?$3<0kU>#;?du(n}_88clw?X^d`RAUt}KfjC{Shfi&FRKz85#C3*IqQ6zuMEV6Eki@dqz+L*M}iOHmGL&zQ5 zn#qZ6w(Lf^b6Fr1MpNa{o#CP7sIk2zgr;TV_g|wBVNG^B*|w-x=xg z2%SgP$F@JUSj3x&{+0caM>rEQVIkcZeS|X@lI;kj9hbNrz^U!N8=K#C-3@CPZi3jYTt9lgazcb}Fk7GQh=HjPBLg0bgYJ z3S(X;x9)RS9X3Ya5fI0T(Ze=TNHMS2->`ZGEDYJm~LmIS0W7;H8hONk`E<~31P$*)Wc{;_eDCN}!DY!2@xZEqA; z(_Cr!Xsa~Q)$wkwkObMS7JZ`GK->5@Ysi5&91!)FZ#dK^Aw-h8-!AMDSB)2=yGYgk zHz|2Cra8c4P|_c)v(bgSv;qb}B}VVNOTOZ?v%{>gxr!0*%(@cT!ECQoUa kl5(4HfPc5WY0uxrb1mBn`(o{f9>p=kk^fW0@ac>ApMi3YTmS$7 delta 7923 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 diff --git a/Growl Connectors/NET/libraries/Growl.CoreLibrary.dll b/Growl Connectors/NET/libraries/Growl.CoreLibrary.dll index d1cf574b1cae40057a11c68b4b5402865f589a45..d4cba0ee504462ccbce526be48f7fd0fc1c6d3eb 100644 GIT binary patch delta 2106 zcma)-dvHuw9LIm>+`T8ckG&gjAsQrMM1-{~u|ZivWKbea2!?Eu+t@rLvYV7(77dCr zlGAFU)T4|?+hDfdM45EbbUIV7Xwi{mRO?lZq8_c$b5EF>PXFl6oX`E9@9()gJ98H| zp~Yor-McX}I*=52@o56wLqUN6am*mC=EqanvpYNK?7)atjmv8~5e#ss5z4Pri$*%8 zYf+eJVrnQo$P|mh2znLutO%OqYpgCMo8ur=J?U#()UW!7)$!Tm9Alty%&l>^Q&yDi z-}c4ARfn@Tgx%aIRhL5g@gZx*4s<$$Dw|rG_a6v$aG3M5v>g$6Cf#F>MUG)Qgmbb_cFF|O&W(%&9-ECmqGqgUVU%H+maWN9&3S>5 z`Iha>?`AQ4osmG5Wx0P!s7*x2=<4uB#@vVq-+%xB1pkK***^<`o#)@-I*x1SD@@>e zJR^o=u3H_07^X1_U_=ot;2ko3{F2F;!z}zF&^n-nC%rnLb2KGr>t?^g|oY$ zLZsY_QN+W*fd!;FWi7G}6b|926v&D%Qe&^pP@4ID&R6f#?W2M+iQJzEX|}r%;3PHMpQzInBnmC>Mo# z*3I{$aF#vp3YSnv^?}gLbST_pWjUssC|1oe-9uy4Z_z!JqL!Gf=q+`j=?Tjj2JQLx z4(3GoeRZu#!iL`lPZd8fxshM31qok88%#^!w7Sm}%%TTOJ$Swq7L&)w3SG<%KCurD zH(z1wZ*CTiy>5srjR12-n|~7>INMwc4(w%g;m8`o+R z$z1$YOCj^I!!n(OLxQD%ti;I{FDp*B%qQizl<5$-C@msYc!%XUgg~`r8FP-(y?t_r z4}n`G8rs2m#;#n4arT84=GZ_Ehz5m6$8kRyVwjT&>5RFM?@x=o7TBT0l?NH~y}AcH z-Xh(V56md0Ct`c{FVZ~)#YLGqxQenp;L6Hkh6m=j@^#2^dt7;W1#jzFqh`B`JW%NJ z&Zf^Cz1zDBU*>s=Gv?^t2`*1A9b)S$zUlVn>2#UBFDACD&n8J<&U~+PNvQ4hsdM7h;!j662r;J?EtHOUH Qp%?aRlkN+Cl>Qw34S`7Gp#T5? delta 2232 zcma);dr(wW9LIm>+`X5*kKF|ol!u}siy*G9ny@Alh7+LUC|ZWuh}T$haS>s`G9Rmk zlZKgestKkV9sHv=)mlm-sjZriNey$xa71)$EXzk_nNjvTXKi$xrrMeNx!?0Szw3XqFpU_`!Nd@Il8onI&V6*hRJ|U()mx04h<)t>TdGOaj_4?_N>sB zbyeIrET3qK{d#X3v4@UQ%@({rYGjlG^99!k?u>dJ%^|@qVXh1Iw(?4sV7_3P;M0Py z3Wluh^cmQXPgQ|mtS77r#HpO))h$GU5_N{EK$SWc^9sSOLA4px9`!k5hi}v)m{pBW z4;7rLJ%`y8EElXr+Tm?Yr*`-dslZWfm!`l;L0RYZF@kA2KW>@ctZLxb+o=Z2kqXr7 zynnM`haThu+2Bk!UXvBbGx!;cgjs9&4F$F!HP~T1Ni;Yo2sWNG1oM#!Y`5_a2W@=& z<46sjvOj9qpjq$$QUQx&3;JFT?jJ!au)(o3^l;2*napAJab3s-eN%&DQ~(11hu18; za_bYxX9+A79gYOW;D}&3Dtc=ovcVNmbms<< zgGPMhK#2x#cPH=Meu$Xm{HN`&SlEVsNx|Di1VUm#y^S}$O$u)avsds(B!%lD|0%L= z=k?PCc?SyH9o($fHiJx);Z4C01X~4nBeUoMo_oVFp-u{R3$pR?nZa!JA~j%=dX>7# ze60kyv`Q05ooW|3L2#gCzfD-##cc(ogOhdkzX6#GC$V^c^#iXbH%tUduT6P7(6r?Ie~g?S#$z@ z&~{BOq+Z()D5SM$+@fhK*=W<1BHTUR%l3zqCDi4Ztqg(jj!I=6EpXJ};)fhdlm=RfISI1W z`d;LU+XKKP*YRwn^#-og}lm&nZAH;p5Mzh zJ5$(3=Mc8SnZQb&i7emQpAE&!;f!b3Qyt7qTO}6STxtJBD4rY@w3T)NhKxJ+9V_q<;9}lpGjQS|Ev=n84 zB@R0#Ei^0Gcf%3}mHGmv-(UHJw={3QSsegQY_!O4;>ty4&3qP}na-M1oy?Ot&gxqf z=@F{RoI|ug?YxEFnki;rLFkL&E=zQi<oLoQ6jqBEZ381kqH3n<8iT`>;%@8-IvvQvNQkwE}-~Eufps2!+7NbOrJ4v#@T)Q z1AnaRnzU_nV)3Tsy{?2Vc%1aES3JJc=Z5U#f0FL + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {358746BE-DAA4-42B3-9E11-6D00DA985393} + winmdobj + Properties + Growl.WinRT + Growl.WinRT + en-US + 512 + {BC8A1FFA-BEE3-4634-8014-F334798102B3};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + + + true + full + false + bin\Debug\ + DEBUG;TRACE;NETFX_CORE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE;NETFX_CORE + prompt + 4 + + + true + bin\ARM\Debug\ + DEBUG;TRACE;NETFX_CORE + ;2008 + full + ARM + false + prompt + true + + + bin\ARM\Release\ + TRACE;NETFX_CORE + true + ;2008 + pdbonly + ARM + false + prompt + true + + + true + bin\x64\Debug\ + DEBUG;TRACE;NETFX_CORE + ;2008 + full + x64 + false + prompt + true + + + bin\x64\Release\ + TRACE;NETFX_CORE + true + ;2008 + pdbonly + x64 + false + prompt + true + + + true + bin\x86\Debug\ + DEBUG;TRACE;NETFX_CORE + ;2008 + full + x86 + false + prompt + true + + + bin\x86\Release\ + TRACE;NETFX_CORE + true + ;2008 + pdbonly + x86 + false + prompt + true + + + + + + + + + + 11.0 + + + + \ No newline at end of file diff --git a/Growl Connectors/WinRT/Growl.WinRT/Growl.WinRT.sln b/Growl Connectors/WinRT/Growl.WinRT/Growl.WinRT.sln new file mode 100644 index 0000000..09cd2c5 --- /dev/null +++ b/Growl Connectors/WinRT/Growl.WinRT/Growl.WinRT.sln @@ -0,0 +1,38 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Growl.WinRT", "Growl.WinRT.csproj", "{358746BE-DAA4-42B3-9E11-6D00DA985393}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Debug|Any CPU.Build.0 = Debug|Any CPU + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Debug|ARM.ActiveCfg = Debug|ARM + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Debug|ARM.Build.0 = Debug|ARM + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Debug|x64.ActiveCfg = Debug|x64 + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Debug|x64.Build.0 = Debug|x64 + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Debug|x86.ActiveCfg = Debug|x86 + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Debug|x86.Build.0 = Debug|x86 + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Release|Any CPU.ActiveCfg = Release|Any CPU + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Release|Any CPU.Build.0 = Release|Any CPU + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Release|ARM.ActiveCfg = Release|ARM + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Release|ARM.Build.0 = Release|ARM + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Release|x64.ActiveCfg = Release|x64 + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Release|x64.Build.0 = Release|x64 + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Release|x86.ActiveCfg = Release|x86 + {358746BE-DAA4-42B3-9E11-6D00DA985393}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Growl Connectors/WinRT/Growl.WinRT/Properties/AssemblyInfo.cs b/Growl Connectors/WinRT/Growl.WinRT/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..505745b --- /dev/null +++ b/Growl Connectors/WinRT/Growl.WinRT/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Growl.WinRT")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Growl.WinRT")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: ComVisible(false)] \ No newline at end of file diff --git a/Growl Extras/Feed Subscription Plugin/Feed Subscription Plugin.csproj b/Growl Extras/Feed Subscription Plugin/Feed Subscription Plugin.csproj new file mode 100644 index 0000000..7236a75 --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/Feed Subscription Plugin.csproj @@ -0,0 +1,92 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {52C9CFA2-5FC6-4C94-A272-6F47D694D7C9} + Library + Properties + GrowlExtras.Subscriptions.FeedMonitor + GrowlExtras.Subscriptions.FeedMonitor + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + UserControl + + + FeedSubscriptionSettings.cs + + + + + + True + True + Resources.resx + + + + + + Designer + FeedSubscriptionSettings.cs + + + Designer + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + Always + + + + + + + + \ No newline at end of file diff --git a/Growl Extras/Feed Subscription Plugin/Feed Subscription Plugin.sln b/Growl Extras/Feed Subscription Plugin/Feed Subscription Plugin.sln new file mode 100644 index 0000000..1d9acc0 --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/Feed Subscription Plugin.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Feed Subscription Plugin", "Feed Subscription Plugin.csproj", "{52C9CFA2-5FC6-4C94-A272-6F47D694D7C9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C9F0568C-B959-4AD5-AD06-DDB099E5461B}" + ProjectSection(SolutionItems) = preProject + README.txt = README.txt + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {52C9CFA2-5FC6-4C94-A272-6F47D694D7C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {52C9CFA2-5FC6-4C94-A272-6F47D694D7C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {52C9CFA2-5FC6-4C94-A272-6F47D694D7C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52C9CFA2-5FC6-4C94-A272-6F47D694D7C9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Growl Extras/Feed Subscription Plugin/FeedInfo.cs b/Growl Extras/Feed Subscription Plugin/FeedInfo.cs new file mode 100644 index 0000000..5f83965 --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/FeedInfo.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace GrowlExtras.Subscriptions.FeedMonitor +{ + public class FeedInfo + { + string title; + string url; + string icon; + string language; + List items; + + public string Title + { + get + { + return this.title; + } + set + { + this.title = value; + } + } + + public string Url + { + get + { + return this.url; + } + set + { + this.url = value; + } + } + + public string Icon + { + get + { + return this.icon; + } + set + { + this.icon = value; + } + } + + public string Language + { + get + { + return this.language; + } + set + { + this.language = value; + } + } + + public List Items + { + get + { + return this.items; + } + set + { + this.items = value; + } + } + } +} diff --git a/Growl Extras/Feed Subscription Plugin/FeedItem.cs b/Growl Extras/Feed Subscription Plugin/FeedItem.cs new file mode 100644 index 0000000..d818a50 --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/FeedItem.cs @@ -0,0 +1,73 @@ +using System; + +namespace GrowlExtras.Subscriptions.FeedMonitor +{ + public class FeedItem + { + string title; + string link; + string description; + DateTime pubDate; + FeedInfo sourceFeed; + + public string Title + { + get + { + return this.title; + } + set + { + this.title = value; + } + } + + public string Link + { + get + { + return this.link; + } + set + { + this.link = value; + } + } + + public string Description + { + get + { + return this.description; + } + set + { + this.description = value; + } + } + + public DateTime PubDate + { + get + { + return this.pubDate; + } + set + { + this.pubDate = value; + } + } + + public FeedInfo SourceFeed + { + get + { + return this.sourceFeed; + } + set + { + this.sourceFeed = value; + } + } + } +} \ No newline at end of file diff --git a/Growl Extras/Feed Subscription Plugin/FeedSubscription.cs b/Growl Extras/Feed Subscription Plugin/FeedSubscription.cs new file mode 100644 index 0000000..27ec2f0 --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/FeedSubscription.cs @@ -0,0 +1,375 @@ +using System; +using System.Collections.Generic; +using System.Net; +using System.Text; +using System.Xml; +using Growl.Connector; +using Growl.Destinations; + +namespace GrowlExtras.Subscriptions.FeedMonitor +{ + [Serializable] + public class FeedSubscription : Subscription, IDisposable + { + private string feedUrl; + private int pollInterval; + private string username; + private string password; + private DateTimeOffset feedLastUpdated; + + [NonSerialized] + bool disposed; + [NonSerialized] + private Growl.CoreLibrary.WebClientEx webclient; + [NonSerialized] + private System.Timers.Timer timer; + [NonSerialized] + Growl.Connector.NotificationType ntNewFeedItem; + [NonSerialized] + Growl.Connector.NotificationType ntFeedError; + + public FeedSubscription(string description, string feedUrl, int pollInterval, string username, string password, bool enabled) + : base(description, enabled) + { + this.feedUrl = feedUrl; + this.pollInterval = pollInterval; + this.username = username; + this.password = password; + + Initialize(); + } + + /// + /// Runs when the entire object graph has been deserialized. + /// + /// The object that initiated the callback. The functionality for this parameter is not currently implemented. + /// + /// When GfW is closed, information about configured forward destinations and subscriptions is serialized to disk. + /// When GfW is restarted, that information is deserialized to reconstruct the instances. + /// Use this method to perform any additional initialization that is required after the object has + /// been deserialized (such as setting up timers, calling webservices, re-creating non-serialized fields, etc). + /// + public override void OnDeserialization(object sender) + { + Initialize(); + base.OnDeserialization(sender); + } + + private void Initialize() + { + this.timer = new System.Timers.Timer(); + this.timer.AutoReset = false; + this.timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed); + + this.webclient = new Growl.CoreLibrary.WebClientEx(); + this.webclient.Encoding = Encoding.UTF8; + this.webclient.OpenReadCompleted += new OpenReadCompletedEventHandler(webclient_OpenReadCompleted); + + this.ntNewFeedItem = new NotificationType("New Feed Item", "New Feed Item"); + this.ntFeedError = new NotificationType("Feed Error", "Feed Error"); + } + + public string AppName + { + get + { + return String.Format("{0} Feed", this.Description); + } + } + + public string FeedUrl + { + get + { + return this.feedUrl; + } + } + + public Uri FeedUri + { + get + { + Uri uri = null; + if (Uri.TryCreate(this.FeedUrl, UriKind.Absolute, out uri)) + return uri; + else + return null; + } + } + + public int PollInterval + { + get + { + return this.pollInterval; + } + } + + public string Username + { + get + { + return this.username; + } + } + + public string Password + { + get + { + return this.password; + } + } + + public void UpdateConfiguration(string name, string url, int pollInterval, string username, string password) + { + this.Description = name; + this.feedUrl = url; + this.pollInterval = pollInterval; + this.username = username; + this.password = password; + + this.Available = true; + Subscribe(); + } + + /// + /// Gets the text used to identify the address/location of this instance to the user. + /// + /// string + /// + /// This is shown as the second line of the item in the list view in GfW. + /// + /// + /// When implemented in a derived class, this should return the effective address of the + /// instance, such as a url, ip:port, network name, or other identifying location. + /// + public override string AddressDisplay + { + get + { + return this.FeedUrl; + } + } + + /// + /// Starts the subscription listening/polling for notifications. + /// + /// + /// GfW will call this whenever the subscription should be started (enabled via UI, + /// enabled via 'Subscribe to other computers...' setting, etc). Be careful to + /// ensure that you dont create duplicate subscriptions behind the scenes if this + /// method is called multiple times. + /// + public override void Subscribe() + { + Kill(); + + Growl.Connector.Application app = new Growl.Connector.Application(this.AppName); + app.Icon = (Growl.CoreLibrary.Resource)FeedSubscriptionHandler.Icon; + Register(app, new NotificationType[] { this.ntNewFeedItem, this.ntFeedError }); + + this.timer.Interval = this.pollInterval * 1000; + CheckForUpdates(); + } + + /// + /// Stops the subscription from listening/polling for notifications. + /// + /// + /// GfW will call this whenver the subscription should be disabled (disabled via UI, etc). + /// + public override void Kill() + { + if (this.timer != null) + { + this.timer.Stop(); + } + + if (this.webclient != null && this.webclient.IsBusy) + { + this.webclient.CancelAsync(); + } + } + + /// + /// Gets the icon used to represent this type of host. + /// + /// + /// + /// By default, this will return the icon of the , but + /// can be overridden to provide a custom icon. + /// + public override System.Drawing.Image GetIcon() + { + return FeedSubscriptionHandler.Icon; + } + + void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) + { + this.timer.Stop(); + CheckForUpdates(); + } + + private void CheckForUpdates() + { + if (this.Enabled) + { + Uri uri = this.FeedUri; + if (uri != null) + { + if (!this.webclient.IsBusy) + { + this.webclient.Credentials = new NetworkCredential(this.Username, this.Password); + this.webclient.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)"); + this.webclient.OpenReadAsync(uri); + } + } + else + { + ChangeStatus(false, "Invalid feed url"); + SendErrorNotification("Invalid feed url."); + } + } + } + + void webclient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) + { + // process the feed + if (!e.Cancelled) + { + if (e.Error == null && e.Result != null) + { + FeedInfo info = null; + XmlReaderSettings settings = new XmlReaderSettings(); + settings.ProhibitDtd = false; + using (XmlReader reader = XmlReader.Create(e.Result, settings)) + { + GenericFeedParser parser = new GenericFeedParser(); + info = parser.Parse(reader); + } + + if (info != null) + { + info.Url = this.FeedUrl; + ProcessFeed(info); + + ChangeStatus(true, String.Empty); + } + else + { + // the loader couldn't load the feed + ChangeStatus(false, "Could not parse feed"); + SendErrorNotification("Could not parse feed."); + } + } + else + { + if (e.Error != null) + { + // there was an error returned from the call + ChangeStatus(false, "Error retrieving feed"); + SendErrorNotification("Error retrieving feed."); + } + else + { + // an empty stream. + ChangeStatus(false, "Error retrieving feed"); + SendErrorNotification("Error retrieving feed."); + } + } + } + + // restart the timer + this.timer.Start(); + } + + private void ProcessFeed(FeedInfo feed) + { + DateTimeOffset mostRecentItem = this.feedLastUpdated; + if (mostRecentItem == DateTimeOffset.MaxValue) mostRecentItem = DateTimeOffset.MinValue; + + Growl.CoreLibrary.DebugInfo.WriteLine(String.Format("Feed Retrieved: {0} - Last Most Recent Item: {1}", this.Description, mostRecentItem)); + + foreach (FeedItem item in feed.Items) + { + DateTimeOffset itemDate = item.PubDate; + + if (itemDate > mostRecentItem) + mostRecentItem = itemDate; + + if (itemDate > this.feedLastUpdated) + { + Growl.CoreLibrary.DebugInfo.WriteLine(String.Format("{0} - New Feed Item - Published at: {1} - (last update at: {2})", this.Description, itemDate, this.feedLastUpdated)); + + item.SourceFeed = feed; + + Notification n = new Notification(this.AppName, this.ntNewFeedItem.Name, String.Empty, this.AppName, item.Title); + n.Icon = feed.Icon; + + CallbackContext c = null; + if (!String.IsNullOrEmpty(item.Link)) + { + c = new CallbackContext(item.Link); + } + + // the NotificationQueue provides some simple throttling so that the screen is not flooded with new items + // (especially important at load time when there could be lots of new items) + NotificationQueue.Enqueue(n, c); + } + } + + this.feedLastUpdated = mostRecentItem; // feed.LastUpdatedTime is not always set =( + } + + private void SendErrorNotification(string text) + { + Notification n = new Notification(this.AppName, this.ntFeedError.Name, String.Empty, this.AppName, text); + Notify(n); + + Growl.CoreLibrary.DebugInfo.WriteLine(text); + } + + public override DestinationBase Clone() + { + FeedSubscription clone = new FeedSubscription(this.Description, this.FeedUrl, this.PollInterval, this.Username, this.Password, this.Enabled); + return clone; + } + + #region IDisposable Members + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + private void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + Kill(); + + if (this.timer != null) + { + this.timer.Elapsed -= new System.Timers.ElapsedEventHandler(timer_Elapsed); + this.timer.Dispose(); + this.timer = null; + } + + if (this.webclient != null) + { + this.webclient.OpenReadCompleted -= new OpenReadCompletedEventHandler(webclient_OpenReadCompleted); + this.webclient.Dispose(); + this.webclient = null; + } + } + this.disposed = true; + } + } + + #endregion + } +} diff --git a/Growl Extras/Feed Subscription Plugin/FeedSubscriptionHandler.cs b/Growl Extras/Feed Subscription Plugin/FeedSubscriptionHandler.cs new file mode 100644 index 0000000..4f3bd84 --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/FeedSubscriptionHandler.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Growl.Destinations; + +namespace GrowlExtras.Subscriptions.FeedMonitor +{ + /// + /// Manages the creation and operation of the feed subscriber. + /// + /// + /// For each feed url that is configured, GfW will poll on the user-specified interval + /// to check for new items. + /// + public class FeedSubscriptionHandler : ISubscriptionHandler + { + public static System.Drawing.Image Icon = Properties.Resources.rss; + + #region IDestinationHandler Members + + /// + /// The name of the subscription instance + /// + /// string + public string Name + { + get + { + return "Feed Monitor"; + } + } + + /// + /// Registers the subscriber with Growl. + /// + /// + /// + /// A single handler can register multiple subscriber types if desired. + /// However, most of the time, you will return a list with just a single + /// item in it. + /// + public List Register() + { + List list = new List(); + list.Add(typeof(FeedSubscription)); + return list; + } + + /// + /// Gets the list of s to display as choices when + /// the user chooses 'Add Subscription'. + /// + /// + /// + /// A single handler can return multiple list entries if appropriate (for example, the Bonjour forwarder + /// detects other computers on the network and returns each as a separate list item). + /// However, most of the time, you will return a list with just a single + /// item in it. + /// + public List GetListItems() + { + SubscriptionListItem item = new SubscriptionListItem("Subscribe to an RSS or Atom feed", Icon, this); // TODO: LOCAL: LOCALIZE: + List list = new List(); + list.Add(item); + return list; + } + + /// + /// Gets the settings panel associated with this subscriber. + /// + /// The as selected by the user + /// + /// + /// This is called when a user is adding a new subscription. + /// + public DestinationSettingsPanel GetSettingsPanel(DestinationListItem fdli) + { + return new FeedSubscriptionSettings(); + } + + /// + /// Gets the settings panel associated with this subscriber. + /// + /// The of an exiting subscription + /// + /// + /// This is called when a user is editing an existing subscription. + /// + public DestinationSettingsPanel GetSettingsPanel(DestinationBase fd) + { + return new FeedSubscriptionSettings(); + } + + #endregion + } +} diff --git a/Growl Extras/Feed Subscription Plugin/FeedSubscriptionSettings.Designer.cs b/Growl Extras/Feed Subscription Plugin/FeedSubscriptionSettings.Designer.cs new file mode 100644 index 0000000..2e1a25a --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/FeedSubscriptionSettings.Designer.cs @@ -0,0 +1,170 @@ +namespace GrowlExtras.Subscriptions.FeedMonitor +{ + partial class FeedSubscriptionSettings + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.textBoxUrl = new Growl.Destinations.HighlightTextBox(); + this.labelUrl = new System.Windows.Forms.Label(); + this.labelName = new System.Windows.Forms.Label(); + this.textBoxName = new Growl.Destinations.HighlightTextBox(); + this.comboBoxPoll = new System.Windows.Forms.ComboBox(); + this.labelPoll = new System.Windows.Forms.Label(); + this.labelUsername = new System.Windows.Forms.Label(); + this.textBoxUsername = new Growl.Destinations.HighlightTextBox(); + this.labelPassword = new System.Windows.Forms.Label(); + this.textBoxPassword = new Growl.Destinations.HighlightTextBox(); + this.panelDetails.SuspendLayout(); + this.SuspendLayout(); + // + // panelDetails + // + this.panelDetails.Controls.Add(this.textBoxPassword); + this.panelDetails.Controls.Add(this.labelPassword); + this.panelDetails.Controls.Add(this.textBoxUsername); + this.panelDetails.Controls.Add(this.labelUsername); + this.panelDetails.Controls.Add(this.labelPoll); + this.panelDetails.Controls.Add(this.comboBoxPoll); + this.panelDetails.Controls.Add(this.textBoxName); + this.panelDetails.Controls.Add(this.labelName); + this.panelDetails.Controls.Add(this.labelUrl); + this.panelDetails.Controls.Add(this.textBoxUrl); + // + // textBoxUrl + // + this.textBoxUrl.HighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(254)))), ((int)(((byte)(250)))), ((int)(((byte)(184))))); + this.textBoxUrl.Location = new System.Drawing.Point(109, 37); + this.textBoxUrl.Name = "textBoxUrl"; + this.textBoxUrl.Size = new System.Drawing.Size(199, 20); + this.textBoxUrl.TabIndex = 2; + this.textBoxUrl.TextChanged += new System.EventHandler(this.textBoxUrl_TextChanged); + // + // labelUrl + // + this.labelUrl.AutoSize = true; + this.labelUrl.Location = new System.Drawing.Point(13, 40); + this.labelUrl.Name = "labelUrl"; + this.labelUrl.Size = new System.Drawing.Size(50, 13); + this.labelUrl.TabIndex = 1; + this.labelUrl.Text = "Feed Url:"; + // + // labelName + // + this.labelName.AutoSize = true; + this.labelName.Location = new System.Drawing.Point(13, 16); + this.labelName.Name = "labelName"; + this.labelName.Size = new System.Drawing.Size(38, 13); + this.labelName.TabIndex = 2; + this.labelName.Text = "Name:"; + // + // textBoxName + // + this.textBoxName.HighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(254)))), ((int)(((byte)(250)))), ((int)(((byte)(184))))); + this.textBoxName.Location = new System.Drawing.Point(109, 13); + this.textBoxName.Name = "textBoxName"; + this.textBoxName.Size = new System.Drawing.Size(199, 20); + this.textBoxName.TabIndex = 1; + this.textBoxName.TextChanged += new System.EventHandler(this.textBoxName_TextChanged); + // + // comboBoxPoll + // + this.comboBoxPoll.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBoxPoll.FormattingEnabled = true; + this.comboBoxPoll.Location = new System.Drawing.Point(140, 61); + this.comboBoxPoll.Name = "comboBoxPoll"; + this.comboBoxPoll.Size = new System.Drawing.Size(121, 21); + this.comboBoxPoll.TabIndex = 3; + // + // labelPoll + // + this.labelPoll.AutoSize = true; + this.labelPoll.Location = new System.Drawing.Point(13, 64); + this.labelPoll.Name = "labelPoll"; + this.labelPoll.Size = new System.Drawing.Size(121, 13); + this.labelPoll.TabIndex = 5; + this.labelPoll.Text = "Poll for new items every:"; + // + // labelUsername + // + this.labelUsername.AutoSize = true; + this.labelUsername.Location = new System.Drawing.Point(13, 112); + this.labelUsername.Name = "labelUsername"; + this.labelUsername.Size = new System.Drawing.Size(58, 13); + this.labelUsername.TabIndex = 6; + this.labelUsername.Text = "Username:"; + // + // textBoxUsername + // + this.textBoxUsername.HighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(254)))), ((int)(((byte)(250)))), ((int)(((byte)(184))))); + this.textBoxUsername.Location = new System.Drawing.Point(109, 109); + this.textBoxUsername.Name = "textBoxUsername"; + this.textBoxUsername.Size = new System.Drawing.Size(199, 20); + this.textBoxUsername.TabIndex = 4; + // + // labelPassword + // + this.labelPassword.AutoSize = true; + this.labelPassword.Location = new System.Drawing.Point(13, 136); + this.labelPassword.Name = "labelPassword"; + this.labelPassword.Size = new System.Drawing.Size(56, 13); + this.labelPassword.TabIndex = 8; + this.labelPassword.Text = "Password:"; + // + // textBoxPassword + // + this.textBoxPassword.HighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(254)))), ((int)(((byte)(250)))), ((int)(((byte)(184))))); + this.textBoxPassword.Location = new System.Drawing.Point(109, 133); + this.textBoxPassword.Name = "textBoxPassword"; + this.textBoxPassword.Size = new System.Drawing.Size(199, 20); + this.textBoxPassword.TabIndex = 5; + this.textBoxPassword.UseSystemPasswordChar = true; + // + // FeedSubscriptionSettings + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.Name = "FeedSubscriptionSettings"; + this.panelDetails.ResumeLayout(false); + this.panelDetails.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private Growl.Destinations.HighlightTextBox textBoxUrl; + private System.Windows.Forms.Label labelUrl; + private Growl.Destinations.HighlightTextBox textBoxName; + private System.Windows.Forms.Label labelName; + private System.Windows.Forms.Label labelPoll; + private System.Windows.Forms.ComboBox comboBoxPoll; + private System.Windows.Forms.Label labelUsername; + private Growl.Destinations.HighlightTextBox textBoxPassword; + private System.Windows.Forms.Label labelPassword; + private Growl.Destinations.HighlightTextBox textBoxUsername; + + } +} diff --git a/Growl Extras/Feed Subscription Plugin/FeedSubscriptionSettings.cs b/Growl Extras/Feed Subscription Plugin/FeedSubscriptionSettings.cs new file mode 100644 index 0000000..30dfec5 --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/FeedSubscriptionSettings.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; +using Growl.Destinations; + +namespace GrowlExtras.Subscriptions.FeedMonitor +{ + public partial class FeedSubscriptionSettings : DestinationSettingsPanel + { + private bool doValidation; + + public FeedSubscriptionSettings() + { + InitializeComponent(); + } + + /// + /// Initializes the configuration UI when a subscription is being added or edited. + /// + /// will always be true for s + /// The that the user selected + /// The of the item if it is being edited;null otherwise + /// + /// When an instance is being edited ( != null), make sure to repopulate any + /// inputs with the current values. + /// + /// By default, the 'Save' button is disabled and you must call + /// in order to enable it when appropriate. + /// + public override void Initialize(bool isSubscription, DestinationListItem fdli, DestinationBase db) + { + this.doValidation = true; + + // set text box values + this.textBoxUrl.Text = String.Empty; + this.textBoxUrl.Enabled = true; + this.textBoxName.Text = String.Empty; + this.textBoxName.Enabled = true; + + this.comboBoxPoll.DataSource = PollInterval.GetList(); + this.comboBoxPoll.DisplayMember = "Display"; + this.comboBoxPoll.ValueMember = "Value"; + + this.textBoxUsername.Text = String.Empty; + this.textBoxUsername.Enabled = true; + this.textBoxPassword.Text = String.Empty; + this.textBoxPassword.Enabled = true; + + FeedSubscription fs = db as FeedSubscription; + if (fs != null) + { + this.textBoxUrl.Text = fs.FeedUrl; + this.textBoxName.Text = fs.Description; + this.comboBoxPoll.SelectedValue = fs.PollInterval; + this.textBoxUsername.Text = fs.Username; + this.textBoxPassword.Text = fs.Password; + } + ValidateInputs(); + + this.textBoxName.Focus(); + } + + /// + /// Creates a new instance of the subscriber. + /// + /// New + /// + /// This is called when the user is adding a new subscription and clicks the 'Save' button. + /// + public override DestinationBase Create() + { + FeedSubscription fs = new FeedSubscription(this.textBoxName.Text, this.textBoxUrl.Text, Convert.ToInt32(this.comboBoxPoll.SelectedValue), this.textBoxUsername.Text, this.textBoxPassword.Text, true); + fs.Subscribe(); + return fs; + } + + /// + /// Updates the specified subscription instance. + /// + /// The to update + /// + /// This is called when a user is editing an existing subscription and clicks the 'Save' button. + /// + public override void Update(DestinationBase db) + { + FeedSubscription fs = db as FeedSubscription; + if (fs != null) + { + fs.UpdateConfiguration(this.textBoxName.Text, this.textBoxUrl.Text, Convert.ToInt32(this.comboBoxPoll.SelectedValue), this.textBoxUsername.Text, this.textBoxPassword.Text); + } + } + + private void ValidateInputs() + { + bool valid = true; + if (this.doValidation) + { + if (String.IsNullOrEmpty(this.textBoxUrl.Text)) + { + this.textBoxUrl.Highlight(); + valid = false; + } + else + { + this.textBoxUrl.Unhighlight(); + } + + if (String.IsNullOrEmpty(this.textBoxName.Text)) + { + this.textBoxName.Highlight(); + valid = false; + } + else + { + this.textBoxName.Unhighlight(); + } + } + OnValidChanged(valid); + } + + private class PollInterval + { + private static List list; + + public static List GetList() + { + if (list == null) + { + list = new List(); + list.Add(new PollInterval(60, "1 minute")); + list.Add(new PollInterval(120, "2 minutes")); + list.Add(new PollInterval(300, "5 minutes")); + list.Add(new PollInterval(600, "10 minutes")); + list.Add(new PollInterval(900, "15 minutes")); + list.Add(new PollInterval(1800, "30 minutes")); + list.Add(new PollInterval(3600, "60 minutes")); + } + return list; + } + + private int val; + private string display; + + private PollInterval(int val, string display) + { + this.val = val; + this.display = display; + } + + public int Value + { + get + { + return this.val; + } + } + + public string Display + { + get + { + return this.display; + } + } + } + + private void textBoxName_TextChanged(object sender, EventArgs e) + { + ValidateInputs(); + } + + private void textBoxUrl_TextChanged(object sender, EventArgs e) + { + ValidateInputs(); + } + } +} diff --git a/Growl Extras/Feed Subscription Plugin/FeedSubscriptionSettings.resx b/Growl Extras/Feed Subscription Plugin/FeedSubscriptionSettings.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/FeedSubscriptionSettings.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Growl Extras/Feed Subscription Plugin/GenericFeedParser.cs b/Growl Extras/Feed Subscription Plugin/GenericFeedParser.cs new file mode 100644 index 0000000..7547ac6 --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/GenericFeedParser.cs @@ -0,0 +1,162 @@ +using System; +using System.Collections.Generic; +using System.Xml; + +namespace GrowlExtras.Subscriptions.FeedMonitor +{ + public class GenericFeedParser + { + public FeedInfo Parse(XmlReader reader) + { + try + { + FeedInfo info = new FeedInfo(); + + //create a List of type Dictionary for the element names and values + List> items = new List>(); + + // declare a Dictionary to capture each current Item in the while loop + Dictionary currentItem = null; + + bool parsingItems = false; + + /// Read each element with the reader + while (reader.Read()) + { + // if it's an element, we want to process it + if (reader.NodeType == XmlNodeType.Element) + { + string name = reader.Name.ToLowerInvariant(); + + // handle title + if (!parsingItems && name == "title") + { + reader.Read(); + info.Title = reader.Value; + } + + // handle language + if (!parsingItems && name == "language") + { + reader.Read(); + info.Language = reader.Value; + } + + /* most feed logos/images/icons are not square, so we are not using this for now + // handle icon + if (!parsingItems && name == "logo") // atom + { + reader.Read(); + info.Icon = reader.Value; + } + else if (!parsingItems && name == "image") // rss + { + bool search = true; + while (search) + { + reader.Read(); + if (reader.Name == "url") + { + reader.Read(); + info.Icon = reader.Value; + } + + if (reader.Name == "image" && reader.NodeType == XmlNodeType.EndElement) + search = false; + } + } + * */ + + + if (name == "item" || name == "entry") + { + parsingItems = true; + + // Save previous item + if (currentItem != null) + items.Add(currentItem); + + // Create new item + currentItem = new Dictionary(); + } + else if (currentItem != null) + { + // some feeds can have duplicate keys, so we don't want to blow up here: + if (!currentItem.ContainsKey(name)) + { + // handle href attribute + string href = String.Empty; + if (name == "link" && reader.HasAttributes) + { + href = reader.GetAttribute("href"); + } + + reader.Read(); + string val = reader.Value.Trim(); + + if (!String.IsNullOrEmpty(href) && String.IsNullOrEmpty(val)) + val = href; + + currentItem.Add(name, val); + } + } + } + } + // Save previous item + if (currentItem != null) + items.Add(currentItem); + + // now create a List of type GenericFeedItem + List itemList = new List(); + // iterate all our items from the reader + foreach (Dictionary d in items) + { + FeedItem itm = new FeedItem(); + //do a switch on the Key of the Dictionary of each item + foreach (string k in d.Keys) + { + switch (k) + { + case "title": + itm.Title = d[k]; + break; + case "link": + itm.Link = d[k]; + break; + case "published": + case "pubdate": + case "issued": + case "updated": + DateTime dt; + bool ok = Rfc822DateTime.TryParse(d[k], info.Language, out dt); + itm.PubDate = ok ? dt : DateTime.Now; + // log failed date parsing so we can update the format.xml file if needed + if (!ok) + { + string msg = String.Format("Feed Plugin: DateTime parsing failed for value '{0}'; Feed '{1}'", d[k], info.Url); + Growl.CoreLibrary.DebugInfo.WriteLine(msg); + } + break; + case "content": + case "description": + itm.Description = d[k]; + break; + default: + break; + } + } + // add the created item to our List + itemList.Add(itm); + } + + info.Items = itemList; + + return info; + } + catch + { + return null; + } + } + } +} diff --git a/Growl Extras/Feed Subscription Plugin/NotificationQueue.cs b/Growl Extras/Feed Subscription Plugin/NotificationQueue.cs new file mode 100644 index 0000000..48a97ad --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/NotificationQueue.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Timers; +using Growl.Connector; + +namespace GrowlExtras.Subscriptions.FeedMonitor +{ + static class NotificationQueue + { + private const int INTERVAL = 3; // seconds + + private static GrowlConnector growl; + private static Queue queue; + private static Timer timer; + + static NotificationQueue() + { + growl = new GrowlConnector(); + growl.EncryptionAlgorithm = Cryptography.SymmetricAlgorithmType.PlainText; + + queue = new Queue(); + + timer = new Timer(INTERVAL * 1000); + timer.AutoReset = true; + timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); + } + + static void timer_Elapsed(object sender, ElapsedEventArgs e) + { + if (queue.Count > 0) + { + QueuedNotification qn = queue.Dequeue(); + growl.Notify(qn.Notification, qn.Context); + } + + // if the queue has been emptied, stop the timer (it will get restarted when another item is enqueued) + if (queue.Count == 0) timer.Stop(); + } + + public static void Enqueue(Notification notification, CallbackContext context) + { + QueuedNotification qn = new QueuedNotification(notification, context); + queue.Enqueue(qn); + timer.Start(); + } + + private class QueuedNotification + { + public QueuedNotification(Notification notification, CallbackContext context) + { + this.Notification = notification; + this.Context = context; + } + + public Notification Notification; + public CallbackContext Context; + } + } +} diff --git a/Growl Extras/Feed Subscription Plugin/Properties/AssemblyInfo.cs b/Growl Extras/Feed Subscription Plugin/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..939987f --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("RSS Subscription Plugin")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("element code project")] +[assembly: AssemblyProduct("RSS Subscription Plugin")] +[assembly: AssemblyCopyright("Copyright © element code project 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("db4e2348-bef2-48a4-83bb-a54c656a1196")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Growl Extras/Feed Subscription Plugin/Properties/Resources.Designer.cs b/Growl Extras/Feed Subscription Plugin/Properties/Resources.Designer.cs new file mode 100644 index 0000000..decdecb --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3082 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GrowlExtras.Subscriptions.FeedMonitor.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GrowlExtras.Subscriptions.FeedMonitor.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap rss { + get { + object obj = ResourceManager.GetObject("rss", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Growl Extras/Feed Subscription Plugin/Properties/Resources.resx b/Growl Extras/Feed Subscription Plugin/Properties/Resources.resx new file mode 100644 index 0000000..e783209 --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\rss.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Growl Extras/Feed Subscription Plugin/README.txt b/Growl Extras/Feed Subscription Plugin/README.txt new file mode 100644 index 0000000..6ea57df --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/README.txt @@ -0,0 +1,77 @@ +Growl for Windows - Subscriber Plugin SDK +-------------------------------------------------- + +This documentation is sparse at the moment, but the steps required to implement +a custom subscriber plugin are simple and outlined below. + +SETUP AND DEVELOPMENT +-------------------------------------------------- +1. Create a new Class Library project. +2. Add references to the following .dlls (all can be found in the 'libraries' + folder in the SDK sample project): + Growl.CoreLibrary.dll + Growl.Connector.dll + Growl.Destinations.dll +3. Create a new class that implements from Growl.Destinations.ISubscriptionHandler + (see the FeedSubscriptionHandler.cs class in this SDK for a sample and + explanations on how to implement each method). This class is what GfW uses + to register the plugin and to know which UI to show for each plugin type. +4. Create a new class that inherits from Growl.Destinations.Subscription. + This is the class that does that actual work of checking for/receiving + notifications and pushing them to GfW. The FeedSubscription.cs class in this + SDK provides examples of how to implement the required methods. +5. Create a new class that inherits from Growl.Destinations.DestinationSettingsPanel. + This is a WebForms control that handles the UI for configuring/editing the + plugin. See the FeedSubscriptionSettings.cs file in this SDK for examples of + how to implement the required methods. Take special care to make sure you + handle creating new instances and editing existing instances in your UI. + +TESTING +-------------------------------------------------- +To test your plugin, navigate to: + %USERPROFILE%\Local Settings\Application Data\Growl\2.0.0.0\Subscribers + +Create a new subfolder for your plugin and copy the compiled .dll and all +supporting files (including the Growl.* libraries from Step 2 above). + +When you run GfW the next time, GfW will scan the 'Subscribers' folder looking +for new folders. When your plugin folder is found, each assembly will be loaded +dynamically and scanned for the class that implements ISubscriptionHandler. +When that class is found, the Register() method will be called, and your plugin +will be available to the user when they click the 'Add Subscription' button on +the Network tab. + +DEPLOYMENT +-------------------------------------------------- +Once your plugin is complete, create a .zip file that contains the resulting +.dll and all other required files (including the Growl.* class libraries listed +in Step 2). At this point, you can either have user's download the files +directly, manually create a folder in their User Profile location, and extract +the files, or you can create a installation manifest that GfW can use to +automatically download and install your plugin. To create an installation +manifest, follow the instructions below: + +1. Make a copy of the 'feed.xml' file from this SDK and give it a meaningful + name +2. Update the information in the new file, including the name of the plugin, + author, description, etc. +3. Make sure the lists the location of the .zip file that contains + all of the files required by your plugin. + +To use the installation manifest, you can create a special type of url. The +format is: + + growl:subscriber*http://url.to.your/manifest.xml + +If a user has GfW installed, the growl: protocol will launch GfW and then GfW +will download the XML file from the url specified. Using the information in the +XML file, GfW will ask the user if they want to install the plugin, and if so, +automatically download the .zip file and extract the contents to the correct +location in their User Profile folder. You can use the special link anywhere +you would use a normal link: + +Click to install plugin + +NOTE: Make sure your special growl: link contains the url to the manifest XML +file, not the url to the .zip file containing your plugin's files. + diff --git a/Growl Extras/Feed Subscription Plugin/Resources/rss.png b/Growl Extras/Feed Subscription Plugin/Resources/rss.png new file mode 100644 index 0000000000000000000000000000000000000000..dd840055d745832d1f9b2a262ab31f9b3994e2f5 GIT binary patch literal 3927 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 R^&}VwUA=zQ^%Zd1{{gM97McJ6 literal 0 HcmV?d00001 diff --git a/Growl Extras/Feed Subscription Plugin/Rfc822DateTime.cs b/Growl Extras/Feed Subscription Plugin/Rfc822DateTime.cs new file mode 100644 index 0000000..dc43528 --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/Rfc822DateTime.cs @@ -0,0 +1,242 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Xml; + +namespace GrowlExtras.Subscriptions.FeedMonitor +{ + /// + /// Provides methods for converting structures + /// to and from the equivalent RFC 822 + /// string representation. + /// + public class Rfc822DateTime + { + /// + /// Private member to hold array of formats that RFC 822 date-time representations conform to. + /// + private static string[] formats = new string[0]; + + /// + /// Private member to hold the DateTime format string for representing a DateTime in the RFC 822 format. + /// + private const string format = "ddd, dd MMM yyyy HH:mm:ss K"; + + private static Dictionary timezoneOffsets = null; + + static Rfc822DateTime() + { + string folder = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); + string file = System.IO.Path.Combine(folder, "formats.xml"); + + XmlDocument xml = new XmlDocument(); + xml.Load(file); + + List formatList = new List(); + XmlNodeList formatNodes = xml.SelectNodes("/datetimeparser/formats/format"); + foreach (XmlNode formatNode in formatNodes) + { + formatList.Add(formatNode.InnerText); + } + // Fall back patterns + formatList.Add(DateTimeFormatInfo.InvariantInfo.UniversalSortableDateTimePattern); + formatList.Add(DateTimeFormatInfo.InvariantInfo.SortableDateTimePattern); + formats = formatList.ToArray(); + + timezoneOffsets = new Dictionary(); + XmlNodeList timezoneNodes = xml.SelectNodes("/datetimeparser/timezones/timezone"); + foreach (XmlNode timezoneNode in timezoneNodes) + { + string abbr = timezoneNode.Attributes["abbr"].Value; + string val = timezoneNode.InnerText; + timezoneOffsets.Add(abbr, val); + } + } + + + /// + /// Gets the custom format specifier that may be used to represent a in the RFC 822 format. + /// + /// A DateTime format string that may be used to represent a in the RFC 822 format. + /// + /// + /// This method returns a string representation of a that utilizes the time zone + /// offset (local differential) to represent the offset from Greenwich mean time in hours and minutes. + /// The is a valid date-time format string for use + /// in the method. + /// + /// + /// The RFC 822 Date and Time specification + /// specifies that the year will be represented as a two-digit value, but the + /// RSS Profile recommends that + /// all date-time values should use a four-digit year. The class + /// follows the RSS Profile recommendation when converting a to the equivalent + /// RFC 822 string representation. + /// + /// + public static string Rfc822DateTimeFormat + { + get + { + return format; + } + } + + /// + /// Gets an array of the expected formats for RFC 822 date-time string representations. + /// + /// + /// An array of the expected formats for RFC 822 date-time string representations + /// that may used in the method. + /// + /// + /// The array of the expected formats that is returned assumes that the RFC 822 time zone + /// is represented as or converted to a local differential representation. + /// + /// + public static string[] Rfc822DateTimePatterns + { + get + { + return formats; + } + } + + /// + /// Converts the specified string representation of a date and time to its equivalent. + /// + /// A string containing a date and time to convert. + /// + /// A equivalent to the date and time contained in , + /// expressed as Coordinated Universal Time (UTC). + /// + /// + /// The string is parsed using formatting information in the object. + /// + /// is a null reference (Nothing in Visual Basic). + /// is an empty string. + /// does not contain a valid RFC 822 string representation of a date and time. + public static DateTime Parse(string s) + { + DateTime result; + if (Rfc822DateTime.TryParse(s, out result)) + { + return result; + } + else + { + throw new FormatException(String.Format(null, "{0} is not a valid RFC 822 string representation of a date and time.", s)); + } + } + + /// + /// Converts the time zone component of an RFC 822 date and time string representation to its local differential (time zone offset). + /// + /// A string containing an RFC 822 date and time to convert. + /// A date and time string that uses local differential to describe the time zone equivalent to the date and time contained in . + /// is a null reference (Nothing in Visual Basic). + /// is an empty string. + public static string ConvertZoneToLocalDifferential(string s) + { + string zoneRepresentedAsLocalDifferential = s; + + foreach (KeyValuePair item in timezoneOffsets) + { + bool found = false; + + List endings = new List(); + endings.Add(String.Format(" {0}", item.Key)); + endings.Add(item.Key); + + foreach (string ending in endings) + { + if (s.EndsWith(ending, StringComparison.OrdinalIgnoreCase)) + { + zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(ending))), " ", item.Value); + found = true; + break; + } + } + + if (found) break; + } + + return zoneRepresentedAsLocalDifferential; + } + + /// + /// Converts the value of the specified object to its equivalent string representation. + /// + /// The Coordinated Universal Time (UTC) to convert. + /// A RFC 822 string representation of the value of the . + /// The specified object does not represent a Coordinated Universal Time (UTC) value. + public static string ToString(DateTime utcDateTime) + { + if (utcDateTime.Kind != DateTimeKind.Utc) + { + throw new ArgumentException("utcDateTime"); + } + + return utcDateTime.ToString(Rfc822DateTime.Rfc822DateTimeFormat, DateTimeFormatInfo.InvariantInfo); + } + + public static bool TryParse(string s, out DateTime result) + { + return TryParse(s, null, out result); + } + + /// + /// Converts the specified string representation of a date and time to its equivalent. + /// + /// A string containing a date and time to convert. + /// + /// When this method returns, contains the value equivalent to the date and time + /// contained in , expressed as Coordinated Universal Time (UTC), + /// if the conversion succeeded, or MinValue if the conversion failed. + /// The conversion fails if the s parameter is a null reference (Nothing in Visual Basic), + /// or does not contain a valid string representation of a date and time. + /// This parameter is passed uninitialized. + /// + /// true if the parameter was converted successfully; otherwise, false. + /// + /// The string is parsed using formatting information in the object. + /// + public static bool TryParse(string s, string cultureCode, out DateTime result) + { + //------------------------------------------------------------ + // Attempt to convert string representation + //------------------------------------------------------------ + bool wasConverted = false; + result = DateTime.MinValue; + + if (!String.IsNullOrEmpty(s)) + { + List dtfis = new List(); + dtfis.Add(DateTimeFormatInfo.InvariantInfo); + + try + { + if (!String.IsNullOrEmpty(cultureCode)) + { + CultureInfo ci = CultureInfo.CreateSpecificCulture(cultureCode); + dtfis.Add(ci.DateTimeFormat); + } + } + catch { } + + DateTime parseResult; + foreach (DateTimeFormatInfo dtfi in dtfis) + { + if (DateTime.TryParseExact(Rfc822DateTime.ConvertZoneToLocalDifferential(s), Rfc822DateTime.Rfc822DateTimePatterns, dtfi, DateTimeStyles.AdjustToUniversal, out parseResult)) + { + result = DateTime.SpecifyKind(parseResult, DateTimeKind.Utc); + wasConverted = true; + break; + } + } + } + + return wasConverted; + } + } +} \ No newline at end of file diff --git a/Growl Extras/Feed Subscription Plugin/feed.xml b/Growl Extras/Feed Subscription Plugin/feed.xml new file mode 100644 index 0000000..3f56aef --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/feed.xml @@ -0,0 +1,22 @@ + + + + RSS/Atom Feed Subscriber + + + Brian Dunnington + + + 1.0 + + + http://localhost/web/feed.zip + + + + + + \ No newline at end of file diff --git a/Growl Extras/Feed Subscription Plugin/formats.xml b/Growl Extras/Feed Subscription Plugin/formats.xml new file mode 100644 index 0000000..07cd5a2 --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/formats.xml @@ -0,0 +1,132 @@ + + + + + + ddd',' dd MMM yyyy HH':'mm':'ss'.'fffffff zzzz + ddd',' dd MMM yyyy HH':'mm':'ss'.'ffffff zzzz + ddd',' dd MMM yyyy HH':'mm':'ss'.'fffff zzzz + ddd',' dd MMM yyyy HH':'mm':'ss'.'ffff zzzz + ddd',' dd MMM yyyy HH':'mm':'ss'.'fff zzzz + ddd',' dd MMM yyyy HH':'mm':'ss'.'ff zzzz + ddd',' dd MMM yyyy HH':'mm':'ss'.'f zzzz + ddd',' dd MMM yyyy HH':'mm':'ss zzzz + ddd',' dd MMM yyyy HH':'mm':'ss'.'fffffffzzzz + ddd',' dd MMM yyyy HH':'mm':'ss'.'ffffffzzzz + ddd',' dd MMM yyyy HH':'mm':'ss'.'fffffzzzz + ddd',' dd MMM yyyy HH':'mm':'ss'.'ffffzzzz + ddd',' dd MMM yyyy HH':'mm':'ss'.'fffzzzz + ddd',' dd MMM yyyy HH':'mm':'ss'.'ffzzzz + ddd',' dd MMM yyyy HH':'mm':'ss'.'fzzzz + ddd',' dd MMM yyyy HH':'mm':'sszzzz + + + ddd',' dd MMM yy HH':'mm':'ss'.'fffffff zzzz + ddd',' dd MMM yy HH':'mm':'ss'.'ffffff zzzz + ddd',' dd MMM yy HH':'mm':'ss'.'fffff zzzz + ddd',' dd MMM yy HH':'mm':'ss'.'ffff zzzz + ddd',' dd MMM yy HH':'mm':'ss'.'fff zzzz + ddd',' dd MMM yy HH':'mm':'ss'.'ff zzzz + ddd',' dd MMM yy HH':'mm':'ss'.'f zzzz + ddd',' dd MMM yy HH':'mm':'ss zzzz + ddd',' dd MMM yy HH':'mm':'ss'.'fffffffzzzz + ddd',' dd MMM yy HH':'mm':'ss'.'ffffffzzzz + ddd',' dd MMM yy HH':'mm':'ss'.'fffffzzzz + ddd',' dd MMM yy HH':'mm':'ss'.'ffffzzzz + ddd',' dd MMM yy HH':'mm':'ss'.'fffzzzz + ddd',' dd MMM yy HH':'mm':'ss'.'ffzzzz + ddd',' dd MMM yy HH':'mm':'ss'.'fzzzz + ddd',' dd MMM yy HH':'mm':'sszzzz + + + ddd',' d MMM yyyy HH':'mm':'ss'.'fffffff zzzz + ddd',' d MMM yyyy HH':'mm':'ss'.'ffffff zzzz + ddd',' d MMM yyyy HH':'mm':'ss'.'fffff zzzz + ddd',' d MMM yyyy HH':'mm':'ss'.'ffff zzzz + ddd',' d MMM yyyy HH':'mm':'ss'.'fff zzzz + ddd',' d MMM yyyy HH':'mm':'ss'.'ff zzzz + ddd',' d MMM yyyy HH':'mm':'ss'.'f zzzz + ddd',' d MMM yyyy HH':'mm':'ss zzzz + ddd',' d MMM yyyy HH':'mm':'ss'.'fffffffzzzz + ddd',' d MMM yyyy HH':'mm':'ss'.'ffffffzzzz + ddd',' d MMM yyyy HH':'mm':'ss'.'fffffzzzz + ddd',' d MMM yyyy HH':'mm':'ss'.'ffffzzzz + ddd',' d MMM yyyy HH':'mm':'ss'.'fffzzzz + ddd',' d MMM yyyy HH':'mm':'ss'.'ffzzzz + ddd',' d MMM yyyy HH':'mm':'ss'.'fzzzz + ddd',' d MMM yyyy HH':'mm':'sszzzz + + + ddd',' d MMM yy HH':'mm':'ss'.'fffffff zzzz + ddd',' d MMM yy HH':'mm':'ss'.'ffffff zzzz + ddd',' d MMM yy HH':'mm':'ss'.'fffff zzzz + ddd',' d MMM yy HH':'mm':'ss'.'ffff zzzz + ddd',' d MMM yy HH':'mm':'ss'.'fff zzzz + ddd',' d MMM yy HH':'mm':'ss'.'ff zzzz + ddd',' d MMM yy HH':'mm':'ss'.'f zzzz + ddd',' d MMM yy HH':'mm':'ss zzzz + ddd',' d MMM yy HH':'mm':'ss'.'fffffffzzzz + ddd',' d MMM yy HH':'mm':'ss'.'ffffffzzzz + ddd',' d MMM yy HH':'mm':'ss'.'fffffzzzz + ddd',' d MMM yy HH':'mm':'ss'.'ffffzzzz + ddd',' d MMM yy HH':'mm':'ss'.'fffzzzz + ddd',' d MMM yy HH':'mm':'ss'.'ffzzzz + ddd',' d MMM yy HH':'mm':'ss'.'fzzzz + ddd',' d MMM yy HH':'mm':'sszzzz + + + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffff zzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'ffffff zzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffff zzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'ffff zzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff zzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'ff zzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'f zzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss zzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'ffffffzzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffzzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'ffffzzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffzzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'ffzzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fzzzz + yyyy'-'MM'-'dd'T'HH':'mm':'sszzzz + yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK + + + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'fffffff zzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'ffffff zzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'fffff zzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'ffff zzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'fff zzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'ff zzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'f zzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss zzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'fffffffzzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'ffffffzzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'fffffzzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'ffffzzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'fffzzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'ffzzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'ss'.'fzzzz + dd' 'MMM' 'yyyy' 'HH':'mm':'sszzzz + + + +00:00 + +00:00 + +00:00 + -05:00 + -04:00 + -06:00 + -05:00 + -07:00 + -06:00 + -08:00 + -07:00 + +00:00 + -01:00 + -12:00 + +01:00 + +12:00 + + \ No newline at end of file diff --git a/Growl Extras/Feed Subscription Plugin/libraries/Growl.Connector.dll b/Growl Extras/Feed Subscription Plugin/libraries/Growl.Connector.dll new file mode 100644 index 0000000000000000000000000000000000000000..2025446b2994a21c0eb55e9509249dfd71fdf6ea GIT binary patch literal 50176 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
    mal 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 literal 0 HcmV?d00001 diff --git a/Growl Extras/Feed Subscription Plugin/libraries/Growl.CoreLibrary.dll b/Growl Extras/Feed Subscription Plugin/libraries/Growl.CoreLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..d4cba0ee504462ccbce526be48f7fd0fc1c6d3eb GIT binary patch literal 16896 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 literal 0 HcmV?d00001 diff --git a/Growl Extras/Feed Subscription Plugin/subscriber_feed.xml b/Growl Extras/Feed Subscription Plugin/subscriber_feed.xml new file mode 100644 index 0000000..3f56aef --- /dev/null +++ b/Growl Extras/Feed Subscription Plugin/subscriber_feed.xml @@ -0,0 +1,22 @@ + + + + RSS/Atom Feed Subscriber + + + Brian Dunnington + + + 1.0 + + + http://localhost/web/feed.zip + + + + + + \ No newline at end of file diff --git a/Growl Extras/Growl Display SDK/Growl for Windows - Display SDK.zip b/Growl Extras/Growl Display SDK/Growl for Windows - Display SDK.zip new file mode 100644 index 0000000000000000000000000000000000000000..d2989c428748422a46ff6e01a9b0ede32ddd4fc0 GIT binary patch literal 106673 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 Qp#ON#?{CLA4D_%61Mkz`xBvhE literal 0 HcmV?d00001 diff --git a/Growl Extras/Growl Display SDK/libraries/Growl.CoreLibrary.dll b/Growl Extras/Growl Display SDK/libraries/Growl.CoreLibrary.dll index d1cf574b1cae40057a11c68b4b5402865f589a45..d4cba0ee504462ccbce526be48f7fd0fc1c6d3eb 100644 GIT binary patch delta 2106 zcma)-dvHuw9LIm>+`T8ckG&gjAsQrMM1-{~u|ZivWKbea2!?Eu+t@rLvYV7(77dCr zlGAFU)T4|?+hDfdM45EbbUIV7Xwi{mRO?lZq8_c$b5EF>PXFl6oX`E9@9()gJ98H| zp~Yor-McX}I*=52@o56wLqUN6am*mC=EqanvpYNK?7)atjmv8~5e#ss5z4Pri$*%8 zYf+eJVrnQo$P|mh2znLutO%OqYpgCMo8ur=J?U#()UW!7)$!Tm9Alty%&l>^Q&yDi z-}c4ARfn@Tgx%aIRhL5g@gZx*4s<$$Dw|rG_a6v$aG3M5v>g$6Cf#F>MUG)Qgmbb_cFF|O&W(%&9-ECmqGqgUVU%H+maWN9&3S>5 z`Iha>?`AQ4osmG5Wx0P!s7*x2=<4uB#@vVq-+%xB1pkK***^<`o#)@-I*x1SD@@>e zJR^o=u3H_07^X1_U_=ot;2ko3{F2F;!z}zF&^n-nC%rnLb2KGr>t?^g|oY$ zLZsY_QN+W*fd!;FWi7G}6b|926v&D%Qe&^pP@4ID&R6f#?W2M+iQJzEX|}r%;3PHMpQzInBnmC>Mo# z*3I{$aF#vp3YSnv^?}gLbST_pWjUssC|1oe-9uy4Z_z!JqL!Gf=q+`j=?Tjj2JQLx z4(3GoeRZu#!iL`lPZd8fxshM31qok88%#^!w7Sm}%%TTOJ$Swq7L&)w3SG<%KCurD zH(z1wZ*CTiy>5srjR12-n|~7>INMwc4(w%g;m8`o+R z$z1$YOCj^I!!n(OLxQD%ti;I{FDp*B%qQizl<5$-C@msYc!%XUgg~`r8FP-(y?t_r z4}n`G8rs2m#;#n4arT84=GZ_Ehz5m6$8kRyVwjT&>5RFM?@x=o7TBT0l?NH~y}AcH z-Xh(V56md0Ct`c{FVZ~)#YLGqxQenp;L6Hkh6m=j@^#2^dt7;W1#jzFqh`B`JW%NJ z&Zf^Cz1zDBU*>s=Gv?^t2`*1A9b)S$zUlVn>2#UBFDACD&n8J<&U~+PNvQ4hsdM7h;!j662r;J?EtHOUH Qp%?aRlkN+Cl>Qw34S`7Gp#T5? delta 2232 zcma);dr(wW9LIm>+`X5*kKF|ol!u}siy*G9ny@Alh7+LUC|ZWuh}T$haS>s`G9Rmk zlZKgestKkV9sHv=)mlm-sjZriNey$xa71)$EXzk_nNjvTXKi$xrrMeNx!?0Szw3XqFpU_`!Nd@Il8onI&V6*hRJ|U()mx04h<)t>TdGOaj_4?_N>sB zbyeIrET3qK{d#X3v4@UQ%@({rYGjlG^99!k?u>dJ%^|@qVXh1Iw(?4sV7_3P;M0Py z3Wluh^cmQXPgQ|mtS77r#HpO))h$GU5_N{EK$SWc^9sSOLA4px9`!k5hi}v)m{pBW z4;7rLJ%`y8EElXr+Tm?Yr*`-dslZWfm!`l;L0RYZF@kA2KW>@ctZLxb+o=Z2kqXr7 zynnM`haThu+2Bk!UXvBbGx!;cgjs9&4F$F!HP~T1Ni;Yo2sWNG1oM#!Y`5_a2W@=& z<46sjvOj9qpjq$$QUQx&3;JFT?jJ!au)(o3^l;2*napAJab3s-eN%&DQ~(11hu18; za_bYxX9+A79gYOW;D}&3Dtc=ovcVNmbms<< zgGPMhK#2x#cPH=Meu$Xm{HN`&SlEVsNx|Di1VUm#y^S}$O$u)avsds(B!%lD|0%L= z=k?PCc?SyH9o($fHiJx);Z4C01X~4nBeUoMo_oVFp-u{R3$pR?nZa!JA~j%=dX>7# ze60kyv`Q05ooW|3L2#gCzfD-##cc(ogOhdkzX6#GC$V^c^#iXbH%tUduT6P7(6r?Ie~g?S#$z@ z&~{BOq+Z()D5SM$+@fhK*=W<1BHTUR%l3zqCDi4Ztqg(jj!I=6EpXJ};)fhdlm=RfISI1W z`d;LU+XKKP*YRwn^#-og}lm&nZAH;p5Mzh zJ5$(3=Mc8SnZQb&i7emQpAE&!;f!b3Qyt7qTO}6STxtJBD4rY@w3T)NhKxJ+9V_q<;9}lpGjQS|Ev=n84 zB@R0#Ei^0Gcf%3}mHGmv-(UHJw={3QSsegQY_!O4;>ty4&3qP}na-M1oy?Ot&gxqf z=@F{RoI|ug?YxEFnki;rLFkL&E=zQi<oLoQ6jqBEZ381kqH3n<8iT`>;%@8-IvvQvNQkwE}-~Eufps2!+7NbOrJ4v#@T)Q z1AnaRnzU_nV)3Tsy{?2Vc%1aES3JJc=Z5U#f0FLQc1u+hSKGDfR%*ri0KwX>Y-?@WZmZi0`<-(q52|#38|AzI z^PT_szs~FCLia;*_rK6Pc1~Pgq+Us~KPL%|!moP$1pOz7L5)x`&;RqWcOKdJRI{T@oP*E$%{xLQOAQT`(tI2tIxl zm5WXIQ)wqxk*y-Iu{g$;jZw&PnGn!AH62i~eCYFC@G3~zEQaj1`6{o=^rNXvX@jzC zl|c5o4YyeeA%}Kyr^TZRY@x;}TV>#@byc>?A>`UdWGlex^&%)*%QWu^hnMX8^tCj$GtS` z%B$&`?i3lLT%tOD!!OdiU=c=Vxe}v9)Bx)6DJ+#5rDioOHPTM38>P{!POiWJUCZ{D z8D-~qy6`Jpl^f-@tN+4!$+`*{fxmYZG=gR|>-7f3v^H`>S>=!s63Wx>7%~tx!uIso zX>s*|m?K8y?_#dLO4saCG-k^%+auFt%|(}_r+}zQ(oXKJq&Q_e@~T>DDmvgvb6V3N4f(L9 zqnYQlzJ`a(G%>keMOQkoy34pX4c@eKyyfaDI5nGf*z0J=T3Tm&)bkwH1u$e@$YBO+ z^i`)X!MVZ@n43@*R9mOD1?>wlqJ0@4RS(5Ysjmawg*mF%k(vn+8=6|PAQa}R)$*^ePD5fiNAGRLhj&vGu}FAx^PN zxtdlpQQMRB)s4|obI|59AROnpoYq_rm*GgfapN!xw(joI3Gor= z%Bl7k5?`8bw`wiL11-J}YfobnN&}maoi2^AiZZY6wQCH84os5NIhR_Awz-OvSUK0DS}EbRnKM2! zfk%9kT;rvkVICn~2KZAP6Y$n1RulKd-VeIdtD)T$;ThN-JGmV4hDz-tcn!BHxb`&& z#S)>2b~q{#61r3bV~Jn{U2I)9G-L-KlH~0u-lS##=GUjzqHQ8-H!U_>_~xc&D@QTh zLU>49ql0NLft&C#lw?@iNRmAe+AVpR8IGsdVMrGWsK_;IWotcJIn|e7Wwt|tS>9t1 zGliDb0pNuh&TRk}JBNby4P5(10PNg^NA36Q6^>W3>@@=uM8dM9>}WWW-Uywp>VX(G zp=HO=2?;Uq9$4LsmemE|F%0LnfI|$!C}^j-b~gYqWbhb>0VlwhVpt#X&e+Ozirec@ zJK9+RkF*olpdzk-_?B(xjR&cT5~z4~jzL#EO64vgpu@{vimVCnm1Nxvpq=Bni8Jc$ ze1YA<=^gBn=n`osdnj5e?PAYFgVJvHZZzz>6`i$nDGyk!on;TScCvzs5-7wgMoYJ` zt17Bz3)4McZF)lH)Zo~9yV{XS1VRZTiK|}-4_dkKST#Vr61;D z?uD}TEF_xR2eAuR7OKE8lE?! zk!Q%_<)drP-*tEuLlJM0UAU~^X>f$sVK@ffTLsBqRdGFVdH8Ft&G>v1vtyAaV!RAm zsc%3`-2<@p3zBDH-3u{35u5c9#BbflwAhqcA#g3)u+WRMX`Yj_7>av@5bqe3JcnI{ z#fzInn7yBEk1deO*xRu{{R7;^KwSTKSRy0qK@pFeWuvNHr z)-;d4izhrl;FNZMWx>nY2P4W>{DTT{+s<=Bfhm(2%%RkJ z3{PsILT~P$x z;TjhA`15gpsmKZIQR=#SASW*HYra43XVGe}zT9rZOb7Oo)U}+=u8y#I)oPB&JCAeM zu$!s_Y;(0+n$LDrhtiMpc+6k%N${CZ@J6xuJ^sMl{X1Cu-b5~f`7vjZo!dlV1@ogp z9ZaNPULIurnKSk&b1g!nodVCO9}Q?&cP@pBz2Rh1%Qqh1aAqG^w_0WW3!dR_(AQc| zLmXhvp8f0D6*d#!irN1@`Y7G0t!}r0w~1%@a4b@{d6V6ZwB0^8ouSJW7 zCrOCv7Q|@3TVP4>t%<8&VRMll&TL#D3cPj1NBpBXpy~!>d@5e@3I(~}ubGC1M z-17hi$88-A-9H&0LC0^$*W`1n;)>y3t$W#s31es9_YXa_+u`z8z%<72n@EhkpS$2U z(dP)9-$Vx{#E0KRLg{w)?u4-YCiM(gv!gzv4%OzlL3-d#iYI0-B9)B9V#4vM7rM8+ z#b!(_l#a10C)PK;4c}pRI7UY0v~R$|PyGVKCYpK&54Y;|Y!+7QSA*hllk(tD6*Y z9p{Xr#Cn)5n^cy5n75qP2|Q9C0K6{U<<&9NDefaY4ss0_1a8C2zZ9N?aQy(mKlz;+ zPVi5D9}Xvq@Er-KgZui_M?ij2xUF9UPL%2T_1HtYy@zyF%?4_Iff67eek4wPhktx3 z(hJ0~==JG7jPPZ@#^mbxXyw~2)o1=EH~ldn&*?H{6cBHY_#K+>K@~gj+R2M*c0<;T zT*K`&a(qUf-#i0fu@iNo#+pemDCV*!;xs!sIfm~k+LXJ~|Ak?j@~KG7R~LlDGxF6H zLgMA{jderfb?}YOX+O><_cwe9wYbBWFo?wfIfsfPB5TY1EvQ^7j*F~OK_LOz;_D^# z3Ba4iH!6HBv=1Y(0{GY9-=PbeO}I#5#@*p!8QFw_=I_xk-8>iBUNk5zW>ytLa&&wj z@+45zGz3 zy}(5RR|sqom=eeY9u)Yrz!wF+9h^&5@(IvG{wl2Hhd5Ie;x?N?V?!#rMKE^@d`IA! zQ2Il3l!iYHxyi_IJ9U#AfIjkO_@u{8`XP4`J;Ea$6PZiLWuu-Qc>|_9Bi9rg8Mo6yvk{n zZnCnHcWe@Pm%u|nA7MEsJu11dikrT^YEhL+b_n^Eswb;_7>hSKuU| zO4i1BB{mCuA;zcd7!W5Bc2(am>VIg+;i`hZyB5hbeG%?hiP+cxnUY09t37ir(!)vq#7_bGMN16_~Z39^Mf0a0kQX^93|Kf$scHTBWLf9Em!aiFXO%FG5 zKG`;Ho3m$bxam5WqhumbCewflnI#<9n)5_2&rBjiWvApyFfy5!79H0JOaLkA5b|&b z|6lpbi|c%eJ?Y0n8(59Q-E0v->=bC1-9}qyx8ONa(xUS`_&4M8Pt8!?U(#tDbbr1W z?c(nf&K?ks9})6*Y#GM~C65ASVl#)bz3lf_jhcTxqr-XI!82mm^FW!r1XRdRfDUpL zsFHVp5;;}E+Lrm!r_i8c;mYI@cvgge2l=H?vdi)t$TInZV9pACrIa%{K!q4U2k`?{ z5&~)@26U1dpewsE_*RjKyPD)~K7BYy!p$=`r3{8boxlXH3H;2@{^#m&;blsLR3mR7R|sqr$i^>^ zj+i9v6^;D@dj%d8_!Mxlas+r>dWEfD?oF2lnw4DAEng3e1Y)F4st&AIj!N?b8-4p78d|zlE z@UhT0z&sv00DLy|w1bbDMw9gQ&@+w_!Yz~w%urwOm?J~G-wBEh(rZ`85B}_#kmPn0~Ut(L*9xLrvl9m2$FKuF}d$YnUUStPJ%3MtbQs_av#G z>9yyaV?ecxDlg zbPDoe)a;qaOIic@apXf}_EzL!;Hk)~+J5p|$fxQ5L^fh!=0rVG1Bpam()v-M9`dnGi?&`)-P=_L$y`pE(4)RFH350RInIZjEQlfR$Vk#+e8s7wAdsyqA1U!zYT zM0dJkHB5LbOi<+&$1&_wew|b=qHDA(bV+ydJTvWkxS|o6#zz_95)6=A-B1TS= zn_!`V{88r?HbgFPu7`!M!}1jxR+4O2@sWz%%1HTzihbZ;uSnnHj7aZQ^g8R%eHcsT z&lOKNr^rVGPdn@74+0;PdYNy?esWc1o%A`eDqnV*Te06M(i|_sof(;y!hoA&uWBP9AExW&+hQlc+!Ony>lJ89?mFpI%;|2RzmMfZ{#&dF=o!J! zmCb>;yMdir`K$Ca((WEbW|9TKTge}QWn?O_LNL_=$C0IAmXQa6UeUWy@G0^Zm~G@V z@Otv^z)o_~J(F%zmXMRBZ#w2XKadtFzrr7tKlTZ!++WE)wvp}jrP*0F?(EmkVowubG$ zd0Nz3xt637?a8K=ag0$4Xk?4h`>r>t!rA9?ASR#@PpnR$6wR}Sf=;b!PbAvN!i}kpMC+&piPbHr0*|yll}fa(Y}vRd z+0l|<|F*4~{a{;w?cWw+-P_98nr$WQ(rxAHhL(;E?Fp8%Ey%QO9`?JfCHUiH?`#dQ zzO6y_#kM=uhBg$rgFUhRw|zgqS(ey)w>-}F?_ja^M5}c}V#RE$y>%vLCDBY~BG;y5 zTWU^XBc`BZMFT=&x9&X3*6o_Wp4?T+PV5@X!n?P!@9y5k7TkIzd;8WFcKK~r^gVXl zNXeMpZnZY>@)BgeV%ECkQkJ_X%ogk^>RZ3ZC$al(pX*xFoE$fHRC7xU`|OS=8@0E# zZ{^-^$^|#KW>!4<-tLPZja{vcEYqj=72dT_ara784NH>VeVkple}?N5$xE~%z55gP z)c)DhC+xHR7mWNu&q!Ry$haI~0@T9P?bb7TzUJ^4-Jcs7hmCB-y+I$EC7yC46A@eq zbooHW?u}kl=P@!9oB@ZCsdEr1;PAjIG+iFeQ7%|?qfgPKfG3AgBU5kxF9OUoWQs>g z-P_soJIdIB`@HOv9WGXP--o4_sTwt!4X0C+ii}#xXwKnnkwfkMf%KL3=tdFxa@aO% z)FPvfdOSH{Qlw`R)Jwb)a)va(B?q}AI3)~)0*yk2H?x|WFk&<~?Y1qT-)JxfRE>rr zJ&&6;8tnS5XUFcp$d}0_ir(Zg5_*%K+2zt?@nm%mRA@a8P0}+xY}o_Ni}#C&d(m%f zG%~$L5!!m@5nfO|bCB{(vbjBOr}&hUpwt;7^Ryf$xjroyjoe(P_|dyF_#Xr-dax$_ zoE^^7!o$-pF-1@7-Ft02FAGPn*o{}Tup;H+$AN$9n0YHd?2r(-k$FeY97S6t2<8+)Ra;D3!g+B zqQU-fU~0|4zul!chVhpSWETDcZ`M9S7A%~#@YqM5m(3SH|9Vg7L&wi7eQibG(uck; P^?9EBqueLGa8~+Xs){)3 delta 11466 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 HtI7WZQJ{X( diff --git a/Growl Extras/Webhook Plugin/Properties/AssemblyInfo.cs b/Growl Extras/Webhook Plugin/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f6bd24a --- /dev/null +++ b/Growl Extras/Webhook Plugin/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Webhook Plugin")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("element code project")] +[assembly: AssemblyProduct("Webhook Plugin")] +[assembly: AssemblyCopyright("Copyright © element code project 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("07b9e0bf-936b-467b-9aa0-db2e277feadc")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Growl Extras/Webhook Plugin/Properties/Resources.Designer.cs b/Growl Extras/Webhook Plugin/Properties/Resources.Designer.cs new file mode 100644 index 0000000..df540c7 --- /dev/null +++ b/Growl Extras/Webhook Plugin/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3082 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Webhook_Plugin.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Webhook_Plugin.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap internet { + get { + object obj = ResourceManager.GetObject("internet", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Growl Extras/Webhook Plugin/Properties/Resources.resx b/Growl Extras/Webhook Plugin/Properties/Resources.resx new file mode 100644 index 0000000..260850c --- /dev/null +++ b/Growl Extras/Webhook Plugin/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\internet.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Growl Extras/Webhook Plugin/QuerystringBuilder.cs b/Growl Extras/Webhook Plugin/QuerystringBuilder.cs new file mode 100644 index 0000000..ec53a07 --- /dev/null +++ b/Growl Extras/Webhook Plugin/QuerystringBuilder.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Webhook_Plugin +{ + /// + /// Builds a querystring (or form post data) from the specified name/object pairs. + /// + public class QuerystringBuilder + { + /// + /// Holds the name/value pairs used to construct the querystring + /// + private Dictionary items = new Dictionary(); + + /// + /// Returns a that represents the current . + /// + /// + /// A that represents the current . + /// + public override string ToString() + { + return this.ToQuerystring(); + } + + /// + /// Returns the constructed querystring, including the leading ? + /// + /// Querystring + public string ToQuerystring() + { + return "?" + ToPostData(); + } + + /// + /// Returns the constructed form post data (no leading ?) + /// + /// Form post data + public string ToPostData() + { + StringBuilder sb = new StringBuilder(); + foreach (KeyValuePair item in this.items) + { + sb.AppendFormat("{0}={1}&", item.Key, item.Value); + } + return sb.ToString(); + } + + /// + /// Adds the specified name/object pair to the querystring + /// + /// The key. + /// The value. + public void Add(string key, object value) + { + string val = (value == null ? String.Empty : System.Web.HttpUtility.UrlEncode(value.ToString())); + this.items.Add(key, val); + } + } + +} diff --git a/Growl Extras/Webhook Plugin/README.txt b/Growl Extras/Webhook Plugin/README.txt new file mode 100644 index 0000000..798d884 --- /dev/null +++ b/Growl Extras/Webhook Plugin/README.txt @@ -0,0 +1,77 @@ +Growl for Windows - Forwarder Plugin SDK +-------------------------------------------------- + +This documentation is sparse at the moment, but the steps required to implement +a custom forwarder plugin are simple and outlined below. + +SETUP AND DEVELOPMENT +-------------------------------------------------- +1. Create a new Class Library project. +2. Add references to the following .dlls (all can be found in the 'libraries' + folder in the SDK sample project): + Growl.CoreLibrary.dll + Growl.Connector.dll + Growl.Destinations.dll +3. Create a new class that implements from Growl.Destinations.IForwardDestinationHandler + (see the WebhookForwardHandler.cs class in this SDK for a sample and + explanations on how to implement each method). This class is what GfW uses + to register the plugin and to know which UI to show for each plugin type. +4. Create a new class that inherits from Growl.Destinations.ForwardDestination. + This is the class that does that actual work of forwarding notifications. + The WebhookDestination.cs class in this SDK provides examples of how to + implement the required methods. +5. Create a new class that inherits from Growl.Destinations.DestinationSettingsPanel. + This is a WebForms control that handles the UI for configuring/editing the + plugin. See the WebhookInputs.cs file in this SDK for examples of how to + implement the required methods. Take special care to make sure you handle + creating new instances and editing existing instances in your UI. + +TESTING +-------------------------------------------------- +To test your plugin, navigate to: + %USERPROFILE%\Local Settings\Application Data\Growl\2.0.0.0\Forwarders + +Create a new subfolder for your plugin and copy the compiled .dll and all +supporting files (including the Growl.* libraries from Step 2 above). + +When you run GfW the next time, GfW will scan the 'Forwarders' folder looking +for new folders. When your plugin folder is found, each assembly will be loaded +dynamically and scanned for the class that implements IForwardDestinationHandler. +When that class is found, the Register() method will be called, and your plugin +will be available to the user when they click the 'Add Computer' button on the +Network tab. + +DEPLOYMENT +-------------------------------------------------- +Once your plugin is complete, create a .zip file that contains the resulting +.dll and all other required files (including the Growl.* class libraries listed +in Step 2). At this point, you can either have user's download the files +directly, manually create a folder in their User Profile location, and extract +the files, or you can create a installation manifest that GfW can use to +automatically download and install your plugin. To create an installation +manifest, follow the instructions below: + +1. Make a copy of the 'feed.xml' file from this SDK and give it a meaningful + name +2. Update the information in the new file, including the name of the plugin, + author, description, etc. +3. Make sure the lists the location of the .zip file that contains + all of the files required by your plugin. + +To use the installation manifest, you can create a special type of url. The +format is: + + growl:forwarder*http://url.to.your/manifest.xml + +If a user has GfW installed, the growl: protocol will launch GfW and then GfW +will download the XML file from the url specified. Using the information in the +XML file, GfW will ask the user if they want to install the plugin, and if so, +automatically download the .zip file and extract the contents to the correct +location in their User Profile folder. You can use the special link anywhere +you would use a normal link: + +Click to install plugin + +NOTE: Make sure your special growl: link contains the url to the manifest XML +file, not the url to the .zip file containing your plugin's files. + diff --git a/Growl Extras/Webhook Plugin/Resources/internet.png b/Growl Extras/Webhook Plugin/Resources/internet.png new file mode 100644 index 0000000000000000000000000000000000000000..0e62948f2c0118643058a847183baef0333527c3 GIT binary patch literal 6805 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 + + Debug + AnyCPU + 8.0.50727 + 2.0 + {CF9E00E1-4AAA-49F9-9508-012C1E5627B7} + Library + Properties + Webhook_Plugin + Webhook Plugin + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + True + True + Resources.resx + + + + + + UserControl + + + + + Designer + ResXFileCodeGenerator + Resources.Designer.cs + + + Designer + WebhookInputs.cs + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Growl Extras/Webhook Plugin/Webhook Plugin.sln b/Growl Extras/Webhook Plugin/Webhook Plugin.sln new file mode 100644 index 0000000..e927fb5 --- /dev/null +++ b/Growl Extras/Webhook Plugin/Webhook Plugin.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Webhook Plugin", "Webhook Plugin.csproj", "{CF9E00E1-4AAA-49F9-9508-012C1E5627B7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{80400254-8F76-4510-B196-B92C67E39DF8}" + ProjectSection(SolutionItems) = preProject + README.txt = README.txt + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CF9E00E1-4AAA-49F9-9508-012C1E5627B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF9E00E1-4AAA-49F9-9508-012C1E5627B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF9E00E1-4AAA-49F9-9508-012C1E5627B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF9E00E1-4AAA-49F9-9508-012C1E5627B7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Growl Extras/Webhook Plugin/WebhookDestination.cs b/Growl Extras/Webhook Plugin/WebhookDestination.cs new file mode 100644 index 0000000..821730f --- /dev/null +++ b/Growl Extras/Webhook Plugin/WebhookDestination.cs @@ -0,0 +1,159 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Net; +using Growl.Destinations; + +namespace Webhook_Plugin +{ + /// + /// Forwards notifications to any url using an HTTP POST request. + /// + [Serializable] + public class WebhookDestination : ForwardDestination + { + /// + /// The url of the webhook + /// + private string url; + + /// + /// Initializes a new instance of the class. + /// + /// The URL of the webhook + public WebhookDestination(string name, string url) + : base(name, true) + { + this.url = url; + } + + /// + /// Gets the address display. + /// + /// The address display. + /// + /// This is shown in GfW as the second line of the item in the 'Forwards' list view. + /// + public override string AddressDisplay + { + get { return this.url; } + } + + /// + /// Gets or sets the URL of the webhook + /// + /// string + public string Url + { + get + { + return this.url; + } + set + { + this.url = value; + } + } + + /// + /// Gets or sets a value indicating whether this is available. + /// + /// Always returns true. + /// + /// This value is essentially read-only. Setting the value will have no effect. + /// + public override bool Available + { + get + { + return true; + } + protected set + { + //throw new Exception("The method or operation is not implemented."); + } + } + + /// + /// Called when a notification is received by GfW. + /// + /// The notification information + /// The callback context. + /// The request info. + /// true if the user is currently idle;false otherwise + /// The function GfW will run if this notification is responded to on the forwarded computer + /// + /// Unless your forwarder is going to handle socket-style callbacks from the remote computer, you should ignore + /// the parameter. + /// + public override void ForwardNotification(Growl.Connector.Notification notification, Growl.Connector.CallbackContext callbackContext, Growl.Connector.RequestInfo requestInfo, bool isIdle, ForwardDestination.ForwardedNotificationCallbackHandler callbackFunction) + { + try + { + QuerystringBuilder qsb = new QuerystringBuilder(); + qsb.Add("app", notification.ApplicationName); + qsb.Add("id", notification.ID); + qsb.Add("type", notification.Name); + qsb.Add("title", notification.Title); + qsb.Add("text", notification.Text); + qsb.Add("sticky", notification.Sticky); + qsb.Add("priority", (int)notification.Priority); + qsb.Add("coalescingid", notification.CoalescingID); + if (notification.CustomTextAttributes != null) + { + foreach (KeyValuePair item in notification.CustomTextAttributes) + { + qsb.Add(item.Key, item.Value); + } + } + + string data = qsb.ToPostData(); + Growl.CoreLibrary.WebClientEx wc = new Growl.CoreLibrary.WebClientEx(); + using (wc) + { + wc.Headers.Add(HttpRequestHeader.UserAgent, "Growl for Windows Webhook Plugin/1.0"); + string result = wc.UploadString(this.url, data); + Console.WriteLine(result); + } + } + catch (Exception ex) + { + // this is an example of writing to the main GfW debug log: + Growl.CoreLibrary.DebugInfo.WriteLine(String.Format("Webhook forwarding failed: {0}", ex.Message)); + } + } + + /// + /// Called when an application registration is received by GfW. + /// + /// The application. + /// The notification types. + /// The request info. + /// true if the user is currently idle;false otherwise + /// + /// Many types of forwarders can just ignore this event. + /// + public override void ForwardRegistration(Growl.Connector.Application application, List notificationTypes, Growl.Connector.RequestInfo requestInfo, bool isIdle) + { + // do nothing + } + + /// + /// Clones this instance. + /// + /// + public override DestinationBase Clone() + { + return new WebhookDestination(this.Description, this.url); + } + + /// + /// Gets the icon that represents this type of forwarder. + /// + /// + public override System.Drawing.Image GetIcon() + { + return WebhookForwardHandler.GetIcon(); + } + } +} diff --git a/Growl Extras/Webhook Plugin/WebhookForwardHandler.cs b/Growl Extras/Webhook Plugin/WebhookForwardHandler.cs new file mode 100644 index 0000000..2c05881 --- /dev/null +++ b/Growl Extras/Webhook Plugin/WebhookForwardHandler.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Growl.Destinations; + +namespace Webhook_Plugin +{ + /// + /// Manages the creation and operation of the webhook forwarder. + /// + /// + /// The notification data is POSTed using the following values: + /// app=ApplicationName + /// id=NotificationID (may be empty) + /// type=NotificationType + /// title=NotificationTitle + /// text=NotificationText + /// sticky=Sticky (true or false) + /// priority=Priority (2,1,0,-1,-2) + /// coalescingid=CoalescingID (may be empty) + /// + /// Additionally, any custom text attributes of the notification are also POSTed + /// using the following format: + /// customAttributeHeaderName=customAttributeValue + /// + /// For a sample url to use as a destination, use: http://www.growlforwindows.com/gfw/examples/webhook/sample.ashx + /// + public class WebhookForwardHandler : IForwardDestinationHandler + { + #region IDestinationHandler Members + + /// + /// The name of the webhook instance + /// + /// string + public string Name + { + get { return "Webhook"; } + } + + /// + /// Registers the forwarder with Growl. + /// + /// + /// + /// A single handler can register multiple forwarder types if desired. + /// However, most of the time, you will return a list with just a single + /// item in it. + /// + public List Register() + { + List list = new List(); + list.Add(typeof(WebhookDestination)); + return list; + } + + /// + /// Gets the list of s to display as choices when + /// the user chooses 'Add Forward'. + /// + /// + /// + /// A single handler can return multiple list entries if appropriate (for example, the Bonjour forwarder + /// detects other computers on the network and returns each as a separate list item). + /// However, most of the time, you will return a list with just a single + /// item in it. + /// + public List GetListItems() + { + ForwardDestinationListItem item = new ForwardDestinationListItem("Call a webhook (HTTP POST)", GetIcon(), this); + List list = new List(); + list.Add(item); + return list; + } + + /// + /// Gets the settings panel associated with this forwarder. + /// + /// The as selected by the user + /// + /// + /// This is called when a user is adding a new forwarding destination. + /// + public DestinationSettingsPanel GetSettingsPanel(DestinationListItem dbli) + { + return new WebhookInputs(); + } + + /// + /// Gets the settings panel associated with this forwarder. + /// + /// The of an exiting forwarder + /// + /// + /// This is called when a user is editing an existing forwarder. + /// + public DestinationSettingsPanel GetSettingsPanel(DestinationBase db) + { + return new WebhookInputs(); + } + + #endregion + + /// + /// Gets the icon associated with this forwarder. + /// + /// + internal static System.Drawing.Image GetIcon() + { + return new System.Drawing.Bitmap(Properties.Resources.internet); + } + } +} diff --git a/Growl Extras/Webhook Plugin/WebhookInputs.cs b/Growl Extras/Webhook Plugin/WebhookInputs.cs new file mode 100644 index 0000000..9da2df5 --- /dev/null +++ b/Growl Extras/Webhook Plugin/WebhookInputs.cs @@ -0,0 +1,203 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Growl.Destinations; + +namespace Webhook_Plugin +{ + public class WebhookInputs : DestinationSettingsPanel + { + private System.Windows.Forms.Label labelUrl; + private System.Windows.Forms.Label labelName; + private Growl.Destinations.HighlightTextBox textBoxName; + private System.Windows.Forms.Label labelInfo; + private Growl.Destinations.HighlightTextBox textBoxUrl; + + public WebhookInputs() + { + InitializeComponent(); + } + + private void InitializeComponent() + { + this.textBoxUrl = new Growl.Destinations.HighlightTextBox(); + this.labelUrl = new System.Windows.Forms.Label(); + this.textBoxName = new Growl.Destinations.HighlightTextBox(); + this.labelName = new System.Windows.Forms.Label(); + this.labelInfo = new System.Windows.Forms.Label(); + this.panelDetails.SuspendLayout(); + this.SuspendLayout(); + // + // panelDetails + // + this.panelDetails.Controls.Add(this.labelInfo); + this.panelDetails.Controls.Add(this.labelName); + this.panelDetails.Controls.Add(this.textBoxName); + this.panelDetails.Controls.Add(this.labelUrl); + this.panelDetails.Controls.Add(this.textBoxUrl); + // + // textBoxUrl + // + this.textBoxUrl.HighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(254)))), ((int)(((byte)(250)))), ((int)(((byte)(184))))); + this.textBoxUrl.Location = new System.Drawing.Point(63, 42); + this.textBoxUrl.Name = "textBoxUrl"; + this.textBoxUrl.Size = new System.Drawing.Size(227, 20); + this.textBoxUrl.TabIndex = 2; + this.textBoxUrl.TextChanged += new System.EventHandler(this.textBoxUrl_TextChanged); + // + // labelUrl + // + this.labelUrl.AutoSize = true; + this.labelUrl.Location = new System.Drawing.Point(19, 45); + this.labelUrl.Name = "labelUrl"; + this.labelUrl.Size = new System.Drawing.Size(23, 13); + this.labelUrl.TabIndex = 0; + this.labelUrl.Text = "Url:"; + // + // textBoxName + // + this.textBoxName.HighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(254)))), ((int)(((byte)(250)))), ((int)(((byte)(184))))); + this.textBoxName.Location = new System.Drawing.Point(63, 16); + this.textBoxName.Name = "textBoxName"; + this.textBoxName.Size = new System.Drawing.Size(227, 20); + this.textBoxName.TabIndex = 1; + this.textBoxName.TextChanged += new System.EventHandler(this.textBoxName_TextChanged); + // + // labelName + // + this.labelName.AutoSize = true; + this.labelName.Location = new System.Drawing.Point(19, 19); + this.labelName.Name = "labelName"; + this.labelName.Size = new System.Drawing.Size(38, 13); + this.labelName.TabIndex = 3; + this.labelName.Text = "Name:"; + // + // labelInfo + // + this.labelInfo.Location = new System.Drawing.Point(36, 84); + this.labelInfo.Name = "labelInfo"; + this.labelInfo.Size = new System.Drawing.Size(254, 67); + this.labelInfo.TabIndex = 4; + this.labelInfo.Text = "The notification data will be POSTed to the url specified. See the documentation " + + "for information on the available field values."; + // + // WebhookInputs + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.Name = "WebhookInputs"; + this.panelDetails.ResumeLayout(false); + this.panelDetails.PerformLayout(); + this.ResumeLayout(false); + + } + + /// + /// Initializes the configuration UI when a webhook is being added or edited. + /// + /// will always be false for s + /// The that the user selected + /// The of the item if it is being edited;null otherwise + /// + /// When an instance is being edited ( != null), make sure to repopulate any + /// inputs with the current values. + /// + /// By default, the 'Save' button is disabled and you must call + /// in order to enable it when appropriate. + /// + public override void Initialize(bool isSubscription, DestinationListItem dli, DestinationBase db) + { + // set text box values + this.textBoxName.Text = String.Empty; + this.textBoxName.Enabled = true; + this.textBoxUrl.Text = String.Empty; + this.textBoxUrl.Enabled = true; + + WebhookDestination whd = db as WebhookDestination; + if (whd != null) + { + this.textBoxName.Text = whd.Description; + this.textBoxUrl.Text = whd.Url; + } + + ValidateInputs(); + + this.textBoxName.Focus(); + } + + /// + /// Creates a new instance of the webhook forwarder. + /// + /// New + /// + /// This is called when the user is adding a new destination and clicks the 'Save' button. + /// + public override DestinationBase Create() + { + return new WebhookDestination(this.textBoxName.Text, this.textBoxUrl.Text); + } + + /// + /// Updates the specified webhook instance. + /// + /// The to update + /// + /// This is called when a user is editing an existing webhook and clicks the 'Save' button. + /// + public override void Update(DestinationBase db) + { + WebhookDestination whd = db as WebhookDestination; + whd.Description = this.textBoxName.Text; + whd.Url = this.textBoxUrl.Text; + } + + + private void ValidateInputs() + { + bool valid = true; + + // name + if (String.IsNullOrEmpty(this.textBoxName.Text)) + { + this.textBoxName.Highlight(); + valid = false; + } + else + { + this.textBoxName.Unhighlight(); + } + + // url + if (String.IsNullOrEmpty(this.textBoxUrl.Text)) + { + this.textBoxUrl.Highlight(); + valid = false; + } + else + { + Uri uri = null; + bool ok = Uri.TryCreate(this.textBoxUrl.Text, UriKind.Absolute, out uri); + if (!ok) + { + this.textBoxUrl.Highlight(); + valid = false; + } + else + { + this.textBoxUrl.Unhighlight(); + } + } + + OnValidChanged(valid); + } + + private void textBoxUrl_TextChanged(object sender, EventArgs e) + { + ValidateInputs(); + } + + private void textBoxName_TextChanged(object sender, EventArgs e) + { + ValidateInputs(); + } + } +} diff --git a/Growl Extras/Webhook Plugin/WebhookInputs.resx b/Growl Extras/Webhook Plugin/WebhookInputs.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Growl Extras/Webhook Plugin/WebhookInputs.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Growl Extras/Webhook Plugin/libraries/Growl.Connector.dll b/Growl Extras/Webhook Plugin/libraries/Growl.Connector.dll new file mode 100644 index 0000000000000000000000000000000000000000..2025446b2994a21c0eb55e9509249dfd71fdf6ea GIT binary patch literal 50176 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
      mal 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 literal 0 HcmV?d00001 diff --git a/Growl Extras/Webhook Plugin/libraries/Growl.CoreLibrary.dll b/Growl Extras/Webhook Plugin/libraries/Growl.CoreLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..d4cba0ee504462ccbce526be48f7fd0fc1c6d3eb GIT binary patch literal 16896 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 literal 0 HcmV?d00001 diff --git a/Growl Extras/Webhook Plugin/webhook.xml b/Growl Extras/Webhook Plugin/webhook.xml new file mode 100644 index 0000000..cd2ea25 --- /dev/null +++ b/Growl Extras/Webhook Plugin/webhook.xml @@ -0,0 +1,22 @@ + + + + Webhook Forwarder + + + Brian Dunnington + + + 1.0 + + + http://www.growlforwindows.com/gfw/d.ashx?f=forwarders/webhook.zip + + + + + + \ No newline at end of file diff --git a/Growl Extras/growlnotify/growlnotify - com/Program.cs b/Growl Extras/growlnotify/growlnotify - com/Program.cs new file mode 100644 index 0000000..51565d2 --- /dev/null +++ b/Growl Extras/growlnotify/growlnotify - com/Program.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace growlnotify.console +{ + class Program + { + static int Main(string[] args) + { + return growlnotify.Program.Main(args); + } + } +} diff --git a/Growl Extras/growlnotify/growlnotify - com/Properties/AssemblyInfo.cs b/Growl Extras/growlnotify/growlnotify - com/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..27c2a62 --- /dev/null +++ b/Growl Extras/growlnotify/growlnotify - com/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("growlnotify - com")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("element code project")] +[assembly: AssemblyProduct("growlnotify - com")] +[assembly: AssemblyCopyright("Copyright © element code project 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("d4bc6aba-aec9-4f43-847a-5a6b90e01b5f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Growl Extras/growlnotify/growlnotify - com/growlnotify - com.csproj b/Growl Extras/growlnotify/growlnotify - com/growlnotify - com.csproj new file mode 100644 index 0000000..d4902d7 --- /dev/null +++ b/Growl Extras/growlnotify/growlnotify - com/growlnotify - com.csproj @@ -0,0 +1,66 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {F267E52A-B6C7-4822-AC28-38265837D9B4} + Exe + Properties + growlnotify.console + growlnotifyconsole + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + x86 + + + + False + ..\growlnotify - exe\bin\Release\growlnotify.exe + + + + + + + + + + + if $(ConfigurationName) == Debug goto :debug + +"C:\Program Files (x86)\Microsoft\ILMerge\ilmerge" /out:"$(TargetDir)growlnotify-com.exe" "$(TargetDir)$(TargetFileName)" "$(TargetDir)growlnotify.exe" +del "$(TargetDir)$(TargetFileName)" +del "$(TargetDir)$(TargetName).pdb" +del "$(TargetDir)growlnotify.com" +del "$(TargetDir)growlnotify.exe" +del "$(TargetDir)growlnotify.pdb" +del "$(TargetDir)growlnotify-com.pdb" +rename "$(TargetDir)growlnotify-com.exe" "growlnotify.com" +xcopy "$(TargetDir)growlnotify.com" "$(SolutionDir)" /Y + +:debug + + \ No newline at end of file diff --git a/Growl Extras/growlnotify/growlnotify - exe/Program.cs b/Growl Extras/growlnotify/growlnotify - exe/Program.cs new file mode 100644 index 0000000..21f6299 --- /dev/null +++ b/Growl Extras/growlnotify/growlnotify - exe/Program.cs @@ -0,0 +1,346 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Diagnostics; +using System.Threading; +using Growl.Connector; + +namespace growlnotify +{ + public class Program + { + static GrowlConnector growl; + static EventWaitHandle ewh; + static bool silent = false; + static int r = -1; + + public static int Main(string[] args) + { + if (args == null || args.Length == 0) + { + Console.WriteLine("Invalid arguments. See /? for usage."); + return -1; + } + + if (args[0] == "/?") + { + Console.WriteLine(); + string usage = global::growlnotify.Properties.Resources.usage; + Console.WriteLine(usage); + return 0; + } + + // parse parameters + Dictionary parameters = new Dictionary(); + try + { + foreach (string arg in args) + { + Parameter p = GetParameterValue(arg); + parameters.Add(p.Argument, p); + } + } + catch(Exception ex) + { + Console.WriteLine("Bad arguments : " + ex.Message); + return -1; + } + + // set default values + string messageText = ""; + string title = "growlnotify"; + string id = ""; + string coalescingid = null; + bool sticky = false; + int priorityInt = 0; + string iconFile = null; + string applicationName = "growlnotify"; + string appIconFile = null; + string[] notificationTypesToRegister = null; + string notificationType = "General Notification"; + string callbackUrl = null; + string protocol = "GNTP"; + string host = "localhost"; + string password = null; + + Cryptography.SymmetricAlgorithmType encryptionAlgorithm = Cryptography.SymmetricAlgorithmType.PlainText; + Cryptography.HashAlgorithmType hashAlgorithm = Cryptography.HashAlgorithmType.MD5; + int port = GrowlConnector.TCP_PORT; + + // validate required parameters + if (!parameters.ContainsKey("messagetext")) + { + Console.WriteLine("Missing 'messagetext' argument. See /? for usage"); + return -1; + } + else + { + messageText = parameters["messagetext"].Value; + } + if (parameters.ContainsKey("/t")) + { + title = parameters["/t"].Value; + } + if (parameters.ContainsKey("/id")) + { + id = parameters["/id"].Value; + } + if (parameters.ContainsKey("/s")) + { + string s = parameters["/s"].Value.ToLower(); + if (s == "true") sticky = true; + } + if (parameters.ContainsKey("/p")) + { + priorityInt = Convert.ToInt32(parameters["/p"].Value); + } + if (parameters.ContainsKey("/i")) + { + iconFile = parameters["/i"].Value; + if (iconFile.StartsWith(".")) + { + string root = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); + iconFile = System.IO.Path.Combine(root, iconFile); + } + } + if (parameters.ContainsKey("/c")) + { + coalescingid = parameters["/c"].Value; + } + if (parameters.ContainsKey("/a")) + { + applicationName = parameters["/a"].Value; + } + if (parameters.ContainsKey("/ai")) + { + appIconFile = parameters["/ai"].Value; + if (appIconFile.StartsWith(".")) + { + string root = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); + appIconFile = System.IO.Path.Combine(root, iconFile); + } + } + if (parameters.ContainsKey("/r")) + { + string[] parts = parameters["/r"].Value.Split(','); + if (parts != null && parts.Length > 0) + { + notificationTypesToRegister = new string[parts.Length]; + for (int p = 0; p < parts.Length; p++) + { + string val = parts[p]; + if (val.StartsWith("\"")) + { + val = val.Substring(1, val.Length - 1); + } + if(val.EndsWith("\"")) + { + val = val.Substring(0, val.Length - 1); + } + notificationTypesToRegister[p] = val; + } + } + } + if (parameters.ContainsKey("/n")) + { + notificationType = parameters["/n"].Value; + } + if (parameters.ContainsKey("/cu")) + { + callbackUrl = parameters["/cu"].Value; + } + if (parameters.ContainsKey("/protocol")) + { + protocol = parameters["/protocol"].Value; + } + if (parameters.ContainsKey("/host")) + { + host = parameters["/host"].Value; + } + if (parameters.ContainsKey("/port")) + { + port = Convert.ToInt32(parameters["/port"].Value); + } + else + { + if (protocol == "UDP") port = 9887; + } + if (parameters.ContainsKey("/pass")) + { + password = parameters["/pass"].Value; + } + if (parameters.ContainsKey("/enc")) + { + switch (parameters["/enc"].Value.ToUpper()) + { + case "DES" : + encryptionAlgorithm = Cryptography.SymmetricAlgorithmType.DES; + break; + case "3DES": + encryptionAlgorithm = Cryptography.SymmetricAlgorithmType.TripleDES; + break; + case "AES": + encryptionAlgorithm = Cryptography.SymmetricAlgorithmType.AES; + break; + default : + encryptionAlgorithm = Cryptography.SymmetricAlgorithmType.PlainText; + break; + } + } + if (parameters.ContainsKey("/hash")) + { + switch (parameters["/hash"].Value.ToUpper()) + { + case "SHA1": + hashAlgorithm = Cryptography.HashAlgorithmType.SHA1; + break; + case "SHA256": + hashAlgorithm = Cryptography.HashAlgorithmType.SHA256; + break; + case "SHA512": + hashAlgorithm = Cryptography.HashAlgorithmType.SHA512; + break; + default: + hashAlgorithm = Cryptography.HashAlgorithmType.MD5; + break; + } + } + if (parameters.ContainsKey("/silent")) + { + string s = parameters["/silent"].Value.ToLower(); + if (s == "true") silent = true; + } + + // set up a waithandle so we can wait for responses + ewh = new EventWaitHandle(false, EventResetMode.ManualReset); + + // set up growl connector + growl = new GrowlConnector(password, host, port); + growl.EncryptionAlgorithm = encryptionAlgorithm; + growl.KeyHashAlgorithm = hashAlgorithm; + growl.OKResponse += new GrowlConnector.ResponseEventHandler(growl_Response); + growl.ErrorResponse += new GrowlConnector.ResponseEventHandler(growl_Response); + + // do any registration first + if (notificationTypesToRegister != null || applicationName == "growlnotify") + { + Growl.CoreLibrary.Resource appIcon = null; + if (!String.IsNullOrEmpty(appIconFile)) + { + Uri uri = new Uri(appIconFile); + if (uri.IsFile && System.IO.File.Exists(uri.LocalPath)) + { + appIcon = Growl.CoreLibrary.ImageConverter.ImageFromUrl(uri.LocalPath); + } + else + { + appIcon = appIconFile; + } + } + + if (notificationTypesToRegister == null) + { + notificationTypesToRegister = new string[] { "General Notification" }; + } + NotificationType[] types = new NotificationType[notificationTypesToRegister.Length]; + for(int t=0;t +// This code was generated by a tool. +// Runtime Version:2.0.50727.3082 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace growlnotify.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("growlnotify.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Send a Growl notification to a local or remote host + /// + ///growlnotify [/t:title] [/id:id] [/s:sticky] [/p:priority] [/i:icon] + /// [/a:application] [/r:type] [/n:type] + /// [/cu:callbackurl] [/cc:callbackcontext] + /// [/host:host] [/port:port] + /// [/pass:password] [/enc:algorithm] [/hash:algorithm] + /// [/wait:duration] + /// messagetext + /// + /// [/t:title] The notification title. + /// Default: "growlnotify" + /// + /// [/id:id] T [rest of string was truncated]";. + /// + internal static string usage { + get { + return ResourceManager.GetString("usage", resourceCulture); + } + } + } +} diff --git a/Growl Extras/growlnotify/growlnotify - exe/Properties/Resources.resx b/Growl Extras/growlnotify/growlnotify - exe/Properties/Resources.resx new file mode 100644 index 0000000..a116310 --- /dev/null +++ b/Growl Extras/growlnotify/growlnotify - exe/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\usage.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 + + \ No newline at end of file diff --git a/Growl Extras/growlnotify/growlnotify - exe/example.txt b/Growl Extras/growlnotify/growlnotify - exe/example.txt new file mode 100644 index 0000000..bbd2afe --- /dev/null +++ b/Growl Extras/growlnotify/growlnotify - exe/example.txt @@ -0,0 +1,14 @@ +"this is the notification text" /t:"my notification" /id:12345 /s:true /p:2 /i:"c:\apple.png" /a:"growlnotify example" /r:"Example Notification" /n:"Example Notification" /protocol:GNTP /host:localhost /port:23053 /pass:"secret" /enc:DES /hash:SHA256 + + +OTHER STUFF: + +"C:\Program Files\Microsoft\ILMerge\ilmerge" [/lib:directory]* [/log[:filename]] [/keyfile:filename [/delaysign]] [/internalize[:filename]] [/t[arget]:(library|exe|winexe)] [/closed] [/ndebug] [/ver:version] [/copyattrs] [/xmldocs] [/attr:filename] ([/targetplatform:[,]]|v1|v1.1|v2) [/useFullPublicKeyForReferences] [/zeroPeKind] [/wildcards] [/allowDup[:typename]]* [/allowDuplicateResources] [/union] [/align:n] /out:filename [...] + +"C:\Program Files\Microsoft\ILMerge\ilmerge" /out:"$(TargetDir)growlnotify.combined.exe" "$(TargetDir)$(TargetFileName)" "$(TargetDir)Growl.Connector.dll" "$(TargetDir)Growl.CoreLibrary.dll" + +"C:\Program Files\Microsoft\ILMerge\ilmerge" /out:D:\_Growl\Growl Extras\growlnotify\bin\Release\growlnotify.combined.exe D:\_Growl\Growl Extras\growlnotify\bin\Release\growlnotify.exe D:\_Growl\Growl Extras\growlnotify\bin\Release\Growl.Connector.dll D:\_Growl\Growl Extras\growlnotify\bin\Release\Growl.CoreLibrary.dll + +growlnotify /t:"my notification" /id:12345 /s:true /p:2 /i:"c:\apple.png" /a:"growlnotify example" /r:"Example Notification" /n:"Example Notification" /host:localhost /port:23053 /pass:"secret" /enc:DES /hash:SHA256 "this is the notification text" + +"D:\_Growl\Growl Extras\growlnotify\bin\Debug\growlnotify" /t:"my notification" /id:12345 /s:true /p:2 /i:"c:\apple.png" /a:"growlnotify example" /r:"Example Notification" /n:"Example Notification" /host:localhost /port:23053 /pass:"secret" /enc:DES /hash:SHA256 "this is the notification text" \ No newline at end of file diff --git a/Growl Extras/growlnotify/growlnotify - exe/growlnotify - exe.csproj b/Growl Extras/growlnotify/growlnotify - exe/growlnotify - exe.csproj new file mode 100644 index 0000000..87aee1c --- /dev/null +++ b/Growl Extras/growlnotify/growlnotify - exe/growlnotify - exe.csproj @@ -0,0 +1,101 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {5236703B-F8A7-451C-8118-11A778C2137E} + WinExe + Properties + growlnotify + growlnotifyexe + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + x86 + + + true + bin\ConsoleApp\ + DEBUG;TRACE + full + x86 + C:\Program Files\Microsoft Visual Studio 8\Team Tools\Static Analysis Tools\FxCop\\rules + true + GlobalSuppressions.cs + prompt + + + + False + ..\..\..\Growl Connectors\NET\libraries\Growl.Connector.dll + + + False + ..\..\..\Growl Connectors\NET\libraries\Growl.CoreLibrary.dll + + + + + + + + + + + True + True + Resources.resx + + + + + + + + + + + Designer + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + if $(ConfigurationName) == Debug goto :debug + +"C:\Program Files (x86)\Microsoft\ILMerge\ilmerge" /out:"$(TargetDir)growlnotify.exe" "$(TargetDir)$(TargetFileName)" "$(TargetDir)Growl.Connector.dll" "$(TargetDir)Growl.CoreLibrary.dll" +del "$(TargetDir)Growl.Connector.dll" +del "$(TargetDir)Growl.CoreLibrary.dll" +del "$(TargetDir)$(TargetFileName)" +del "$(TargetDir)$(TargetName).pdb" +xcopy "$(TargetDir)growlnotify.exe" "$(SolutionDir)" /Y + +:debug + + \ No newline at end of file diff --git a/Growl Extras/growlnotify/growlnotify - exe/save.txt b/Growl Extras/growlnotify/growlnotify - exe/save.txt new file mode 100644 index 0000000..75c64c3 --- /dev/null +++ b/Growl Extras/growlnotify/growlnotify - exe/save.txt @@ -0,0 +1,301 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Diagnostics; +using System.Threading; +using Microsoft.Win32; +using Growl.Connector; + +namespace growlnotify +{ + public class Program + { + static GrowlConnector growl; + static EventWaitHandle ewh; + + static void Main(string[] args) + { + //Get a pointer to the forground window. The idea here is that + //IF the user is starting our application from an existing console + //shell, that shell will be the uppermost window. We'll get it + //and attach to it + + /* + IntPtr ptr = GetForegroundWindow(); + int u; + GetWindowThreadProcessId(ptr, out u); + Process process = Process.GetProcessById(u); + + if (process.ProcessName == "cmd") //Is the uppermost window a cmd process? + { + AttachConsole(process.Id); + } + * */ + + bool needToFreeConsole = AttachConsole(-1); + + if (args == null || args.Length == 0) + { + Console.WriteLine("Invalid arguments. See /? for usage."); + return; + } + + if (args[0] == "/?") + { + Console.WriteLine(); + string usage = global::growlnotify.Properties.Resources.usage; + Console.WriteLine(usage); + return; + } + + // parse parameters + Dictionary parameters = new Dictionary(); + try + { + foreach (string arg in args) + { + Parameter p = GetParameterValue(arg); + parameters.Add(p.Argument, p); + } + } + catch(Exception ex) + { + Console.WriteLine("Bad arguments : " + ex.Message); + return; + } + + // set default values + string messageText = ""; + string title = "growlnotify"; + string id = ""; + bool sticky = false; + int priorityInt = 0; + string iconFile = null; + string applicationName = "growlnotify"; + string notificationTypeToRegister = null; + string notificationType = "General Notification"; + string callbackUrl = null; + string callbackContextData = null; + string protocol = "GNTP"; + string host = "localhost"; + string password = null; + Cryptography.SymmetricAlgorithmType encryptionAlgorithm = Cryptography.SymmetricAlgorithmType.PlainText; + Cryptography.HashAlgorithmType hashAlgorithm = Cryptography.HashAlgorithmType.MD5; + int port = GrowlConnector.TCP_PORT; + + // validate required parameters + if (!parameters.ContainsKey("messagetext")) + { + Console.WriteLine("Missing 'messagetext' argument. See /? for usage"); + return; + } + else + { + messageText = parameters["messagetext"].Value; + } + if (parameters.ContainsKey("/t")) + { + title = parameters["/t"].Value; + } + if (parameters.ContainsKey("/id")) + { + id = parameters["/id"].Value; + } + if (parameters.ContainsKey("/s")) + { + string s = parameters["/s"].Value.ToLower(); + if (s == "true") sticky = true; + } + if (parameters.ContainsKey("/p")) + { + priorityInt = Convert.ToInt32(parameters["/p"].Value); + } + if (parameters.ContainsKey("/i")) + { + iconFile = parameters["/i"].Value; + } + if (parameters.ContainsKey("/a")) + { + applicationName = parameters["/a"].Value; + } + if (parameters.ContainsKey("/r")) + { + notificationTypeToRegister = parameters["/r"].Value; + } + if (parameters.ContainsKey("/n")) + { + notificationType = parameters["/n"].Value; + } + if (parameters.ContainsKey("/cu")) + { + callbackUrl = parameters["/cu"].Value; + } + if (parameters.ContainsKey("/cc")) + { + callbackContextData = parameters["/cc"].Value; + } + if (parameters.ContainsKey("/protocol")) + { + protocol = parameters["/protocol"].Value; + } + if (parameters.ContainsKey("/host")) + { + host = parameters["/host"].Value; + } + if (parameters.ContainsKey("/port")) + { + port = Convert.ToInt32(parameters["/port"].Value); + } + else + { + if (protocol == "UDP") port = 9887; + } + if (parameters.ContainsKey("/pass")) + { + password = parameters["/pass"].Value; + } + if (parameters.ContainsKey("/enc")) + { + switch (parameters["/enc"].Value.ToUpper()) + { + case "DES" : + encryptionAlgorithm = Cryptography.SymmetricAlgorithmType.DES; + break; + case "3DES": + encryptionAlgorithm = Cryptography.SymmetricAlgorithmType.TripleDES; + break; + case "AES": + encryptionAlgorithm = Cryptography.SymmetricAlgorithmType.AES; + break; + default : + encryptionAlgorithm = Cryptography.SymmetricAlgorithmType.PlainText; + break; + } + } + if (parameters.ContainsKey("/hash")) + { + switch (parameters["/hash"].Value.ToUpper()) + { + case "SHA1": + hashAlgorithm = Cryptography.HashAlgorithmType.SHA1; + break; + case "SHA256": + hashAlgorithm = Cryptography.HashAlgorithmType.SHA256; + break; + case "SHA512": + hashAlgorithm = Cryptography.HashAlgorithmType.SHA512; + break; + default: + hashAlgorithm = Cryptography.HashAlgorithmType.MD5; + break; + } + } + + // set up a waithandle so we can wait for responses + ewh = new EventWaitHandle(false, EventResetMode.ManualReset); + + // set up growl connector + growl = new GrowlConnector(password, host, port); + growl.EncryptionAlgorithm = encryptionAlgorithm; + growl.KeyHashAlgorithm = hashAlgorithm; + growl.OKResponse += new GrowlConnector.ResponseEventHandler(growl_Response); + growl.ErrorResponse += new GrowlConnector.ResponseEventHandler(growl_Response); + + // do any registration first + if (notificationTypeToRegister != null || applicationName == "growlnotify") + { + if (String.IsNullOrEmpty(notificationTypeToRegister)) notificationTypeToRegister = "General Notification"; + Application application = new Application(applicationName); + NotificationType type = new NotificationType(notificationTypeToRegister); + NotificationType[] types = new NotificationType[] { type }; + growl.Register(application, types); + ewh.WaitOne(); // wait just to be sure the registration gets there first + } + + // handle any callback information + CallbackContext callback = null; + if (callbackUrl != null) + { + callback = new CallbackContext(); + UrlCallbackTarget target = new UrlCallbackTarget(); + target.Url = callbackUrl; + callback.SetUrlCallbackTarget(target); + callback.Data = (String.IsNullOrEmpty(callbackContextData) ? "none" : callbackContextData); + callback.Type = "string"; + } + + ewh.Reset(); + + // send the notification + Growl.CoreLibrary.Resource icon = iconFile; + Priority priority = (Enum.IsDefined(typeof(Priority), priorityInt) ? (Priority)priorityInt : Priority.Normal); + Notification notification = new Notification(applicationName, notificationType, id, title, messageText, icon, sticky, priority, null); + growl.Notify(notification, callback); + ewh.WaitOne(); + + Console.WriteLine(); + + if(needToFreeConsole) + FreeConsole(); + } + + static void growl_Response(Response response) + { + if (response.IsOK) + Console.WriteLine("Notification sent successfully"); + else + Console.WriteLine(String.Format("Notification failed: {0} - {1}", response.ErrorCode, response.ErrorDescription)); + + // signal that a response was received + ewh.Set(); + } + + private static Parameter GetParameterValue(string argument) + { + if (argument.StartsWith("/")) + { + string[] parts = argument.Split(new char[] { ':' }, 2); + string val = parts[1]; + if (val.StartsWith("\"") && val.EndsWith("\"")) + { + val = val.Substring(1, val.Length - 2); + } + return new Parameter(parts[0], val); + } + else + return new Parameter("messagetext", argument); + } + + private struct Parameter + { + public Parameter(string arg, string val) + { + this.Argument = arg; + + if (val == null) val = String.Empty; + val = val.Replace("\\n", "\n"); + val = val.Replace("\\\n", "\\n"); + this.Value = val; + } + + public string Argument; + public string Value; + } + + [DllImport("kernel32.dll", SetLastError = true)] + static extern bool AllocConsole(); + + [DllImport("kernel32.dll", SetLastError = true)] + static extern bool FreeConsole(); + + [DllImport("kernel32", SetLastError = true)] + static extern bool AttachConsole(int dwProcessId); + + [DllImport("user32.dll")] + static extern IntPtr GetForegroundWindow(); + + [DllImport("user32.dll", SetLastError = true)] + static extern uint GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId); + } +} diff --git a/Growl Extras/growlnotify/growlnotify - exe/usage.txt b/Growl Extras/growlnotify/growlnotify - exe/usage.txt new file mode 100644 index 0000000..76b9d62 --- /dev/null +++ b/Growl Extras/growlnotify/growlnotify - exe/usage.txt @@ -0,0 +1,115 @@ +Send a Growl notification to a local or remote host + +growlnotify [/t:title] [/id:id] [/s:sticky] [/p:priority] [/i:icon] [/c:coalescingid] + [/a:application] [/ai:icon] [/r:type] [/n:type] + [/cu:callbackurl] + [/host:host] [/port:port] + [/pass:password] [/enc:algorithm] [/hash:algorithm] + [/silent:nooutput] + messagetext + + [/t:title] The notification title. + Use \n to specify a line break. + Use \\n for a literal '\n'. + Default: "growlnotify" + + [/id:id] The notification id. + Default: "" + + [/s:sticky] Indicates if the notification should be sticky. + Valid values: true|false + Default: false + + [/p:priority] The notification priority. + Valid values: -2|-1|0|1|2 + Default: 0 + + [/i:icon] The icon to show for the notification. + Must be a valid file type (png, jpg, gif, ico). + Can be any of the following: + - absolute url (http://domain/image.png) + - absolute file path (c:\temp\image.png) + - relative file path (.\folder\image.png) (relative + file paths must start with a dot (.) and are + relative to growlnotify's location + Note: Icons specified as urls will be passed as urls + (links). Icons specified as local files (either + absolute or relative) will be sent as binary + data. + Default: no icon + + [/c:coalescingid] The coalescing id used to update/replace existing + notifications. + + [/a:application] The name of the application sending the notification. + The application must already be registered unless the + /r switch is included. The default 'growlnotify' + application does not need to be explicitly registered. + Default: growlnotify + + [/ai:appicon] The icon of the application being registered. + Only applicable if the /r switch is also passed. + Must be a valid file type (png, jpg, gif, ico). + Can be any of the following: + - absolute url (http://domain/image.png) + - absolute file path (c:\temp\image.png) + - relative file path (.\folder\image.png) (relative + file paths must start with a dot (.) and are + relative to growlnotify's location + Note: Icons specified as urls will be passed as urls + (links). Icons specified as local files (either + absolute or relative) will be sent as binary + data. + Default: no icon + + [/r:type] Register the application first. + 'types' is a comma-separated list of the notification + types to register. + Default: application not automatically registered + Examples: + /r:"Some Notification" + /r:"Notification One","Notification Two","Notification Three" + + [/n:type] The notification name/type. + Default: "General Notification" + + [/cu:callbackurl] A callback url (will be opened if the notification is + clicked). + Default: no callback + + [/host:host] The host address to send the notification to. + If any value other than 'localhost' or '127.0.0.1' is + provided, the host is considered a remote host and the + /pass switch must also be provided. + Default: localhost + + [/port:port] The port to send the notification to. + Default: 23053 + + [/pass:password] The password required to send notifications. + A password is required to send a request to a remote + host. If /host is specified and is any value other than + 'localhost' or '127.0.0.1', then /pass is also + required. + Default: no password + + [/enc:algorithm] The encryption algorithm to use. + Valid values: NONE|DES|3DES|AES + If a value other than NONE is provided, the + /pass and /hash switches must also be included. + Default: NONE + + [/hash:algorithm] The hashing algorithm to use. + Valid values: MD5|SHA1|SHA256|SHA512 + This value is only used if the /pass switch is also + set. + Default: MD5 + + [/silent:nooutput] When run from the command line, indicates if response + output should be suppressed or not. + Valid values: true|false + Default: false + + messagetext The notification's text - Required + Use \n to specify a line break. + Use \\n for a literal '\n'. diff --git a/Growl Extras/growlnotify/growlnotify.com b/Growl Extras/growlnotify/growlnotify.com new file mode 100644 index 0000000000000000000000000000000000000000..9805582034b1f2e7d51c9ac555ed0362bf0ccd5c GIT binary patch literal 73216 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

      !dgAKq?~els=`2$jA&Y!^)(XKUzzn3(qpzo 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í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 + Debug AnyCPU @@ -11,6 +11,11 @@ Growl.Connector true Growl.Connector.pfx + + + + + 2.0 true @@ -39,7 +44,6 @@ true pdbonly AnyCPU - C:\Program Files\Microsoft Visual Studio 8\Team Tools\Static Analysis Tools\FxCop\\rules true GlobalSuppressions.cs prompt diff --git a/Growl/Growl.CoreLibrary/Growl.CoreLibrary.csproj b/Growl/Growl.CoreLibrary/Growl.CoreLibrary.csproj index 250d710..d7d9b81 100644 --- a/Growl/Growl.CoreLibrary/Growl.CoreLibrary.csproj +++ b/Growl/Growl.CoreLibrary/Growl.CoreLibrary.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -11,6 +11,11 @@ Growl.CoreLibrary true Growl.CoreLibrary.pfx + + + + + 2.0 true @@ -39,7 +44,6 @@ true pdbonly AnyCPU - C:\Program Files\Microsoft Visual Studio 8\Team Tools\Static Analysis Tools\FxCop\\rules true GlobalSuppressions.cs prompt diff --git a/Growl/Growl.Daemon/Growl.Daemon.csproj b/Growl/Growl.Daemon/Growl.Daemon.csproj index 50e3ad4..c1c8012 100644 --- a/Growl/Growl.Daemon/Growl.Daemon.csproj +++ b/Growl/Growl.Daemon/Growl.Daemon.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Growl.Daemon Growl.Daemon + + + + + 2.0 true @@ -36,7 +41,6 @@ true pdbonly x86 - C:\Program Files\Microsoft Visual Studio 8\Team Tools\Static Analysis Tools\FxCop\\rules true GlobalSuppressions.cs prompt diff --git a/Growl/Growl.Destinations/Growl.Destinations.csproj b/Growl/Growl.Destinations/Growl.Destinations.csproj index d11e536..85bf593 100644 --- a/Growl/Growl.Destinations/Growl.Destinations.csproj +++ b/Growl/Growl.Destinations/Growl.Destinations.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Growl.Destinations Growl.Destinations + + + + + 2.0 true diff --git a/Growl/Growl.Destinations/Properties/Resources.Designer.cs b/Growl/Growl.Destinations/Properties/Resources.Designer.cs index 25fd7e6..aff55ee 100644 --- a/Growl/Growl.Destinations/Properties/Resources.Designer.cs +++ b/Growl/Growl.Destinations/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.3082 +// Runtime Version:2.0.50727.8009 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. diff --git a/Growl/Growl.DisplayStyle/Growl.DisplayStyle.csproj b/Growl/Growl.DisplayStyle/Growl.DisplayStyle.csproj index 5a1175b..aafd2f0 100644 --- a/Growl/Growl.DisplayStyle/Growl.DisplayStyle.csproj +++ b/Growl/Growl.DisplayStyle/Growl.DisplayStyle.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Growl.DisplayStyle Growl.DisplayStyle + + + + + 2.0 true diff --git a/Growl/Growl.Displays.Plain/Growl.Displays.Plain.csproj b/Growl/Growl.Displays.Plain/Growl.Displays.Plain.csproj index 4a16841..b42d8c0 100644 --- a/Growl/Growl.Displays.Plain/Growl.Displays.Plain.csproj +++ b/Growl/Growl.Displays.Plain/Growl.Displays.Plain.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Growl.Displays.Plain Growl.Displays.Plain + + + + + 2.0 true diff --git a/Growl/Growl.Displays.Plain/Properties/Resources.Designer.cs b/Growl/Growl.Displays.Plain/Properties/Resources.Designer.cs index 9e36c32..20214be 100644 --- a/Growl/Growl.Displays.Plain/Properties/Resources.Designer.cs +++ b/Growl/Growl.Displays.Plain/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.3082 +// Runtime Version:2.0.50727.8009 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. diff --git a/Growl/Growl.Displays.Smokestack/Growl.Displays.Smokestack.csproj b/Growl/Growl.Displays.Smokestack/Growl.Displays.Smokestack.csproj index 6908820..19ed0e4 100644 --- a/Growl/Growl.Displays.Smokestack/Growl.Displays.Smokestack.csproj +++ b/Growl/Growl.Displays.Smokestack/Growl.Displays.Smokestack.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -10,6 +10,11 @@ Growl.Displays.Smokestack Growl.Displays.Smokestack OnOutputUpdated + + + + + 2.0 true diff --git a/Growl/Growl.Displays.Smokestack/Properties/Resources.Designer.cs b/Growl/Growl.Displays.Smokestack/Properties/Resources.Designer.cs index 19535c4..2a79448 100644 --- a/Growl/Growl.Displays.Smokestack/Properties/Resources.Designer.cs +++ b/Growl/Growl.Displays.Smokestack/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.1433 +// Runtime Version:2.0.50727.8009 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. diff --git a/Growl/Growl.Displays.Standard/Growl.Displays.Standard.csproj b/Growl/Growl.Displays.Standard/Growl.Displays.Standard.csproj index eb6b27e..ac27693 100644 --- a/Growl/Growl.Displays.Standard/Growl.Displays.Standard.csproj +++ b/Growl/Growl.Displays.Standard/Growl.Displays.Standard.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -10,6 +10,11 @@ Growl.Displays.Standard Growl.Displays.Standard OnOutputUpdated + + + + + 2.0 true diff --git a/Growl/Growl.Displays.Toast/Growl.Displays.Toast.csproj b/Growl/Growl.Displays.Toast/Growl.Displays.Toast.csproj index 070c7da..8d645d8 100644 --- a/Growl/Growl.Displays.Toast/Growl.Displays.Toast.csproj +++ b/Growl/Growl.Displays.Toast/Growl.Displays.Toast.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Growl.Displays.Toast Growl.Displays.Toast + + + + + 2.0 true diff --git a/Growl/Growl.Displays.Visor/Growl.Displays.Visor.csproj b/Growl/Growl.Displays.Visor/Growl.Displays.Visor.csproj index 7869581..3b29f1f 100644 --- a/Growl/Growl.Displays.Visor/Growl.Displays.Visor.csproj +++ b/Growl/Growl.Displays.Visor/Growl.Displays.Visor.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -10,6 +10,11 @@ Growl.Displays.Visor Growl.Displays.Visor OnOutputUpdated + + + + + 2.0 true diff --git a/Growl/Growl.Localization.de-DE/Growl.Localization.de-DE.csproj b/Growl/Growl.Localization.de-DE/Growl.Localization.de-DE.csproj index 6fa17cf..1fa000b 100644 --- a/Growl/Growl.Localization.de-DE/Growl.Localization.de-DE.csproj +++ b/Growl/Growl.Localization.de-DE/Growl.Localization.de-DE.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Growl Growl + + + + + 2.0 true diff --git a/Growl/Growl.Localization.en-GB/Growl.Localization.en-GB.csproj b/Growl/Growl.Localization.en-GB/Growl.Localization.en-GB.csproj index 2794b3a..c6a7052 100644 --- a/Growl/Growl.Localization.en-GB/Growl.Localization.en-GB.csproj +++ b/Growl/Growl.Localization.en-GB/Growl.Localization.en-GB.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Growl Growl + + + + + 2.0 true diff --git a/Growl/Growl.Localization.fr-FR/Growl.Localization.fr-FR.csproj b/Growl/Growl.Localization.fr-FR/Growl.Localization.fr-FR.csproj index be2e0e3..05aa015 100644 --- a/Growl/Growl.Localization.fr-FR/Growl.Localization.fr-FR.csproj +++ b/Growl/Growl.Localization.fr-FR/Growl.Localization.fr-FR.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Growl Growl + + + + + 2.0 true diff --git a/Growl/Growl.Localization.ja-JP/Growl.Localization.ja-JP.csproj b/Growl/Growl.Localization.ja-JP/Growl.Localization.ja-JP.csproj index 2c53e11..1a303dc 100644 --- a/Growl/Growl.Localization.ja-JP/Growl.Localization.ja-JP.csproj +++ b/Growl/Growl.Localization.ja-JP/Growl.Localization.ja-JP.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Growl Growl + + + + + 2.0 true diff --git a/Growl/Growl.Localization.ko-KR/Growl.Localization.ko-KR.csproj b/Growl/Growl.Localization.ko-KR/Growl.Localization.ko-KR.csproj index 8a221d5..3550e58 100644 --- a/Growl/Growl.Localization.ko-KR/Growl.Localization.ko-KR.csproj +++ b/Growl/Growl.Localization.ko-KR/Growl.Localization.ko-KR.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Growl Growl + + + + + 2.0 true diff --git a/Growl/Growl.Localization.nb-NO/Growl.Localization.nb-NO.csproj b/Growl/Growl.Localization.nb-NO/Growl.Localization.nb-NO.csproj index d59707f..6c6d859 100644 --- a/Growl/Growl.Localization.nb-NO/Growl.Localization.nb-NO.csproj +++ b/Growl/Growl.Localization.nb-NO/Growl.Localization.nb-NO.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Growl Growl + + + + + 2.0 true diff --git a/Growl/Growl.Localization.nl-NL/Growl.Localization.nl-NL.csproj b/Growl/Growl.Localization.nl-NL/Growl.Localization.nl-NL.csproj index 6baa4f3..e99712a 100644 --- a/Growl/Growl.Localization.nl-NL/Growl.Localization.nl-NL.csproj +++ b/Growl/Growl.Localization.nl-NL/Growl.Localization.nl-NL.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Growl Growl + + + + + 2.0 true diff --git a/Growl/Growl.UDPLegacy/Growl.UDPLegacy.csproj b/Growl/Growl.UDPLegacy/Growl.UDPLegacy.csproj index 4f56294..3332211 100644 --- a/Growl/Growl.UDPLegacy/Growl.UDPLegacy.csproj +++ b/Growl/Growl.UDPLegacy/Growl.UDPLegacy.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Growl.UDPLegacy Growl.UDPLegacy + + + + + 2.0 true diff --git a/Growl/Growl.sln b/Growl/Growl.sln index f3666b3..4ce72e0 100644 --- a/Growl/Growl.sln +++ b/Growl/Growl.sln @@ -1,6 +1,6 @@  -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Growl.Daemon", "Growl.Daemon\Growl.Daemon.csproj", "{6112CD52-1F16-4068-8D16-CB9C5467E8C3}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Growl.Localization.fr-FR", "Growl.Localization.fr-FR\Growl.Localization.fr-FR.csproj", "{7E659A21-065E-4C74-8AE8-26A073649204}" @@ -258,7 +258,6 @@ Global {25D4D0A4-22D0-4E87-A8D6-A58AA592D28C}.Release|Any CPU.Build.0 = Release|Any CPU {25D4D0A4-22D0-4E87-A8D6-A58AA592D28C}.Release|x86.ActiveCfg = Release|Any CPU {E9740EF0-ED81-4AF7-A720-CEADEF89E69E}.Debug|Any CPU.ActiveCfg = Debug - {E9740EF0-ED81-4AF7-A720-CEADEF89E69E}.Debug|Any CPU.Build.0 = Debug {E9740EF0-ED81-4AF7-A720-CEADEF89E69E}.Debug|x86.ActiveCfg = Debug {E9740EF0-ED81-4AF7-A720-CEADEF89E69E}.Debug|x86.Build.0 = Debug {E9740EF0-ED81-4AF7-A720-CEADEF89E69E}.Mono|Any CPU.ActiveCfg = Release diff --git a/Growl/Growl/FormResources.Designer.cs b/Growl/Growl/FormResources.Designer.cs index f47ac27..d05f5b8 100644 --- a/Growl/Growl/FormResources.Designer.cs +++ b/Growl/Growl/FormResources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.4961 +// Runtime Version:2.0.50727.8009 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. diff --git a/Growl/Growl/Growl.csproj b/Growl/Growl/Growl.csproj index 2218ab2..f27fa8c 100644 --- a/Growl/Growl/Growl.csproj +++ b/Growl/Growl/Growl.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -10,6 +10,11 @@ Growl Growl growl.ico + + + + + 2.0 true diff --git a/Growl/Growl/Properties/Resources.Designer.cs b/Growl/Growl/Properties/Resources.Designer.cs index c76e7be..87d51dd 100644 --- a/Growl/Growl/Properties/Resources.Designer.cs +++ b/Growl/Growl/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.4961 +// Runtime Version:2.0.50727.8009 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. diff --git a/Growl/Growl/Properties/Settings.Designer.cs b/Growl/Growl/Properties/Settings.Designer.cs index ebb6300..0692dcb 100644 --- a/Growl/Growl/Properties/Settings.Designer.cs +++ b/Growl/Growl/Properties/Settings.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.4961 +// Runtime Version:2.0.50727.8009 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -12,7 +12,7 @@ namespace Growl.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/Growl/Test App/Properties/Resources.Designer.cs b/Growl/Test App/Properties/Resources.Designer.cs index a5119ae..7250974 100644 --- a/Growl/Test App/Properties/Resources.Designer.cs +++ b/Growl/Test App/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.3082 +// Runtime Version:2.0.50727.8009 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. diff --git a/Growl/Test App/Properties/Settings.Designer.cs b/Growl/Test App/Properties/Settings.Designer.cs index 1579d85..f191f34 100644 --- a/Growl/Test App/Properties/Settings.Designer.cs +++ b/Growl/Test App/Properties/Settings.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.1433 +// Runtime Version:2.0.50727.8009 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -12,7 +12,7 @@ namespace Test_App.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/Growl/Test App/Test App.csproj b/Growl/Test App/Test App.csproj index 67d644d..d506120 100644 --- a/Growl/Test App/Test App.csproj +++ b/Growl/Test App/Test App.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Test_App Test App + + + + + 2.0 true diff --git a/Growl/Test Server/Properties/Resources.Designer.cs b/Growl/Test Server/Properties/Resources.Designer.cs index 8d034d4..eb0edd4 100644 --- a/Growl/Test Server/Properties/Resources.Designer.cs +++ b/Growl/Test Server/Properties/Resources.Designer.cs @@ -1,17 +1,17 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.1433 +// Runtime Version:2.0.50727.8009 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ -namespace Test_Server.Properties -{ - - +namespace Test_Server.Properties { + using System; + + ///

      /// A strongly-typed resource class, for looking up localized strings, etc. /// @@ -22,48 +22,40 @@ namespace Test_Server.Properties [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - + internal class Resources { + private static global::System.Resources.ResourceManager resourceMan; - + private static global::System.Globalization.CultureInfo resourceCulture; - + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { + internal Resources() { } - + /// /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Test_Server.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + internal static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + set { resourceCulture = value; } } diff --git a/Growl/Test Server/Properties/Settings.Designer.cs b/Growl/Test Server/Properties/Settings.Designer.cs index dd395bd..f411573 100644 --- a/Growl/Test Server/Properties/Settings.Designer.cs +++ b/Growl/Test Server/Properties/Settings.Designer.cs @@ -1,28 +1,24 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.1433 +// Runtime Version:2.0.50727.8009 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ -namespace Test_Server.Properties -{ - - +namespace Test_Server.Properties { + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { + + public static Settings Default { + get { return defaultInstance; } } diff --git a/Growl/Test Server/Test Server.csproj b/Growl/Test Server/Test Server.csproj index a15f95d..86bda4d 100644 --- a/Growl/Test Server/Test Server.csproj +++ b/Growl/Test Server/Test Server.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,6 +9,11 @@ Properties Test_Server Test Server + + + + + 2.0 true @@ -58,6 +63,7 @@ True Resources.resx + True SettingsSingleFileGenerator diff --git a/Growl/Windows Deployment/Windows Deployment.vdproj b/Growl/Windows Deployment/Windows Deployment.vdproj index 1fdfa66..43f2a6f 100644 --- a/Growl/Windows Deployment/Windows Deployment.vdproj +++ b/Growl/Windows Deployment/Windows Deployment.vdproj @@ -21,115 +21,85 @@ } "Entry" { - "MsmKey" = "8:_1187A034A147E8C098F7085A80E8238E" - "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_1B7FB88E9E354CABA9806D530C8AD3C4" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2A1B20EAA6CAB4F8727F5C8AEC634799" - "OwnerKey" = "8:_DC07E9C9AE505A72542F0E76B6A19CF9" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2A1B20EAA6CAB4F8727F5C8AEC634799" - "OwnerKey" = "8:_1187A034A147E8C098F7085A80E8238E" + "MsmKey" = "8:_14B63D94647FEC1EB80012E56D31CB23" + "OwnerKey" = "8:_BBE15CE227B5320B1E36D9F083101E31" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2A1B20EAA6CAB4F8727F5C8AEC634799" - "OwnerKey" = "8:_ECA3D6EC25A490E8BA82DB7A537E766B" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2A1B20EAA6CAB4F8727F5C8AEC634799" - "OwnerKey" = "8:_2D14B3ECD8B056877F0C1C21E850BF47" + "MsmKey" = "8:_14B63D94647FEC1EB80012E56D31CB23" + "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2A1B20EAA6CAB4F8727F5C8AEC634799" - "OwnerKey" = "8:_63A3A9478E328C9397829A260AA97C7A" + "MsmKey" = "8:_14B63D94647FEC1EB80012E56D31CB23" + "OwnerKey" = "8:_CE68D4FE0CA846F7BFFB2B50A6D53F2E" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2A1B20EAA6CAB4F8727F5C8AEC634799" - "OwnerKey" = "8:_C6B512C7D79BCD80A06C18D73FC25C5B" + "MsmKey" = "8:_14B63D94647FEC1EB80012E56D31CB23" + "OwnerKey" = "8:_F375D943F45C6EDEA095E1A0E13E3844" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2A1B20EAA6CAB4F8727F5C8AEC634799" - "OwnerKey" = "8:_2C6C54786204D7389A2F52886D1247E7" + "MsmKey" = "8:_14B63D94647FEC1EB80012E56D31CB23" + "OwnerKey" = "8:_3EF85326C77180EBE67AC38948C9FF50" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2A1B20EAA6CAB4F8727F5C8AEC634799" - "OwnerKey" = "8:_E9AC18A2B6364379CD9E80DC8F7D18B0" + "MsmKey" = "8:_14B63D94647FEC1EB80012E56D31CB23" + "OwnerKey" = "8:_21F43E2552C489EBC4E8C2928F2B3DAC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2A1B20EAA6CAB4F8727F5C8AEC634799" - "OwnerKey" = "8:_D020FC8583F0383216C3124C59845BCC" + "MsmKey" = "8:_1B7FB88E9E354CABA9806D530C8AD3C4" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2A1B20EAA6CAB4F8727F5C8AEC634799" + "MsmKey" = "8:_21F43E2552C489EBC4E8C2928F2B3DAC" "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2C6C54786204D7389A2F52886D1247E7" - "OwnerKey" = "8:_E9AC18A2B6364379CD9E80DC8F7D18B0" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2C6C54786204D7389A2F52886D1247E7" + "MsmKey" = "8:_2E7114C7C22294FA8617D4C8775DD48F" "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2C6C54786204D7389A2F52886D1247E7" - "OwnerKey" = "8:_ECA3D6EC25A490E8BA82DB7A537E766B" + "MsmKey" = "8:_2E7114C7C22294FA8617D4C8775DD48F" + "OwnerKey" = "8:_32543A7FC6BF944844C5A3E38E01D753" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2C6C54786204D7389A2F52886D1247E7" - "OwnerKey" = "8:_2D14B3ECD8B056877F0C1C21E850BF47" + "MsmKey" = "8:_2E7114C7C22294FA8617D4C8775DD48F" + "OwnerKey" = "8:_33BC549CFB01B7A39513538EA0933FAD" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2C6C54786204D7389A2F52886D1247E7" - "OwnerKey" = "8:_63A3A9478E328C9397829A260AA97C7A" + "MsmKey" = "8:_2E7114C7C22294FA8617D4C8775DD48F" + "OwnerKey" = "8:_561A5E2E6670D78E5E2A521CF1EAC936" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2C6C54786204D7389A2F52886D1247E7" - "OwnerKey" = "8:_C6B512C7D79BCD80A06C18D73FC25C5B" + "MsmKey" = "8:_32543A7FC6BF944844C5A3E38E01D753" + "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2D14B3ECD8B056877F0C1C21E850BF47" + "MsmKey" = "8:_33BC549CFB01B7A39513538EA0933FAD" "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" "MsmSig" = "8:_UNDEFINED" } @@ -141,19 +111,13 @@ } "Entry" { - "MsmKey" = "8:_5A529E5E15C5AB6288DFFD17EA8EE2F8" + "MsmKey" = "8:_3EF85326C77180EBE67AC38948C9FF50" "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5A529E5E15C5AB6288DFFD17EA8EE2F8" - "OwnerKey" = "8:_DD06E0394975AAE257597F8C90499ADA" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_63A3A9478E328C9397829A260AA97C7A" + "MsmKey" = "8:_561A5E2E6670D78E5E2A521CF1EAC936" "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" "MsmSig" = "8:_UNDEFINED" } @@ -178,7 +142,7 @@ "Entry" { "MsmKey" = "8:_B88BDE910F50571ACCA029867319DDD3" - "OwnerKey" = "8:_D020FC8583F0383216C3124C59845BCC" + "OwnerKey" = "8:_561A5E2E6670D78E5E2A521CF1EAC936" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -195,67 +159,91 @@ } "Entry" { - "MsmKey" = "8:_C230D813507DDC212093926F033CBB5B" + "MsmKey" = "8:_BBE15CE227B5320B1E36D9F083101E31" "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C6B512C7D79BCD80A06C18D73FC25C5B" + "MsmKey" = "8:_C230D813507DDC212093926F033CBB5B" "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D020FC8583F0383216C3124C59845BCC" + "MsmKey" = "8:_CE68D4FE0CA846F7BFFB2B50A6D53F2E" "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DC07E9C9AE505A72542F0E76B6A19CF9" + "MsmKey" = "8:_DD06E0394975AAE257597F8C90499ADA" "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DC07E9C9AE505A72542F0E76B6A19CF9" - "OwnerKey" = "8:_1187A034A147E8C098F7085A80E8238E" + "MsmKey" = "8:_F0E8767A0DABD4652006FA5B99AC36CF" + "OwnerKey" = "8:_2E7114C7C22294FA8617D4C8775DD48F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DC07E9C9AE505A72542F0E76B6A19CF9" - "OwnerKey" = "8:_EC56A8102A5AFD5352C474C4A6FF5702" + "MsmKey" = "8:_F0E8767A0DABD4652006FA5B99AC36CF" + "OwnerKey" = "8:_32543A7FC6BF944844C5A3E38E01D753" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DC07E9C9AE505A72542F0E76B6A19CF9" - "OwnerKey" = "8:_D020FC8583F0383216C3124C59845BCC" + "MsmKey" = "8:_F0E8767A0DABD4652006FA5B99AC36CF" + "OwnerKey" = "8:_CE68D4FE0CA846F7BFFB2B50A6D53F2E" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DD06E0394975AAE257597F8C90499ADA" - "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" + "MsmKey" = "8:_F0E8767A0DABD4652006FA5B99AC36CF" + "OwnerKey" = "8:_F375D943F45C6EDEA095E1A0E13E3844" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E9AC18A2B6364379CD9E80DC8F7D18B0" - "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" + "MsmKey" = "8:_F0E8767A0DABD4652006FA5B99AC36CF" + "OwnerKey" = "8:_3EF85326C77180EBE67AC38948C9FF50" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_F0E8767A0DABD4652006FA5B99AC36CF" + "OwnerKey" = "8:_21F43E2552C489EBC4E8C2928F2B3DAC" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_F0E8767A0DABD4652006FA5B99AC36CF" + "OwnerKey" = "8:_14B63D94647FEC1EB80012E56D31CB23" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EC56A8102A5AFD5352C474C4A6FF5702" + "MsmKey" = "8:_F0E8767A0DABD4652006FA5B99AC36CF" + "OwnerKey" = "8:_BBE15CE227B5320B1E36D9F083101E31" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_F0E8767A0DABD4652006FA5B99AC36CF" + "OwnerKey" = "8:_561A5E2E6670D78E5E2A521CF1EAC936" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_F0E8767A0DABD4652006FA5B99AC36CF" "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_ECA3D6EC25A490E8BA82DB7A537E766B" + "MsmKey" = "8:_F375D943F45C6EDEA095E1A0E13E3844" "OwnerKey" = "8:_B5FFA5C1F636485B9A752E1E35E7660B" "MsmSig" = "8:_UNDEFINED" } @@ -298,49 +286,49 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_1187A034A147E8C098F7085A80E8238E" + "OwnerKey" = "8:_32543A7FC6BF944844C5A3E38E01D753" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_ECA3D6EC25A490E8BA82DB7A537E766B" + "OwnerKey" = "8:_CE68D4FE0CA846F7BFFB2B50A6D53F2E" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2D14B3ECD8B056877F0C1C21E850BF47" + "OwnerKey" = "8:_F375D943F45C6EDEA095E1A0E13E3844" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_63A3A9478E328C9397829A260AA97C7A" + "OwnerKey" = "8:_3EF85326C77180EBE67AC38948C9FF50" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_C6B512C7D79BCD80A06C18D73FC25C5B" + "OwnerKey" = "8:_21F43E2552C489EBC4E8C2928F2B3DAC" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_E9AC18A2B6364379CD9E80DC8F7D18B0" + "OwnerKey" = "8:_BBE15CE227B5320B1E36D9F083101E31" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2C6C54786204D7389A2F52886D1247E7" + "OwnerKey" = "8:_14B63D94647FEC1EB80012E56D31CB23" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_EC56A8102A5AFD5352C474C4A6FF5702" + "OwnerKey" = "8:_33BC549CFB01B7A39513538EA0933FAD" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -352,7 +340,7 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D020FC8583F0383216C3124C59845BCC" + "OwnerKey" = "8:_561A5E2E6670D78E5E2A521CF1EAC936" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -364,19 +352,13 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DC07E9C9AE505A72542F0E76B6A19CF9" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2A1B20EAA6CAB4F8727F5C8AEC634799" + "OwnerKey" = "8:_2E7114C7C22294FA8617D4C8775DD48F" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_5A529E5E15C5AB6288DFFD17EA8EE2F8" + "OwnerKey" = "8:_F0E8767A0DABD4652006FA5B99AC36CF" "MsmSig" = "8:_UNDEFINED" } } @@ -556,20 +538,20 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_1187A034A147E8C098F7085A80E8238E" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_14B63D94647FEC1EB80012E56D31CB23" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Growl.UDPLegacy, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" + "AssemblyAsmDisplayName" = "8:Growl.DisplayStyle, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" "ScatterAssemblies" { - "_1187A034A147E8C098F7085A80E8238E" + "_14B63D94647FEC1EB80012E56D31CB23" { - "Name" = "8:Growl.UDPLegacy.dll" + "Name" = "8:Growl.DisplayStyle.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Growl.UDPLegacy.dll" + "SourcePath" = "8:Growl.DisplayStyle.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -618,20 +600,20 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2A1B20EAA6CAB4F8727F5C8AEC634799" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_21F43E2552C489EBC4E8C2928F2B3DAC" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Growl.CoreLibrary, Version=2.0.0.0, Culture=neutral, PublicKeyToken=13e59d82e007b064, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Growl.Displays.Smokestack, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" "ScatterAssemblies" { - "_2A1B20EAA6CAB4F8727F5C8AEC634799" + "_21F43E2552C489EBC4E8C2928F2B3DAC" { - "Name" = "8:Growl.CoreLibrary.dll" + "Name" = "8:Growl.Displays.Smokestack.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Growl.CoreLibrary.dll" + "SourcePath" = "8:Growl.Displays.Smokestack.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -649,20 +631,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2C6C54786204D7389A2F52886D1247E7" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2E7114C7C22294FA8617D4C8775DD48F" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Growl.DisplayStyle, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" + "AssemblyAsmDisplayName" = "8:Growl.Connector, Version=2.0.0.0, Culture=neutral, PublicKeyToken=980c2339411be384, processorArchitecture=MSIL" "ScatterAssemblies" { - "_2C6C54786204D7389A2F52886D1247E7" + "_2E7114C7C22294FA8617D4C8775DD48F" { - "Name" = "8:Growl.DisplayStyle.dll" + "Name" = "8:Growl.Connector.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Growl.DisplayStyle.dll" + "SourcePath" = "8:Growl.Connector.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -680,20 +662,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2D14B3ECD8B056877F0C1C21E850BF47" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_32543A7FC6BF944844C5A3E38E01D753" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Growl.Displays.Toast, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" + "AssemblyAsmDisplayName" = "8:Growl.UDPLegacy, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" "ScatterAssemblies" { - "_2D14B3ECD8B056877F0C1C21E850BF47" + "_32543A7FC6BF944844C5A3E38E01D753" { - "Name" = "8:Growl.Displays.Toast.dll" + "Name" = "8:Growl.UDPLegacy.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Growl.Displays.Toast.dll" + "SourcePath" = "8:Growl.UDPLegacy.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -711,20 +693,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_35F4DBFF38C7C3446D8A13D80841EB68" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_33BC549CFB01B7A39513538EA0933FAD" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Mono.Zeroconf.Providers.Bonjour, Version=4.0.0.90, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Growl.Destinations, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_35F4DBFF38C7C3446D8A13D80841EB68" + "_33BC549CFB01B7A39513538EA0933FAD" { - "Name" = "8:Mono.Zeroconf.Providers.Bonjour.dll" + "Name" = "8:Growl.Destinations.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Mono.Zeroconf.Providers.Bonjour.dll" + "SourcePath" = "8:Growl.Destinations.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -742,20 +724,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5A529E5E15C5AB6288DFFD17EA8EE2F8" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_35F4DBFF38C7C3446D8A13D80841EB68" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Mono.Zeroconf.Providers.Bonjour, Version=4.0.0.90, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_5A529E5E15C5AB6288DFFD17EA8EE2F8" + "_35F4DBFF38C7C3446D8A13D80841EB68" { - "Name" = "8:System.Core.dll" + "Name" = "8:Mono.Zeroconf.Providers.Bonjour.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Core.dll" + "SourcePath" = "8:Mono.Zeroconf.Providers.Bonjour.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -769,18 +751,18 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_63A3A9478E328C9397829A260AA97C7A" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3EF85326C77180EBE67AC38948C9FF50" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" "AssemblyAsmDisplayName" = "8:Growl.Displays.Standard, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" "ScatterAssemblies" { - "_63A3A9478E328C9397829A260AA97C7A" + "_3EF85326C77180EBE67AC38948C9FF50" { "Name" = "8:Growl.Displays.Standard.dll" "Attributes" = "3:512" @@ -804,40 +786,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_677C0B52D3384D56AF6EA2B52F722315" - { - "SourcePath" = "8:..\\Growl\\installer.jpg" - "TargetName" = "8:installer.jpg" - "Tag" = "8:" - "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_961033A751BF798F54735FCD5F62FA59" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_561A5E2E6670D78E5E2A521CF1EAC936" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:TrackBar, Version=1.0.2486.37933, Culture=neutral, PublicKeyToken=503bf28f63ad27b4" + "AssemblyAsmDisplayName" = "8:Growl.Daemon, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" "ScatterAssemblies" { - "_961033A751BF798F54735FCD5F62FA59" + "_561A5E2E6670D78E5E2A521CF1EAC936" { - "Name" = "8:TrackBar.dll" + "Name" = "8:Growl.Daemon.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:TrackBar.dll" + "SourcePath" = "8:Growl.Daemon.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -855,21 +817,10 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B88BDE910F50571ACCA029867319DDD3" + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_677C0B52D3384D56AF6EA2B52F722315" { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Mono.Zeroconf, Version=4.0.0.90, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_B88BDE910F50571ACCA029867319DDD3" - { - "Name" = "8:Mono.Zeroconf.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Mono.Zeroconf.dll" - "TargetName" = "8:" + "SourcePath" = "8:..\\Growl\\installer.jpg" + "TargetName" = "8:installer.jpg" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" "Condition" = "8:" @@ -882,24 +833,24 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" + "Exclude" = "11:TRUE" + "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C230D813507DDC212093926F033CBB5B" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_961033A751BF798F54735FCD5F62FA59" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:ICSharpCode.SharpZipLib, Version=0.85.5.452, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:TrackBar, Version=1.0.2486.37933, Culture=neutral, PublicKeyToken=503bf28f63ad27b4" "ScatterAssemblies" { - "_C230D813507DDC212093926F033CBB5B" + "_961033A751BF798F54735FCD5F62FA59" { - "Name" = "8:ICSharpCode.SharpZipLib.dll" + "Name" = "8:TrackBar.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:ICSharpCode.SharpZipLib.dll" + "SourcePath" = "8:TrackBar.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -917,20 +868,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C6B512C7D79BCD80A06C18D73FC25C5B" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B88BDE910F50571ACCA029867319DDD3" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Growl.Displays.Smokestack, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" + "AssemblyAsmDisplayName" = "8:Mono.Zeroconf, Version=4.0.0.90, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_C6B512C7D79BCD80A06C18D73FC25C5B" + "_B88BDE910F50571ACCA029867319DDD3" { - "Name" = "8:Growl.Displays.Smokestack.dll" + "Name" = "8:Mono.Zeroconf.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Growl.Displays.Smokestack.dll" + "SourcePath" = "8:Mono.Zeroconf.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -948,20 +899,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D020FC8583F0383216C3124C59845BCC" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BBE15CE227B5320B1E36D9F083101E31" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Growl.Daemon, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" + "AssemblyAsmDisplayName" = "8:Growl.Displays.Plain, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" "ScatterAssemblies" { - "_D020FC8583F0383216C3124C59845BCC" + "_BBE15CE227B5320B1E36D9F083101E31" { - "Name" = "8:Growl.Daemon.dll" + "Name" = "8:Growl.Displays.Plain.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Growl.Daemon.dll" + "SourcePath" = "8:Growl.Displays.Plain.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -979,20 +930,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DC07E9C9AE505A72542F0E76B6A19CF9" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C230D813507DDC212093926F033CBB5B" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Growl.Connector, Version=2.0.0.0, Culture=neutral, PublicKeyToken=980c2339411be384, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:ICSharpCode.SharpZipLib, Version=0.85.5.452, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL" "ScatterAssemblies" { - "_DC07E9C9AE505A72542F0E76B6A19CF9" + "_C230D813507DDC212093926F033CBB5B" { - "Name" = "8:Growl.Connector.dll" + "Name" = "8:ICSharpCode.SharpZipLib.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Growl.Connector.dll" + "SourcePath" = "8:ICSharpCode.SharpZipLib.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -1010,20 +961,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DD06E0394975AAE257597F8C90499ADA" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CE68D4FE0CA846F7BFFB2B50A6D53F2E" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Growl.Displays.Visor, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" "ScatterAssemblies" { - "_DD06E0394975AAE257597F8C90499ADA" + "_CE68D4FE0CA846F7BFFB2B50A6D53F2E" { - "Name" = "8:Newtonsoft.Json.dll" + "Name" = "8:Growl.Displays.Visor.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Newtonsoft.Json.dll" + "SourcePath" = "8:Growl.Displays.Visor.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -1041,20 +992,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E9AC18A2B6364379CD9E80DC8F7D18B0" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DD06E0394975AAE257597F8C90499ADA" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Growl.Displays.Plain, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_E9AC18A2B6364379CD9E80DC8F7D18B0" + "_DD06E0394975AAE257597F8C90499ADA" { - "Name" = "8:Growl.Displays.Plain.dll" + "Name" = "8:Newtonsoft.Json.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Growl.Displays.Plain.dll" + "SourcePath" = "8:Newtonsoft.Json.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -1072,20 +1023,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EC56A8102A5AFD5352C474C4A6FF5702" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F0E8767A0DABD4652006FA5B99AC36CF" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Growl.Destinations, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Growl.CoreLibrary, Version=2.0.0.0, Culture=neutral, PublicKeyToken=13e59d82e007b064, processorArchitecture=MSIL" "ScatterAssemblies" { - "_EC56A8102A5AFD5352C474C4A6FF5702" + "_F0E8767A0DABD4652006FA5B99AC36CF" { - "Name" = "8:Growl.Destinations.dll" + "Name" = "8:Growl.CoreLibrary.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Growl.Destinations.dll" + "SourcePath" = "8:Growl.CoreLibrary.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -1103,20 +1054,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_ECA3D6EC25A490E8BA82DB7A537E766B" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F375D943F45C6EDEA095E1A0E13E3844" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Growl.Displays.Visor, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" + "AssemblyAsmDisplayName" = "8:Growl.Displays.Toast, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86" "ScatterAssemblies" { - "_ECA3D6EC25A490E8BA82DB7A537E766B" + "_F375D943F45C6EDEA095E1A0E13E3844" { - "Name" = "8:Growl.Displays.Visor.dll" + "Name" = "8:Growl.Displays.Toast.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Growl.Displays.Visor.dll" + "SourcePath" = "8:Growl.Displays.Toast.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403" @@ -1207,13 +1158,14 @@ "MsiBootstrapper" { "LangId" = "3:1033" + "RequiresElevation" = "11:FALSE" } "Product" { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:Growl for Windows" "ProductCode" = "8:{2C911352-0BCE-420B-935E-93A24FDE9D53}" - "PackageCode" = "8:{CED47BE5-B02F-449B-B2AB-492BD1232A52}" + "PackageCode" = "8:{8AD4D531-BEDF-4E56-BEDA-C57EEF96CD32}" "UpgradeCode" = "8:{54381489-14E3-47B6-8B92-DEB266DCF6E9}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" @@ -1794,7 +1746,7 @@ } "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B5FFA5C1F636485B9A752E1E35E7660B" { - "SourcePath" = "8:..\\Growl\\obj\\Release\\Growl.exe" + "SourcePath" = "8:..\\Growl\\obj\\Debug\\Growl.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F7B8F22C7E5A4489906A41AC00F49403"