[72223] contrib/Pallet

juanger at macports.org juanger at macports.org
Thu Oct 7 14:12:41 PDT 2010


Revision: 72223
          http://trac.macports.org/changeset/72223
Author:   juanger at macports.org
Date:     2010-10-07 14:12:38 -0700 (Thu, 07 Oct 2010)
Log Message:
-----------
Merging tzikis's work during gsoc-10 to Pallet

Modified Paths:
--------------
    contrib/Pallet/ActivityController.m
    contrib/Pallet/English.lproj/MainMenu.xib
    contrib/Pallet/MPActionLauncher.h
    contrib/Pallet/MPActionLauncher.m
    contrib/Pallet/MPActionsController.h
    contrib/Pallet/MPActionsController.m
    contrib/Pallet/MPPortTableView.h
    contrib/Pallet/MPPortTableView.m
    contrib/Pallet/Pallet.xcodeproj/project.pbxproj
    contrib/Pallet/PortsTableController.h
    contrib/Pallet/PortsTableController.m
    contrib/Pallet/TB_Cancel.icns
    contrib/Pallet/TB_Install.icns
    contrib/Pallet/TB_Selfupdate.icns
    contrib/Pallet/TB_Sync.icns
    contrib/Pallet/TB_Uninstall.icns
    contrib/Pallet/TB_Upgrade.icns

Added Paths:
-----------
    contrib/Pallet/Growl Registration Ticket.growlRegDict
    contrib/Pallet/Growl-1.2.1-Framework/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Growl
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Headers
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Resources
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Growl
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/Growl.h
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlDefines.h
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Resources/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Resources/Info.plist
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/Current
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Info.plist
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Resources/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Resources/DWARF/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Resources/DWARF/Growl
    contrib/Pallet/Growl-1.2.1-Framework/License.txt
    contrib/Pallet/GrowlNotifications.h
    contrib/Pallet/MPCheckbox.h
    contrib/Pallet/MPCheckbox.m
    contrib/Pallet/MPQueueTableView.h
    contrib/Pallet/MPQueueTableView.m
    contrib/Pallet/TB_Cancel-old.icns
    contrib/Pallet/TB_Info.icns
    contrib/Pallet/TB_Install-old.icns
    contrib/Pallet/TB_InstallWithVar.icns
    contrib/Pallet/TB_Selfupdate-old.icns
    contrib/Pallet/TB_Sync-old.icns
    contrib/Pallet/TB_Uninstall-old.icns
    contrib/Pallet/TB_Upgrade-old.icns

Removed Paths:
-------------
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Growl
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Headers
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Resources
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Growl
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/Growl.h
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlDefines.h
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Resources/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Resources/Info.plist
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/Current
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Info.plist
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Resources/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Resources/DWARF/
    contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Resources/DWARF/Growl
    contrib/Pallet/Growl-1.2.1-Framework/License.txt

Property Changed:
----------------
    contrib/Pallet/


Property changes on: contrib/Pallet
___________________________________________________________________
Added: svn:mergeinfo
   + /branches/gsoc10-gui/Pallet:67322-72222

Modified: contrib/Pallet/ActivityController.m
===================================================================
--- contrib/Pallet/ActivityController.m	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/ActivityController.m	2010-10-07 21:12:38 UTC (rev 72223)
@@ -8,6 +8,7 @@
 
 #import "ActivityController.h"
 
+BOOL errorReceived;
 
 @implementation ActivityController
 
@@ -71,6 +72,7 @@
     NSString *msg = [[notification userInfo] objectForKey:MPMESSAGE];
     NSLog(@"GOT ERROR NOTIFICATION: %@", msg);
     //TODO: Display an alert
+	errorReceived=YES;
 }
 
 @end

Modified: contrib/Pallet/English.lproj/MainMenu.xib
===================================================================
--- contrib/Pallet/English.lproj/MainMenu.xib	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/English.lproj/MainMenu.xib	2010-10-07 21:12:38 UTC (rev 72223)
@@ -1,23 +1,29 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
 	<data>
 		<int key="IBDocument.SystemTarget">1050</int>
-		<string key="IBDocument.SystemVersion">9L30</string>
-		<string key="IBDocument.InterfaceBuilderVersion">677</string>
-		<string key="IBDocument.AppKitVersion">949.54</string>
-		<string key="IBDocument.HIToolboxVersion">353.00</string>
+		<string key="IBDocument.SystemVersion">10F569</string>
+		<string key="IBDocument.InterfaceBuilderVersion">788</string>
+		<string key="IBDocument.AppKitVersion">1038.29</string>
+		<string key="IBDocument.HIToolboxVersion">461.00</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
+			<string key="NS.object.0">788</string>
+		</object>
 		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
 			<bool key="EncodedWithXMLCoder">YES</bool>
-			<integer value="372"/>
+			<integer value="658"/>
+			<integer value="936"/>
+			<integer value="840"/>
+			<integer value="371"/>
 		</object>
 		<object class="NSArray" key="IBDocument.PluginDependencies">
 			<bool key="EncodedWithXMLCoder">YES</bool>
-			<string>com.apple.InterfaceBuilderKit</string>
 			<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 		</object>
 		<object class="NSMutableDictionary" key="IBDocument.Metadata">
 			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSArray" key="dict.sortedKeys">
+			<object class="NSArray" key="dict.sortedKeys" id="0">
 				<bool key="EncodedWithXMLCoder">YES</bool>
 			</object>
 			<object class="NSMutableArray" key="dict.values">
@@ -55,12 +61,12 @@
 						</object>
 						<string key="NSAction">submenuAction:</string>
 						<object class="NSMenu" key="NSSubmenu" id="110575045">
-							<string key="NSTitle">NewApplication</string>
+							<string key="NSTitle">Pallet</string>
 							<object class="NSMutableArray" key="NSMenuItems">
 								<bool key="EncodedWithXMLCoder">YES</bool>
 								<object class="NSMenuItem" id="238522557">
 									<reference key="NSMenu" ref="110575045"/>
-									<string key="NSTitle">About NewApplication</string>
+									<string key="NSTitle">About Pallet</string>
 									<string key="NSKeyEquiv"/>
 									<int key="NSMnemonicLoc">2147483647</int>
 									<reference key="NSOnImage" ref="35465992"/>
@@ -79,7 +85,7 @@
 								</object>
 								<object class="NSMenuItem" id="609285721">
 									<reference key="NSMenu" ref="110575045"/>
-									<string type="base64-UTF8" key="NSTitle">UHJlZmVyZW5jZXPigKY</string>
+									<string key="NSTitle">Preferences…</string>
 									<string key="NSKeyEquiv">,</string>
 									<int key="NSKeyEquivModMask">1048576</int>
 									<int key="NSMnemonicLoc">2147483647</int>
@@ -127,7 +133,7 @@
 								</object>
 								<object class="NSMenuItem" id="755159360">
 									<reference key="NSMenu" ref="110575045"/>
-									<string key="NSTitle">Hide NewApplication</string>
+									<string key="NSTitle">Hide Pallet</string>
 									<string key="NSKeyEquiv">h</string>
 									<int key="NSKeyEquivModMask">1048576</int>
 									<int key="NSMnemonicLoc">2147483647</int>
@@ -165,7 +171,7 @@
 								</object>
 								<object class="NSMenuItem" id="632727374">
 									<reference key="NSMenu" ref="110575045"/>
-									<string key="NSTitle">Quit NewApplication</string>
+									<string key="NSTitle">Quit Pallet</string>
 									<string key="NSKeyEquiv">q</string>
 									<int key="NSKeyEquivModMask">1048576</int>
 									<int key="NSMnemonicLoc">2147483647</int>
@@ -200,7 +206,7 @@
 								</object>
 								<object class="NSMenuItem" id="722745758">
 									<reference key="NSMenu" ref="720053764"/>
-									<string type="base64-UTF8" key="NSTitle">T3BlbuKApg</string>
+									<string key="NSTitle">Open…</string>
 									<string key="NSKeyEquiv">o</string>
 									<int key="NSKeyEquivModMask">1048576</int>
 									<int key="NSMnemonicLoc">2147483647</int>
@@ -264,7 +270,7 @@
 								</object>
 								<object class="NSMenuItem" id="117038363">
 									<reference key="NSMenu" ref="720053764"/>
-									<string type="base64-UTF8" key="NSTitle">U2F2ZSBBc+KApg</string>
+									<string key="NSTitle">Save As…</string>
 									<string key="NSKeyEquiv">S</string>
 									<int key="NSKeyEquivModMask">1179648</int>
 									<int key="NSMnemonicLoc">2147483647</int>
@@ -302,7 +308,7 @@
 								</object>
 								<object class="NSMenuItem" id="49223823">
 									<reference key="NSMenu" ref="720053764"/>
-									<string type="base64-UTF8" key="NSTitle">UHJpbnTigKY</string>
+									<string key="NSTitle">Print…</string>
 									<string key="NSKeyEquiv">p</string>
 									<int key="NSKeyEquivModMask">1048576</int>
 									<int key="NSMnemonicLoc">2147483647</int>
@@ -425,7 +431,7 @@
 											<bool key="EncodedWithXMLCoder">YES</bool>
 											<object class="NSMenuItem" id="447796847">
 												<reference key="NSMenu" ref="963351320"/>
-												<string type="base64-UTF8" key="NSTitle">RmluZOKApg</string>
+												<string key="NSTitle">Find…</string>
 												<string key="NSKeyEquiv">f</string>
 												<int key="NSKeyEquivModMask">1048576</int>
 												<int key="NSMnemonicLoc">2147483647</int>
@@ -490,7 +496,7 @@
 											<bool key="EncodedWithXMLCoder">YES</bool>
 											<object class="NSMenuItem" id="679648819">
 												<reference key="NSMenu" ref="769623530"/>
-												<string type="base64-UTF8" key="NSTitle">U2hvdyBTcGVsbGluZ+KApg</string>
+												<string key="NSTitle">Show Spelling…</string>
 												<string key="NSKeyEquiv">:</string>
 												<int key="NSKeyEquivModMask">1048576</int>
 												<int key="NSMnemonicLoc">2147483647</int>
@@ -610,6 +616,133 @@
 							</object>
 						</object>
 					</object>
+					<object class="NSMenuItem" id="417668003">
+						<reference key="NSMenu" ref="649796088"/>
+						<string key="NSTitle">MacPorts</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<reference key="NSOnImage" ref="35465992"/>
+						<reference key="NSMixedImage" ref="566991132"/>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="329310906">
+							<string key="NSTitle">MacPorts</string>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="543873840">
+									<reference key="NSMenu" ref="329310906"/>
+									<string key="NSTitle">Install</string>
+									<string key="NSKeyEquiv">i</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="566991132"/>
+								</object>
+								<object class="NSMenuItem" id="174594480">
+									<reference key="NSMenu" ref="329310906"/>
+									<bool key="NSIsAlternate">YES</bool>
+									<string key="NSTitle">Install Now</string>
+									<string key="NSKeyEquiv">i</string>
+									<int key="NSKeyEquivModMask">1572864</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="566991132"/>
+								</object>
+								<object class="NSMenuItem" id="877751138">
+									<reference key="NSMenu" ref="329310906"/>
+									<string key="NSTitle">Uninstall</string>
+									<string key="NSKeyEquiv">u</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="566991132"/>
+								</object>
+								<object class="NSMenuItem" id="393937824">
+									<reference key="NSMenu" ref="329310906"/>
+									<bool key="NSIsAlternate">YES</bool>
+									<string key="NSTitle">Uninstall Now</string>
+									<string key="NSKeyEquiv">u</string>
+									<int key="NSKeyEquivModMask">1572864</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="566991132"/>
+								</object>
+								<object class="NSMenuItem" id="680840106">
+									<reference key="NSMenu" ref="329310906"/>
+									<string key="NSTitle">Upgrade</string>
+									<string key="NSKeyEquiv">U</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="566991132"/>
+								</object>
+								<object class="NSMenuItem" id="379934832">
+									<reference key="NSMenu" ref="329310906"/>
+									<bool key="NSIsAlternate">YES</bool>
+									<string key="NSTitle">Upgrade Now</string>
+									<string key="NSKeyEquiv">U</string>
+									<int key="NSKeyEquivModMask">1572864</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="566991132"/>
+								</object>
+								<object class="NSMenuItem" id="478357944">
+									<reference key="NSMenu" ref="329310906"/>
+									<string key="NSTitle">Sync</string>
+									<string key="NSKeyEquiv">y</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="566991132"/>
+								</object>
+								<object class="NSMenuItem" id="826438341">
+									<reference key="NSMenu" ref="329310906"/>
+									<bool key="NSIsAlternate">YES</bool>
+									<string key="NSTitle">Sync Now</string>
+									<string key="NSKeyEquiv">y</string>
+									<int key="NSKeyEquivModMask">1572864</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="566991132"/>
+								</object>
+								<object class="NSMenuItem" id="856307295">
+									<reference key="NSMenu" ref="329310906"/>
+									<string key="NSTitle">SelfUpdate</string>
+									<string key="NSKeyEquiv">Y</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="566991132"/>
+								</object>
+								<object class="NSMenuItem" id="602577672">
+									<reference key="NSMenu" ref="329310906"/>
+									<bool key="NSIsAlternate">YES</bool>
+									<string key="NSTitle">SelfUpdate Now</string>
+									<string key="NSKeyEquiv">Y</string>
+									<int key="NSKeyEquivModMask">1572864</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="566991132"/>
+								</object>
+								<object class="NSMenuItem" id="254116942">
+									<reference key="NSMenu" ref="329310906"/>
+									<string key="NSTitle">Cancel</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="566991132"/>
+								</object>
+								<object class="NSMenuItem" id="598409621">
+									<reference key="NSMenu" ref="329310906"/>
+									<string key="NSTitle">Toggle Drawer</string>
+									<string key="NSKeyEquiv">d</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="566991132"/>
+								</object>
+							</object>
+						</object>
+					</object>
 					<object class="NSMenuItem" id="626404410">
 						<reference key="NSMenu" ref="649796088"/>
 						<string key="NSTitle">Format</string>
@@ -668,7 +801,7 @@
 								</object>
 								<object class="NSMenuItem" id="237841660">
 									<reference key="NSMenu" ref="466310130"/>
-									<string type="base64-UTF8" key="NSTitle">Q3VzdG9taXplIFRvb2xiYXLigKY</string>
+									<string key="NSTitle">Customize Toolbar…</string>
 									<string key="NSKeyEquiv"/>
 									<int key="NSKeyEquivModMask">1048576</int>
 									<int key="NSMnemonicLoc">2147483647</int>
@@ -748,7 +881,7 @@
 								<bool key="EncodedWithXMLCoder">YES</bool>
 								<object class="NSMenuItem" id="238773614">
 									<reference key="NSMenu" ref="374024848"/>
-									<string key="NSTitle">NewApplication Help</string>
+									<string key="NSTitle">Pallet Help</string>
 									<string key="NSKeyEquiv">?</string>
 									<int key="NSKeyEquivModMask">1048576</int>
 									<int key="NSMnemonicLoc">2147483647</int>
@@ -764,7 +897,7 @@
 			<object class="NSWindowTemplate" id="972006081">
 				<int key="NSWindowStyleMask">271</int>
 				<int key="NSWindowBacking">2</int>
-				<string key="NSWindowRect">{{335, 301}, {773, 449}}</string>
+				<string key="NSWindowRect">{{335, 298}, {773, 452}}</string>
 				<int key="NSWTFlags">1946157056</int>
 				<string key="NSWindowTitle">Pallet</string>
 				<string key="NSWindowClass">NSWindow</string>
@@ -781,14 +914,15 @@
 					<int key="NSToolbarSizeMode">1</int>
 					<object class="NSMutableDictionary" key="NSToolbarIBIdentifiedItems">
 						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSMutableArray" key="dict.sortedKeys">
+						<object class="NSArray" key="dict.sortedKeys">
 							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>07ADFD2C-C129-480B-9285-95617FCE15BD</string>
 							<string>0A6EF369-BA7B-4EB1-A4D4-3D4208A23DBE</string>
 							<string>214D3E07-1C3A-46C8-8AC1-521489831BFC</string>
 							<string>2A4123B2-E41C-4CFF-B486-8B58C858F21C</string>
 							<string>325B7D9A-C8C9-4EC3-9D84-92D792696EBE</string>
-							<string>38B3CC5A-730B-4ECF-B057-8254756EF49D</string>
 							<string>586197FD-62CF-4D3E-AE67-9A57601D5B27</string>
+							<string>68316112-F799-4B15-89FA-B8B991910C2D</string>
 							<string>CBF865FC-FB44-4DF0-B21B-CC2D17E9A169</string>
 							<string>NSToolbarFlexibleSpaceItem</string>
 							<string>NSToolbarSeparatorItem</string>
@@ -796,6 +930,28 @@
 						</object>
 						<object class="NSMutableArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="NSToolbarItem" id="284139052">
+								<object class="NSMutableString" key="NSToolbarItemIdentifier">
+									<characters key="NS.bytes">07ADFD2C-C129-480B-9285-95617FCE15BD</characters>
+								</object>
+								<string key="NSToolbarItemLabel">Info</string>
+								<string key="NSToolbarItemPaletteLabel">Info</string>
+								<string key="NSToolbarItemToolTip"/>
+								<nil key="NSToolbarItemView"/>
+								<object class="NSCustomResource" key="NSToolbarItemImage">
+									<string key="NSClassName">NSImage</string>
+									<string key="NSResourceName">TB_Info</string>
+								</object>
+								<nil key="NSToolbarItemTarget"/>
+								<nil key="NSToolbarItemAction"/>
+								<string key="NSToolbarItemMinSize">{0, 0}</string>
+								<string key="NSToolbarItemMaxSize">{0, 0}</string>
+								<bool key="NSToolbarItemEnabled">YES</bool>
+								<bool key="NSToolbarItemAutovalidates">YES</bool>
+								<int key="NSToolbarItemTag">-1</int>
+								<bool key="NSToolbarIsUserRemovable">YES</bool>
+								<int key="NSToolbarItemVisibilityPriority">0</int>
+							</object>
 							<object class="NSToolbarItem" id="433945624">
 								<object class="NSMutableString" key="NSToolbarItemIdentifier">
 									<characters key="NS.bytes">0A6EF369-BA7B-4EB1-A4D4-3D4208A23DBE</characters>
@@ -880,7 +1036,7 @@
 										<string key="NSContents"/>
 										<object class="NSFont" key="NSSupport" id="782475540">
 											<string key="NSName">LucidaGrande</string>
-											<double key="NSSize">1.300000e+01</double>
+											<double key="NSSize">13</double>
 											<int key="NSfFlags">1044</int>
 										</object>
 										<reference key="NSControlView" ref="848482443"/>
@@ -908,9 +1064,9 @@
 											<int key="NSCellFlags">130560</int>
 											<int key="NSCellFlags2">0</int>
 											<string key="NSContents">search</string>
+											<reference key="NSControlView" ref="848482443"/>
 											<string key="NSAction">_searchFieldSearch:</string>
 											<reference key="NSTarget" ref="618193001"/>
-											<reference key="NSControlView" ref="848482443"/>
 											<int key="NSButtonFlags">138690815</int>
 											<int key="NSButtonFlags2">0</int>
 											<string key="NSKeyEquivalent"/>
@@ -925,7 +1081,7 @@
 												<bool key="EncodedWithXMLCoder">YES</bool>
 												<object class="NSMutableDictionary">
 													<bool key="EncodedWithXMLCoder">YES</bool>
-													<object class="NSMutableArray" key="dict.sortedKeys">
+													<object class="NSArray" key="dict.sortedKeys">
 														<bool key="EncodedWithXMLCoder">YES</bool>
 														<string>AXDescription</string>
 														<string>NSAccessibilityEncodedAttributesValueType</string>
@@ -933,13 +1089,13 @@
 													<object class="NSMutableArray" key="dict.values">
 														<bool key="EncodedWithXMLCoder">YES</bool>
 														<string>cancel</string>
-														<integer value="1" id="9"/>
+														<integer value="1"/>
 													</object>
 												</object>
 											</object>
+											<reference key="NSControlView" ref="848482443"/>
 											<string key="NSAction">_searchFieldCancel:</string>
 											<reference key="NSTarget" ref="618193001"/>
-											<reference key="NSControlView" ref="848482443"/>
 											<int key="NSButtonFlags">138690815</int>
 											<int key="NSButtonFlags2">0</int>
 											<string key="NSKeyEquivalent"/>
@@ -960,17 +1116,17 @@
 								<bool key="NSToolbarIsUserRemovable">YES</bool>
 								<int key="NSToolbarItemVisibilityPriority">0</int>
 							</object>
-							<object class="NSToolbarItem" id="650498606">
+							<object class="NSToolbarItem" id="244855577">
 								<object class="NSMutableString" key="NSToolbarItemIdentifier">
-									<characters key="NS.bytes">38B3CC5A-730B-4ECF-B057-8254756EF49D</characters>
+									<characters key="NS.bytes">586197FD-62CF-4D3E-AE67-9A57601D5B27</characters>
 								</object>
-								<string key="NSToolbarItemLabel">Install</string>
-								<string key="NSToolbarItemPaletteLabel">Install</string>
+								<string key="NSToolbarItemLabel">Uninstall</string>
+								<string key="NSToolbarItemPaletteLabel">Uninstall</string>
 								<string key="NSToolbarItemToolTip"/>
 								<nil key="NSToolbarItemView"/>
 								<object class="NSCustomResource" key="NSToolbarItemImage">
 									<string key="NSClassName">NSImage</string>
-									<string key="NSResourceName">TB_Install</string>
+									<string key="NSResourceName">TB_Uninstall</string>
 								</object>
 								<nil key="NSToolbarItemTarget"/>
 								<nil key="NSToolbarItemAction"/>
@@ -982,22 +1138,89 @@
 								<bool key="NSToolbarIsUserRemovable">YES</bool>
 								<int key="NSToolbarItemVisibilityPriority">0</int>
 							</object>
-							<object class="NSToolbarItem" id="244855577">
+							<object class="NSToolbarItem" id="725383560">
 								<object class="NSMutableString" key="NSToolbarItemIdentifier">
-									<characters key="NS.bytes">586197FD-62CF-4D3E-AE67-9A57601D5B27</characters>
+									<characters key="NS.bytes">68316112-F799-4B15-89FA-B8B991910C2D</characters>
 								</object>
-								<string key="NSToolbarItemLabel">Uninstall</string>
-								<string key="NSToolbarItemPaletteLabel">Uninstall</string>
-								<string key="NSToolbarItemToolTip"/>
-								<nil key="NSToolbarItemView"/>
-								<object class="NSCustomResource" key="NSToolbarItemImage">
-									<string key="NSClassName">NSImage</string>
-									<string key="NSResourceName">TB_Uninstall</string>
+								<string key="NSToolbarItemLabel">Install</string>
+								<string key="NSToolbarItemPaletteLabel">Install</string>
+								<nil key="NSToolbarItemToolTip"/>
+								<object class="NSPopUpButton" key="NSToolbarItemView" id="1026904284">
+									<nil key="NSNextResponder"/>
+									<int key="NSvFlags">268</int>
+									<string key="NSFrame">{{0, 14}, {60, 60}}</string>
+									<int key="NSTag">-1</int>
+									<bool key="NSEnabled">YES</bool>
+									<object class="NSPopUpButtonCell" key="NSCell" id="8730458">
+										<int key="NSCellFlags">-2076049856</int>
+										<int key="NSCellFlags2">67110912</int>
+										<reference key="NSSupport" ref="782475540"/>
+										<reference key="NSControlView" ref="1026904284"/>
+										<int key="NSButtonFlags">-2046279425</int>
+										<int key="NSButtonFlags2">70</int>
+										<string key="NSAlternateContents"/>
+										<string key="NSKeyEquivalent"/>
+										<int key="NSPeriodicDelay">400</int>
+										<int key="NSPeriodicInterval">75</int>
+										<object class="NSMenuItem" key="NSMenuItem" id="678275902">
+											<reference key="NSMenu" ref="197671942"/>
+											<bool key="NSIsHidden">YES</bool>
+											<string key="NSTitle"/>
+											<string key="NSKeyEquiv"/>
+											<int key="NSKeyEquivModMask">1048576</int>
+											<int key="NSMnemonicLoc">2147483647</int>
+											<int key="NSState">1</int>
+											<object class="NSCustomResource" key="NSImage" id="910929705">
+												<string key="NSClassName">NSImage</string>
+												<string key="NSResourceName">TB_Install</string>
+											</object>
+											<reference key="NSOnImage" ref="35465992"/>
+											<reference key="NSMixedImage" ref="566991132"/>
+											<string key="NSAction">_popUpItemAction:</string>
+											<reference key="NSTarget" ref="8730458"/>
+										</object>
+										<bool key="NSMenuItemRespectAlignment">YES</bool>
+										<object class="NSMenu" key="NSMenu" id="197671942">
+											<string key="NSTitle">OtherViews</string>
+											<object class="NSMutableArray" key="NSMenuItems">
+												<bool key="EncodedWithXMLCoder">YES</bool>
+												<reference ref="678275902"/>
+												<object class="NSMenuItem" id="235232064">
+													<reference key="NSMenu" ref="197671942"/>
+													<string key="NSTitle">Install</string>
+													<string key="NSKeyEquiv"/>
+													<int key="NSKeyEquivModMask">1048576</int>
+													<int key="NSMnemonicLoc">2147483647</int>
+													<reference key="NSOnImage" ref="35465992"/>
+													<reference key="NSMixedImage" ref="566991132"/>
+													<string key="NSAction">_popUpItemAction:</string>
+													<reference key="NSTarget" ref="8730458"/>
+												</object>
+												<object class="NSMenuItem" id="385368191">
+													<reference key="NSMenu" ref="197671942"/>
+													<string key="NSTitle">Install with Variants</string>
+													<string key="NSKeyEquiv"/>
+													<int key="NSKeyEquivModMask">1048576</int>
+													<int key="NSMnemonicLoc">2147483647</int>
+													<reference key="NSOnImage" ref="35465992"/>
+													<reference key="NSMixedImage" ref="566991132"/>
+													<string key="NSAction">_popUpItemAction:</string>
+													<reference key="NSTarget" ref="8730458"/>
+												</object>
+											</object>
+											<reference key="NSMenuFont" ref="782475540"/>
+										</object>
+										<bool key="NSPullDown">YES</bool>
+										<int key="NSPreferredEdge">1</int>
+										<bool key="NSUsesItemFromMenu">YES</bool>
+										<bool key="NSAltersState">YES</bool>
+									</object>
 								</object>
+								<reference key="NSToolbarItemImage" ref="910929705"/>
 								<nil key="NSToolbarItemTarget"/>
 								<nil key="NSToolbarItemAction"/>
-								<string key="NSToolbarItemMinSize">{0, 0}</string>
-								<string key="NSToolbarItemMaxSize">{0, 0}</string>
+								<string key="NSToolbarItemMinSize">{32, 32}</string>
+								<string key="NSToolbarItemMaxSize">{64, 64}</string>
 								<bool key="NSToolbarItemEnabled">YES</bool>
 								<bool key="NSToolbarItemAutovalidates">YES</bool>
 								<int key="NSToolbarItemTag">-1</int>
@@ -1111,26 +1334,29 @@
 					</object>
 					<object class="NSArray" key="NSToolbarIBAllowedItems">
 						<bool key="EncodedWithXMLCoder">YES</bool>
-						<reference ref="650498606"/>
+						<reference ref="725383560"/>
 						<reference ref="244855577"/>
 						<reference ref="815358429"/>
+						<reference ref="284139052"/>
 						<reference ref="341138360"/>
 						<reference ref="433945624"/>
 						<reference ref="1018787369"/>
-						<reference ref="869476631"/>
 						<reference ref="49194268"/>
 						<reference ref="618891101"/>
 						<reference ref="651362317"/>
+						<reference ref="869476631"/>
 					</object>
 					<object class="NSMutableArray" key="NSToolbarIBDefaultItems">
 						<bool key="EncodedWithXMLCoder">YES</bool>
-						<reference ref="650498606"/>
+						<reference ref="725383560"/>
 						<reference ref="244855577"/>
 						<reference ref="815358429"/>
 						<reference ref="341138360"/>
 						<reference ref="433945624"/>
 						<reference ref="1018787369"/>
 						<reference ref="651362317"/>
+						<reference ref="341138360"/>
+						<reference ref="284139052"/>
 						<reference ref="49194268"/>
 						<reference ref="618891101"/>
 					</object>
@@ -1138,7 +1364,7 @@
 						<bool key="EncodedWithXMLCoder">YES</bool>
 					</object>
 				</object>
-				<string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
+				<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
 				<object class="NSView" key="NSWindowView" id="439893737">
 					<reference key="NSNextResponder"/>
 					<int key="NSvFlags">256</int>
@@ -1169,17 +1395,17 @@
 															<int key="NSvFlags">274</int>
 															<object class="NSMutableArray" key="NSSubviews">
 																<bool key="EncodedWithXMLCoder">YES</bool>
-																<object class="NSRuleEditorViewSliceRow" id="277972727">
+																<object class="NSRuleEditorViewSliceRow" id="380709887">
 																	<reference key="NSNextResponder" ref="887125716"/>
 																	<int key="NSvFlags">290</int>
 																	<object class="NSMutableArray" key="NSSubviews">
 																		<bool key="EncodedWithXMLCoder">YES</bool>
-																		<object class="NSButton" id="339632689">
-																			<reference key="NSNextResponder" ref="277972727"/>
+																		<object class="NSButton" id="667464776">
+																			<reference key="NSNextResponder" ref="380709887"/>
 																			<int key="NSvFlags">257</int>
 																			<string key="NSFrame">{{741, 4}, {18, 18}}</string>
-																			<reference key="NSSuperview" ref="277972727"/>
-																			<reference key="NSNextKeyView" ref="602619092"/>
+																			<reference key="NSSuperview" ref="380709887"/>
+																			<reference key="NSNextKeyView" ref="937158238"/>
 																			<int key="NSTag">-1</int>
 																			<bool key="NSEnabled">YES</bool>
 																			<object class="NSRuleEditorButtonCell" key="NSCell">
@@ -1188,17 +1414,33 @@
 																				<string key="NSContents">+</string>
 																				<object class="NSFont" key="NSSupport" id="29">
 																					<string key="NSName">LucidaGrande-Bold</string>
-																					<double key="NSSize">1.200000e+01</double>
+																					<double key="NSSize">12</double>
 																					<int key="NSfFlags">16</int>
 																				</object>
+																				<object class="NSMutableArray" key="NSAccessibilityOverriddenAttributes">
+																					<bool key="EncodedWithXMLCoder">YES</bool>
+																					<object class="NSMutableDictionary">
+																						<bool key="EncodedWithXMLCoder">YES</bool>
+																						<object class="NSArray" key="dict.sortedKeys">
+																							<bool key="EncodedWithXMLCoder">YES</bool>
+																							<string>AXDescription</string>
+																							<string>NSAccessibilityEncodedAttributesValueType</string>
+																						</object>
+																						<object class="NSMutableArray" key="dict.values">
+																							<bool key="EncodedWithXMLCoder">YES</bool>
+																							<string>add</string>
+																							<integer value="1"/>
+																						</object>
+																					</object>
+																				</object>
+																				<reference key="NSControlView" ref="667464776"/>
 																				<string key="NSAction">_addOption:</string>
-																				<reference key="NSTarget" ref="277972727"/>
-																				<reference key="NSControlView" ref="339632689"/>
+																				<reference key="NSTarget" ref="380709887"/>
 																				<int key="NSButtonFlags">-2038284033</int>
 																				<int key="NSButtonFlags2">36</int>
 																				<object class="NSFont" key="NSAlternateImage" id="28">
 																					<string key="NSName">LucidaGrande</string>
-																					<double key="NSSize">1.200000e+01</double>
+																					<double key="NSSize">12</double>
 																					<int key="NSfFlags">4883</int>
 																				</object>
 																				<string key="NSKeyEquivalent"/>
@@ -1206,12 +1448,12 @@
 																				<int key="NSPeriodicInterval">75</int>
 																			</object>
 																		</object>
-																		<object class="NSButton" id="645964487">
-																			<reference key="NSNextResponder" ref="277972727"/>
+																		<object class="NSButton" id="264617949">
+																			<reference key="NSNextResponder" ref="380709887"/>
 																			<int key="NSvFlags">257</int>
 																			<string key="NSFrame">{{721, 4}, {18, 18}}</string>
-																			<reference key="NSSuperview" ref="277972727"/>
-																			<reference key="NSNextKeyView" ref="339632689"/>
+																			<reference key="NSSuperview" ref="380709887"/>
+																			<reference key="NSNextKeyView" ref="667464776"/>
 																			<int key="NSTag">-1</int>
 																			<bool key="NSEnabled">YES</bool>
 																			<object class="NSRuleEditorButtonCell" key="NSCell">
@@ -1219,9 +1461,25 @@
 																				<int key="NSCellFlags2">134348800</int>
 																				<string key="NSContents">-</string>
 																				<reference key="NSSupport" ref="29"/>
+																				<object class="NSMutableArray" key="NSAccessibilityOverriddenAttributes">
+																					<bool key="EncodedWithXMLCoder">YES</bool>
+																					<object class="NSMutableDictionary">
+																						<bool key="EncodedWithXMLCoder">YES</bool>
+																						<object class="NSArray" key="dict.sortedKeys">
+																							<bool key="EncodedWithXMLCoder">YES</bool>
+																							<string>AXDescription</string>
+																							<string>NSAccessibilityEncodedAttributesValueType</string>
+																						</object>
+																						<object class="NSMutableArray" key="dict.values">
+																							<bool key="EncodedWithXMLCoder">YES</bool>
+																							<string>remove</string>
+																							<integer value="1"/>
+																						</object>
+																					</object>
+																				</object>
+																				<reference key="NSControlView" ref="264617949"/>
 																				<string key="NSAction">_deleteOption:</string>
-																				<reference key="NSTarget" ref="277972727"/>
-																				<reference key="NSControlView" ref="645964487"/>
+																				<reference key="NSTarget" ref="380709887"/>
 																				<int key="NSButtonFlags">-2038284033</int>
 																				<int key="NSButtonFlags2">36</int>
 																				<reference key="NSAlternateImage" ref="28"/>
@@ -1231,10 +1489,10 @@
 																			</object>
 																		</object>
 																		<object class="NSPopUpButton" id="111744215">
-																			<reference key="NSNextResponder" ref="277972727"/>
+																			<reference key="NSNextResponder" ref="380709887"/>
 																			<int key="NSvFlags">256</int>
 																			<string key="NSFrame">{{7, 3}, {58, 19}}</string>
-																			<reference key="NSSuperview" ref="277972727"/>
+																			<reference key="NSSuperview" ref="380709887"/>
 																			<reference key="NSNextKeyView" ref="471209054"/>
 																			<int key="NSTag">-1</int>
 																			<bool key="NSEnabled">YES</bool>
@@ -1243,16 +1501,16 @@
 																				<int key="NSCellFlags2">4196352</int>
 																				<object class="NSFont" key="NSSupport" id="26">
 																					<string key="NSName">LucidaGrande</string>
-																					<double key="NSSize">1.100000e+01</double>
+																					<double key="NSSize">11</double>
 																					<int key="NSfFlags">3100</int>
 																				</object>
-																				<reference key="NSRepresentedObject" ref="9"/>
+																				<integer value="1" key="NSRepresentedObject"/>
 																				<reference key="NSControlView" ref="111744215"/>
 																				<int key="NSButtonFlags">-2038284033</int>
 																				<int key="NSButtonFlags2">36</int>
 																				<object class="NSFont" key="NSAlternateImage" id="753190765">
 																					<string key="NSName">LucidaGrande</string>
-																					<double key="NSSize">1.100000e+01</double>
+																					<double key="NSSize">11</double>
 																					<int key="NSfFlags">16</int>
 																				</object>
 																				<string key="NSKeyEquivalent"/>
@@ -1268,7 +1526,7 @@
 																					<reference key="NSOnImage" ref="35465992"/>
 																					<reference key="NSMixedImage" ref="566991132"/>
 																					<string key="NSAction">_popUpItemAction:</string>
-																					<reference key="NSRepObject" ref="9"/>
+																					<integer value="1" key="NSRepObject"/>
 																					<reference key="NSTarget" ref="699711605"/>
 																				</object>
 																				<bool key="NSMenuItemRespectAlignment">YES</bool>
@@ -1286,7 +1544,7 @@
 																							<reference key="NSOnImage" ref="35465992"/>
 																							<reference key="NSMixedImage" ref="566991132"/>
 																							<string key="NSAction">_popUpItemAction:</string>
-																							<integer value="2" key="NSRepObject" id="10"/>
+																							<integer value="2" key="NSRepObject"/>
 																							<reference key="NSTarget" ref="699711605"/>
 																						</object>
 																					</object>
@@ -1298,11 +1556,11 @@
 																			</object>
 																		</object>
 																		<object class="NSPopUpButton" id="471209054">
-																			<reference key="NSNextResponder" ref="277972727"/>
+																			<reference key="NSNextResponder" ref="380709887"/>
 																			<int key="NSvFlags">256</int>
 																			<string key="NSFrame">{{71, 3}, {167, 19}}</string>
-																			<reference key="NSSuperview" ref="277972727"/>
-																			<reference key="NSNextKeyView" ref="645964487"/>
+																			<reference key="NSSuperview" ref="380709887"/>
+																			<reference key="NSNextKeyView" ref="264617949"/>
 																			<int key="NSTag">-1</int>
 																			<bool key="NSEnabled">YES</bool>
 																			<object class="NSPopUpButtonCell" key="NSCell" id="443562245">
@@ -1360,16 +1618,16 @@
 																	<string key="NSRuleOptionFrames.1">{{71, 3}, {167, 19}}</string>
 																	<object class="NSMutableArray" key="NSRuleOptionItems">
 																		<bool key="EncodedWithXMLCoder">YES</bool>
-																		<object class="NSMutableDictionary" id="850630205">
+																		<object class="NSMutableDictionary" id="100776593">
 																			<bool key="EncodedWithXMLCoder">YES</bool>
-																			<object class="NSMutableArray" key="dict.sortedKeys">
+																			<object class="NSArray" key="dict.sortedKeys">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<string>depth</string>
 																				<string>pattern</string>
 																			</object>
 																			<object class="NSMutableArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
-																				<reference ref="9"/>
+																				<integer value="1"/>
 																				<object class="NSPredicateEditorRowTemplate" id="715417482">
 																					<int key="NSPredicateTemplateType">2</int>
 																					<int key="NSPredicateTemplateOptions">0</int>
@@ -1386,16 +1644,16 @@
 																				</object>
 																			</object>
 																		</object>
-																		<object class="NSMutableDictionary" id="670834164">
+																		<object class="NSMutableDictionary" id="831402257">
 																			<bool key="EncodedWithXMLCoder">YES</bool>
-																			<object class="NSMutableArray" key="dict.sortedKeys">
+																			<object class="NSArray" key="dict.sortedKeys">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<string>depth</string>
 																				<string>pattern</string>
 																			</object>
 																			<object class="NSMutableArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
-																				<reference ref="10"/>
+																				<integer value="2"/>
 																				<reference ref="715417482"/>
 																			</object>
 																		</object>
@@ -1403,23 +1661,23 @@
 																	<int key="NSRuleOptionInitialFrames.count">2</int>
 																	<string key="NSRuleOptionInitialFrames.0">{{7, 3}, {58, 19}}</string>
 																	<string key="NSRuleOptionInitialFrames.1">{{71, 3}, {167, 19}}</string>
-																	<reference key="NSRuleOptionAddButton" ref="339632689"/>
-																	<reference key="NSRuleOptionSubtractButton" ref="645964487"/>
+																	<reference key="NSRuleOptionAddButton" ref="667464776"/>
+																	<reference key="NSRuleOptionSubtractButton" ref="264617949"/>
 																	<int key="NSRuleOptionRowType">0</int>
 																	<int key="NSRuleOptionPlusButtonRowType">0</int>
 																	<bool key="NSRuleOptionEditable">YES</bool>
 																</object>
-																<object class="NSRuleEditorViewSliceRow" id="602619092">
+																<object class="NSRuleEditorViewSliceRow" id="937158238">
 																	<reference key="NSNextResponder" ref="887125716"/>
 																	<int key="NSvFlags">290</int>
 																	<object class="NSMutableArray" key="NSSubviews">
 																		<bool key="EncodedWithXMLCoder">YES</bool>
-																		<object class="NSButton" id="989806850">
-																			<reference key="NSNextResponder" ref="602619092"/>
+																		<object class="NSButton" id="716220868">
+																			<reference key="NSNextResponder" ref="937158238"/>
 																			<int key="NSvFlags">257</int>
 																			<string key="NSFrame">{{741, 4}, {18, 18}}</string>
-																			<reference key="NSSuperview" ref="602619092"/>
-																			<reference key="NSNextKeyView" ref="588138263"/>
+																			<reference key="NSSuperview" ref="937158238"/>
+																			<reference key="NSNextKeyView" ref="269605618"/>
 																			<int key="NSTag">-1</int>
 																			<bool key="NSEnabled">YES</bool>
 																			<object class="NSRuleEditorButtonCell" key="NSCell">
@@ -1427,9 +1685,25 @@
 																				<int key="NSCellFlags2">134348800</int>
 																				<string key="NSContents">+</string>
 																				<reference key="NSSupport" ref="29"/>
+																				<object class="NSMutableArray" key="NSAccessibilityOverriddenAttributes">
+																					<bool key="EncodedWithXMLCoder">YES</bool>
+																					<object class="NSMutableDictionary">
+																						<bool key="EncodedWithXMLCoder">YES</bool>
+																						<object class="NSArray" key="dict.sortedKeys">
+																							<bool key="EncodedWithXMLCoder">YES</bool>
+																							<string>AXDescription</string>
+																							<string>NSAccessibilityEncodedAttributesValueType</string>
+																						</object>
+																						<object class="NSMutableArray" key="dict.values">
+																							<bool key="EncodedWithXMLCoder">YES</bool>
+																							<string>add</string>
+																							<integer value="1"/>
+																						</object>
+																					</object>
+																				</object>
+																				<reference key="NSControlView" ref="716220868"/>
 																				<string key="NSAction">_addOption:</string>
-																				<reference key="NSTarget" ref="602619092"/>
-																				<reference key="NSControlView" ref="989806850"/>
+																				<reference key="NSTarget" ref="937158238"/>
 																				<int key="NSButtonFlags">-2038284033</int>
 																				<int key="NSButtonFlags2">36</int>
 																				<reference key="NSAlternateImage" ref="28"/>
@@ -1438,12 +1712,12 @@
 																				<int key="NSPeriodicInterval">75</int>
 																			</object>
 																		</object>
-																		<object class="NSButton" id="4492186">
-																			<reference key="NSNextResponder" ref="602619092"/>
+																		<object class="NSButton" id="88012141">
+																			<reference key="NSNextResponder" ref="937158238"/>
 																			<int key="NSvFlags">257</int>
 																			<string key="NSFrame">{{721, 4}, {18, 18}}</string>
-																			<reference key="NSSuperview" ref="602619092"/>
-																			<reference key="NSNextKeyView" ref="989806850"/>
+																			<reference key="NSSuperview" ref="937158238"/>
+																			<reference key="NSNextKeyView" ref="716220868"/>
 																			<int key="NSTag">-1</int>
 																			<bool key="NSEnabled">YES</bool>
 																			<object class="NSRuleEditorButtonCell" key="NSCell">
@@ -1451,9 +1725,25 @@
 																				<int key="NSCellFlags2">134348800</int>
 																				<string key="NSContents">-</string>
 																				<reference key="NSSupport" ref="29"/>
+																				<object class="NSMutableArray" key="NSAccessibilityOverriddenAttributes">
+																					<bool key="EncodedWithXMLCoder">YES</bool>
+																					<object class="NSMutableDictionary">
+																						<bool key="EncodedWithXMLCoder">YES</bool>
+																						<object class="NSArray" key="dict.sortedKeys">
+																							<bool key="EncodedWithXMLCoder">YES</bool>
+																							<string>AXDescription</string>
+																							<string>NSAccessibilityEncodedAttributesValueType</string>
+																						</object>
+																						<object class="NSMutableArray" key="dict.values">
+																							<bool key="EncodedWithXMLCoder">YES</bool>
+																							<string>remove</string>
+																							<integer value="1"/>
+																						</object>
+																					</object>
+																				</object>
+																				<reference key="NSControlView" ref="88012141"/>
 																				<string key="NSAction">_deleteOption:</string>
-																				<reference key="NSTarget" ref="602619092"/>
-																				<reference key="NSControlView" ref="4492186"/>
+																				<reference key="NSTarget" ref="937158238"/>
 																				<int key="NSButtonFlags">-2038284033</int>
 																				<int key="NSButtonFlags2">36</int>
 																				<reference key="NSAlternateImage" ref="28"/>
@@ -1463,10 +1753,10 @@
 																			</object>
 																		</object>
 																		<object class="NSPopUpButton" id="677349919">
-																			<reference key="NSNextResponder" ref="602619092"/>
+																			<reference key="NSNextResponder" ref="937158238"/>
 																			<int key="NSvFlags">256</int>
 																			<string key="NSFrame">{{37, 3}, {76, 19}}</string>
-																			<reference key="NSSuperview" ref="602619092"/>
+																			<reference key="NSSuperview" ref="937158238"/>
 																			<reference key="NSNextKeyView" ref="855084085"/>
 																			<int key="NSTag">-1</int>
 																			<bool key="NSEnabled">YES</bool>
@@ -1477,7 +1767,7 @@
 																				<object class="NSKeyPathExpression" key="NSRepresentedObject" id="386522942">
 																					<int key="NSExpressionType">3</int>
 																					<string key="NSSelectorName">valueForKey:</string>
-																					<object class="NSSelfExpression" key="NSOperand">
+																					<object class="NSSelfExpression" key="NSOperand" id="563127027">
 																						<int key="NSExpressionType">1</int>
 																					</object>
 																					<object class="NSMutableArray" key="NSArguments">
@@ -1526,9 +1816,7 @@
 																							<object class="NSKeyPathExpression" key="NSRepObject">
 																								<int key="NSExpressionType">3</int>
 																								<string key="NSSelectorName">valueForKey:</string>
-																								<object class="NSSelfExpression" key="NSOperand">
-																									<int key="NSExpressionType">1</int>
-																								</object>
+																								<reference key="NSOperand" ref="563127027"/>
 																								<object class="NSMutableArray" key="NSArguments">
 																									<bool key="EncodedWithXMLCoder">YES</bool>
 																									<object class="NSKeyPathSpecifierExpression">
@@ -1548,10 +1836,10 @@
 																			</object>
 																		</object>
 																		<object class="NSPopUpButton" id="855084085">
-																			<reference key="NSNextResponder" ref="602619092"/>
+																			<reference key="NSNextResponder" ref="937158238"/>
 																			<int key="NSvFlags">256</int>
 																			<string key="NSFrame">{{119, 3}, {95, 19}}</string>
-																			<reference key="NSSuperview" ref="602619092"/>
+																			<reference key="NSSuperview" ref="937158238"/>
 																			<reference key="NSNextKeyView" ref="309287992"/>
 																			<int key="NSTag">-1</int>
 																			<bool key="NSEnabled">YES</bool>
@@ -1559,7 +1847,7 @@
 																				<int key="NSCellFlags">67239488</int>
 																				<int key="NSCellFlags2">4196352</int>
 																				<reference key="NSSupport" ref="26"/>
-																				<integer value="99" key="NSRepresentedObject" id="733886263"/>
+																				<integer value="99" key="NSRepresentedObject"/>
 																				<reference key="NSControlView" ref="855084085"/>
 																				<int key="NSButtonFlags">-2038284033</int>
 																				<int key="NSButtonFlags2">36</int>
@@ -1577,7 +1865,7 @@
 																					<reference key="NSOnImage" ref="35465992"/>
 																					<reference key="NSMixedImage" ref="566991132"/>
 																					<string key="NSAction">_popUpItemAction:</string>
-																					<reference key="NSRepObject" ref="733886263"/>
+																					<integer value="99" key="NSRepObject"/>
 																					<reference key="NSTarget" ref="108954362"/>
 																				</object>
 																				<bool key="NSMenuItemRespectAlignment">YES</bool>
@@ -1619,7 +1907,7 @@
 																							<reference key="NSOnImage" ref="35465992"/>
 																							<reference key="NSMixedImage" ref="566991132"/>
 																							<string key="NSAction">_popUpItemAction:</string>
-																							<integer value="4" key="NSRepObject" id="12"/>
+																							<integer value="4" key="NSRepObject"/>
 																							<reference key="NSTarget" ref="108954362"/>
 																						</object>
 																						<object class="NSMenuItem" id="294835276">
@@ -1643,11 +1931,11 @@
 																			</object>
 																		</object>
 																		<object class="NSTextField" id="309287992">
-																			<reference key="NSNextResponder" ref="602619092"/>
+																			<reference key="NSNextResponder" ref="937158238"/>
 																			<int key="NSvFlags">256</int>
 																			<string key="NSFrame">{{220, 4}, {61, 18}}</string>
-																			<reference key="NSSuperview" ref="602619092"/>
-																			<reference key="NSNextKeyView" ref="4492186"/>
+																			<reference key="NSSuperview" ref="937158238"/>
+																			<reference key="NSNextKeyView" ref="88012141"/>
 																			<bool key="NSEnabled">YES</bool>
 																			<object class="NSTextFieldCell" key="NSCell">
 																				<int key="NSCellFlags">343014976</int>
@@ -1680,16 +1968,16 @@
 																	<string key="NSRuleOptionFrames.2">{{220, 4}, {61, 18}}</string>
 																	<object class="NSMutableArray" key="NSRuleOptionItems">
 																		<bool key="EncodedWithXMLCoder">YES</bool>
-																		<object class="NSMutableDictionary" id="232347375">
+																		<object class="NSMutableDictionary" id="449335730">
 																			<bool key="EncodedWithXMLCoder">YES</bool>
-																			<object class="NSMutableArray" key="dict.sortedKeys">
+																			<object class="NSArray" key="dict.sortedKeys">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<string>depth</string>
 																				<string>pattern</string>
 																			</object>
 																			<object class="NSMutableArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
-																				<reference ref="9"/>
+																				<integer value="1"/>
 																				<object class="NSPredicateEditorRowTemplate" id="755579174">
 																					<int key="NSPredicateTemplateType">1</int>
 																					<int key="NSPredicateTemplateOptions">0</int>
@@ -1707,29 +1995,29 @@
 																				</object>
 																			</object>
 																		</object>
-																		<object class="NSMutableDictionary" id="308893877">
+																		<object class="NSMutableDictionary" id="820714418">
 																			<bool key="EncodedWithXMLCoder">YES</bool>
-																			<object class="NSMutableArray" key="dict.sortedKeys">
+																			<object class="NSArray" key="dict.sortedKeys">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<string>depth</string>
 																				<string>pattern</string>
 																			</object>
 																			<object class="NSMutableArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
-																				<reference ref="10"/>
+																				<integer value="2"/>
 																				<reference ref="755579174"/>
 																			</object>
 																		</object>
-																		<object class="NSMutableDictionary" id="831670491">
+																		<object class="NSMutableDictionary" id="607408078">
 																			<bool key="EncodedWithXMLCoder">YES</bool>
-																			<object class="NSMutableArray" key="dict.sortedKeys">
+																			<object class="NSArray" key="dict.sortedKeys">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<string>depth</string>
 																				<string>pattern</string>
 																			</object>
 																			<object class="NSMutableArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
-																				<integer value="3" id="11"/>
+																				<integer value="3"/>
 																				<reference ref="755579174"/>
 																			</object>
 																		</object>
@@ -1738,22 +2026,22 @@
 																	<string key="NSRuleOptionInitialFrames.0">{{37, 3}, {76, 19}}</string>
 																	<string key="NSRuleOptionInitialFrames.1">{{119, 3}, {95, 19}}</string>
 																	<string key="NSRuleOptionInitialFrames.2">{{220, 4}, {61, 18}}</string>
-																	<reference key="NSRuleOptionAddButton" ref="989806850"/>
-																	<reference key="NSRuleOptionSubtractButton" ref="4492186"/>
+																	<reference key="NSRuleOptionAddButton" ref="716220868"/>
+																	<reference key="NSRuleOptionSubtractButton" ref="88012141"/>
 																	<int key="NSRuleOptionRowType">0</int>
 																	<int key="NSRuleOptionPlusButtonRowType">0</int>
 																	<bool key="NSRuleOptionEditable">YES</bool>
 																</object>
-																<object class="NSRuleEditorViewSliceRow" id="588138263">
+																<object class="NSRuleEditorViewSliceRow" id="269605618">
 																	<reference key="NSNextResponder" ref="887125716"/>
 																	<int key="NSvFlags">290</int>
 																	<object class="NSMutableArray" key="NSSubviews">
 																		<bool key="EncodedWithXMLCoder">YES</bool>
-																		<object class="NSButton" id="297165836">
-																			<reference key="NSNextResponder" ref="588138263"/>
+																		<object class="NSButton" id="25036754">
+																			<reference key="NSNextResponder" ref="269605618"/>
 																			<int key="NSvFlags">257</int>
 																			<string key="NSFrame">{{741, 4}, {18, 18}}</string>
-																			<reference key="NSSuperview" ref="588138263"/>
+																			<reference key="NSSuperview" ref="269605618"/>
 																			<reference key="NSNextKeyView" ref="872100568"/>
 																			<int key="NSTag">-1</int>
 																			<bool key="NSEnabled">YES</bool>
@@ -1762,9 +2050,25 @@
 																				<int key="NSCellFlags2">134348800</int>
 																				<string key="NSContents">+</string>
 																				<reference key="NSSupport" ref="29"/>
+																				<object class="NSMutableArray" key="NSAccessibilityOverriddenAttributes">
+																					<bool key="EncodedWithXMLCoder">YES</bool>
+																					<object class="NSMutableDictionary">
+																						<bool key="EncodedWithXMLCoder">YES</bool>
+																						<object class="NSArray" key="dict.sortedKeys">
+																							<bool key="EncodedWithXMLCoder">YES</bool>
+																							<string>AXDescription</string>
+																							<string>NSAccessibilityEncodedAttributesValueType</string>
+																						</object>
+																						<object class="NSMutableArray" key="dict.values">
+																							<bool key="EncodedWithXMLCoder">YES</bool>
+																							<string>add</string>
+																							<integer value="1"/>
+																						</object>
+																					</object>
+																				</object>
+																				<reference key="NSControlView" ref="25036754"/>
 																				<string key="NSAction">_addOption:</string>
-																				<reference key="NSTarget" ref="588138263"/>
-																				<reference key="NSControlView" ref="297165836"/>
+																				<reference key="NSTarget" ref="269605618"/>
 																				<int key="NSButtonFlags">-2038284033</int>
 																				<int key="NSButtonFlags2">36</int>
 																				<reference key="NSAlternateImage" ref="28"/>
@@ -1773,12 +2077,12 @@
 																				<int key="NSPeriodicInterval">75</int>
 																			</object>
 																		</object>
-																		<object class="NSButton" id="234201907">
-																			<reference key="NSNextResponder" ref="588138263"/>
+																		<object class="NSButton" id="109434387">
+																			<reference key="NSNextResponder" ref="269605618"/>
 																			<int key="NSvFlags">257</int>
 																			<string key="NSFrame">{{721, 4}, {18, 18}}</string>
-																			<reference key="NSSuperview" ref="588138263"/>
-																			<reference key="NSNextKeyView" ref="297165836"/>
+																			<reference key="NSSuperview" ref="269605618"/>
+																			<reference key="NSNextKeyView" ref="25036754"/>
 																			<int key="NSTag">-1</int>
 																			<bool key="NSEnabled">YES</bool>
 																			<object class="NSRuleEditorButtonCell" key="NSCell">
@@ -1786,9 +2090,25 @@
 																				<int key="NSCellFlags2">134348800</int>
 																				<string key="NSContents">-</string>
 																				<reference key="NSSupport" ref="29"/>
+																				<object class="NSMutableArray" key="NSAccessibilityOverriddenAttributes">
+																					<bool key="EncodedWithXMLCoder">YES</bool>
+																					<object class="NSMutableDictionary">
+																						<bool key="EncodedWithXMLCoder">YES</bool>
+																						<object class="NSArray" key="dict.sortedKeys">
+																							<bool key="EncodedWithXMLCoder">YES</bool>
+																							<string>AXDescription</string>
+																							<string>NSAccessibilityEncodedAttributesValueType</string>
+																						</object>
+																						<object class="NSMutableArray" key="dict.values">
+																							<bool key="EncodedWithXMLCoder">YES</bool>
+																							<string>remove</string>
+																							<integer value="1"/>
+																						</object>
+																					</object>
+																				</object>
+																				<reference key="NSControlView" ref="109434387"/>
 																				<string key="NSAction">_deleteOption:</string>
-																				<reference key="NSTarget" ref="588138263"/>
-																				<reference key="NSControlView" ref="234201907"/>
+																				<reference key="NSTarget" ref="269605618"/>
 																				<int key="NSButtonFlags">-2038284033</int>
 																				<int key="NSButtonFlags2">36</int>
 																				<reference key="NSAlternateImage" ref="28"/>
@@ -1798,10 +2118,10 @@
 																			</object>
 																		</object>
 																		<object class="NSPopUpButton" id="974900885">
-																			<reference key="NSNextResponder" ref="588138263"/>
+																			<reference key="NSNextResponder" ref="269605618"/>
 																			<int key="NSvFlags">256</int>
 																			<string key="NSFrame">{{37, 3}, {64, 19}}</string>
-																			<reference key="NSSuperview" ref="588138263"/>
+																			<reference key="NSSuperview" ref="269605618"/>
 																			<reference key="NSNextKeyView" ref="207821348"/>
 																			<int key="NSTag">-1</int>
 																			<bool key="NSEnabled">YES</bool>
@@ -1812,9 +2132,7 @@
 																				<object class="NSKeyPathExpression" key="NSRepresentedObject" id="216417465">
 																					<int key="NSExpressionType">3</int>
 																					<string key="NSSelectorName">valueForKey:</string>
-																					<object class="NSSelfExpression" key="NSOperand">
-																						<int key="NSExpressionType">1</int>
-																					</object>
+																					<reference key="NSOperand" ref="563127027"/>
 																					<object class="NSMutableArray" key="NSArguments">
 																						<bool key="EncodedWithXMLCoder">YES</bool>
 																						<object class="NSKeyPathSpecifierExpression">
@@ -1858,10 +2176,10 @@
 																			</object>
 																		</object>
 																		<object class="NSPopUpButton" id="207821348">
-																			<reference key="NSNextResponder" ref="588138263"/>
+																			<reference key="NSNextResponder" ref="269605618"/>
 																			<int key="NSvFlags">256</int>
 																			<string key="NSFrame">{{107, 3}, {46, 19}}</string>
-																			<reference key="NSSuperview" ref="588138263"/>
+																			<reference key="NSSuperview" ref="269605618"/>
 																			<reference key="NSNextKeyView" ref="11724982"/>
 																			<int key="NSTag">-1</int>
 																			<bool key="NSEnabled">YES</bool>
@@ -1869,7 +2187,7 @@
 																				<int key="NSCellFlags">67239488</int>
 																				<int key="NSCellFlags2">4196352</int>
 																				<reference key="NSSupport" ref="26"/>
-																				<reference key="NSRepresentedObject" ref="12"/>
+																				<integer value="4" key="NSRepresentedObject"/>
 																				<reference key="NSControlView" ref="207821348"/>
 																				<int key="NSButtonFlags">-2038284033</int>
 																				<int key="NSButtonFlags2">36</int>
@@ -1887,7 +2205,7 @@
 																					<reference key="NSOnImage" ref="35465992"/>
 																					<reference key="NSMixedImage" ref="566991132"/>
 																					<string key="NSAction">_popUpItemAction:</string>
-																					<reference key="NSRepObject" ref="12"/>
+																					<integer value="4" key="NSRepObject"/>
 																					<reference key="NSTarget" ref="898314192"/>
 																				</object>
 																				<bool key="NSMenuItemRespectAlignment">YES</bool>
@@ -1905,11 +2223,11 @@
 																			</object>
 																		</object>
 																		<object class="NSPopUpButton" id="11724982">
-																			<reference key="NSNextResponder" ref="588138263"/>
+																			<reference key="NSNextResponder" ref="269605618"/>
 																			<int key="NSvFlags">256</int>
 																			<string key="NSFrame">{{159, 3}, {155, 19}}</string>
-																			<reference key="NSSuperview" ref="588138263"/>
-																			<reference key="NSNextKeyView" ref="234201907"/>
+																			<reference key="NSSuperview" ref="269605618"/>
+																			<reference key="NSNextKeyView" ref="109434387"/>
 																			<int key="NSTag">-1</int>
 																			<bool key="NSEnabled">YES</bool>
 																			<object class="NSPopUpButtonCell" key="NSCell" id="923487559">
@@ -2019,16 +2337,16 @@
 																	<string key="NSRuleOptionFrames.2">{{159, 3}, {155, 19}}</string>
 																	<object class="NSMutableArray" key="NSRuleOptionItems">
 																		<bool key="EncodedWithXMLCoder">YES</bool>
-																		<object class="NSMutableDictionary" id="375100135">
+																		<object class="NSMutableDictionary" id="171116946">
 																			<bool key="EncodedWithXMLCoder">YES</bool>
-																			<object class="NSMutableArray" key="dict.sortedKeys">
+																			<object class="NSArray" key="dict.sortedKeys">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<string>depth</string>
 																				<string>pattern</string>
 																			</object>
 																			<object class="NSMutableArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
-																				<reference ref="9"/>
+																				<integer value="1"/>
 																				<object class="NSPredicateEditorRowTemplate" id="385089462">
 																					<int key="NSPredicateTemplateType">1</int>
 																					<int key="NSPredicateTemplateOptions">0</int>
@@ -2046,29 +2364,29 @@
 																				</object>
 																			</object>
 																		</object>
-																		<object class="NSMutableDictionary" id="1016684085">
+																		<object class="NSMutableDictionary" id="911635573">
 																			<bool key="EncodedWithXMLCoder">YES</bool>
-																			<object class="NSMutableArray" key="dict.sortedKeys">
+																			<object class="NSArray" key="dict.sortedKeys">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<string>depth</string>
 																				<string>pattern</string>
 																			</object>
 																			<object class="NSMutableArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
-																				<reference ref="10"/>
+																				<integer value="2"/>
 																				<reference ref="385089462"/>
 																			</object>
 																		</object>
-																		<object class="NSMutableDictionary" id="247503625">
+																		<object class="NSMutableDictionary" id="426520134">
 																			<bool key="EncodedWithXMLCoder">YES</bool>
-																			<object class="NSMutableArray" key="dict.sortedKeys">
+																			<object class="NSArray" key="dict.sortedKeys">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<string>depth</string>
 																				<string>pattern</string>
 																			</object>
 																			<object class="NSMutableArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
-																				<reference ref="11"/>
+																				<integer value="3"/>
 																				<reference ref="385089462"/>
 																			</object>
 																		</object>
@@ -2077,8 +2395,8 @@
 																	<string key="NSRuleOptionInitialFrames.0">{{37, 3}, {64, 19}}</string>
 																	<string key="NSRuleOptionInitialFrames.1">{{107, 3}, {46, 19}}</string>
 																	<string key="NSRuleOptionInitialFrames.2">{{159, 3}, {155, 19}}</string>
-																	<reference key="NSRuleOptionAddButton" ref="297165836"/>
-																	<reference key="NSRuleOptionSubtractButton" ref="234201907"/>
+																	<reference key="NSRuleOptionAddButton" ref="25036754"/>
+																	<reference key="NSRuleOptionSubtractButton" ref="109434387"/>
 																	<int key="NSRuleOptionRowType">0</int>
 																	<int key="NSRuleOptionPlusButtonRowType">0</int>
 																	<bool key="NSRuleOptionEditable">YES</bool>
@@ -2086,7 +2404,7 @@
 															</object>
 															<string key="NSFrame">{{1, 1}, {769, 73}}</string>
 															<reference key="NSSuperview" ref="872100568"/>
-															<reference key="NSNextKeyView" ref="277972727"/>
+															<reference key="NSNextKeyView" ref="380709887"/>
 														</object>
 													</object>
 													<object class="NSMutableSet" key="NSDragTypes">
@@ -2100,8 +2418,8 @@
 													<reference key="NSSuperview" ref="646625812"/>
 													<reference key="NSNextKeyView" ref="887125716"/>
 													<bool key="NSEnabled">YES</bool>
-													<double key="NSRuleEditorAlignmentGridWidth">7.500000e+01</double>
-													<double key="NSRuleEditorSliceHeight">2.500000e+01</double>
+													<double key="NSRuleEditorAlignmentGridWidth">75</double>
+													<double key="NSRuleEditorSliceHeight">25</double>
 													<bool key="NSRuleEditorEditable">YES</bool>
 													<bool key="NSRuleEditorAllowsEmptyCompoundRows">NO</bool>
 													<bool key="NSRuleEditorDisallowEmpty">NO</bool>
@@ -2119,7 +2437,7 @@
 															<bool key="EncodedWithXMLCoder">YES</bool>
 															<object class="NSMutableDictionary">
 																<bool key="EncodedWithXMLCoder">YES</bool>
-																<object class="NSMutableArray" key="dict.sortedKeys">
+																<object class="NSArray" key="dict.sortedKeys">
 																	<bool key="EncodedWithXMLCoder">YES</bool>
 																	<string>criteria</string>
 																	<string>displayValues</string>
@@ -2130,20 +2448,20 @@
 																	<bool key="EncodedWithXMLCoder">YES</bool>
 																	<object class="NSMutableArray">
 																		<bool key="EncodedWithXMLCoder">YES</bool>
-																		<reference ref="850630205"/>
-																		<reference ref="670834164"/>
+																		<reference ref="100776593"/>
+																		<reference ref="831402257"/>
 																	</object>
 																	<object class="NSMutableArray">
 																		<bool key="EncodedWithXMLCoder">YES</bool>
 																		<reference ref="111744215"/>
 																		<reference ref="471209054"/>
 																	</object>
-																	<reference ref="9"/>
+																	<integer value="1"/>
 																	<object class="NSMutableArray">
 																		<bool key="EncodedWithXMLCoder">YES</bool>
 																		<object class="NSMutableDictionary">
 																			<bool key="EncodedWithXMLCoder">YES</bool>
-																			<object class="NSMutableArray" key="dict.sortedKeys">
+																			<object class="NSArray" key="dict.sortedKeys">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<string>criteria</string>
 																				<string>displayValues</string>
@@ -2154,9 +2472,9 @@
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<object class="NSMutableArray">
 																					<bool key="EncodedWithXMLCoder">YES</bool>
-																					<reference ref="232347375"/>
-																					<reference ref="308893877"/>
-																					<reference ref="831670491"/>
+																					<reference ref="449335730"/>
+																					<reference ref="820714418"/>
+																					<reference ref="607408078"/>
 																				</object>
 																				<object class="NSMutableArray">
 																					<bool key="EncodedWithXMLCoder">YES</bool>
@@ -2164,7 +2482,7 @@
 																					<reference ref="855084085"/>
 																					<reference ref="309287992"/>
 																				</object>
-																				<integer value="0" id="8"/>
+																				<integer value="0"/>
 																				<object class="NSMutableArray">
 																					<bool key="EncodedWithXMLCoder">YES</bool>
 																				</object>
@@ -2172,7 +2490,7 @@
 																		</object>
 																		<object class="NSMutableDictionary">
 																			<bool key="EncodedWithXMLCoder">YES</bool>
-																			<object class="NSMutableArray" key="dict.sortedKeys">
+																			<object class="NSArray" key="dict.sortedKeys">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<string>criteria</string>
 																				<string>displayValues</string>
@@ -2183,9 +2501,9 @@
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<object class="NSMutableArray">
 																					<bool key="EncodedWithXMLCoder">YES</bool>
-																					<reference ref="375100135"/>
-																					<reference ref="1016684085"/>
-																					<reference ref="247503625"/>
+																					<reference ref="171116946"/>
+																					<reference ref="911635573"/>
+																					<reference ref="426520134"/>
 																				</object>
 																				<object class="NSMutableArray">
 																					<bool key="EncodedWithXMLCoder">YES</bool>
@@ -2193,7 +2511,7 @@
 																					<reference ref="207821348"/>
 																					<reference ref="11724982"/>
 																				</object>
-																				<reference ref="8"/>
+																				<integer value="0"/>
 																				<object class="NSMutableArray">
 																					<bool key="EncodedWithXMLCoder">YES</bool>
 																				</object>
@@ -2206,9 +2524,9 @@
 													</object>
 													<object class="NSMutableArray" key="NSRuleEditorSlices">
 														<bool key="EncodedWithXMLCoder">YES</bool>
-														<reference ref="277972727"/>
-														<reference ref="602619092"/>
-														<reference ref="588138263"/>
+														<reference ref="380709887"/>
+														<reference ref="937158238"/>
+														<reference ref="269605618"/>
 													</object>
 													<object class="NSArray" key="NSPredicateTemplates">
 														<bool key="EncodedWithXMLCoder">YES</bool>
@@ -2225,7 +2543,7 @@
 											<reference key="NSDocView" ref="872100568"/>
 											<object class="NSColor" key="NSBGColor">
 												<int key="NSColorSpace">3</int>
-												<bytes key="NSWhite">MC45MTAwMDAwMwA</bytes>
+												<bytes key="NSWhite">MC45MTAwMDAwMjYyAA</bytes>
 											</object>
 											<int key="NScvFlags">4</int>
 										</object>
@@ -2237,8 +2555,8 @@
 											<bool key="NSEnabled">YES</bool>
 											<reference key="NSTarget" ref="815512319"/>
 											<string key="NSAction">_doScroller:</string>
-											<double key="NSCurValue">4.266666e-01</double>
-											<double key="NSPercent">9.800000e-01</double>
+											<double key="NSCurValue">0.38666659593582153</double>
+											<double key="NSPercent">0.98000001907348633</double>
 										</object>
 										<object class="NSScroller" id="969735904">
 											<reference key="NSNextResponder" ref="815512319"/>
@@ -2290,12 +2608,12 @@
 													<object class="NSMutableArray" key="NSTableColumns">
 														<bool key="EncodedWithXMLCoder">YES</bool>
 														<object class="NSTableColumn" id="285794460">
-															<double key="NSWidth">2.500000e+01</double>
-															<double key="NSMinWidth">1.000000e+01</double>
-															<double key="NSMaxWidth">3.402823e+38</double>
+															<double key="NSWidth">25</double>
+															<double key="NSMinWidth">10</double>
+															<double key="NSMaxWidth">3.4028230607370965e+38</double>
 															<object class="NSTableHeaderCell" key="NSHeaderCell">
-																<int key="NSCellFlags">75628032</int>
-																<int key="NSCellFlags2">0</int>
+																<int key="NSCellFlags">75628096</int>
+																<int key="NSCellFlags2">2048</int>
 																<string key="NSContents"/>
 																<reference key="NSSupport" ref="26"/>
 																<object class="NSColor" key="NSBackgroundColor" id="934732725">
@@ -2332,12 +2650,12 @@
 															</object>
 														</object>
 														<object class="NSTableColumn" id="113406531">
-															<double key="NSWidth">1.250000e+02</double>
-															<double key="NSMinWidth">1.000000e+01</double>
-															<double key="NSMaxWidth">3.402823e+38</double>
+															<double key="NSWidth">125</double>
+															<double key="NSMinWidth">10</double>
+															<double key="NSMaxWidth">3.4028230607370965e+38</double>
 															<object class="NSTableHeaderCell" key="NSHeaderCell">
-																<int key="NSCellFlags">75628032</int>
-																<int key="NSCellFlags2">0</int>
+																<int key="NSCellFlags">75628096</int>
+																<int key="NSCellFlags2">2048</int>
 																<string key="NSContents">Name</string>
 																<reference key="NSSupport" ref="26"/>
 																<reference key="NSBackgroundColor" ref="934732725"/>
@@ -2355,7 +2673,7 @@
 																	<string key="NSColorName">controlBackgroundColor</string>
 																	<object class="NSColor" key="NSColor" id="935460209">
 																		<int key="NSColorSpace">3</int>
-																		<bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
+																		<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
 																	</object>
 																</object>
 																<reference key="NSTextColor" ref="475656758"/>
@@ -2365,12 +2683,12 @@
 															<reference key="NSTableView" ref="199649408"/>
 														</object>
 														<object class="NSTableColumn" id="484726988">
-															<double key="NSWidth">3.960000e+02</double>
-															<double key="NSMinWidth">1.000000e+01</double>
-															<double key="NSMaxWidth">3.402823e+38</double>
+															<double key="NSWidth">396</double>
+															<double key="NSMinWidth">10</double>
+															<double key="NSMaxWidth">3.4028230607370965e+38</double>
 															<object class="NSTableHeaderCell" key="NSHeaderCell">
-																<int key="NSCellFlags">75628032</int>
-																<int key="NSCellFlags2">0</int>
+																<int key="NSCellFlags">75628096</int>
+																<int key="NSCellFlags2">2048</int>
 																<string key="NSContents">Description</string>
 																<reference key="NSSupport" ref="26"/>
 																<reference key="NSBackgroundColor" ref="934732725"/>
@@ -2390,12 +2708,12 @@
 															<reference key="NSTableView" ref="199649408"/>
 														</object>
 														<object class="NSTableColumn" id="635685037">
-															<double key="NSWidth">1.980000e+02</double>
-															<double key="NSMinWidth">1.000000e+01</double>
-															<double key="NSMaxWidth">3.402823e+38</double>
+															<double key="NSWidth">198</double>
+															<double key="NSMinWidth">10</double>
+															<double key="NSMaxWidth">3.4028230607370965e+38</double>
 															<object class="NSTableHeaderCell" key="NSHeaderCell">
-																<int key="NSCellFlags">75628032</int>
-																<int key="NSCellFlags2">0</int>
+																<int key="NSCellFlags">75628096</int>
+																<int key="NSCellFlags2">2048</int>
 																<string key="NSContents">Variants</string>
 																<reference key="NSSupport" ref="26"/>
 																<reference key="NSBackgroundColor" ref="934732725"/>
@@ -2415,8 +2733,8 @@
 															<reference key="NSTableView" ref="199649408"/>
 														</object>
 													</object>
-													<double key="NSIntercellSpacingWidth">3.000000e+00</double>
-													<double key="NSIntercellSpacingHeight">2.000000e+00</double>
+													<double key="NSIntercellSpacingWidth">3</double>
+													<double key="NSIntercellSpacingHeight">2</double>
 													<reference key="NSBackgroundColor" ref="415231890"/>
 													<object class="NSColor" key="NSGridColor" id="391761051">
 														<int key="NSColorSpace">6</int>
@@ -2427,12 +2745,15 @@
 															<bytes key="NSWhite">MC41AA</bytes>
 														</object>
 													</object>
-													<double key="NSRowHeight">1.700000e+01</double>
+													<double key="NSRowHeight">17</double>
 													<int key="NSTvFlags">-624951296</int>
+													<reference key="NSDelegate"/>
+													<reference key="NSDataSource"/>
 													<int key="NSColumnAutoresizingStyle">4</int>
 													<int key="NSDraggingSourceMaskForLocal">15</int>
 													<int key="NSDraggingSourceMaskForNonLocal">0</int>
 													<bool key="NSAllowsTypeSelect">YES</bool>
+													<int key="NSTableViewDraggingDestinationStyle">0</int>
 												</object>
 											</object>
 											<string key="NSFrame">{{1, 17}, {756, 366}}</string>
@@ -2449,7 +2770,7 @@
 											<reference key="NSSuperview" ref="520202466"/>
 											<reference key="NSTarget" ref="520202466"/>
 											<string key="NSAction">_doScroller:</string>
-											<double key="NSPercent">9.921671e-01</double>
+											<double key="NSPercent">0.99216711521148682</double>
 										</object>
 										<object class="NSScroller" id="950337744">
 											<reference key="NSNextResponder" ref="520202466"/>
@@ -2459,7 +2780,7 @@
 											<int key="NSsFlags">1</int>
 											<reference key="NSTarget" ref="520202466"/>
 											<string key="NSAction">_doScroller:</string>
-											<double key="NSPercent">9.973615e-01</double>
+											<double key="NSPercent">0.99736148118972778</double>
 										</object>
 										<object class="NSClipView" id="260654782">
 											<reference key="NSNextResponder" ref="520202466"/>
@@ -2495,11 +2816,11 @@
 									<string key="NSFrame">{{370, 183}, {32, 32}}</string>
 									<reference key="NSSuperview" ref="169664854"/>
 									<int key="NSpiFlags">20490</int>
-									<double key="NSMinValue">1.600000e+01</double>
-									<double key="NSMaxValue">1.000000e+02</double>
+									<double key="NSMinValue">16</double>
+									<double key="NSMaxValue">100</double>
 								</object>
 							</object>
-							<string key="NSFrame">{{0, 25}, {773, 424}}</string>
+							<string key="NSFrame">{{0, 28}, {773, 424}}</string>
 							<reference key="NSSuperview" ref="439893737"/>
 							<string key="NSClassName">NSView</string>
 						</object>
@@ -2507,15 +2828,15 @@
 							<reference key="NSNextResponder" ref="439893737"/>
 							<int key="NSvFlags">1316</int>
 							<object class="NSPSMatrix" key="NSDrawMatrix"/>
-							<string key="NSFrame">{{6, 6}, {63, 12}}</string>
+							<string key="NSFrame">{{6, 9}, {63, 12}}</string>
 							<reference key="NSSuperview" ref="439893737"/>
 							<int key="NSpiFlags">24842</int>
-							<double key="NSMaxValue">1.000000e+02</double>
+							<double key="NSMaxValue">100</double>
 						</object>
 						<object class="NSTextField" id="1009077985">
 							<reference key="NSNextResponder" ref="439893737"/>
 							<int key="NSvFlags">292</int>
-							<string key="NSFrame">{{73, 4}, {231, 17}}</string>
+							<string key="NSFrame">{{73, 7}, {231, 17}}</string>
 							<reference key="NSSuperview" ref="439893737"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTextFieldCell" key="NSCell" id="937120685">
@@ -2534,11 +2855,11 @@
 							</object>
 						</object>
 					</object>
-					<string key="NSFrameSize">{773, 449}</string>
+					<string key="NSFrameSize">{773, 452}</string>
 					<reference key="NSSuperview"/>
 				</object>
 				<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
-				<string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+				<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
 			</object>
 			<object class="NSWindowTemplate" id="59017063">
 				<int key="NSWindowStyleMask">287</int>
@@ -2548,7 +2869,7 @@
 				<string key="NSWindowTitle">Activity</string>
 				<string key="NSWindowClass">NSPanel</string>
 				<nil key="NSViewClass"/>
-				<string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
+				<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
 				<object class="NSView" key="NSWindowView" id="187671130">
 					<nil key="NSNextResponder"/>
 					<int key="NSvFlags">256</int>
@@ -2578,17 +2899,17 @@
 											<object class="NSMutableArray" key="NSTableColumns">
 												<bool key="EncodedWithXMLCoder">YES</bool>
 												<object class="NSTableColumn" id="53254606">
-													<double key="NSWidth">4.000000e+01</double>
-													<double key="NSMinWidth">4.000000e+01</double>
-													<double key="NSMaxWidth">1.000000e+03</double>
+													<double key="NSWidth">40</double>
+													<double key="NSMinWidth">40</double>
+													<double key="NSMaxWidth">1000</double>
 													<object class="NSTableHeaderCell" key="NSHeaderCell">
-														<int key="NSCellFlags">75628032</int>
-														<int key="NSCellFlags2">0</int>
+														<int key="NSCellFlags">75628096</int>
+														<int key="NSCellFlags2">2048</int>
 														<string key="NSContents"/>
 														<reference key="NSSupport" ref="26"/>
 														<object class="NSColor" key="NSBackgroundColor" id="331499815">
 															<int key="NSColorSpace">3</int>
-															<bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
+															<bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes>
 														</object>
 														<reference key="NSTextColor" ref="67059057"/>
 													</object>
@@ -2607,12 +2928,12 @@
 													<reference key="NSTableView" ref="238622922"/>
 												</object>
 												<object class="NSTableColumn" id="174905645">
-													<double key="NSWidth">1.870000e+02</double>
-													<double key="NSMinWidth">4.000000e+01</double>
-													<double key="NSMaxWidth">1.000000e+03</double>
+													<double key="NSWidth">187</double>
+													<double key="NSMinWidth">40</double>
+													<double key="NSMaxWidth">1000</double>
 													<object class="NSTableHeaderCell" key="NSHeaderCell">
-														<int key="NSCellFlags">75628032</int>
-														<int key="NSCellFlags2">0</int>
+														<int key="NSCellFlags">75628096</int>
+														<int key="NSCellFlags2">2048</int>
 														<string key="NSContents"/>
 														<reference key="NSSupport" ref="26"/>
 														<reference key="NSBackgroundColor" ref="331499815"/>
@@ -2633,12 +2954,12 @@
 													<reference key="NSTableView" ref="238622922"/>
 												</object>
 												<object class="NSTableColumn" id="677207066">
-													<double key="NSWidth">1.000000e+01</double>
-													<double key="NSMinWidth">1.000000e+01</double>
-													<double key="NSMaxWidth">3.402823e+38</double>
+													<double key="NSWidth">10</double>
+													<double key="NSMinWidth">10</double>
+													<double key="NSMaxWidth">3.4028230607370965e+38</double>
 													<object class="NSTableHeaderCell" key="NSHeaderCell">
-														<int key="NSCellFlags">75628032</int>
-														<int key="NSCellFlags2">0</int>
+														<int key="NSCellFlags">75628096</int>
+														<int key="NSCellFlags2">2048</int>
 														<string key="NSContents"/>
 														<reference key="NSSupport" ref="26"/>
 														<reference key="NSBackgroundColor" ref="934732725"/>
@@ -2659,16 +2980,19 @@
 													<reference key="NSTableView" ref="238622922"/>
 												</object>
 											</object>
-											<double key="NSIntercellSpacingWidth">3.000000e+00</double>
-											<double key="NSIntercellSpacingHeight">2.000000e+00</double>
+											<double key="NSIntercellSpacingWidth">3</double>
+											<double key="NSIntercellSpacingHeight">2</double>
 											<reference key="NSBackgroundColor" ref="415231890"/>
 											<reference key="NSGridColor" ref="391761051"/>
-											<double key="NSRowHeight">4.000000e+01</double>
+											<double key="NSRowHeight">40</double>
 											<int key="NSTvFlags">-692060160</int>
+											<reference key="NSDelegate"/>
+											<reference key="NSDataSource"/>
 											<int key="NSColumnAutoresizingStyle">4</int>
 											<int key="NSDraggingSourceMaskForLocal">15</int>
 											<int key="NSDraggingSourceMaskForNonLocal">0</int>
 											<bool key="NSAllowsTypeSelect">YES</bool>
+											<int key="NSTableViewDraggingDestinationStyle">0</int>
 										</object>
 									</object>
 									<string key="NSFrame">{{1, 1}, {246, 331}}</string>
@@ -2685,7 +3009,7 @@
 									<reference key="NSSuperview" ref="199390391"/>
 									<reference key="NSTarget" ref="199390391"/>
 									<string key="NSAction">_doScroller:</string>
-									<double key="NSPercent">9.969970e-01</double>
+									<double key="NSPercent">0.99699699878692627</double>
 								</object>
 								<object class="NSScroller" id="400167025">
 									<reference key="NSNextResponder" ref="199390391"/>
@@ -2695,7 +3019,7 @@
 									<int key="NSsFlags">1</int>
 									<reference key="NSTarget" ref="199390391"/>
 									<string key="NSAction">_doScroller:</string>
-									<double key="NSPercent">9.959514e-01</double>
+									<double key="NSPercent">0.99595141410827637</double>
 								</object>
 							</object>
 							<string key="NSFrame">{{6, 26}, {263, 348}}</string>
@@ -2711,7 +3035,7 @@
 					<string key="NSFrameSize">{276, 378}</string>
 				</object>
 				<string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
-				<string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+				<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
 			</object>
 			<object class="NSCustomObject" id="517167976">
 				<string key="NSClassName">PortsTableController</string>
@@ -2736,6 +3060,10 @@
 					<string>depends_lib</string>
 					<string>depends_libAsString</string>
 					<string>escription</string>
+					<string>depends_build</string>
+					<string>depends_run</string>
+					<string>depends_fetch</string>
+					<string>depends_extract</string>
 				</object>
 				<string key="NSObjectClassName">MPPort</string>
 				<bool key="NSEditable">YES</bool>
@@ -2759,30 +3087,30 @@
 			<object class="NSWindowTemplate" id="614957216">
 				<int key="NSWindowStyleMask">8211</int>
 				<int key="NSWindowBacking">2</int>
-				<string key="NSWindowRect">{{196, 224}, {608, 286}}</string>
+				<string key="NSWindowRect">{{196, 124}, {608, 386}}</string>
 				<int key="NSWTFlags">1677721600</int>
 				<string key="NSWindowTitle">Window</string>
 				<string key="NSWindowClass">NSPanel</string>
 				<nil key="NSViewClass"/>
-				<string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
+				<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
 				<object class="NSView" key="NSWindowView" id="263175754">
-					<nil key="NSNextResponder"/>
+					<reference key="NSNextResponder"/>
 					<int key="NSvFlags">256</int>
 					<object class="NSMutableArray" key="NSSubviews">
 						<bool key="EncodedWithXMLCoder">YES</bool>
 						<object class="NSTextField" id="763615147">
 							<reference key="NSNextResponder" ref="263175754"/>
 							<int key="NSvFlags">268</int>
-							<string key="NSFrame">{{17, 250}, {537, 22}}</string>
+							<string key="NSFrame">{{17, 350}, {537, 22}}</string>
 							<reference key="NSSuperview" ref="263175754"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTextFieldCell" key="NSCell" id="707808617">
 								<int key="NSCellFlags">68288064</int>
 								<int key="NSCellFlags2">272630784</int>
 								<string key="NSContents">Name</string>
-								<object class="NSFont" key="NSSupport">
+								<object class="NSFont" key="NSSupport" id="388431320">
 									<string key="NSName">LucidaGrande</string>
-									<double key="NSSize">1.800000e+01</double>
+									<double key="NSSize">18</double>
 									<int key="NSfFlags">16</int>
 								</object>
 								<reference key="NSControlView" ref="763615147"/>
@@ -2796,7 +3124,7 @@
 						<object class="NSTextField" id="495846331">
 							<reference key="NSNextResponder" ref="263175754"/>
 							<int key="NSvFlags">292</int>
-							<string key="NSFrame">{{29, 65}, {144, 17}}</string>
+							<string key="NSFrame">{{29, 165}, {144, 17}}</string>
 							<reference key="NSSuperview" ref="263175754"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTextFieldCell" key="NSCell" id="798522413">
@@ -2812,7 +3140,7 @@
 						<object class="NSTextField" id="292148730">
 							<reference key="NSNextResponder" ref="263175754"/>
 							<int key="NSvFlags">292</int>
-							<string key="NSFrame">{{29, 40}, {144, 17}}</string>
+							<string key="NSFrame">{{29, 45}, {144, 17}}</string>
 							<reference key="NSSuperview" ref="263175754"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTextFieldCell" key="NSCell" id="998352231">
@@ -2828,7 +3156,7 @@
 						<object class="NSTextField" id="120636637">
 							<reference key="NSNextResponder" ref="263175754"/>
 							<int key="NSvFlags">292</int>
-							<string key="NSFrame">{{29, 15}, {144, 17}}</string>
+							<string key="NSFrame">{{29, 20}, {144, 17}}</string>
 							<reference key="NSSuperview" ref="263175754"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTextFieldCell" key="NSCell" id="966698815">
@@ -2844,16 +3172,16 @@
 						<object class="NSTextField" id="914889962">
 							<reference key="NSNextResponder" ref="263175754"/>
 							<int key="NSvFlags">270</int>
-							<string key="NSFrame">{{29, 163}, {562, 79}}</string>
+							<string key="NSFrame">{{29, 263}, {562, 79}}</string>
 							<reference key="NSSuperview" ref="263175754"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTextFieldCell" key="NSCell" id="483525090">
 								<int key="NSCellFlags">67239424</int>
 								<int key="NSCellFlags2">272629760</int>
-								<string type="base64-UTF8" key="NSContents">ZGVzY3JpcHRpb27igKY</string>
+								<string key="NSContents">description…</string>
 								<object class="NSFont" key="NSSupport">
 									<string key="NSName">LucidaGrande</string>
-									<double key="NSSize">1.300000e+01</double>
+									<double key="NSSize">13</double>
 									<int key="NSfFlags">16</int>
 								</object>
 								<reference key="NSControlView" ref="914889962"/>
@@ -2864,13 +3192,13 @@
 						<object class="NSTextField" id="652164161">
 							<reference key="NSNextResponder" ref="263175754"/>
 							<int key="NSvFlags">290</int>
-							<string key="NSFrame">{{175, 40}, {416, 17}}</string>
+							<string key="NSFrame">{{175, 45}, {416, 17}}</string>
 							<reference key="NSSuperview" ref="263175754"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTextFieldCell" key="NSCell" id="354994927">
 								<int key="NSCellFlags">68288064</int>
 								<int key="NSCellFlags2">272630784</int>
-								<string type="base64-UTF8" key="NSContents">cGxhdGZvcm1z4oCmA</string>
+								<string key="NSContents">platforms…</string>
 								<reference key="NSSupport" ref="782475540"/>
 								<reference key="NSControlView" ref="652164161"/>
 								<reference key="NSBackgroundColor" ref="377834071"/>
@@ -2880,13 +3208,13 @@
 						<object class="NSTextField" id="512124010">
 							<reference key="NSNextResponder" ref="263175754"/>
 							<int key="NSvFlags">290</int>
-							<string key="NSFrame">{{175, 15}, {416, 17}}</string>
+							<string key="NSFrame">{{175, 20}, {416, 17}}</string>
 							<reference key="NSSuperview" ref="263175754"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTextFieldCell" key="NSCell" id="933723021">
 								<int key="NSCellFlags">68288064</int>
 								<int key="NSCellFlags2">272630784</int>
-								<string type="base64-UTF8" key="NSContents">bWFpbnRhaW5lcnPigKY</string>
+								<string key="NSContents">maintainers…</string>
 								<reference key="NSSupport" ref="782475540"/>
 								<reference key="NSControlView" ref="512124010"/>
 								<reference key="NSBackgroundColor" ref="377834071"/>
@@ -2903,7 +3231,7 @@
 									<string>NSStringPboardType</string>
 								</object>
 							</object>
-							<string key="NSFrame">{{175, 65}, {416, 17}}</string>
+							<string key="NSFrame">{{175, 165}, {416, 17}}</string>
 							<reference key="NSSuperview" ref="263175754"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTokenFieldCell" key="NSCell" id="1041076608">
@@ -2915,7 +3243,7 @@
 									</object>
 									<object class="NSDictionary" key="NSAttributes">
 										<bool key="EncodedWithXMLCoder">YES</bool>
-										<object class="NSMutableArray" key="dict.sortedKeys">
+										<object class="NSArray" key="dict.sortedKeys">
 											<bool key="EncodedWithXMLCoder">YES</bool>
 											<string>NSAttachment</string>
 											<string>NSColor</string>
@@ -2951,7 +3279,7 @@
 								<reference key="NSBackgroundColor" ref="415231890"/>
 								<reference key="NSTextColor" ref="475656758"/>
 								<reference key="NSDelegate" ref="381832301"/>
-								<double key="NSCompletionDelay">0.000000e+00</double>
+								<double key="NSCompletionDelay">0.0</double>
 								<int key="NSTokenStyle">2</int>
 								<object class="NSArray" key="NS.representedObjects">
 									<bool key="EncodedWithXMLCoder">YES</bool>
@@ -2960,12 +3288,344 @@
 							</object>
 							<int key="NSTokenFieldVersion">2</int>
 						</object>
+						<object class="NSTextField" id="51619653">
+							<reference key="NSNextResponder" ref="263175754"/>
+							<int key="NSvFlags">292</int>
+							<string key="NSFrame">{{29, 140}, {144, 17}}</string>
+							<reference key="NSSuperview" ref="263175754"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTextFieldCell" key="NSCell" id="659320119">
+								<int key="NSCellFlags">68288064</int>
+								<int key="NSCellFlags2">272630784</int>
+								<string key="NSContents">Build Dependencies:</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="51619653"/>
+								<reference key="NSBackgroundColor" ref="377834071"/>
+								<reference key="NSTextColor" ref="102768443"/>
+							</object>
+						</object>
+						<object class="NSTokenField" id="613653874">
+							<reference key="NSNextResponder" ref="263175754"/>
+							<int key="NSvFlags">290</int>
+							<object class="NSMutableSet" key="NSDragTypes">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSArray" key="set.sortedObjects">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<string>NSStringPboardType</string>
+								</object>
+							</object>
+							<string key="NSFrame">{{175, 140}, {416, 17}}</string>
+							<reference key="NSSuperview" ref="263175754"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTokenFieldCell" key="NSCell" id="484672324">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">1073741824</int>
+								<object class="NSMutableAttributedString" key="NSContents">
+									<object class="NSMutableString" key="NSString">
+										<bytes key="NS.bytes">77+8A</bytes>
+									</object>
+									<object class="NSDictionary" key="NSAttributes">
+										<bool key="EncodedWithXMLCoder">YES</bool>
+										<object class="NSArray" key="dict.sortedKeys">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<string>NSAttachment</string>
+											<string>NSColor</string>
+											<string>NSFont</string>
+											<string>NSOriginalFont</string>
+											<string>NSParagraphStyle</string>
+										</object>
+										<object class="NSMutableArray" key="dict.values">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSTokenAttachment">
+												<nil key="NSFileWrapper"/>
+												<object class="NSTokenAttachmentCell" key="NSCell">
+													<int key="NSCellFlags">67239488</int>
+													<int key="NSCellFlags2">134219776</int>
+													<string key="NSContents">deps...</string>
+													<reference key="NSSupport" ref="782475540"/>
+													<string key="NSRepresentedObject">deps...</string>
+													<reference key="NSTextColor" ref="475656758"/>
+												</object>
+												<reference key="NS.delegate" ref="484672324"/>
+											</object>
+											<reference ref="475656758"/>
+											<reference ref="782475540"/>
+											<reference ref="782475540"/>
+											<object class="NSMutableParagraphStyle">
+												<nil key="NSTabStops"/>
+											</object>
+										</object>
+									</object>
+								</object>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="613653874"/>
+								<reference key="NSBackgroundColor" ref="415231890"/>
+								<reference key="NSTextColor" ref="475656758"/>
+								<reference key="NSDelegate" ref="613653874"/>
+								<double key="NSCompletionDelay">0.0</double>
+								<int key="NSTokenStyle">2</int>
+								<object class="NSArray" key="NS.representedObjects">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<string>deps...</string>
+								</object>
+							</object>
+							<int key="NSTokenFieldVersion">2</int>
+						</object>
+						<object class="NSTextField" id="921252007">
+							<reference key="NSNextResponder" ref="263175754"/>
+							<int key="NSvFlags">292</int>
+							<string key="NSFrame">{{29, 115}, {153, 17}}</string>
+							<reference key="NSSuperview" ref="263175754"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTextFieldCell" key="NSCell" id="283467999">
+								<int key="NSCellFlags">68288064</int>
+								<int key="NSCellFlags2">272630784</int>
+								<string key="NSContents">Runtime Dependencies:</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="921252007"/>
+								<reference key="NSBackgroundColor" ref="377834071"/>
+								<reference key="NSTextColor" ref="102768443"/>
+							</object>
+						</object>
+						<object class="NSTokenField" id="871494942">
+							<reference key="NSNextResponder" ref="263175754"/>
+							<int key="NSvFlags">290</int>
+							<object class="NSMutableSet" key="NSDragTypes">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSArray" key="set.sortedObjects">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<string>NSStringPboardType</string>
+								</object>
+							</object>
+							<string key="NSFrame">{{175, 115}, {416, 17}}</string>
+							<reference key="NSSuperview" ref="263175754"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTokenFieldCell" key="NSCell" id="459791851">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">1073741824</int>
+								<object class="NSMutableAttributedString" key="NSContents">
+									<object class="NSMutableString" key="NSString">
+										<bytes key="NS.bytes">77+8A</bytes>
+									</object>
+									<object class="NSDictionary" key="NSAttributes">
+										<bool key="EncodedWithXMLCoder">YES</bool>
+										<object class="NSArray" key="dict.sortedKeys">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<string>NSAttachment</string>
+											<string>NSColor</string>
+											<string>NSFont</string>
+											<string>NSOriginalFont</string>
+											<string>NSParagraphStyle</string>
+										</object>
+										<object class="NSMutableArray" key="dict.values">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSTokenAttachment">
+												<nil key="NSFileWrapper"/>
+												<object class="NSTokenAttachmentCell" key="NSCell">
+													<int key="NSCellFlags">67239488</int>
+													<int key="NSCellFlags2">134219776</int>
+													<string key="NSContents">deps...</string>
+													<reference key="NSSupport" ref="782475540"/>
+													<string key="NSRepresentedObject">deps...</string>
+													<reference key="NSTextColor" ref="475656758"/>
+												</object>
+												<reference key="NS.delegate" ref="459791851"/>
+											</object>
+											<reference ref="475656758"/>
+											<reference ref="782475540"/>
+											<reference ref="782475540"/>
+											<object class="NSMutableParagraphStyle">
+												<nil key="NSTabStops"/>
+											</object>
+										</object>
+									</object>
+								</object>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="871494942"/>
+								<reference key="NSBackgroundColor" ref="415231890"/>
+								<reference key="NSTextColor" ref="475656758"/>
+								<reference key="NSDelegate" ref="871494942"/>
+								<double key="NSCompletionDelay">0.0</double>
+								<int key="NSTokenStyle">2</int>
+								<object class="NSArray" key="NS.representedObjects">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<string>deps...</string>
+								</object>
+							</object>
+							<int key="NSTokenFieldVersion">2</int>
+						</object>
+						<object class="NSTextField" id="624888554">
+							<reference key="NSNextResponder" ref="263175754"/>
+							<int key="NSvFlags">292</int>
+							<string key="NSFrame">{{29, 90}, {153, 17}}</string>
+							<reference key="NSSuperview" ref="263175754"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTextFieldCell" key="NSCell" id="710300103">
+								<int key="NSCellFlags">68288064</int>
+								<int key="NSCellFlags2">272630784</int>
+								<string key="NSContents">Fetch Dependencies:</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="624888554"/>
+								<reference key="NSBackgroundColor" ref="377834071"/>
+								<reference key="NSTextColor" ref="102768443"/>
+							</object>
+						</object>
+						<object class="NSTokenField" id="674050419">
+							<reference key="NSNextResponder" ref="263175754"/>
+							<int key="NSvFlags">290</int>
+							<object class="NSMutableSet" key="NSDragTypes">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSArray" key="set.sortedObjects">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<string>NSStringPboardType</string>
+								</object>
+							</object>
+							<string key="NSFrame">{{175, 90}, {416, 17}}</string>
+							<reference key="NSSuperview" ref="263175754"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTokenFieldCell" key="NSCell" id="334580204">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">1073741824</int>
+								<object class="NSMutableAttributedString" key="NSContents">
+									<object class="NSMutableString" key="NSString">
+										<bytes key="NS.bytes">77+8A</bytes>
+									</object>
+									<object class="NSDictionary" key="NSAttributes">
+										<bool key="EncodedWithXMLCoder">YES</bool>
+										<object class="NSArray" key="dict.sortedKeys">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<string>NSAttachment</string>
+											<string>NSColor</string>
+											<string>NSFont</string>
+											<string>NSOriginalFont</string>
+											<string>NSParagraphStyle</string>
+										</object>
+										<object class="NSMutableArray" key="dict.values">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSTokenAttachment">
+												<nil key="NSFileWrapper"/>
+												<object class="NSTokenAttachmentCell" key="NSCell">
+													<int key="NSCellFlags">67239488</int>
+													<int key="NSCellFlags2">134219776</int>
+													<string key="NSContents">deps...</string>
+													<reference key="NSSupport" ref="782475540"/>
+													<string key="NSRepresentedObject">deps...</string>
+													<reference key="NSTextColor" ref="475656758"/>
+												</object>
+												<reference key="NS.delegate" ref="334580204"/>
+											</object>
+											<reference ref="475656758"/>
+											<reference ref="782475540"/>
+											<reference ref="782475540"/>
+											<object class="NSMutableParagraphStyle">
+												<nil key="NSTabStops"/>
+											</object>
+										</object>
+									</object>
+								</object>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="674050419"/>
+								<reference key="NSBackgroundColor" ref="415231890"/>
+								<reference key="NSTextColor" ref="475656758"/>
+								<reference key="NSDelegate" ref="674050419"/>
+								<double key="NSCompletionDelay">0.0</double>
+								<int key="NSTokenStyle">2</int>
+								<object class="NSArray" key="NS.representedObjects">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<string>deps...</string>
+								</object>
+							</object>
+							<int key="NSTokenFieldVersion">2</int>
+						</object>
+						<object class="NSTextField" id="132541940">
+							<reference key="NSNextResponder" ref="263175754"/>
+							<int key="NSvFlags">292</int>
+							<string key="NSFrame">{{29, 65}, {153, 17}}</string>
+							<reference key="NSSuperview" ref="263175754"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTextFieldCell" key="NSCell" id="432802925">
+								<int key="NSCellFlags">68288064</int>
+								<int key="NSCellFlags2">272630784</int>
+								<string key="NSContents">Extract Dependencies:</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="132541940"/>
+								<reference key="NSBackgroundColor" ref="377834071"/>
+								<reference key="NSTextColor" ref="102768443"/>
+							</object>
+						</object>
+						<object class="NSTokenField" id="543739730">
+							<reference key="NSNextResponder" ref="263175754"/>
+							<int key="NSvFlags">290</int>
+							<object class="NSMutableSet" key="NSDragTypes">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSArray" key="set.sortedObjects">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<string>NSStringPboardType</string>
+								</object>
+							</object>
+							<string key="NSFrame">{{175, 65}, {416, 17}}</string>
+							<reference key="NSSuperview" ref="263175754"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTokenFieldCell" key="NSCell" id="33003484">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">1073741824</int>
+								<object class="NSMutableAttributedString" key="NSContents">
+									<object class="NSMutableString" key="NSString">
+										<bytes key="NS.bytes">77+8A</bytes>
+									</object>
+									<object class="NSDictionary" key="NSAttributes">
+										<bool key="EncodedWithXMLCoder">YES</bool>
+										<object class="NSArray" key="dict.sortedKeys">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<string>NSAttachment</string>
+											<string>NSColor</string>
+											<string>NSFont</string>
+											<string>NSOriginalFont</string>
+											<string>NSParagraphStyle</string>
+										</object>
+										<object class="NSMutableArray" key="dict.values">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSTokenAttachment">
+												<nil key="NSFileWrapper"/>
+												<object class="NSTokenAttachmentCell" key="NSCell">
+													<int key="NSCellFlags">67239488</int>
+													<int key="NSCellFlags2">134219776</int>
+													<string key="NSContents">deps...</string>
+													<reference key="NSSupport" ref="782475540"/>
+													<string key="NSRepresentedObject">deps...</string>
+													<reference key="NSTextColor" ref="475656758"/>
+												</object>
+												<reference key="NS.delegate" ref="33003484"/>
+											</object>
+											<reference ref="475656758"/>
+											<reference ref="782475540"/>
+											<reference ref="782475540"/>
+											<object class="NSMutableParagraphStyle">
+												<nil key="NSTabStops"/>
+											</object>
+										</object>
+									</object>
+								</object>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="543739730"/>
+								<reference key="NSBackgroundColor" ref="415231890"/>
+								<reference key="NSTextColor" ref="475656758"/>
+								<reference key="NSDelegate" ref="543739730"/>
+								<double key="NSCompletionDelay">0.0</double>
+								<int key="NSTokenStyle">2</int>
+								<object class="NSArray" key="NS.representedObjects">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<string>deps...</string>
+								</object>
+							</object>
+							<int key="NSTokenFieldVersion">2</int>
+						</object>
 						<object class="NSImageView" id="777049616">
 							<reference key="NSNextResponder" ref="263175754"/>
 							<int key="NSvFlags">265</int>
 							<object class="NSMutableSet" key="NSDragTypes">
 								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSMutableArray" key="set.sortedObjects">
+								<object class="NSArray" key="set.sortedObjects">
 									<bool key="EncodedWithXMLCoder">YES</bool>
 									<string>Apple PDF pasteboard type</string>
 									<string>Apple PICT pasteboard type</string>
@@ -2975,7 +3635,7 @@
 									<string>NeXT TIFF v4.0 pasteboard type</string>
 								</object>
 							</object>
-							<string key="NSFrame">{{575, 254}, {32, 32}}</string>
+							<string key="NSFrame">{{575, 354}, {32, 32}}</string>
 							<reference key="NSSuperview" ref="263175754"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSImageCell" key="NSCell" id="15325454">
@@ -2991,7 +3651,7 @@
 						<object class="NSTextField" id="560892625">
 							<reference key="NSNextResponder" ref="263175754"/>
 							<int key="NSvFlags">292</int>
-							<string key="NSFrame">{{29, 90}, {60, 17}}</string>
+							<string key="NSFrame">{{29, 190}, {60, 17}}</string>
 							<reference key="NSSuperview" ref="263175754"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTextFieldCell" key="NSCell" id="322020470">
@@ -3014,7 +3674,7 @@
 									<string>NSStringPboardType</string>
 								</object>
 							</object>
-							<string key="NSFrame">{{175, 90}, {416, 17}}</string>
+							<string key="NSFrame">{{175, 190}, {416, 17}}</string>
 							<reference key="NSSuperview" ref="263175754"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTokenFieldCell" key="NSCell" id="501461887">
@@ -3026,7 +3686,7 @@
 									</object>
 									<object class="NSDictionary" key="NSAttributes">
 										<bool key="EncodedWithXMLCoder">YES</bool>
-										<object class="NSMutableArray" key="dict.sortedKeys">
+										<object class="NSArray" key="dict.sortedKeys">
 											<bool key="EncodedWithXMLCoder">YES</bool>
 											<string>NSAttachment</string>
 											<string>NSColor</string>
@@ -3062,7 +3722,7 @@
 								<reference key="NSBackgroundColor" ref="415231890"/>
 								<reference key="NSTextColor" ref="475656758"/>
 								<reference key="NSDelegate" ref="913553871"/>
-								<double key="NSCompletionDelay">0.000000e+00</double>
+								<double key="NSCompletionDelay">0.0</double>
 								<int key="NSTokenStyle">2</int>
 								<object class="NSArray" key="NS.representedObjects">
 									<bool key="EncodedWithXMLCoder">YES</bool>
@@ -3072,14 +3732,573 @@
 							<int key="NSTokenFieldVersion">2</int>
 						</object>
 					</object>
-					<string key="NSFrameSize">{608, 286}</string>
+					<string key="NSFrameSize">{608, 386}</string>
+					<reference key="NSSuperview"/>
 				</object>
 				<string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
-				<string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+				<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
 			</object>
 			<object class="NSCustomObject" id="245714563">
 				<string key="NSClassName">ActivityController</string>
 			</object>
+			<object class="NSCustomView" id="610590059">
+				<reference key="NSNextResponder"/>
+				<int key="NSvFlags">256</int>
+				<object class="NSMutableArray" key="NSSubviews">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="NSButton" id="452370589">
+						<reference key="NSNextResponder" ref="610590059"/>
+						<int key="NSvFlags">290</int>
+						<string key="NSFrame">{{0, -1}, {284, 35}}</string>
+						<reference key="NSSuperview" ref="610590059"/>
+						<bool key="NSEnabled">YES</bool>
+						<object class="NSButtonCell" key="NSCell" id="412817228">
+							<int key="NSCellFlags">-2080244224</int>
+							<int key="NSCellFlags2">134217728</int>
+							<string key="NSContents">Start</string>
+							<reference key="NSSupport" ref="782475540"/>
+							<reference key="NSControlView" ref="452370589"/>
+							<int key="NSButtonFlags">-2033434369</int>
+							<int key="NSButtonFlags2">162</int>
+							<string key="NSAlternateContents"/>
+							<string key="NSKeyEquivalent"/>
+							<int key="NSPeriodicDelay">400</int>
+							<int key="NSPeriodicInterval">75</int>
+						</object>
+					</object>
+					<object class="NSScrollView" id="271863607">
+						<reference key="NSNextResponder" ref="610590059"/>
+						<int key="NSvFlags">274</int>
+						<object class="NSMutableArray" key="NSSubviews">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="NSClipView" id="874476791">
+								<reference key="NSNextResponder" ref="271863607"/>
+								<int key="NSvFlags">2304</int>
+								<object class="NSMutableArray" key="NSSubviews">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<object class="NSTableView" id="7154443">
+										<reference key="NSNextResponder" ref="874476791"/>
+										<int key="NSvFlags">256</int>
+										<string key="NSFrameSize">{318, 418}</string>
+										<reference key="NSSuperview" ref="874476791"/>
+										<int key="NSViewLayerContentsRedrawPolicy">2</int>
+										<bool key="NSEnabled">YES</bool>
+										<object class="NSTableHeaderView" key="NSHeaderView" id="446743769">
+											<reference key="NSNextResponder" ref="171583958"/>
+											<int key="NSvFlags">256</int>
+											<string key="NSFrameSize">{318, 17}</string>
+											<reference key="NSSuperview" ref="171583958"/>
+											<int key="NSViewLayerContentsRedrawPolicy">2</int>
+											<reference key="NSTableView" ref="7154443"/>
+										</object>
+										<object class="_NSCornerView" key="NSCornerView" id="989237356">
+											<reference key="NSNextResponder" ref="271863607"/>
+											<int key="NSvFlags">-2147483392</int>
+											<string key="NSFrame">{{1, 0}, {1, 0}}</string>
+											<reference key="NSSuperview" ref="271863607"/>
+											<int key="NSViewLayerContentsRedrawPolicy">2</int>
+										</object>
+										<object class="NSMutableArray" key="NSTableColumns">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSTableColumn" id="112554963">
+												<double key="NSWidth">21</double>
+												<double key="NSMinWidth">10</double>
+												<double key="NSMaxWidth">3.4028234663852886e+38</double>
+												<object class="NSTableHeaderCell" key="NSHeaderCell">
+													<int key="NSCellFlags">75628096</int>
+													<int key="NSCellFlags2">2048</int>
+													<string key="NSContents"/>
+													<reference key="NSSupport" ref="26"/>
+													<reference key="NSBackgroundColor" ref="934732725"/>
+													<reference key="NSTextColor" ref="67059057"/>
+												</object>
+												<object class="NSImageCell" key="NSDataCell" id="398455812">
+													<int key="NSCellFlags">67239424</int>
+													<int key="NSCellFlags2">33685504</int>
+													<reference key="NSSupport" ref="26"/>
+													<int key="NSAlign">4</int>
+													<int key="NSScale">0</int>
+													<int key="NSStyle">0</int>
+													<bool key="NSAnimates">NO</bool>
+												</object>
+												<int key="NSResizingMask">1</int>
+												<bool key="NSIsResizeable">YES</bool>
+												<bool key="NSIsEditable">YES</bool>
+												<reference key="NSTableView" ref="7154443"/>
+											</object>
+											<object class="NSTableColumn" id="315945499">
+												<double key="NSWidth">220</double>
+												<double key="NSMinWidth">40</double>
+												<double key="NSMaxWidth">1000</double>
+												<object class="NSTableHeaderCell" key="NSHeaderCell">
+													<int key="NSCellFlags">75628096</int>
+													<int key="NSCellFlags2">2048</int>
+													<string key="NSContents">Port</string>
+													<reference key="NSSupport" ref="26"/>
+													<object class="NSColor" key="NSBackgroundColor" id="132211374">
+														<int key="NSColorSpace">3</int>
+														<bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes>
+													</object>
+													<reference key="NSTextColor" ref="67059057"/>
+												</object>
+												<object class="NSTextFieldCell" key="NSDataCell" id="372671123">
+													<int key="NSCellFlags">337772096</int>
+													<int key="NSCellFlags2">2048</int>
+													<string key="NSContents">Text Cell</string>
+													<reference key="NSSupport" ref="782475540"/>
+													<reference key="NSControlView" ref="7154443"/>
+													<reference key="NSBackgroundColor" ref="800202432"/>
+													<reference key="NSTextColor" ref="475656758"/>
+												</object>
+												<int key="NSResizingMask">1</int>
+												<bool key="NSIsResizeable">YES</bool>
+												<bool key="NSIsEditable">YES</bool>
+												<reference key="NSTableView" ref="7154443"/>
+											</object>
+											<object class="NSTableColumn" id="1036951787">
+												<double key="NSWidth">68</double>
+												<double key="NSMinWidth">40</double>
+												<double key="NSMaxWidth">1000</double>
+												<object class="NSTableHeaderCell" key="NSHeaderCell">
+													<int key="NSCellFlags">75628096</int>
+													<int key="NSCellFlags2">2048</int>
+													<string key="NSContents">Operation</string>
+													<reference key="NSSupport" ref="26"/>
+													<reference key="NSBackgroundColor" ref="132211374"/>
+													<reference key="NSTextColor" ref="67059057"/>
+												</object>
+												<object class="NSTextFieldCell" key="NSDataCell" id="1061167304">
+													<int key="NSCellFlags">337772096</int>
+													<int key="NSCellFlags2">2048</int>
+													<string key="NSContents">Text Cell</string>
+													<reference key="NSSupport" ref="782475540"/>
+													<reference key="NSControlView" ref="7154443"/>
+													<reference key="NSBackgroundColor" ref="800202432"/>
+													<reference key="NSTextColor" ref="475656758"/>
+												</object>
+												<int key="NSResizingMask">1</int>
+												<bool key="NSIsResizeable">YES</bool>
+												<bool key="NSIsEditable">YES</bool>
+												<reference key="NSTableView" ref="7154443"/>
+											</object>
+										</object>
+										<double key="NSIntercellSpacingWidth">3</double>
+										<double key="NSIntercellSpacingHeight">2</double>
+										<reference key="NSBackgroundColor" ref="415231890"/>
+										<reference key="NSGridColor" ref="391761051"/>
+										<double key="NSRowHeight">17</double>
+										<int key="NSTvFlags">314572800</int>
+										<reference key="NSDelegate"/>
+										<reference key="NSDataSource"/>
+										<int key="NSColumnAutoresizingStyle">4</int>
+										<int key="NSDraggingSourceMaskForLocal">15</int>
+										<int key="NSDraggingSourceMaskForNonLocal">0</int>
+										<bool key="NSAllowsTypeSelect">YES</bool>
+										<int key="NSTableViewDraggingDestinationStyle">0</int>
+									</object>
+								</object>
+								<string key="NSFrame">{{1, 17}, {282, 418}}</string>
+								<reference key="NSSuperview" ref="271863607"/>
+								<reference key="NSNextKeyView" ref="7154443"/>
+								<int key="NSViewLayerContentsRedrawPolicy">2</int>
+								<reference key="NSDocView" ref="7154443"/>
+								<reference key="NSBGColor" ref="800202432"/>
+								<int key="NScvFlags">4</int>
+							</object>
+							<object class="NSScroller" id="24793711">
+								<reference key="NSNextResponder" ref="271863607"/>
+								<int key="NSvFlags">-2147483392</int>
+								<string key="NSFrame">{{-100, -100}, {15, -15}}</string>
+								<reference key="NSSuperview" ref="271863607"/>
+								<int key="NSViewLayerContentsRedrawPolicy">2</int>
+								<reference key="NSTarget" ref="271863607"/>
+								<string key="NSAction">_doScroller:</string>
+								<double key="NSCurValue">1</double>
+								<double key="NSPercent">0.94339621067047119</double>
+							</object>
+							<object class="NSScroller" id="570962116">
+								<reference key="NSNextResponder" ref="271863607"/>
+								<int key="NSvFlags">-2147483392</int>
+								<string key="NSFrame">{{-100, -100}, {224, 15}}</string>
+								<reference key="NSSuperview" ref="271863607"/>
+								<int key="NSViewLayerContentsRedrawPolicy">2</int>
+								<bool key="NSEnabled">YES</bool>
+								<int key="NSsFlags">1</int>
+								<reference key="NSTarget" ref="271863607"/>
+								<string key="NSAction">_doScroller:</string>
+								<double key="NSPercent">0.99581587314605713</double>
+							</object>
+							<object class="NSClipView" id="171583958">
+								<reference key="NSNextResponder" ref="271863607"/>
+								<int key="NSvFlags">2304</int>
+								<object class="NSMutableArray" key="NSSubviews">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<reference ref="446743769"/>
+								</object>
+								<string key="NSFrame">{{1, 0}, {282, 17}}</string>
+								<reference key="NSSuperview" ref="271863607"/>
+								<reference key="NSNextKeyView" ref="446743769"/>
+								<int key="NSViewLayerContentsRedrawPolicy">2</int>
+								<reference key="NSDocView" ref="446743769"/>
+								<reference key="NSBGColor" ref="800202432"/>
+								<int key="NScvFlags">4</int>
+							</object>
+							<reference ref="989237356"/>
+						</object>
+						<string key="NSFrame">{{0, 32}, {284, 436}}</string>
+						<reference key="NSSuperview" ref="610590059"/>
+						<reference key="NSNextKeyView" ref="874476791"/>
+						<int key="NSViewLayerContentsRedrawPolicy">2</int>
+						<int key="NSsFlags">658</int>
+						<reference key="NSVScroller" ref="24793711"/>
+						<reference key="NSHScroller" ref="570962116"/>
+						<reference key="NSContentView" ref="874476791"/>
+						<reference key="NSHeaderClipView" ref="171583958"/>
+						<reference key="NSCornerView" ref="989237356"/>
+						<bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
+					</object>
+				</object>
+				<string key="NSFrameSize">{284, 468}</string>
+				<reference key="NSSuperview"/>
+				<string key="NSClassName">NSView</string>
+			</object>
+			<object class="NSDrawer" id="379104054">
+				<nil key="NSNextResponder"/>
+				<string key="NSContentSize">{200, 100}</string>
+				<string key="NSMinContentSize">{0, 0}</string>
+				<string key="NSMaxContentSize">{10000, 10000}</string>
+				<int key="NSPreferredEdge">1</int>
+				<double key="NSLeadingOffset">0.0</double>
+				<double key="NSTrailingOffset">15</double>
+				<nil key="NSParentWindow"/>
+				<nil key="NSDelegate"/>
+			</object>
+			<object class="NSArrayController" id="194540380">
+				<object class="NSMutableArray" key="NSDeclaredKeys">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>id</string>
+					<string>operation</string>
+					<string>port</string>
+					<string>variants</string>
+					<string>image</string>
+				</object>
+				<bool key="NSEditable">YES</bool>
+				<object class="_NSManagedProxy" key="_NSManagedProxy"/>
+				<bool key="NSPreservesSelection">YES</bool>
+				<bool key="NSSelectsInsertedObjects">YES</bool>
+				<bool key="NSFilterRestrictsInsertion">YES</bool>
+				<bool key="NSClearsFilterPredicateOnInsertion">YES</bool>
+			</object>
+			<object class="NSWindowTemplate" id="817372175">
+				<int key="NSWindowStyleMask">8211</int>
+				<int key="NSWindowBacking">2</int>
+				<string key="NSWindowRect">{{196, 312}, {366, 198}}</string>
+				<int key="NSWTFlags">1677721600</int>
+				<string key="NSWindowTitle">Window</string>
+				<string key="NSWindowClass">NSPanel</string>
+				<nil key="NSViewClass"/>
+				<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
+				<object class="NSView" key="NSWindowView" id="59672295">
+					<reference key="NSNextResponder"/>
+					<int key="NSvFlags">256</int>
+					<object class="NSMutableArray" key="NSSubviews">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSTextField" id="52967408">
+							<reference key="NSNextResponder" ref="59672295"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{17, 162}, {537, 22}}</string>
+							<reference key="NSSuperview" ref="59672295"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTextFieldCell" key="NSCell" id="432075803">
+								<int key="NSCellFlags">68288064</int>
+								<int key="NSCellFlags2">272630784</int>
+								<string key="NSContents">Name</string>
+								<reference key="NSSupport" ref="388431320"/>
+								<reference key="NSControlView" ref="52967408"/>
+								<reference key="NSBackgroundColor" ref="377834071"/>
+								<reference key="NSTextColor" ref="102768443"/>
+							</object>
+						</object>
+						<object class="NSImageView" id="168062728">
+							<reference key="NSNextResponder" ref="59672295"/>
+							<int key="NSvFlags">265</int>
+							<object class="NSMutableSet" key="NSDragTypes">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSArray" key="set.sortedObjects">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<string>Apple PDF pasteboard type</string>
+									<string>Apple PICT pasteboard type</string>
+									<string>Apple PNG pasteboard type</string>
+									<string>NSFilenamesPboardType</string>
+									<string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
+									<string>NeXT TIFF v4.0 pasteboard type</string>
+								</object>
+							</object>
+							<string key="NSFrame">{{575, 166}, {32, 32}}</string>
+							<reference key="NSSuperview" ref="59672295"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSImageCell" key="NSCell" id="301345659">
+								<int key="NSCellFlags">130560</int>
+								<int key="NSCellFlags2">33554432</int>
+								<int key="NSAlign">0</int>
+								<int key="NSScale">2</int>
+								<int key="NSStyle">0</int>
+								<bool key="NSAnimates">NO</bool>
+							</object>
+							<bool key="NSEditable">YES</bool>
+						</object>
+						<object class="NSButton" id="519462480">
+							<reference key="NSNextResponder" ref="59672295"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{204, 138}, {144, 18}}</string>
+							<reference key="NSSuperview" ref="59672295"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="864596472">
+								<int key="NSCellFlags">-2080244224</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">First Variant</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="519462480"/>
+								<int key="NSButtonFlags">1211912703</int>
+								<int key="NSButtonFlags2">2</int>
+								<object class="NSCustomResource" key="NSNormalImage" id="685496496">
+									<string key="NSClassName">NSImage</string>
+									<string key="NSResourceName">NSSwitch</string>
+								</object>
+								<object class="NSButtonImageSource" key="NSAlternateImage" id="707746207">
+									<string key="NSImageName">NSSwitch</string>
+								</object>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="596417819">
+							<reference key="NSNextResponder" ref="59672295"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{21, 138}, {144, 18}}</string>
+							<reference key="NSSuperview" ref="59672295"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="818925231">
+								<int key="NSCellFlags">-2080244224</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">Zero Variant</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="596417819"/>
+								<int key="NSButtonFlags">1211912703</int>
+								<int key="NSButtonFlags2">2</int>
+								<reference key="NSNormalImage" ref="685496496"/>
+								<reference key="NSAlternateImage" ref="707746207"/>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="24998687">
+							<reference key="NSNextResponder" ref="59672295"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{21, 118}, {144, 18}}</string>
+							<reference key="NSSuperview" ref="59672295"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="1020278873">
+								<int key="NSCellFlags">-2080244224</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">Second Variant</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="24998687"/>
+								<int key="NSButtonFlags">1211912703</int>
+								<int key="NSButtonFlags2">2</int>
+								<reference key="NSNormalImage" ref="685496496"/>
+								<reference key="NSAlternateImage" ref="707746207"/>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="319810427">
+							<reference key="NSNextResponder" ref="59672295"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{204, 118}, {144, 18}}</string>
+							<reference key="NSSuperview" ref="59672295"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="644322806">
+								<int key="NSCellFlags">-2080244224</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">Third Variant</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="319810427"/>
+								<int key="NSButtonFlags">1211912703</int>
+								<int key="NSButtonFlags2">2</int>
+								<reference key="NSNormalImage" ref="685496496"/>
+								<reference key="NSAlternateImage" ref="707746207"/>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="377089720">
+							<reference key="NSNextResponder" ref="59672295"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{21, 98}, {144, 18}}</string>
+							<reference key="NSSuperview" ref="59672295"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="865380386">
+								<int key="NSCellFlags">-2080244224</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">Fourth Variant</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="377089720"/>
+								<int key="NSButtonFlags">1211912703</int>
+								<int key="NSButtonFlags2">2</int>
+								<reference key="NSNormalImage" ref="685496496"/>
+								<reference key="NSAlternateImage" ref="707746207"/>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="1062541729">
+							<reference key="NSNextResponder" ref="59672295"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{204, 98}, {144, 18}}</string>
+							<reference key="NSSuperview" ref="59672295"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="511982010">
+								<int key="NSCellFlags">-2080244224</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">Fifth Variant</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="1062541729"/>
+								<int key="NSButtonFlags">1211912703</int>
+								<int key="NSButtonFlags2">2</int>
+								<reference key="NSNormalImage" ref="685496496"/>
+								<reference key="NSAlternateImage" ref="707746207"/>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="259245956">
+							<reference key="NSNextResponder" ref="59672295"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{21, 78}, {144, 18}}</string>
+							<reference key="NSSuperview" ref="59672295"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="59227764">
+								<int key="NSCellFlags">-2080244224</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">Sixth Variant</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="259245956"/>
+								<int key="NSButtonFlags">1211912703</int>
+								<int key="NSButtonFlags2">2</int>
+								<reference key="NSNormalImage" ref="685496496"/>
+								<reference key="NSAlternateImage" ref="707746207"/>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="827446577">
+							<reference key="NSNextResponder" ref="59672295"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{204, 78}, {144, 18}}</string>
+							<reference key="NSSuperview" ref="59672295"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="386000867">
+								<int key="NSCellFlags">-2080244224</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">Seventh Variant</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="827446577"/>
+								<int key="NSButtonFlags">1211912703</int>
+								<int key="NSButtonFlags2">2</int>
+								<reference key="NSNormalImage" ref="685496496"/>
+								<reference key="NSAlternateImage" ref="707746207"/>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="160311832">
+							<reference key="NSNextResponder" ref="59672295"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{21, 58}, {144, 18}}</string>
+							<reference key="NSSuperview" ref="59672295"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="61274906">
+								<int key="NSCellFlags">-2080244224</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">Eighth Variant</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="160311832"/>
+								<int key="NSButtonFlags">1211912703</int>
+								<int key="NSButtonFlags2">2</int>
+								<reference key="NSNormalImage" ref="685496496"/>
+								<reference key="NSAlternateImage" ref="707746207"/>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="296240922">
+							<reference key="NSNextResponder" ref="59672295"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{204, 58}, {144, 18}}</string>
+							<reference key="NSSuperview" ref="59672295"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="1061949477">
+								<int key="NSCellFlags">-2080244224</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">Ninth Variant</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="296240922"/>
+								<int key="NSButtonFlags">1211912703</int>
+								<int key="NSButtonFlags2">2</int>
+								<reference key="NSNormalImage" ref="685496496"/>
+								<reference key="NSAlternateImage" ref="707746207"/>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="839828551">
+							<reference key="NSNextResponder" ref="59672295"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{17, 12}, {96, 32}}</string>
+							<reference key="NSSuperview" ref="59672295"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="949798598">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">134217728</int>
+								<string key="NSContents">Go</string>
+								<reference key="NSSupport" ref="782475540"/>
+								<reference key="NSControlView" ref="839828551"/>
+								<int key="NSButtonFlags">-2038284033</int>
+								<int key="NSButtonFlags2">129</int>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+					</object>
+					<string key="NSFrameSize">{366, 198}</string>
+					<reference key="NSSuperview"/>
+				</object>
+				<string key="NSScreenRect">{{0, 0}, {1024, 578}}</string>
+				<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
+			</object>
 		</object>
 		<object class="IBObjectContainer" key="IBDocument.Objects">
 			<object class="NSMutableArray" key="connectionRecords">
@@ -3537,14 +4756,14 @@
 							<string key="NSKeyPath">arrangedObjects.state</string>
 							<object class="NSDictionary" key="NSOptions">
 								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSMutableArray" key="dict.sortedKeys">
+								<object class="NSArray" key="dict.sortedKeys">
 									<bool key="EncodedWithXMLCoder">YES</bool>
 									<string>NSRaisesForNotApplicableKeys</string>
 									<string>NSValueTransformerName</string>
 								</object>
 								<object class="NSMutableArray" key="dict.values">
 									<bool key="EncodedWithXMLCoder">YES</bool>
-									<boolean value="NO" id="6"/>
+									<boolean value="NO"/>
 									<string>StateTransformer</string>
 								</object>
 							</object>
@@ -3590,14 +4809,6 @@
 					<int key="connectionID">571</int>
 				</object>
 				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">install:</string>
-						<reference key="source" ref="800227439"/>
-						<reference key="destination" ref="650498606"/>
-					</object>
-					<int key="connectionID">629</int>
-				</object>
-				<object class="IBConnectionRecord">
 					<object class="IBOutletConnection" key="connection">
 						<string key="label">ports</string>
 						<reference key="source" ref="800227439"/>
@@ -3810,26 +5021,6 @@
 					<int key="connectionID">763</int>
 				</object>
 				<object class="IBConnectionRecord">
-					<object class="IBBindingConnection" key="connection">
-						<string key="label">enabled: busy</string>
-						<reference key="source" ref="650498606"/>
-						<reference key="destination" ref="245714563"/>
-						<object class="NSNibBindingConnector" key="connector">
-							<reference key="NSSource" ref="650498606"/>
-							<reference key="NSDestination" ref="245714563"/>
-							<string key="NSLabel">enabled: busy</string>
-							<string key="NSBinding">enabled</string>
-							<string key="NSKeyPath">busy</string>
-							<object class="NSDictionary" key="NSOptions">
-								<string key="NS.key.0">NSValueTransformerName</string>
-								<string key="NS.object.0">NSNegateBoolean</string>
-							</object>
-							<int key="NSNibBindingConnectorVersion">2</int>
-						</object>
-					</object>
-					<int key="connectionID">775</int>
-				</object>
-				<object class="IBConnectionRecord">
 					<object class="IBOutletConnection" key="connection">
 						<string key="label">activityController</string>
 						<reference key="source" ref="800227439"/>
@@ -3917,34 +5108,660 @@
 					</object>
 					<int key="connectionID">792</int>
 				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">install:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="543873840"/>
+					</object>
+					<int key="connectionID">808</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">enabled: busy</string>
+						<reference key="source" ref="543873840"/>
+						<reference key="destination" ref="245714563"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="543873840"/>
+							<reference key="NSDestination" ref="245714563"/>
+							<string key="NSLabel">enabled: busy</string>
+							<string key="NSBinding">enabled</string>
+							<string key="NSKeyPath">busy</string>
+							<object class="NSDictionary" key="NSOptions">
+								<string key="NS.key.0">NSValueTransformerName</string>
+								<string key="NS.object.0">NSNegateBoolean</string>
+							</object>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">816</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">uninstall:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="877751138"/>
+					</object>
+					<int key="connectionID">817</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">upgrade:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="680840106"/>
+					</object>
+					<int key="connectionID">818</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">sync:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="478357944"/>
+					</object>
+					<int key="connectionID">819</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">selfupdate:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="856307295"/>
+					</object>
+					<int key="connectionID">820</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">contentView</string>
+						<reference key="source" ref="379104054"/>
+						<reference key="destination" ref="610590059"/>
+					</object>
+					<int key="connectionID">844</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">parentWindow</string>
+						<reference key="source" ref="379104054"/>
+						<reference key="destination" ref="972006081"/>
+					</object>
+					<int key="connectionID">845</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">drawer</string>
+						<reference key="source" ref="517167976"/>
+						<reference key="destination" ref="379104054"/>
+					</object>
+					<int key="connectionID">846</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">delegate</string>
+						<reference key="source" ref="379104054"/>
+						<reference key="destination" ref="517167976"/>
+					</object>
+					<int key="connectionID">847</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">toggle:</string>
+						<reference key="source" ref="517167976"/>
+						<reference key="destination" ref="598409621"/>
+					</object>
+					<int key="connectionID">849</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">drawerTable</string>
+						<reference key="source" ref="517167976"/>
+						<reference key="destination" ref="7154443"/>
+					</object>
+					<int key="connectionID">859</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">queue</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="194540380"/>
+					</object>
+					<int key="connectionID">868</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">startQueueButton</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="452370589"/>
+					</object>
+					<int key="connectionID">871</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">startQueue:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="452370589"/>
+					</object>
+					<int key="connectionID">873</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: arrangedObjects.operation</string>
+						<reference key="source" ref="1036951787"/>
+						<reference key="destination" ref="194540380"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="1036951787"/>
+							<reference key="NSDestination" ref="194540380"/>
+							<string key="NSLabel">value: arrangedObjects.operation</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">arrangedObjects.operation</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">880</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: arrangedObjects.port</string>
+						<reference key="source" ref="315945499"/>
+						<reference key="destination" ref="194540380"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="315945499"/>
+							<reference key="NSDestination" ref="194540380"/>
+							<string key="NSLabel">value: arrangedObjects.port</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">arrangedObjects.port</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">881</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">install:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="235232064"/>
+					</object>
+					<int key="connectionID">902</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">enabled: busy</string>
+						<reference key="source" ref="235232064"/>
+						<reference key="destination" ref="245714563"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="235232064"/>
+							<reference key="NSDestination" ref="245714563"/>
+							<string key="NSLabel">enabled: busy</string>
+							<string key="NSBinding">enabled</string>
+							<string key="NSKeyPath">busy</string>
+							<object class="NSDictionary" key="NSOptions">
+								<string key="NS.key.0">NSValueTransformerName</string>
+								<string key="NS.object.0">NSNegateBoolean</string>
+							</object>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">908</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">enabled: busy</string>
+						<reference key="source" ref="385368191"/>
+						<reference key="destination" ref="245714563"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="385368191"/>
+							<reference key="NSDestination" ref="245714563"/>
+							<string key="NSLabel">enabled: busy</string>
+							<string key="NSBinding">enabled</string>
+							<string key="NSKeyPath">busy</string>
+							<object class="NSDictionary" key="NSOptions">
+								<string key="NS.key.0">NSValueTransformerName</string>
+								<string key="NS.object.0">NSNegateBoolean</string>
+							</object>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">912</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">contentArray: queueArray</string>
+						<reference key="source" ref="194540380"/>
+						<reference key="destination" ref="800227439"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="194540380"/>
+							<reference key="NSDestination" ref="800227439"/>
+							<string key="NSLabel">contentArray: queueArray</string>
+							<string key="NSBinding">contentArray</string>
+							<string key="NSKeyPath">queueArray</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">915</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: arrangedObjects.image</string>
+						<reference key="source" ref="112554963"/>
+						<reference key="destination" ref="194540380"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="112554963"/>
+							<reference key="NSDestination" ref="194540380"/>
+							<string key="NSLabel">value: arrangedObjects.image</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">arrangedObjects.image</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">918</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">install:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="174594480"/>
+					</object>
+					<int key="connectionID">925</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">enabled: busy</string>
+						<reference key="source" ref="174594480"/>
+						<reference key="destination" ref="245714563"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="174594480"/>
+							<reference key="NSDestination" ref="245714563"/>
+							<string key="NSLabel">enabled: busy</string>
+							<string key="NSBinding">enabled</string>
+							<string key="NSKeyPath">busy</string>
+							<object class="NSDictionary" key="NSOptions">
+								<string key="NS.key.0">NSValueTransformerName</string>
+								<string key="NS.object.0">NSNegateBoolean</string>
+							</object>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">926</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">uninstall:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="393937824"/>
+					</object>
+					<int key="connectionID">928</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">upgrade:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="379934832"/>
+					</object>
+					<int key="connectionID">930</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">sync:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="826438341"/>
+					</object>
+					<int key="connectionID">932</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">selfupdate:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="602577672"/>
+					</object>
+					<int key="connectionID">934</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: selection.state</string>
+						<reference key="source" ref="168062728"/>
+						<reference key="destination" ref="341892693"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="168062728"/>
+							<reference key="NSDestination" ref="341892693"/>
+							<string key="NSLabel">value: selection.state</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">selection.state</string>
+							<object class="NSDictionary" key="NSOptions">
+								<string key="NS.key.0">NSValueTransformerName</string>
+								<string key="NS.object.0">StateTransformer</string>
+							</object>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">960</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: selection.name</string>
+						<reference key="source" ref="52967408"/>
+						<reference key="destination" ref="341892693"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="52967408"/>
+							<reference key="NSDestination" ref="341892693"/>
+							<string key="NSLabel">value: selection.name</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">selection.name</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">961</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">title: selection.name</string>
+						<reference key="source" ref="817372175"/>
+						<reference key="destination" ref="341892693"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="817372175"/>
+							<reference key="NSDestination" ref="341892693"/>
+							<string key="NSLabel">title: selection.name</string>
+							<string key="NSBinding">title</string>
+							<string key="NSKeyPath">selection.name</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">963</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">variantsPanel</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="817372175"/>
+					</object>
+					<int key="connectionID">968</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">installWithVariantsPerform:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="839828551"/>
+					</object>
+					<int key="connectionID">977</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">installWithVariantsChoose:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="385368191"/>
+					</object>
+					<int key="connectionID">978</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">chckbx1</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="519462480"/>
+					</object>
+					<int key="connectionID">989</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">chckbx2</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="24998687"/>
+					</object>
+					<int key="connectionID">990</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">chckbx3</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="319810427"/>
+					</object>
+					<int key="connectionID">991</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">chckbx4</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="377089720"/>
+					</object>
+					<int key="connectionID">992</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">chckbx0</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="596417819"/>
+					</object>
+					<int key="connectionID">996</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">chckbx5</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="1062541729"/>
+					</object>
+					<int key="connectionID">1007</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">chckbx6</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="259245956"/>
+					</object>
+					<int key="connectionID">1008</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">chckbx7</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="827446577"/>
+					</object>
+					<int key="connectionID">1009</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">chckbx8</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="160311832"/>
+					</object>
+					<int key="connectionID">1010</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">chckbx9</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="296240922"/>
+					</object>
+					<int key="connectionID">1011</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">queue</string>
+						<reference key="source" ref="7154443"/>
+						<reference key="destination" ref="194540380"/>
+					</object>
+					<int key="connectionID">1022</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: selection.depends_build</string>
+						<reference key="source" ref="613653874"/>
+						<reference key="destination" ref="341892693"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="613653874"/>
+							<reference key="NSDestination" ref="341892693"/>
+							<string key="NSLabel">value: selection.depends_build</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">selection.depends_build</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">1028</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: selection.depends_run</string>
+						<reference key="source" ref="871494942"/>
+						<reference key="destination" ref="341892693"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="871494942"/>
+							<reference key="NSDestination" ref="341892693"/>
+							<string key="NSLabel">value: selection.depends_run</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">selection.depends_run</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">1034</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">toggleInfoPanel:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="284139052"/>
+					</object>
+					<int key="connectionID">1037</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">infoPanel</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="614957216"/>
+					</object>
+					<int key="connectionID">1038</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: selection.depends_fetch</string>
+						<reference key="source" ref="674050419"/>
+						<reference key="destination" ref="341892693"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="674050419"/>
+							<reference key="NSDestination" ref="341892693"/>
+							<string key="NSLabel">value: selection.depends_fetch</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">selection.depends_fetch</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">1051</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: selection.depends_extract</string>
+						<reference key="source" ref="543739730"/>
+						<reference key="destination" ref="341892693"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="543739730"/>
+							<reference key="NSDestination" ref="341892693"/>
+							<string key="NSLabel">value: selection.depends_extract</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">selection.depends_extract</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">1052</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">clickCheckbox:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="596417819"/>
+					</object>
+					<int key="connectionID">1053</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">clickCheckbox:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="519462480"/>
+					</object>
+					<int key="connectionID">1054</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">clickCheckbox:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="24998687"/>
+					</object>
+					<int key="connectionID">1055</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">clickCheckbox:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="319810427"/>
+					</object>
+					<int key="connectionID">1056</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">clickCheckbox:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="377089720"/>
+					</object>
+					<int key="connectionID">1057</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">clickCheckbox:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="1062541729"/>
+					</object>
+					<int key="connectionID">1058</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">clickCheckbox:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="259245956"/>
+					</object>
+					<int key="connectionID">1059</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">clickCheckbox:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="827446577"/>
+					</object>
+					<int key="connectionID">1060</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">clickCheckbox:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="160311832"/>
+					</object>
+					<int key="connectionID">1061</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">clickCheckbox:</string>
+						<reference key="source" ref="800227439"/>
+						<reference key="destination" ref="296240922"/>
+					</object>
+					<int key="connectionID">1062</int>
+				</object>
 			</object>
 			<object class="IBMutableOrderedSet" key="objectRecords">
 				<object class="NSArray" key="orderedObjects">
 					<bool key="EncodedWithXMLCoder">YES</bool>
 					<object class="IBObjectRecord">
 						<int key="objectID">0</int>
-						<object class="NSArray" key="object" id="1049">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-						</object>
+						<reference key="object" ref="0"/>
 						<reference key="children" ref="1048"/>
 						<nil key="parent"/>
 					</object>
 					<object class="IBObjectRecord">
 						<int key="objectID">-2</int>
 						<reference key="object" ref="1021"/>
-						<reference key="parent" ref="1049"/>
-						<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">File's Owner</string>
 					</object>
 					<object class="IBObjectRecord">
 						<int key="objectID">-1</int>
 						<reference key="object" ref="1014"/>
-						<reference key="parent" ref="1049"/>
+						<reference key="parent" ref="0"/>
 						<string key="objectName">First Responder</string>
 					</object>
 					<object class="IBObjectRecord">
 						<int key="objectID">-3</int>
 						<reference key="object" ref="1050"/>
-						<reference key="parent" ref="1049"/>
+						<reference key="parent" ref="0"/>
 						<string key="objectName">Application</string>
 					</object>
 					<object class="IBObjectRecord">
@@ -3952,15 +5769,16 @@
 						<reference key="object" ref="649796088"/>
 						<object class="NSMutableArray" key="children">
 							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="713487014"/>
 							<reference ref="694149608"/>
 							<reference ref="391199113"/>
 							<reference ref="952259628"/>
 							<reference ref="379814623"/>
 							<reference ref="586577488"/>
 							<reference ref="626404410"/>
+							<reference ref="417668003"/>
+							<reference ref="713487014"/>
 						</object>
-						<reference key="parent" ref="1049"/>
+						<reference key="parent" ref="0"/>
 						<string key="objectName">MainMenu</string>
 					</object>
 					<object class="IBObjectRecord">
@@ -4526,7 +6344,7 @@
 							<reference ref="439893737"/>
 							<reference ref="978062640"/>
 						</object>
-						<reference key="parent" ref="1049"/>
+						<reference key="parent" ref="0"/>
 					</object>
 					<object class="IBObjectRecord">
 						<int key="objectID">372</int>
@@ -4548,12 +6366,13 @@
 							<reference ref="869476631"/>
 							<reference ref="49194268"/>
 							<reference ref="618891101"/>
-							<reference ref="650498606"/>
 							<reference ref="244855577"/>
 							<reference ref="433945624"/>
 							<reference ref="1018787369"/>
 							<reference ref="815358429"/>
 							<reference ref="651362317"/>
+							<reference ref="725383560"/>
+							<reference ref="284139052"/>
 						</object>
 						<reference key="parent" ref="972006081"/>
 					</object>
@@ -4579,7 +6398,7 @@
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<reference ref="187671130"/>
 						</object>
-						<reference key="parent" ref="1049"/>
+						<reference key="parent" ref="0"/>
 					</object>
 					<object class="IBObjectRecord">
 						<int key="objectID">436</int>
@@ -4690,18 +6509,18 @@
 					<object class="IBObjectRecord">
 						<int key="objectID">454</int>
 						<reference key="object" ref="517167976"/>
-						<reference key="parent" ref="1049"/>
+						<reference key="parent" ref="0"/>
 					</object>
 					<object class="IBObjectRecord">
 						<int key="objectID">456</int>
 						<reference key="object" ref="341892693"/>
-						<reference key="parent" ref="1049"/>
+						<reference key="parent" ref="0"/>
 						<string key="objectName">Ports</string>
 					</object>
 					<object class="IBObjectRecord">
 						<int key="objectID">458</int>
 						<reference key="object" ref="868875933"/>
-						<reference key="parent" ref="1049"/>
+						<reference key="parent" ref="0"/>
 					</object>
 					<object class="IBObjectRecord">
 						<int key="objectID">418</int>
@@ -4820,9 +6639,9 @@
 						<reference key="object" ref="872100568"/>
 						<object class="NSMutableArray" key="children">
 							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="385089462"/>
+							<reference ref="755579174"/>
 							<reference ref="715417482"/>
-							<reference ref="755579174"/>
-							<reference ref="385089462"/>
 						</object>
 						<reference key="parent" ref="815512319"/>
 					</object>
@@ -4837,108 +6656,6 @@
 						<reference key="parent" ref="815512319"/>
 					</object>
 					<object class="IBObjectRecord">
-						<int key="objectID">379</int>
-						<reference key="object" ref="715417482"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="542996579"/>
-							<reference ref="919684674"/>
-						</object>
-						<reference key="parent" ref="872100568"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">380</int>
-						<reference key="object" ref="755579174"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="785841008"/>
-							<reference ref="437845126"/>
-						</object>
-						<reference key="parent" ref="872100568"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">381</int>
-						<reference key="object" ref="785841008"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="874205404"/>
-							<reference ref="836577780"/>
-						</object>
-						<reference key="parent" ref="755579174"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">382</int>
-						<reference key="object" ref="437845126"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="607508980"/>
-							<reference ref="1050413450"/>
-							<reference ref="40118016"/>
-							<reference ref="147590798"/>
-							<reference ref="294835276"/>
-						</object>
-						<reference key="parent" ref="755579174"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">383</int>
-						<reference key="object" ref="607508980"/>
-						<reference key="parent" ref="437845126"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">384</int>
-						<reference key="object" ref="1050413450"/>
-						<reference key="parent" ref="437845126"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">385</int>
-						<reference key="object" ref="40118016"/>
-						<reference key="parent" ref="437845126"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">386</int>
-						<reference key="object" ref="147590798"/>
-						<reference key="parent" ref="437845126"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">387</int>
-						<reference key="object" ref="294835276"/>
-						<reference key="parent" ref="437845126"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">391</int>
-						<reference key="object" ref="542996579"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="638205081"/>
-							<reference ref="102426883"/>
-						</object>
-						<reference key="parent" ref="715417482"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">392</int>
-						<reference key="object" ref="919684674"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="215583482"/>
-						</object>
-						<reference key="parent" ref="715417482"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">393</int>
-						<reference key="object" ref="215583482"/>
-						<reference key="parent" ref="919684674"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">394</int>
-						<reference key="object" ref="102426883"/>
-						<reference key="parent" ref="542996579"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">395</int>
-						<reference key="object" ref="638205081"/>
-						<reference key="parent" ref="542996579"/>
-					</object>
-					<object class="IBObjectRecord">
 						<int key="objectID">552</int>
 						<reference key="object" ref="401655277"/>
 						<reference key="parent" ref="285794460"/>
@@ -4949,91 +6666,15 @@
 						<reference key="parent" ref="169664854"/>
 					</object>
 					<object class="IBObjectRecord">
-						<int key="objectID">572</int>
-						<reference key="object" ref="385089462"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="137032907"/>
-							<reference ref="410720919"/>
-							<reference ref="761227369"/>
-						</object>
-						<reference key="parent" ref="872100568"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">573</int>
-						<reference key="object" ref="137032907"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="316739235"/>
-						</object>
-						<reference key="parent" ref="385089462"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">577</int>
-						<reference key="object" ref="410720919"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="694675644"/>
-						</object>
-						<reference key="parent" ref="385089462"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">581</int>
-						<reference key="object" ref="694675644"/>
-						<reference key="parent" ref="410720919"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">585</int>
-						<reference key="object" ref="316739235"/>
-						<reference key="parent" ref="137032907"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">614</int>
-						<reference key="object" ref="761227369"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="352720977"/>
-							<reference ref="1012628434"/>
-							<reference ref="512246893"/>
-							<reference ref="296621711"/>
-						</object>
-						<reference key="parent" ref="385089462"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">618</int>
-						<reference key="object" ref="352720977"/>
-						<reference key="parent" ref="761227369"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">619</int>
-						<reference key="object" ref="1012628434"/>
-						<reference key="parent" ref="761227369"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">620</int>
-						<reference key="object" ref="512246893"/>
-						<reference key="parent" ref="761227369"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">621</int>
-						<reference key="object" ref="296621711"/>
-						<reference key="parent" ref="761227369"/>
-					</object>
-					<object class="IBObjectRecord">
 						<int key="objectID">503</int>
 						<reference key="object" ref="1022824499"/>
-						<reference key="parent" ref="1049"/>
+						<reference key="parent" ref="0"/>
 						<string key="objectName">ActionLauncher</string>
 					</object>
 					<object class="IBObjectRecord">
-						<int key="objectID">627</int>
-						<reference key="object" ref="650498606"/>
-						<reference key="parent" ref="978062640"/>
-					</object>
-					<object class="IBObjectRecord">
 						<int key="objectID">628</int>
 						<reference key="object" ref="800227439"/>
-						<reference key="parent" ref="1049"/>
+						<reference key="parent" ref="0"/>
 					</object>
 					<object class="IBObjectRecord">
 						<int key="objectID">631</int>
@@ -5058,7 +6699,7 @@
 					<object class="IBObjectRecord">
 						<int key="objectID">651</int>
 						<reference key="object" ref="517804865"/>
-						<reference key="parent" ref="1049"/>
+						<reference key="parent" ref="0"/>
 					</object>
 					<object class="IBObjectRecord">
 						<int key="objectID">657</int>
@@ -5067,7 +6708,7 @@
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<reference ref="263175754"/>
 						</object>
-						<reference key="parent" ref="1049"/>
+						<reference key="parent" ref="0"/>
 					</object>
 					<object class="IBObjectRecord">
 						<int key="objectID">658</int>
@@ -5085,6 +6726,14 @@
 							<reference ref="914889962"/>
 							<reference ref="913553871"/>
 							<reference ref="560892625"/>
+							<reference ref="51619653"/>
+							<reference ref="613653874"/>
+							<reference ref="921252007"/>
+							<reference ref="871494942"/>
+							<reference ref="624888554"/>
+							<reference ref="674050419"/>
+							<reference ref="132541940"/>
+							<reference ref="543739730"/>
 						</object>
 						<reference key="parent" ref="614957216"/>
 					</object>
@@ -5250,7 +6899,7 @@
 					<object class="IBObjectRecord">
 						<int key="objectID">764</int>
 						<reference key="object" ref="245714563"/>
-						<reference key="parent" ref="1049"/>
+						<reference key="parent" ref="0"/>
 					</object>
 					<object class="IBObjectRecord">
 						<int key="objectID">766</int>
@@ -5272,26 +6921,812 @@
 						<reference key="parent" ref="1009077985"/>
 					</object>
 					<object class="IBObjectRecord">
-						<int key="objectID">788</int>
-						<reference key="object" ref="874205404"/>
-						<reference key="parent" ref="785841008"/>
+						<int key="objectID">572</int>
+						<reference key="object" ref="385089462"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="761227369"/>
+							<reference ref="410720919"/>
+							<reference ref="137032907"/>
+						</object>
+						<reference key="parent" ref="872100568"/>
 					</object>
 					<object class="IBObjectRecord">
+						<int key="objectID">614</int>
+						<reference key="object" ref="761227369"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="296621711"/>
+							<reference ref="512246893"/>
+							<reference ref="1012628434"/>
+							<reference ref="352720977"/>
+						</object>
+						<reference key="parent" ref="385089462"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">621</int>
+						<reference key="object" ref="296621711"/>
+						<reference key="parent" ref="761227369"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">620</int>
+						<reference key="object" ref="512246893"/>
+						<reference key="parent" ref="761227369"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">619</int>
+						<reference key="object" ref="1012628434"/>
+						<reference key="parent" ref="761227369"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">618</int>
+						<reference key="object" ref="352720977"/>
+						<reference key="parent" ref="761227369"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">577</int>
+						<reference key="object" ref="410720919"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="694675644"/>
+						</object>
+						<reference key="parent" ref="385089462"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">581</int>
+						<reference key="object" ref="694675644"/>
+						<reference key="parent" ref="410720919"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">573</int>
+						<reference key="object" ref="137032907"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="316739235"/>
+						</object>
+						<reference key="parent" ref="385089462"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">585</int>
+						<reference key="object" ref="316739235"/>
+						<reference key="parent" ref="137032907"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">380</int>
+						<reference key="object" ref="755579174"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="437845126"/>
+							<reference ref="785841008"/>
+						</object>
+						<reference key="parent" ref="872100568"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">382</int>
+						<reference key="object" ref="437845126"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="294835276"/>
+							<reference ref="147590798"/>
+							<reference ref="40118016"/>
+							<reference ref="1050413450"/>
+							<reference ref="607508980"/>
+						</object>
+						<reference key="parent" ref="755579174"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">387</int>
+						<reference key="object" ref="294835276"/>
+						<reference key="parent" ref="437845126"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">386</int>
+						<reference key="object" ref="147590798"/>
+						<reference key="parent" ref="437845126"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">385</int>
+						<reference key="object" ref="40118016"/>
+						<reference key="parent" ref="437845126"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">384</int>
+						<reference key="object" ref="1050413450"/>
+						<reference key="parent" ref="437845126"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">383</int>
+						<reference key="object" ref="607508980"/>
+						<reference key="parent" ref="437845126"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">381</int>
+						<reference key="object" ref="785841008"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="836577780"/>
+							<reference ref="874205404"/>
+						</object>
+						<reference key="parent" ref="755579174"/>
+					</object>
+					<object class="IBObjectRecord">
 						<int key="objectID">789</int>
 						<reference key="object" ref="836577780"/>
 						<reference key="parent" ref="785841008"/>
 					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">788</int>
+						<reference key="object" ref="874205404"/>
+						<reference key="parent" ref="785841008"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">379</int>
+						<reference key="object" ref="715417482"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="919684674"/>
+							<reference ref="542996579"/>
+						</object>
+						<reference key="parent" ref="872100568"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">392</int>
+						<reference key="object" ref="919684674"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="215583482"/>
+						</object>
+						<reference key="parent" ref="715417482"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">393</int>
+						<reference key="object" ref="215583482"/>
+						<reference key="parent" ref="919684674"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">391</int>
+						<reference key="object" ref="542996579"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="102426883"/>
+							<reference ref="638205081"/>
+						</object>
+						<reference key="parent" ref="715417482"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">394</int>
+						<reference key="object" ref="102426883"/>
+						<reference key="parent" ref="542996579"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">395</int>
+						<reference key="object" ref="638205081"/>
+						<reference key="parent" ref="542996579"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">800</int>
+						<reference key="object" ref="417668003"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="329310906"/>
+						</object>
+						<reference key="parent" ref="649796088"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">801</int>
+						<reference key="object" ref="329310906"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="680840106"/>
+							<reference ref="877751138"/>
+							<reference ref="478357944"/>
+							<reference ref="856307295"/>
+							<reference ref="254116942"/>
+							<reference ref="543873840"/>
+							<reference ref="598409621"/>
+							<reference ref="174594480"/>
+							<reference ref="393937824"/>
+							<reference ref="379934832"/>
+							<reference ref="826438341"/>
+							<reference ref="602577672"/>
+						</object>
+						<reference key="parent" ref="417668003"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">802</int>
+						<reference key="object" ref="543873840"/>
+						<reference key="parent" ref="329310906"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">803</int>
+						<reference key="object" ref="680840106"/>
+						<reference key="parent" ref="329310906"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">804</int>
+						<reference key="object" ref="877751138"/>
+						<reference key="parent" ref="329310906"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">805</int>
+						<reference key="object" ref="478357944"/>
+						<reference key="parent" ref="329310906"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">806</int>
+						<reference key="object" ref="856307295"/>
+						<reference key="parent" ref="329310906"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">807</int>
+						<reference key="object" ref="254116942"/>
+						<reference key="parent" ref="329310906"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">821</int>
+						<reference key="object" ref="598409621"/>
+						<reference key="parent" ref="329310906"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">840</int>
+						<reference key="object" ref="610590059"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="452370589"/>
+							<reference ref="271863607"/>
+						</object>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">Drawer Content View</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">841</int>
+						<reference key="object" ref="379104054"/>
+						<reference key="parent" ref="0"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">867</int>
+						<reference key="object" ref="194540380"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">Queue</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">869</int>
+						<reference key="object" ref="452370589"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="412817228"/>
+						</object>
+						<reference key="parent" ref="610590059"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">870</int>
+						<reference key="object" ref="412817228"/>
+						<reference key="parent" ref="452370589"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">901</int>
+						<reference key="object" ref="725383560"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1026904284"/>
+						</object>
+						<reference key="parent" ref="978062640"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">895</int>
+						<reference key="object" ref="1026904284"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="8730458"/>
+						</object>
+						<reference key="parent" ref="725383560"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">896</int>
+						<reference key="object" ref="8730458"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="197671942"/>
+						</object>
+						<reference key="parent" ref="1026904284"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">897</int>
+						<reference key="object" ref="197671942"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="385368191"/>
+							<reference ref="235232064"/>
+							<reference ref="678275902"/>
+						</object>
+						<reference key="parent" ref="8730458"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">900</int>
+						<reference key="object" ref="385368191"/>
+						<reference key="parent" ref="197671942"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">899</int>
+						<reference key="object" ref="235232064"/>
+						<reference key="parent" ref="197671942"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">898</int>
+						<reference key="object" ref="678275902"/>
+						<reference key="parent" ref="197671942"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">924</int>
+						<reference key="object" ref="174594480"/>
+						<reference key="parent" ref="329310906"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">927</int>
+						<reference key="object" ref="393937824"/>
+						<reference key="parent" ref="329310906"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">929</int>
+						<reference key="object" ref="379934832"/>
+						<reference key="parent" ref="329310906"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">931</int>
+						<reference key="object" ref="826438341"/>
+						<reference key="parent" ref="329310906"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">933</int>
+						<reference key="object" ref="602577672"/>
+						<reference key="parent" ref="329310906"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">935</int>
+						<reference key="object" ref="817372175"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="59672295"/>
+						</object>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">Variants (Window)</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">936</int>
+						<reference key="object" ref="59672295"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="168062728"/>
+							<reference ref="52967408"/>
+							<reference ref="596417819"/>
+							<reference ref="519462480"/>
+							<reference ref="24998687"/>
+							<reference ref="319810427"/>
+							<reference ref="377089720"/>
+							<reference ref="1062541729"/>
+							<reference ref="259245956"/>
+							<reference ref="827446577"/>
+							<reference ref="160311832"/>
+							<reference ref="296240922"/>
+							<reference ref="839828551"/>
+						</object>
+						<reference key="parent" ref="817372175"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">940</int>
+						<reference key="object" ref="168062728"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="301345659"/>
+						</object>
+						<reference key="parent" ref="59672295"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">942</int>
+						<reference key="object" ref="52967408"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="432075803"/>
+						</object>
+						<reference key="parent" ref="59672295"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">953</int>
+						<reference key="object" ref="432075803"/>
+						<reference key="parent" ref="52967408"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">955</int>
+						<reference key="object" ref="301345659"/>
+						<reference key="parent" ref="168062728"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">969</int>
+						<reference key="object" ref="519462480"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="864596472"/>
+						</object>
+						<reference key="parent" ref="59672295"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">970</int>
+						<reference key="object" ref="864596472"/>
+						<reference key="parent" ref="519462480"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">971</int>
+						<reference key="object" ref="839828551"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="949798598"/>
+						</object>
+						<reference key="parent" ref="59672295"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">972</int>
+						<reference key="object" ref="949798598"/>
+						<reference key="parent" ref="839828551"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">979</int>
+						<reference key="object" ref="24998687"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1020278873"/>
+						</object>
+						<reference key="parent" ref="59672295"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">980</int>
+						<reference key="object" ref="1020278873"/>
+						<reference key="parent" ref="24998687"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">981</int>
+						<reference key="object" ref="319810427"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="644322806"/>
+						</object>
+						<reference key="parent" ref="59672295"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">982</int>
+						<reference key="object" ref="644322806"/>
+						<reference key="parent" ref="319810427"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">983</int>
+						<reference key="object" ref="377089720"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="865380386"/>
+						</object>
+						<reference key="parent" ref="59672295"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">984</int>
+						<reference key="object" ref="865380386"/>
+						<reference key="parent" ref="377089720"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">994</int>
+						<reference key="object" ref="596417819"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="818925231"/>
+						</object>
+						<reference key="parent" ref="59672295"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">995</int>
+						<reference key="object" ref="818925231"/>
+						<reference key="parent" ref="596417819"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">997</int>
+						<reference key="object" ref="1062541729"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="511982010"/>
+						</object>
+						<reference key="parent" ref="59672295"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">998</int>
+						<reference key="object" ref="259245956"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="59227764"/>
+						</object>
+						<reference key="parent" ref="59672295"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">999</int>
+						<reference key="object" ref="827446577"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="386000867"/>
+						</object>
+						<reference key="parent" ref="59672295"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1000</int>
+						<reference key="object" ref="386000867"/>
+						<reference key="parent" ref="827446577"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1001</int>
+						<reference key="object" ref="59227764"/>
+						<reference key="parent" ref="259245956"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1002</int>
+						<reference key="object" ref="511982010"/>
+						<reference key="parent" ref="1062541729"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1003</int>
+						<reference key="object" ref="160311832"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="61274906"/>
+						</object>
+						<reference key="parent" ref="59672295"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1004</int>
+						<reference key="object" ref="296240922"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1061949477"/>
+						</object>
+						<reference key="parent" ref="59672295"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1005</int>
+						<reference key="object" ref="1061949477"/>
+						<reference key="parent" ref="296240922"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1006</int>
+						<reference key="object" ref="61274906"/>
+						<reference key="parent" ref="160311832"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">850</int>
+						<reference key="object" ref="271863607"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="446743769"/>
+							<reference ref="7154443"/>
+							<reference ref="570962116"/>
+							<reference ref="24793711"/>
+						</object>
+						<reference key="parent" ref="610590059"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">854</int>
+						<reference key="object" ref="446743769"/>
+						<reference key="parent" ref="271863607"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">853</int>
+						<reference key="object" ref="7154443"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="112554963"/>
+							<reference ref="1036951787"/>
+							<reference ref="315945499"/>
+						</object>
+						<reference key="parent" ref="271863607"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">885</int>
+						<reference key="object" ref="112554963"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="398455812"/>
+						</object>
+						<reference key="parent" ref="7154443"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">916</int>
+						<reference key="object" ref="398455812"/>
+						<reference key="parent" ref="112554963"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">855</int>
+						<reference key="object" ref="1036951787"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1061167304"/>
+						</object>
+						<reference key="parent" ref="7154443"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">858</int>
+						<reference key="object" ref="1061167304"/>
+						<reference key="parent" ref="1036951787"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">856</int>
+						<reference key="object" ref="315945499"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="372671123"/>
+						</object>
+						<reference key="parent" ref="7154443"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">857</int>
+						<reference key="object" ref="372671123"/>
+						<reference key="parent" ref="315945499"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">852</int>
+						<reference key="object" ref="570962116"/>
+						<reference key="parent" ref="271863607"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">851</int>
+						<reference key="object" ref="24793711"/>
+						<reference key="parent" ref="271863607"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1023</int>
+						<reference key="object" ref="51619653"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="659320119"/>
+						</object>
+						<reference key="parent" ref="263175754"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1024</int>
+						<reference key="object" ref="613653874"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="484672324"/>
+						</object>
+						<reference key="parent" ref="263175754"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1025</int>
+						<reference key="object" ref="484672324"/>
+						<reference key="parent" ref="613653874"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1026</int>
+						<reference key="object" ref="659320119"/>
+						<reference key="parent" ref="51619653"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1029</int>
+						<reference key="object" ref="921252007"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="283467999"/>
+						</object>
+						<reference key="parent" ref="263175754"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1030</int>
+						<reference key="object" ref="871494942"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="459791851"/>
+						</object>
+						<reference key="parent" ref="263175754"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1031</int>
+						<reference key="object" ref="459791851"/>
+						<reference key="parent" ref="871494942"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1032</int>
+						<reference key="object" ref="283467999"/>
+						<reference key="parent" ref="921252007"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1035</int>
+						<reference key="object" ref="284139052"/>
+						<reference key="parent" ref="978062640"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1041</int>
+						<reference key="object" ref="624888554"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="710300103"/>
+						</object>
+						<reference key="parent" ref="263175754"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1042</int>
+						<reference key="object" ref="674050419"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="334580204"/>
+						</object>
+						<reference key="parent" ref="263175754"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1043</int>
+						<reference key="object" ref="334580204"/>
+						<reference key="parent" ref="674050419"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1044</int>
+						<reference key="object" ref="710300103"/>
+						<reference key="parent" ref="624888554"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1046</int>
+						<reference key="object" ref="132541940"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="432802925"/>
+						</object>
+						<reference key="parent" ref="263175754"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1047</int>
+						<reference key="object" ref="543739730"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="33003484"/>
+						</object>
+						<reference key="parent" ref="263175754"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1048</int>
+						<reference key="object" ref="33003484"/>
+						<reference key="parent" ref="543739730"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1049</int>
+						<reference key="object" ref="432802925"/>
+						<reference key="parent" ref="132541940"/>
+					</object>
 				</object>
 			</object>
 			<object class="NSMutableDictionary" key="flattenedProperties">
 				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="NSMutableArray" key="dict.sortedKeys">
+				<object class="NSArray" key="dict.sortedKeys">
 					<bool key="EncodedWithXMLCoder">YES</bool>
-					<string>-1.IBPluginDependency</string>
-					<string>-2.IBPluginDependency</string>
 					<string>-3.IBPluginDependency</string>
+					<string>1000.IBPluginDependency</string>
+					<string>1001.IBPluginDependency</string>
+					<string>1002.IBPluginDependency</string>
+					<string>1003.CustomClassName</string>
+					<string>1003.IBPluginDependency</string>
+					<string>1004.CustomClassName</string>
+					<string>1004.IBPluginDependency</string>
+					<string>1005.IBPluginDependency</string>
+					<string>1006.IBPluginDependency</string>
+					<string>1023.IBPluginDependency</string>
+					<string>1024.IBPluginDependency</string>
+					<string>1025.IBPluginDependency</string>
+					<string>1026.IBPluginDependency</string>
+					<string>1029.IBPluginDependency</string>
 					<string>103.IBPluginDependency</string>
 					<string>103.ImportedFromIB2</string>
+					<string>1030.IBPluginDependency</string>
+					<string>1031.IBPluginDependency</string>
+					<string>1032.IBPluginDependency</string>
+					<string>1035.IBPluginDependency</string>
+					<string>1041.IBPluginDependency</string>
+					<string>1042.IBPluginDependency</string>
+					<string>1043.IBPluginDependency</string>
+					<string>1044.IBPluginDependency</string>
+					<string>1046.IBPluginDependency</string>
+					<string>1047.IBPluginDependency</string>
+					<string>1048.IBPluginDependency</string>
+					<string>1049.IBPluginDependency</string>
+					<string>106.IBEditorWindowLastContentRect</string>
 					<string>106.IBPluginDependency</string>
 					<string>106.ImportedFromIB2</string>
 					<string>106.editorWindowContentRectSynchronizationRect</string>
@@ -5350,6 +7785,7 @@
 					<string>203.ImportedFromIB2</string>
 					<string>204.IBPluginDependency</string>
 					<string>204.ImportedFromIB2</string>
+					<string>205.IBEditorWindowLastContentRect</string>
 					<string>205.IBPluginDependency</string>
 					<string>205.ImportedFromIB2</string>
 					<string>205.editorWindowContentRectSynchronizationRect</string>
@@ -5393,6 +7829,7 @@
 					<string>236.ImportedFromIB2</string>
 					<string>239.IBPluginDependency</string>
 					<string>239.ImportedFromIB2</string>
+					<string>24.IBEditorWindowLastContentRect</string>
 					<string>24.IBPluginDependency</string>
 					<string>24.ImportedFromIB2</string>
 					<string>24.editorWindowContentRectSynchronizationRect</string>
@@ -5402,11 +7839,13 @@
 					<string>29.WindowOrigin</string>
 					<string>29.editorWindowContentRectSynchronizationRect</string>
 					<string>295.IBPluginDependency</string>
+					<string>296.IBEditorWindowLastContentRect</string>
 					<string>296.IBPluginDependency</string>
 					<string>296.editorWindowContentRectSynchronizationRect</string>
 					<string>297.IBPluginDependency</string>
 					<string>298.IBPluginDependency</string>
 					<string>299.IBPluginDependency</string>
+					<string>300.IBEditorWindowLastContentRect</string>
 					<string>300.IBPluginDependency</string>
 					<string>300.editorWindowContentRectSynchronizationRect</string>
 					<string>344.IBPluginDependency</string>
@@ -5425,6 +7864,7 @@
 					<string>354.IBPluginDependency</string>
 					<string>354.ImportedFromIB2</string>
 					<string>371.IBEditorWindowLastContentRect</string>
+					<string>371.IBPluginDependency</string>
 					<string>371.IBViewEditorWindowController.showingLayoutRectangles</string>
 					<string>371.IBWindowTemplateEditedContentRect</string>
 					<string>371.NSWindowTemplate.visibleAtLaunch</string>
@@ -5438,6 +7878,8 @@
 					<string>376.IBPluginDependency</string>
 					<string>377.IBPluginDependency</string>
 					<string>378.IBPluginDependency</string>
+					<string>379.IBPluginDependency</string>
+					<string>380.IBPluginDependency</string>
 					<string>381.IBPluginDependency</string>
 					<string>382.IBPluginDependency</string>
 					<string>383.IBPluginDependency</string>
@@ -5465,6 +7907,7 @@
 					<string>432.IBPluginDependency</string>
 					<string>433.IBPluginDependency</string>
 					<string>435.IBEditorWindowLastContentRect</string>
+					<string>435.IBPluginDependency</string>
 					<string>435.IBWindowTemplateEditedContentRect</string>
 					<string>435.NSWindowTemplate.visibleAtLaunch</string>
 					<string>436.IBPluginDependency</string>
@@ -5481,7 +7924,6 @@
 					<string>451.IBPluginDependency</string>
 					<string>452.IBPluginDependency</string>
 					<string>453.IBPluginDependency</string>
-					<string>454.IBPluginDependency</string>
 					<string>456.IBPluginDependency</string>
 					<string>458.IBPluginDependency</string>
 					<string>476.IBPluginDependency</string>
@@ -5489,7 +7931,6 @@
 					<string>478.IBPluginDependency</string>
 					<string>5.IBPluginDependency</string>
 					<string>5.ImportedFromIB2</string>
-					<string>503.IBPluginDependency</string>
 					<string>552.IBPluginDependency</string>
 					<string>557.IBPluginDependency</string>
 					<string>56.IBPluginDependency</string>
@@ -5499,6 +7940,7 @@
 					<string>57.ImportedFromIB2</string>
 					<string>57.editorWindowContentRectSynchronizationRect</string>
 					<string>572.CustomClassName</string>
+					<string>572.IBPluginDependency</string>
 					<string>573.IBPluginDependency</string>
 					<string>577.IBPluginDependency</string>
 					<string>58.IBPluginDependency</string>
@@ -5511,14 +7953,12 @@
 					<string>619.IBPluginDependency</string>
 					<string>620.IBPluginDependency</string>
 					<string>621.IBPluginDependency</string>
-					<string>627.IBPluginDependency</string>
-					<string>628.IBPluginDependency</string>
 					<string>631.IBPluginDependency</string>
 					<string>641.IBPluginDependency</string>
 					<string>645.IBPluginDependency</string>
 					<string>647.IBPluginDependency</string>
-					<string>651.IBPluginDependency</string>
 					<string>657.IBEditorWindowLastContentRect</string>
+					<string>657.IBPluginDependency</string>
 					<string>657.IBWindowTemplateEditedContentRect</string>
 					<string>657.NSWindowTemplate.visibleAtLaunch</string>
 					<string>658.IBPluginDependency</string>
@@ -5551,9 +7991,10 @@
 					<string>75.ImportedFromIB2</string>
 					<string>750.IBPluginDependency</string>
 					<string>753.IBPluginDependency</string>
+					<string>753.IBViewIntegration.shadowColor</string>
+					<string>754.IBAttributePlaceholdersKey</string>
 					<string>754.IBPluginDependency</string>
 					<string>762.IBPluginDependency</string>
-					<string>764.IBPluginDependency</string>
 					<string>766.IBPluginDependency</string>
 					<string>77.IBPluginDependency</string>
 					<string>77.ImportedFromIB2</string>
@@ -5567,166 +8008,270 @@
 					<string>79.ImportedFromIB2</string>
 					<string>80.IBPluginDependency</string>
 					<string>80.ImportedFromIB2</string>
+					<string>800.IBPluginDependency</string>
+					<string>801.IBEditorWindowLastContentRect</string>
+					<string>801.IBPluginDependency</string>
+					<string>802.IBPluginDependency</string>
+					<string>803.IBPluginDependency</string>
+					<string>804.IBPluginDependency</string>
+					<string>805.IBPluginDependency</string>
+					<string>806.IBPluginDependency</string>
+					<string>807.IBPluginDependency</string>
+					<string>81.IBEditorWindowLastContentRect</string>
 					<string>81.IBPluginDependency</string>
 					<string>81.ImportedFromIB2</string>
 					<string>81.editorWindowContentRectSynchronizationRect</string>
 					<string>82.IBPluginDependency</string>
 					<string>82.ImportedFromIB2</string>
+					<string>821.IBPluginDependency</string>
 					<string>83.IBPluginDependency</string>
 					<string>83.ImportedFromIB2</string>
+					<string>840.IBEditorWindowLastContentRect</string>
+					<string>840.IBPluginDependency</string>
+					<string>841.IBPluginDependency</string>
+					<string>850.IBPluginDependency</string>
+					<string>851.IBPluginDependency</string>
+					<string>852.IBPluginDependency</string>
+					<string>853.CustomClassName</string>
+					<string>853.IBPluginDependency</string>
+					<string>854.IBPluginDependency</string>
+					<string>855.IBPluginDependency</string>
+					<string>856.IBPluginDependency</string>
+					<string>857.IBPluginDependency</string>
+					<string>858.IBPluginDependency</string>
+					<string>867.IBPluginDependency</string>
+					<string>869.IBPluginDependency</string>
+					<string>870.IBPluginDependency</string>
+					<string>885.IBPluginDependency</string>
+					<string>895.IBPluginDependency</string>
+					<string>896.IBPluginDependency</string>
+					<string>897.IBEditorWindowLastContentRect</string>
+					<string>897.IBPluginDependency</string>
+					<string>898.IBPluginDependency</string>
+					<string>899.IBPluginDependency</string>
+					<string>900.IBPluginDependency</string>
+					<string>901.IBPluginDependency</string>
+					<string>916.IBPluginDependency</string>
 					<string>92.IBPluginDependency</string>
 					<string>92.ImportedFromIB2</string>
+					<string>924.IBPluginDependency</string>
+					<string>927.IBPluginDependency</string>
+					<string>929.IBPluginDependency</string>
+					<string>931.IBPluginDependency</string>
+					<string>933.IBPluginDependency</string>
+					<string>935.IBEditorWindowLastContentRect</string>
+					<string>935.IBPluginDependency</string>
+					<string>935.IBWindowTemplateEditedContentRect</string>
+					<string>935.NSWindowTemplate.visibleAtLaunch</string>
+					<string>936.IBPluginDependency</string>
+					<string>940.IBPluginDependency</string>
+					<string>942.IBPluginDependency</string>
+					<string>953.IBPluginDependency</string>
+					<string>955.IBPluginDependency</string>
+					<string>969.CustomClassName</string>
+					<string>969.IBPluginDependency</string>
+					<string>970.IBPluginDependency</string>
+					<string>971.IBPluginDependency</string>
+					<string>972.IBPluginDependency</string>
+					<string>979.CustomClassName</string>
+					<string>979.IBPluginDependency</string>
+					<string>980.IBPluginDependency</string>
+					<string>981.CustomClassName</string>
+					<string>981.IBPluginDependency</string>
+					<string>982.IBPluginDependency</string>
+					<string>983.CustomClassName</string>
+					<string>983.IBPluginDependency</string>
+					<string>984.IBPluginDependency</string>
+					<string>994.CustomClassName</string>
+					<string>994.IBPluginDependency</string>
+					<string>995.IBPluginDependency</string>
+					<string>997.CustomClassName</string>
+					<string>997.IBPluginDependency</string>
+					<string>998.CustomClassName</string>
+					<string>998.IBPluginDependency</string>
+					<string>999.CustomClassName</string>
+					<string>999.IBPluginDependency</string>
 				</object>
 				<object class="NSMutableArray" key="dict.values">
 					<bool key="EncodedWithXMLCoder">YES</bool>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilderKit</string>
-					<string>com.apple.InterfaceBuilderKit</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>MPCheckbox</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>MPCheckbox</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{609, 421}, {143, 23}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
 					<string>{{596, 852}, {216, 23}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>{{522, 812}, {146, 23}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>{{436, 809}, {64, 6}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>{{608, 612}, {275, 83}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
+					<string>{{540, 222}, {240, 243}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>{{187, 434}, {243, 243}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>{{608, 612}, {167, 43}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>{{608, 612}, {241, 103}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
+					<string>{{575, 352}, {194, 73}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>{{525, 802}, {197, 73}}</string>
-					<string>{{49, 434}, {478, 20}}</string>
+					<string>{{154, 465}, {558, 20}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>{74, 862}</string>
 					<string>{{6, 978}, {478, 20}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{525, 381}, {231, 43}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>{{475, 832}, {234, 43}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{664, 422}, {173, 43}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>{{231, 634}, {176, 43}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>{{608, 612}, {215, 63}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
-					<string>{{300, 235}, {773, 449}}</string>
-					<reference ref="6"/>
-					<string>{{300, 235}, {773, 449}}</string>
-					<reference ref="9"/>
+					<integer value="1"/>
+					<string>{{330, 127}, {773, 452}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="NO"/>
+					<string>{{330, 127}, {773, 452}}</string>
+					<integer value="1"/>
 					<string>{{33, 99}, {480, 360}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<real value="0.000000e+00"/>
+					<real value="0.0"/>
 					<reference ref="996506875"/>
-					<real value="0.000000e+00"/>
-					<real value="0.000000e+00"/>
+					<real value="0.0"/>
+					<real value="0.0"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -5737,6 +8282,8 @@
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>{{18, 625}, {91, 41}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -5750,16 +8297,16 @@
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>{{376, 695}, {617, 0}}</string>
+					<string>{{172, 579}, {617, 0}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>{{813, 36}, {276, 378}}</string>
-					<string>{{813, 36}, {276, 378}}</string>
-					<reference ref="6"/>
+					<string>{{598, 184}, {276, 378}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{598, 184}, {276, 378}}</string>
+					<boolean value="NO"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -5780,23 +8327,23 @@
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{366, 282}, {183, 183}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
-					<string>{{61, 251}, {245, 183}}</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>{{23, 794}, {245, 183}}</string>
 					<string>StatePredicateTemplate</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>{{170, 586}, {155, 79}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -5807,12 +8354,12 @@
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{354, 149}, {608, 386}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{354, 149}, {608, 386}}</string>
+					<boolean value="NO"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>{{77, 310}, {608, 286}}</string>
-					<string>{{77, 310}, {608, 286}}</string>
-					<reference ref="6"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -5825,56 +8372,133 @@
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<reference ref="996506875"/>
+					<object class="NSMutableDictionary">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<reference key="dict.sortedKeys" ref="0"/>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+						</object>
+					</object>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{384, 222}, {211, 243}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{498, 262}, {196, 203}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
 					<string>{{145, 474}, {199, 203}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<reference ref="9"/>
+					<integer value="1"/>
+					<string>{{330, 136}, {284, 468}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>MPQueueTableView</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{127, -106}, {602, 557}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{316, 191}, {366, 198}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{316, 191}, {366, 198}}</string>
+					<boolean value="NO"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>MPCheckbox</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>MPCheckbox</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>MPCheckbox</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>MPCheckbox</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>MPCheckbox</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>MPCheckbox</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>MPCheckbox</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>MPCheckbox</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 				</object>
 			</object>
 			<object class="NSMutableDictionary" key="unlocalizedProperties">
 				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="NSArray" key="dict.sortedKeys">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
+				<reference key="dict.sortedKeys" ref="0"/>
 				<object class="NSMutableArray" key="dict.values">
 					<bool key="EncodedWithXMLCoder">YES</bool>
 				</object>
@@ -5882,15 +8506,13 @@
 			<nil key="activeLocalization"/>
 			<object class="NSMutableDictionary" key="localizations">
 				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="NSArray" key="dict.sortedKeys">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
+				<reference key="dict.sortedKeys" ref="0"/>
 				<object class="NSMutableArray" key="dict.values">
 					<bool key="EncodedWithXMLCoder">YES</bool>
 				</object>
 			</object>
 			<nil key="sourceID"/>
-			<int key="maxID">792</int>
+			<int key="maxID">1062</int>
 		</object>
 		<object class="IBClassDescriber" key="IBDocument.Classes">
 			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -5900,7 +8522,7 @@
 					<string key="superclassName">NSObject</string>
 					<object class="NSMutableDictionary" key="outlets">
 						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSMutableArray" key="dict.sortedKeys">
+						<object class="NSArray" key="dict.sortedKeys">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>currentTask</string>
 							<string>operations</string>
@@ -5913,6 +8535,30 @@
 							<string>NSProgressIndicator</string>
 						</object>
 					</object>
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>currentTask</string>
+							<string>operations</string>
+							<string>progress</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBToOneOutletInfo">
+								<string key="name">currentTask</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">operations</string>
+								<string key="candidateClassName">NSTableView</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">progress</string>
+								<string key="candidateClassName">NSProgressIndicator</string>
+							</object>
+						</object>
+					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 						<string key="majorKey">IBProjectSource</string>
 						<string key="minorKey">ActivityController.h</string>
@@ -5939,13 +8585,18 @@
 					<string key="superclassName">NSObject</string>
 					<object class="NSMutableDictionary" key="actions">
 						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSMutableArray" key="dict.sortedKeys">
+						<object class="NSArray" key="dict.sortedKeys">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>cancel:</string>
+							<string>clickCheckbox:</string>
 							<string>install:</string>
+							<string>installWithVariantsChoose:</string>
+							<string>installWithVariantsPerform:</string>
 							<string>openPreferences:</string>
 							<string>selfupdate:</string>
+							<string>startQueue:</string>
 							<string>sync:</string>
+							<string>toggleInfoPanel:</string>
 							<string>uninstall:</string>
 							<string>upgrade:</string>
 						</object>
@@ -5958,75 +8609,428 @@
 							<string>id</string>
 							<string>id</string>
 							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
 						</object>
 					</object>
+					<object class="NSMutableDictionary" key="actionInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>cancel:</string>
+							<string>clickCheckbox:</string>
+							<string>install:</string>
+							<string>installWithVariantsChoose:</string>
+							<string>installWithVariantsPerform:</string>
+							<string>openPreferences:</string>
+							<string>selfupdate:</string>
+							<string>startQueue:</string>
+							<string>sync:</string>
+							<string>toggleInfoPanel:</string>
+							<string>uninstall:</string>
+							<string>upgrade:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBActionInfo">
+								<string key="name">cancel:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">clickCheckbox:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">install:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">installWithVariantsChoose:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">installWithVariantsPerform:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">openPreferences:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">selfupdate:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">startQueue:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">sync:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">toggleInfoPanel:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">uninstall:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">upgrade:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+						</object>
+					</object>
 					<object class="NSMutableDictionary" key="outlets">
 						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSMutableArray" key="dict.sortedKeys">
+						<object class="NSArray" key="dict.sortedKeys">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>activityController</string>
 							<string>cancel</string>
+							<string>chckbx0</string>
+							<string>chckbx1</string>
+							<string>chckbx2</string>
+							<string>chckbx3</string>
+							<string>chckbx4</string>
+							<string>chckbx5</string>
+							<string>chckbx6</string>
+							<string>chckbx7</string>
+							<string>chckbx8</string>
+							<string>chckbx9</string>
+							<string>infoPanel</string>
 							<string>ports</string>
+							<string>queue</string>
+							<string>queueArray</string>
+							<string>removeFromQueueButton</string>
+							<string>startQueueButton</string>
 							<string>tableController</string>
+							<string>variantsPanel</string>
 						</object>
 						<object class="NSMutableArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>ActivityController</string>
 							<string>NSToolbarItem</string>
+							<string>MPCheckbox</string>
+							<string>MPCheckbox</string>
+							<string>MPCheckbox</string>
+							<string>MPCheckbox</string>
+							<string>MPCheckbox</string>
+							<string>MPCheckbox</string>
+							<string>MPCheckbox</string>
+							<string>MPCheckbox</string>
+							<string>MPCheckbox</string>
+							<string>MPCheckbox</string>
+							<string>NSPanel</string>
 							<string>NSArrayController</string>
+							<string>NSArrayController</string>
+							<string>NSMutableArray</string>
+							<string>NSButton</string>
+							<string>NSButton</string>
 							<string>PortsTableController</string>
+							<string>NSPanel</string>
 						</object>
 					</object>
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>activityController</string>
+							<string>cancel</string>
+							<string>chckbx0</string>
+							<string>chckbx1</string>
+							<string>chckbx2</string>
+							<string>chckbx3</string>
+							<string>chckbx4</string>
+							<string>chckbx5</string>
+							<string>chckbx6</string>
+							<string>chckbx7</string>
+							<string>chckbx8</string>
+							<string>chckbx9</string>
+							<string>infoPanel</string>
+							<string>ports</string>
+							<string>queue</string>
+							<string>queueArray</string>
+							<string>removeFromQueueButton</string>
+							<string>startQueueButton</string>
+							<string>tableController</string>
+							<string>variantsPanel</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBToOneOutletInfo">
+								<string key="name">activityController</string>
+								<string key="candidateClassName">ActivityController</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">cancel</string>
+								<string key="candidateClassName">NSToolbarItem</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">chckbx0</string>
+								<string key="candidateClassName">MPCheckbox</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">chckbx1</string>
+								<string key="candidateClassName">MPCheckbox</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">chckbx2</string>
+								<string key="candidateClassName">MPCheckbox</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">chckbx3</string>
+								<string key="candidateClassName">MPCheckbox</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">chckbx4</string>
+								<string key="candidateClassName">MPCheckbox</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">chckbx5</string>
+								<string key="candidateClassName">MPCheckbox</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">chckbx6</string>
+								<string key="candidateClassName">MPCheckbox</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">chckbx7</string>
+								<string key="candidateClassName">MPCheckbox</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">chckbx8</string>
+								<string key="candidateClassName">MPCheckbox</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">chckbx9</string>
+								<string key="candidateClassName">MPCheckbox</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">infoPanel</string>
+								<string key="candidateClassName">NSPanel</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">ports</string>
+								<string key="candidateClassName">NSArrayController</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">queue</string>
+								<string key="candidateClassName">NSArrayController</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">queueArray</string>
+								<string key="candidateClassName">NSMutableArray</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">removeFromQueueButton</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">startQueueButton</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">tableController</string>
+								<string key="candidateClassName">PortsTableController</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">variantsPanel</string>
+								<string key="candidateClassName">NSPanel</string>
+							</object>
+						</object>
+					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 						<string key="majorKey">IBProjectSource</string>
 						<string key="minorKey">MPActionsController.h</string>
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">MPCheckbox</string>
+					<string key="superclassName">NSButton</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">MPCheckbox.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">MPPortTableView</string>
 					<string key="superclassName">NSTableView</string>
 					<object class="NSMutableDictionary" key="outlets">
 						<string key="NS.key.0">quickLookPanel</string>
 						<string key="NS.object.0">NSPanel</string>
 					</object>
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<string key="NS.key.0">quickLookPanel</string>
+						<object class="IBToOneOutletInfo" key="NS.object.0">
+							<string key="name">quickLookPanel</string>
+							<string key="candidateClassName">NSPanel</string>
+						</object>
+					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 						<string key="majorKey">IBProjectSource</string>
 						<string key="minorKey">MPPortTableView.h</string>
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">MPQueueTableView</string>
+					<string key="superclassName">NSTableView</string>
+					<object class="NSMutableDictionary" key="outlets">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>queue</string>
+							<string>queueArray</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>NSArrayController</string>
+							<string>NSMutableArray</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>queue</string>
+							<string>queueArray</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBToOneOutletInfo">
+								<string key="name">queue</string>
+								<string key="candidateClassName">NSArrayController</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">queueArray</string>
+								<string key="candidateClassName">NSMutableArray</string>
+							</object>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">MPQueueTableView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">PortsTableController</string>
 					<string key="superclassName">NSObject</string>
 					<object class="NSMutableDictionary" key="actions">
 						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSMutableArray" key="dict.sortedKeys">
+						<object class="NSArray" key="dict.sortedKeys">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>advancedSearch:</string>
 							<string>basicSearch:</string>
+							<string>close:</string>
 							<string>hidePredicateEditor:</string>
+							<string>open:</string>
+							<string>toggle:</string>
 						</object>
 						<object class="NSMutableArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>id</string>
 							<string>id</string>
 							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
 						</object>
 					</object>
+					<object class="NSMutableDictionary" key="actionInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>advancedSearch:</string>
+							<string>basicSearch:</string>
+							<string>close:</string>
+							<string>hidePredicateEditor:</string>
+							<string>open:</string>
+							<string>toggle:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBActionInfo">
+								<string key="name">advancedSearch:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">basicSearch:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">close:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">hidePredicateEditor:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">open:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">toggle:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+						</object>
+					</object>
 					<object class="NSMutableDictionary" key="outlets">
 						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSMutableArray" key="dict.sortedKeys">
+						<object class="NSArray" key="dict.sortedKeys">
 							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>drawer</string>
+							<string>drawerTable</string>
 							<string>mainWindow</string>
 							<string>portsTableView</string>
 							<string>predicateEditor</string>
 						</object>
 						<object class="NSMutableArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>NSDrawer</string>
+							<string>NSTableView</string>
 							<string>NSWindow</string>
 							<string>NSTableView</string>
 							<string>NSPredicateEditor</string>
 						</object>
 					</object>
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>drawer</string>
+							<string>drawerTable</string>
+							<string>mainWindow</string>
+							<string>portsTableView</string>
+							<string>predicateEditor</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBToOneOutletInfo">
+								<string key="name">drawer</string>
+								<string key="candidateClassName">NSDrawer</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">drawerTable</string>
+								<string key="candidateClassName">NSTableView</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">mainWindow</string>
+								<string key="candidateClassName">NSWindow</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">portsTableView</string>
+								<string key="candidateClassName">NSTableView</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">predicateEditor</string>
+								<string key="candidateClassName">NSPredicateEditor</string>
+							</object>
+						</object>
+					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 						<string key="majorKey">IBProjectSource</string>
 						<string key="minorKey">PortsTableController.h</string>
@@ -6039,9 +9043,16 @@
 						<string key="NS.key.0">selectPKGPath:</string>
 						<string key="NS.object.0">id</string>
 					</object>
+					<object class="NSMutableDictionary" key="actionInfosByName">
+						<string key="NS.key.0">selectPKGPath:</string>
+						<object class="IBActionInfo" key="NS.object.0">
+							<string key="name">selectPKGPath:</string>
+							<string key="candidateClassName">id</string>
+						</object>
+					</object>
 					<object class="NSMutableDictionary" key="outlets">
 						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSMutableArray" key="dict.sortedKeys">
+						<object class="NSArray" key="dict.sortedKeys">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>pkgPathField</string>
 							<string>preferencesWindow</string>
@@ -6052,6 +9063,25 @@
 							<string>NSWindow</string>
 						</object>
 					</object>
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>pkgPathField</string>
+							<string>preferencesWindow</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBToOneOutletInfo">
+								<string key="name">pkgPathField</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">preferencesWindow</string>
+								<string key="candidateClassName">NSWindow</string>
+							</object>
+						</object>
+					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 						<string key="majorKey">IBProjectSource</string>
 						<string key="minorKey">PreferencesController.h</string>
@@ -6066,9 +9096,1025 @@
 					</object>
 				</object>
 			</object>
+			<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSActionCell</string>
+					<string key="superclassName">NSCell</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSApplication</string>
+					<string key="superclassName">NSResponder</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="66433647">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSApplication</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="39124442">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSApplication</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="558180851">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSApplication</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSApplication</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSArray</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="112972833">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSArray.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSArray</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="735202257">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSArray</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="839228684">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSArray</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSPathUtilities.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSArray</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="1245">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSPredicate.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSArray</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="193317659">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSSortDescriptor.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSArrayController</string>
+					<string key="superclassName">NSObjectController</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSArrayController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSBrowser</string>
+					<string key="superclassName">NSControl</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="121406989">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSButton</string>
+					<string key="superclassName">NSControl</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSButton.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSButtonCell</string>
+					<string key="superclassName">NSActionCell</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSCell</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSControl</string>
+					<string key="superclassName">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="1003814961">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSController</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSDocument</string>
+					<string key="superclassName">NSObject</string>
+					<object class="NSMutableDictionary" key="actions">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>printDocument:</string>
+							<string>revertDocumentToSaved:</string>
+							<string>runPageLayout:</string>
+							<string>saveDocument:</string>
+							<string>saveDocumentAs:</string>
+							<string>saveDocumentTo:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="actionInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>printDocument:</string>
+							<string>revertDocumentToSaved:</string>
+							<string>runPageLayout:</string>
+							<string>saveDocument:</string>
+							<string>saveDocumentAs:</string>
+							<string>saveDocumentTo:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBActionInfo">
+								<string key="name">printDocument:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">revertDocumentToSaved:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">runPageLayout:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">saveDocument:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">saveDocumentAs:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">saveDocumentTo:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDocument.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSDocument</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDocumentScripting.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSDocumentController</string>
+					<string key="superclassName">NSObject</string>
+					<object class="NSMutableDictionary" key="actions">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>clearRecentDocuments:</string>
+							<string>newDocument:</string>
+							<string>openDocument:</string>
+							<string>saveAllDocuments:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="actionInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>clearRecentDocuments:</string>
+							<string>newDocument:</string>
+							<string>openDocument:</string>
+							<string>saveAllDocuments:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBActionInfo">
+								<string key="name">clearRecentDocuments:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">newDocument:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">openDocument:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">saveAllDocuments:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDocumentController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSDrawer</string>
+					<string key="superclassName">NSResponder</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="28756546">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSFormatter</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSImageCell</string>
+					<string key="superclassName">NSCell</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSImageCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSImageView</string>
+					<string key="superclassName">NSControl</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSImageView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSManagedObjectContext</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">CoreData.framework/Headers/NSManagedObjectContext.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMatrix</string>
+					<string key="superclassName">NSControl</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSMatrix.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMenu</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="56447782">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMenuItem</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="97860187">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMenuItemCell</string>
+					<string key="superclassName">NSButtonCell</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSMenuItemCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMovieView</string>
+					<string key="superclassName">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSMovieView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMutableArray</string>
+					<string key="superclassName">NSArray</string>
+					<reference key="sourceIdentifier" ref="112972833"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMutableArray</string>
+					<reference key="sourceIdentifier" ref="1245"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMutableArray</string>
+					<reference key="sourceIdentifier" ref="193317659"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSAlert.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSAnimation.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="66433647"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="39124442"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="121406989"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="558180851"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSComboBox.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSComboBoxCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="1003814961"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDatePickerCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDictionaryController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDragging.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="28756546"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSImage.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="56447782"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="956444149">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSRuleEditor.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSSound.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSSpeechRecognizer.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSSpeechSynthesizer.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSSplitView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSTabView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="901976361">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="582822853">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSText.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSTextStorage.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSTextView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="199044693">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSTokenField.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="121620714">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSTokenFieldCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="1070389980">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSToolbar.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="591452885">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="70466614">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="446074631">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSWindow.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="735202257"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="839228684"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Growl.framework/Headers/GrowlApplicationBridge.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObjectController</string>
+					<string key="superclassName">NSController</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSObjectController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSPanel</string>
+					<string key="superclassName">NSWindow</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSPanel.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSPopUpButton</string>
+					<string key="superclassName">NSButton</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSPopUpButton.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSPopUpButtonCell</string>
+					<string key="superclassName">NSMenuItemCell</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSPopUpButtonCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSPredicateEditor</string>
+					<string key="superclassName">NSRuleEditor</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSPredicateEditor.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSPredicateEditorRowTemplate</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSPredicateEditorRowTemplate.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSProgressIndicator</string>
+					<string key="superclassName">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSProgressIndicator.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSResponder</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSResponder</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSRuleEditor</string>
+					<string key="superclassName">NSControl</string>
+					<reference key="sourceIdentifier" ref="956444149"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSScrollView</string>
+					<string key="superclassName">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSScrollView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSScroller</string>
+					<string key="superclassName">NSControl</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSScroller.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSSearchField</string>
+					<string key="superclassName">NSTextField</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSSearchField.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSSearchFieldCell</string>
+					<string key="superclassName">NSTextFieldCell</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSSearchFieldCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSTableColumn</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSTableColumn.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSTableHeaderView</string>
+					<string key="superclassName">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSTableHeaderView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSTableView</string>
+					<string key="superclassName">NSControl</string>
+					<reference key="sourceIdentifier" ref="901976361"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSText</string>
+					<string key="superclassName">NSView</string>
+					<reference key="sourceIdentifier" ref="582822853"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSTextField</string>
+					<string key="superclassName">NSControl</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSTextField.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSTextFieldCell</string>
+					<string key="superclassName">NSActionCell</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSTextFieldCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSTokenField</string>
+					<string key="superclassName">NSTextField</string>
+					<reference key="sourceIdentifier" ref="199044693"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSTokenFieldCell</string>
+					<string key="superclassName">NSTextFieldCell</string>
+					<reference key="sourceIdentifier" ref="121620714"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSToolbar</string>
+					<string key="superclassName">NSObject</string>
+					<reference key="sourceIdentifier" ref="1070389980"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSToolbarItem</string>
+					<string key="superclassName">NSObject</string>
+					<reference key="sourceIdentifier" ref="591452885"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSUserDefaultsController</string>
+					<string key="superclassName">NSController</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSUserDefaultsController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSClipView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSView</string>
+					<reference key="sourceIdentifier" ref="97860187"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSView</string>
+					<string key="superclassName">NSResponder</string>
+					<reference key="sourceIdentifier" ref="70466614"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSWindow</string>
+					<reference key="sourceIdentifier" ref="28756546"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSWindow</string>
+					<string key="superclassName">NSResponder</string>
+					<reference key="sourceIdentifier" ref="446074631"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSWindow</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string>
+					</object>
+				</object>
+			</object>
 		</object>
 		<int key="IBDocument.localizationMode">0</int>
+		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+			<integer value="1050" key="NS.object.0"/>
+		</object>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+			<integer value="1050" key="NS.object.0"/>
+		</object>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
+			<integer value="3000" key="NS.object.0"/>
+		</object>
+		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
 		<string key="IBDocument.LastKnownRelativeProjectPath">../Pallet.xcodeproj</string>
 		<int key="IBDocument.defaultPropertyAccessControl">3</int>
+		<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSArray" key="dict.sortedKeys">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<string>Installed</string>
+				<string>NSMenuCheckmark</string>
+				<string>NSMenuMixedState</string>
+				<string>NSSwitch</string>
+				<string>TB_Cancel</string>
+				<string>TB_Info</string>
+				<string>TB_Install</string>
+				<string>TB_Selfupdate</string>
+				<string>TB_Sync</string>
+				<string>TB_Uninstall</string>
+				<string>TB_Upgrade</string>
+			</object>
+			<object class="NSMutableArray" key="dict.values">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<string>{13, 13}</string>
+				<string>{9, 8}</string>
+				<string>{7, 2}</string>
+				<string>{15, 15}</string>
+				<string>{512, 512}</string>
+				<string>{512, 512}</string>
+				<string>{512, 512}</string>
+				<string>{512, 512}</string>
+				<string>{512, 512}</string>
+				<string>{512, 512}</string>
+				<string>{512, 512}</string>
+			</object>
+		</object>
 	</data>
 </archive>

Copied: contrib/Pallet/Growl Registration Ticket.growlRegDict (from rev 72222, branches/gsoc10-gui/Pallet/Growl Registration Ticket.growlRegDict)
===================================================================
--- contrib/Pallet/Growl Registration Ticket.growlRegDict	                        (rev 0)
+++ contrib/Pallet/Growl Registration Ticket.growlRegDict	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>TicketVersion</key>
+	<integer>1</integer>
+	<key>AllNotifications</key>
+	<array>
+		<string>InstallCompleted</string>
+		<string>InstallFailed</string>
+		<string>UpgradeCompleted</string>
+		<string>UgradeFailed</string>
+		<string>UninstallCompleted</string>
+		<string>UninstallFailed</string>
+		<string>SelfupdateCompleted</string>
+		<string>SelfupdateFailed</string>
+		<string>SyncCompleted</string>
+		<string>SyncFailed</string>
+		<string>OperationsCompleted</string>
+		<string>OperationsFailed</string>
+	</array>
+</dict>
+</plist>

Deleted: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Growl
===================================================================
--- branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Growl	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Growl	2010-10-07 21:12:38 UTC (rev 72223)
@@ -1 +0,0 @@
-link Versions/Current/Growl
\ No newline at end of file

Copied: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Growl (from rev 72222, branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Growl)
===================================================================
--- contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Growl	                        (rev 0)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Growl	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1 @@
+link Versions/Current/Growl
\ No newline at end of file

Deleted: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Headers
===================================================================
--- branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Headers	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Headers	2010-10-07 21:12:38 UTC (rev 72223)
@@ -1 +0,0 @@
-link Versions/Current/Headers
\ No newline at end of file

Copied: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Headers (from rev 72222, branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Headers)
===================================================================
--- contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Headers	                        (rev 0)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Headers	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1 @@
+link Versions/Current/Headers
\ No newline at end of file

Deleted: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Resources
===================================================================
--- branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Resources	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Resources	2010-10-07 21:12:38 UTC (rev 72223)
@@ -1 +0,0 @@
-link Versions/Current/Resources
\ No newline at end of file

Copied: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Resources (from rev 72222, branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Resources)
===================================================================
--- contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Resources	                        (rev 0)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Resources	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1 @@
+link Versions/Current/Resources
\ No newline at end of file

Deleted: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Growl
===================================================================
(Binary files differ)

Copied: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Growl (from rev 72222, branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Growl)
===================================================================
(Binary files differ)

Deleted: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/Growl.h
===================================================================
--- branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/Growl.h	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/Growl.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -1,6 +0,0 @@
-#include "GrowlDefines.h"
-
-#ifdef __OBJC__
-#	include "GrowlApplicationBridge.h"
-#endif
-#include "GrowlApplicationBridge-Carbon.h"

Copied: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/Growl.h (from rev 72222, branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/Growl.h)
===================================================================
--- contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/Growl.h	                        (rev 0)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/Growl.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1,6 @@
+#include "GrowlDefines.h"
+
+#ifdef __OBJC__
+#	include "GrowlApplicationBridge.h"
+#endif
+#include "GrowlApplicationBridge-Carbon.h"

Deleted: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h
===================================================================
--- branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -1,780 +0,0 @@
-//
-//  GrowlApplicationBridge-Carbon.h
-//  Growl
-//
-//  Created by Mac-arena the Bored Zo on Wed Jun 18 2004.
-//  Based on GrowlApplicationBridge.h by Evan Schoenberg.
-//  This source code is in the public domain. You may freely link it into any
-//    program.
-//
-
-#ifndef _GROWLAPPLICATIONBRIDGE_CARBON_H_
-#define _GROWLAPPLICATIONBRIDGE_CARBON_H_
-
-#include <sys/cdefs.h>
-#include <Carbon/Carbon.h>
-
-#ifndef GROWL_EXPORT
-#define GROWL_EXPORT __attribute__((visibility("default"))) DEPRECATED_ATTRIBUTE
-#endif
-
-/*!	@header GrowlApplicationBridge-Carbon.h
- *	@abstract	Declares an API that Carbon applications can use to interact with Growl.
- *	@discussion	GrowlApplicationBridge uses a delegate to provide information //XXX
- *	 to Growl (such as your application's name and what notifications it may
- *	 post) and to provide information to your application (such as that Growl
- *	 is listening for notifications or that a notification has been clicked).
- *
- *	 You can set the Growldelegate with Growl_SetDelegate and find out the
- *	 current delegate with Growl_GetDelegate. See struct Growl_Delegate for more
- *	 information about the delegate.
- */
-
-__BEGIN_DECLS
-
-/*!	@struct Growl_Delegate
- *	@abstract Delegate to supply GrowlApplicationBridge with information and respond to events.
- *	@discussion The Growl delegate provides your interface to
- *	 GrowlApplicationBridge. When GrowlApplicationBridge needs information about
- *	 your application, it looks for it in the delegate; when Growl or the user
- *	 does something that you might be interested in, GrowlApplicationBridge
- *	 looks for a callback in the delegate and calls it if present
- *	 (meaning, if it is not <code>NULL</code>).
- *	XXX on all of that
- *  @field size The size of the delegate structure.
- * 	@field applicationName The name of your application.
- * 	@field registrationDictionary A dictionary describing your application and the notifications it can send out.
- * 	@field applicationIconData Your application's icon.
- * 	@field growlInstallationWindowTitle The title of the installation window.
- * 	@field growlInstallationInformation Text to display in the installation window.
- * 	@field growlUpdateWindowTitle The title of the update window.
- * 	@field growlUpdateInformation Text to display in the update window.
- * 	@field referenceCount A count of owners of the delegate.
- * 	@field retain Called when GrowlApplicationBridge receives this delegate.
- * 	@field release Called when GrowlApplicationBridge no longer needs this delegate.
- * 	@field growlIsReady Called when GrowlHelperApp is listening for notifications.
- * 	@field growlNotificationWasClicked Called when a Growl notification is clicked.
- *  @field growlNotificationTimedOut Called when a Growl notification timed out.
- */
-struct Growl_Delegate {
-	/*	@discussion This should be sizeof(struct Growl_Delegate).
-	 */
-	size_t size;
-
-	/*All of these attributes are optional.
-	 *Optional attributes can be NULL; required attributes that
-	 *	 are NULL cause setting the Growl delegate to fail.
-	 *XXX - move optional/required status into the discussion for each field
-	 */
-
-	/* This name is used both internally and in the Growl preferences.
-	 *
-	 *	 This should remain stable between different versions and incarnations of
-	 *	 your application.
-	 *	 For example, "SurfWriter" is a good app name, whereas "SurfWriter 2.0" and
-	 *	 "SurfWriter Lite" are not.
-	 *
-	 * This can be <code>NULL</code> if it is provided elsewhere, namely in an
-	 *	 auto-discoverable plist file in your app bundle
-	 *	 (XXX refer to more information on that) or in registrationDictionary.
-	 */
-	CFStringRef applicationName;
-
-	/*
-	 * Must contain at least these keys:
-	 *	GROWL_NOTIFICATIONS_ALL (CFArray):
-	 *		Contains the names of all notifications your application may post.
-	 *
-	 * Can also contain these keys:
-	 *	GROWL_NOTIFICATIONS_DEFAULT (CFArray):
-	 *		Names of notifications that should be enabled by default.
-	 *		If omitted, GROWL_NOTIFICATIONS_ALL will be used.
-	 *	GROWL_APP_NAME (CFString):
-	 *		Same as the applicationName member of this structure.
-	 *		If both are present, the applicationName member shall prevail.
-	 *		If this key is present, you may omit applicationName (set it to <code>NULL</code>).
-	 *	GROWL_APP_ICON (CFData):
-	 *		Same as the iconData member of this structure.
-	 *		If both are present, the iconData member shall prevail.
-	 *		If this key is present, you may omit iconData (set it to <code>NULL</code>).
-	 *
-	 * If you change the contents of this dictionary after setting the delegate,
-	 *	be sure to call Growl_Reregister.
-	 *
-	 * This can be <code>NULL</code> if you have an auto-discoverable plist file in your app
-	 *	 bundle. (XXX refer to more information on that)
-	 */
-	CFDictionaryRef registrationDictionary;
-
-	/* The data can be in any format supported by NSImage. As of
-	 *	 Mac OS X 10.3, this includes the .icns, TIFF, JPEG, GIF, PNG, PDF, and
-	 *	 PICT formats.
-	 *
-	 *	 If this is not supplied, Growl will look up your application's icon by
-	 *	 its application name.
-	 */
-	CFDataRef applicationIconData;
-
-	/* Installer display attributes
-	 *
-	 * These four attributes are used by the Growl installer, if this framework
-	 *	supports it.
-	 * For any of these being <code>NULL</code>, a localised default will be
-	 *	supplied.
-	 */
-
-	/*	If this is <code>NULL</code>, Growl will use a default,
-	 *	 localized title.
-	 *
-	 *	 Only used if you're using Growl-WithInstaller.framework. Otherwise,
-	 *	 this member is ignored.
-	 */
-	CFStringRef growlInstallationWindowTitle;
-	/*	This information may be as long or short as desired (the
-	 *	 window will be sized to fit it).  If Growl is not installed, it will
-	 *	 be displayed to the user as an explanation of what Growl is and what
-	 *	 it can do in your application.
-	 *	 It should probably note that no download is required to install.
-	 *
-	 *	 If this is <code>NULL</code>, Growl will use a default, localized
-	 *	 explanation.
-	 *
-	 *	 Only used if you're using Growl-WithInstaller.framework. Otherwise,
-	 *	 this member is ignored.
-	 */
-	CFStringRef growlInstallationInformation;
-	/*	If this is <code>NULL</code>, Growl will use a default,
-	 *	 localized title.
-	 *
-	 *	 Only used if you're using Growl-WithInstaller.framework. Otherwise,
-	 *	 this member is ignored.
-	 */
-	CFStringRef growlUpdateWindowTitle;
-	/*	This information may be as long or short as desired (the
-	 *	 window will be sized to fit it).  If an older version of Growl is
-	 *	 installed, it will be displayed to the user as an explanation that an
-	 *	 updated version of Growl is included in your application and
-	 *	 no download is required.
-	 *
-	 *	 If this is <code>NULL</code>, Growl will use a default, localized
-	 *	 explanation.
-	 *
-	 *	 Only used if you're using Growl-WithInstaller.framework. Otherwise,
-	 *	 this member is ignored.
-	 */
-	CFStringRef growlUpdateInformation;
-
-	/*	This member is provided for use by your retain and release
-	 *	 callbacks (see below).
-	 *
-	 *	 GrowlApplicationBridge never directly uses this member. Instead, it
-	 *	 calls your retain callback (if non-<code>NULL</code>) and your release
-	 *	 callback (if non-<code>NULL</code>).
-	 */
-	unsigned referenceCount;
-
-	//Functions. Currently all of these are optional (any of them can be NULL).
-
-	/*	When you call Growl_SetDelegate(newDelegate), it will call
-	 *	 oldDelegate->release(oldDelegate), and then it will call
-	 *	 newDelegate->retain(newDelegate), and the return value from retain
-	 *	 is what will be set as the delegate.
-	 *	 (This means that this member works like CFRetain and -[NSObject retain].)
-	 *	 This member is optional (it can be <code>NULL</code>).
-	 *	 For a delegate allocated with malloc, this member would be
-	 *	 <code>NULL</code>.
-	 *	@result	A delegate to which GrowlApplicationBridge holds a reference.
-	 */
-	void *(*retain)(void *);
-	/*	When you call Growl_SetDelegate(newDelegate), it will call
-	 *	 oldDelegate->release(oldDelegate), and then it will call
-	 *	 newDelegate->retain(newDelegate), and the return value from retain
-	 *	 is what will be set as the delegate.
-	 *	 (This means that this member works like CFRelease and
-	 *	  -[NSObject release].)
-	 *	 This member is optional (it can be NULL).
-	 *	 For a delegate allocated with malloc, this member might be
-	 *	 <code>free</code>(3).
-	 */
-	void (*release)(void *);
-
-	/*	Informs the delegate that Growl (specifically, the GrowlHelperApp) was
-	 *	 launched successfully (or was already running). The application can
-	 *	 take actions with the knowledge that Growl is installed and functional.
-	 */
-	void (*growlIsReady)(void);
-
-	/*	Informs the delegate that a Growl notification was clicked. It is only
-	 *	 sent for notifications sent with a non-<code>NULL</code> clickContext,
-	 *	 so if you want to receive a message when a notification is clicked,
-	 *	 clickContext must not be <code>NULL</code> when calling
-	 *	 Growl_PostNotification or
-	 *	 Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext.
-	 */
-	void (*growlNotificationWasClicked)(CFPropertyListRef clickContext);
-
-	/*	Informs the delegate that a Growl notification timed out. It is only
-	 *	 sent for notifications sent with a non-<code>NULL</code> clickContext,
-	 *	 so if you want to receive a message when a notification is clicked,
-	 *	 clickContext must not be <code>NULL</code> when calling
-	 *	 Growl_PostNotification or
-	 *	 Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext.
-	 */
-	void (*growlNotificationTimedOut)(CFPropertyListRef clickContext);
-};
-
-/*!	@struct Growl_Notification
- *	@abstract Structure describing a Growl notification.
- *	@discussion XXX
- * 	@field size The size of the notification structure.
- * 	@field name Identifies the notification.
- * 	@field title Short synopsis of the notification.
- *  @field description Additional text.
- * 	@field iconData An icon for the notification.
- * 	@field priority An indicator of the notification's importance.
- * 	@field reserved Bits reserved for future usage.
- * 	@field isSticky Requests that a notification stay on-screen until dismissed explicitly.
- * 	@field clickContext An identifier to be passed to your click callback when a notification is clicked.
- * 	@field clickCallback A callback to call when the notification is clicked.
- */
-struct Growl_Notification {
-	/*	This should be sizeof(struct Growl_Notification).
-	 */
- 	size_t size;
-
-	/*	The notification name distinguishes one type of
-	 *	 notification from another. The name should be human-readable, as it
-	 *	 will be displayed in the Growl preference pane.
-	 *
-	 *	 The name is used in the GROWL_NOTIFICATIONS_ALL and
-	 *	 GROWL_NOTIFICATIONS_DEFAULT arrays in the registration dictionary, and
-	 *	 in this member of the Growl_Notification structure.
-	 */
-	CFStringRef name;
-
-	/*	A notification's title describes the notification briefly.
-	 *	 It should be easy to read quickly by the user.
-	 */
-	CFStringRef title;
-
-	/*	The description supplements the title with more
-	 *	 information. It is usually longer and sometimes involves a list of
-	 *	 subjects. For example, for a 'Download complete' notification, the
-	 *	 description might have one filename per line. GrowlMail in Growl 0.6
-	 *	 uses a description of '%d new mail(s)' (formatted with the number of
-	 *	 messages).
-	 */
-	CFStringRef description;
-
-	/*	The notification icon usually indicates either what
-	 *	 happened (it may have the same icon as e.g. a toolbar item that
-	 *	 started the process that led to the notification), or what it happened
-	 *	 to (e.g. a document icon).
-	 *
-	 *	 The icon data is optional, so it can be <code>NULL</code>. In that
-	 *	 case, the application icon is used alone. Not all displays support
-	 *	 icons.
-	 *
-	 *	 The data can be in any format supported by NSImage. As of Mac OS X
-	 *	 10.3, this includes the .icns, TIFF, JPEG, GIF, PNG, PDF, and PICT form
-	 *	 ats.
-	 */
-	CFDataRef iconData;
-
-	/*	Priority is new in Growl 0.6, and is represented as a
-	 *	 signed integer from -2 to +2. 0 is Normal priority, -2 is Very Low
-	 *	 priority, and +2 is Very High priority.
-	 *
-	 *	 Not all displays support priority. If you do not wish to assign a
-	 *	 priority to your notification, assign 0.
-	 */
-	signed int priority;
-
-	/*	These bits are not used in Growl 0.6. Set them to 0.
-	 */
-	unsigned reserved: 31;
-
-	/*	When the sticky bit is clear, in most displays,
-	 *	 notifications disappear after a certain amount of time. Sticky
-	 *	 notifications, however, remain on-screen until the user dismisses them
-	 *	 explicitly, usually by clicking them.
-	 *
-	 *	 Sticky notifications were introduced in Growl 0.6. Most notifications
-	 *	 should not be sticky. Not all displays support sticky notifications,
-	 *	 and the user may choose in Growl's preference pane to force the
-	 *	 notification to be sticky or non-sticky, in which case the sticky bit
-	 *	 in the notification will be ignored.
-	 */
-	unsigned isSticky: 1;
-
-	/*	If this is not <code>NULL</code>, and your click callback
-	 *	 is not <code>NULL</code> either, this will be passed to the callback
-	 *	 when your notification is clicked by the user.
-	 *
-	 *	 Click feedback was introduced in Growl 0.6, and it is optional. Not
-	 *	 all displays support click feedback.
-	 */
-	CFPropertyListRef clickContext;
-
-	/*	If this is not <code>NULL</code>, it will be called instead
-	 *	 of the Growl delegate's click callback when clickContext is
-	 *	 non-<code>NULL</code> and the notification is clicked on by the user.
-	 *
-	 *	 Click feedback was introduced in Growl 0.6, and it is optional. Not
-	 *	 all displays support click feedback.
-	 *
-	 *	 The per-notification click callback is not yet supported as of Growl
-	 *	 0.7.
-	 */
-	void (*clickCallback)(CFPropertyListRef clickContext);
-
-	CFStringRef identifier;
-};
-
-#pragma mark -
-#pragma mark Easy initialisers
-
-/*!	@defined	InitGrowlDelegate
- *	@abstract	Callable macro. Initializes a Growl delegate structure to defaults.
- *	@discussion	Call with a pointer to a struct Growl_Delegate. All of the
- *	 members of the structure will be set to 0 or <code>NULL</code>, except for
- *	 size (which will be set to <code>sizeof(struct Growl_Delegate)</code>) and
- *	 referenceCount (which will be set to 1).
- */
-#define InitGrowlDelegate(delegate) \
-	do { \
-		if (delegate) { \
-			(delegate)->size = sizeof(struct Growl_Delegate); \
-			(delegate)->applicationName = NULL; \
-			(delegate)->registrationDictionary = NULL; \
-			(delegate)->applicationIconData = NULL; \
-			(delegate)->growlInstallationWindowTitle = NULL; \
-			(delegate)->growlInstallationInformation = NULL; \
-			(delegate)->growlUpdateWindowTitle = NULL; \
-			(delegate)->growlUpdateInformation = NULL; \
-			(delegate)->referenceCount = 1U; \
-			(delegate)->retain = NULL; \
-			(delegate)->release = NULL; \
-			(delegate)->growlIsReady = NULL; \
-			(delegate)->growlNotificationWasClicked = NULL; \
-			(delegate)->growlNotificationTimedOut = NULL; \
-		} \
-	} while(0)
-
-/*!	@defined	InitGrowlNotification
- *	@abstract	Callable macro. Initializes a Growl notification structure to defaults.
- *	@discussion	Call with a pointer to a struct Growl_Notification. All of
- *	 the members of the structure will be set to 0 or <code>NULL</code>, except
- *	 for size (which will be set to
- *	<code>sizeof(struct Growl_Notification)</code>).
- */
-#define InitGrowlNotification(notification) \
-	do { \
-		if (notification) { \
-			(notification)->size = sizeof(struct Growl_Notification); \
-			(notification)->name = NULL; \
-			(notification)->title = NULL; \
-			(notification)->description = NULL; \
-			(notification)->iconData = NULL; \
-			(notification)->priority = 0; \
-			(notification)->reserved = 0U; \
-			(notification)->isSticky = false; \
-			(notification)->clickContext = NULL; \
-			(notification)->clickCallback = NULL; \
-			(notification)->identifier = NULL; \
-		} \
-	} while(0)
-
-#pragma mark -
-#pragma mark Public API
-
-//	@functiongroup	Managing the Growl delegate
-
-/*!	@function	Growl_SetDelegate
- *	@abstract	Replaces the current Growl delegate with a new one, or removes
- *	 the Growl delegate.
- *	@param	newDelegate
- *	@result	Returns false and does nothing else if a pointer that was passed in
- *	 is unsatisfactory (because it is non-<code>NULL</code>, but at least one
- *	 required member of it is <code>NULL</code>). Otherwise, sets or unsets the
- *	 delegate and returns true.
- *	@discussion	When <code>newDelegate</code> is non-<code>NULL</code>, sets
- *	 the delegate to <code>newDelegate</code>. When it is <code>NULL</code>,
- *	 the current delegate will be unset, and no delegate will be in place.
- *
- *	 It is legal for <code>newDelegate</code> to be the current delegate;
- *	 nothing will happen, and Growl_SetDelegate will return true. It is also
- *	 legal for it to be <code>NULL</code>, as described above; again, it will
- *	 return true.
- *
- *	 If there was a delegate in place before the call, Growl_SetDelegate will
- *	 call the old delegate's release member if it was non-<code>NULL</code>. If
- *	 <code>newDelegate</code> is non-<code>NULL</code>, Growl_SetDelegate will
- *	 call <code>newDelegate->retain</code>, and set the delegate to its return
- *	 value.
- *
- *	 If you are using Growl-WithInstaller.framework, and an older version of
- *	 Growl is installed on the user's system, the user will automatically be
- *	 prompted to update.
- *
- *	 GrowlApplicationBridge currently does not copy this structure, nor does it
- *	 retain any of the CF objects in the structure (it regards the structure as
- *	 a container that retains the objects when they are added and releases them
- *	 when they are removed or the structure is destroyed). Also,
- *	 GrowlApplicationBridge currently does not modify any member of the
- *	 structure, except possibly the referenceCount by calling the retain and
- *	 release members.
- */
-GROWL_EXPORT Boolean Growl_SetDelegate(struct Growl_Delegate *newDelegate);
-
-/*!	@function	Growl_GetDelegate
- *	@abstract	Returns the current Growl delegate, if any.
- *	@result	The current Growl delegate.
- *	@discussion	Returns the last pointer passed into Growl_SetDelegate, or
- *	 <code>NULL</code> if no such call has been made.
- *
- *	 This function follows standard Core Foundation reference-counting rules.
- *	 Because it is a Get function, not a Copy function, it will not retain the
- *	 delegate on your behalf. You are responsible for retaining and releasing
- *	 the delegate as needed.
- */
-GROWL_EXPORT struct Growl_Delegate *Growl_GetDelegate(void);
-
-#pragma mark -
-
-//	@functiongroup	Posting Growl notifications
-
-/*!	@function	Growl_PostNotification
- *	@abstract	Posts a Growl notification.
- *	@param	notification	The notification to post.
- *	@discussion	This is the preferred means for sending a Growl notification.
- *	 The notification name and at least one of the title and description are
- *	 required (all three are preferred). All other parameters may be
- *	 <code>NULL</code> (or 0 or false as appropriate) to accept default values.
- *
- *	 If using the Growl-WithInstaller framework, if Growl is not installed the
- *	 user will be prompted to install Growl.
- *	 If the user cancels, this function will have no effect until the next
- *	 application session, at which time when it is called the user will be
- *	 prompted again. The user is also given the option to not be prompted again.
- *	 If the user does choose to install Growl, the requested notification will
- *	 be displayed once Growl is installed and running.
- */
-GROWL_EXPORT void Growl_PostNotification(const struct Growl_Notification *notification);
-
-/*!	@function Growl_PostNotificationWithDictionary
-*	@abstract	Notifies using a userInfo dictionary suitable for passing to
-*	 CFDistributedNotificationCenter.
-*	@param	userInfo	The dictionary to notify with.
-*	@discussion	Before Growl 0.6, your application would have posted
-*	 notifications using CFDistributedNotificationCenter by creating a userInfo
-*	 dictionary with the notification data. This had the advantage of allowing
-*	 you to add other data to the dictionary for programs besides Growl that
-*	 might be listening.
-*
-*	 This function allows you to use such dictionaries without being restricted
-*	 to using CFDistributedNotificationCenter. The keys for this dictionary
- *	 can be found in GrowlDefines.h.
-*/
-GROWL_EXPORT void Growl_PostNotificationWithDictionary(CFDictionaryRef userInfo);
-
-/*!	@function	Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext
- *	@abstract	Posts a Growl notification using parameter values.
- *	@param	title	The title of the notification.
- *	@param	description	The description of the notification.
- *	@param	notificationName	The name of the notification as listed in the
- *	 registration dictionary.
- *	@param	iconData	Data representing a notification icon. Can be <code>NULL</code>.
- *	@param	priority	The priority of the notification (-2 to +2, with -2
- *	 being Very Low and +2 being Very High).
- *	@param	isSticky	If true, requests that this notification wait for a
- *	 response from the user.
- *	@param	clickContext	An object to pass to the clickCallback, if any. Can
- *	 be <code>NULL</code>, in which case the clickCallback is not called.
- *	@discussion	Creates a temporary Growl_Notification, fills it out with the
- *	 supplied information, and calls Growl_PostNotification on it.
- *	 See struct Growl_Notification and Growl_PostNotification for more
- *	 information.
- *
- *	 The icon data can be in any format supported by NSImage. As of Mac OS X
- *	 10.3, this includes the .icns, TIFF, JPEG, GIF, PNG, PDF, and PICT formats.
- */
-GROWL_EXPORT void Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext(
- /*inhale*/
-	CFStringRef title,
-	CFStringRef description,
-	CFStringRef notificationName,
-	CFDataRef iconData,
-	signed int priority,
-	Boolean isSticky,
-	CFPropertyListRef clickContext);
-
-#pragma mark -
-
-//	@functiongroup	Registering
-
-/*!	@function Growl_RegisterWithDictionary
- *	@abstract	Register your application with Growl without setting a delegate.
- *	@discussion	When you call this function with a dictionary,
- *	 GrowlApplicationBridge registers your application using that dictionary.
- *	 If you pass <code>NULL</code>, GrowlApplicationBridge will ask the delegate
- *	 (if there is one) for a dictionary, and if that doesn't work, it will look
- *	 in your application's bundle for an auto-discoverable plist.
- *	 (XXX refer to more information on that)
- *
- *	 If you pass a dictionary to this function, it must include the
- *	 <code>GROWL_APP_NAME</code> key, unless a delegate is set.
- *
- *	 This function is mainly an alternative to the delegate system introduced
- *	 with Growl 0.6. Without a delegate, you cannot receive callbacks such as
- *	 <code>growlIsReady</code> (since they are sent to the delegate). You can,
- *	 however, set a delegate after registering without one.
- *
- *	 This function was introduced in Growl.framework 0.7.
- *	@result <code>false</code> if registration failed (e.g. if Growl isn't installed).
- */
-GROWL_EXPORT Boolean Growl_RegisterWithDictionary(CFDictionaryRef regDict);
-
-/*!	@function	Growl_Reregister
- *	@abstract	Updates your registration with Growl.
- *	@discussion	If your application changes the contents of the
- *	 GROWL_NOTIFICATIONS_ALL key in the registrationDictionary member of the
- *	 Growl delegate, or if it changes the value of that member, or if it
- *	 changes the contents of its auto-discoverable plist, call this function
- *	 to have Growl update its registration information for your application.
- *
- *	 Otherwise, this function does not normally need to be called. If you're
- *	 using a delegate, your application will be registered when you set the
- *	 delegate if both the delegate and its registrationDictionary member are
- *	 non-<code>NULL</code>.
- *
- *	 This function is now implemented using
- *	 <code>Growl_RegisterWithDictionary</code>.
- */
-GROWL_EXPORT void Growl_Reregister(void);
-
-#pragma mark -
-
-/*!	@function	Growl_SetWillRegisterWhenGrowlIsReady
- *	@abstract	Tells GrowlApplicationBridge to register with Growl when Growl
- *	 launches (or not).
- *	@discussion	When Growl has started listening for notifications, it posts a
- *	 <code>GROWL_IS_READY</code> notification on the Distributed Notification
- *	 Center. GrowlApplicationBridge listens for this notification, using it to
- *	 perform various tasks (such as calling your delegate's
- *	 <code>growlIsReady</code> callback, if it has one). If this function is
- *	 called with <code>true</code>, one of those tasks will be to reregister
- *	 with Growl (in the manner of <code>Growl_Reregister</code>).
- *
- *	 This attribute is automatically set back to <code>false</code>
- *	 (the default) after every <code>GROWL_IS_READY</code> notification.
- *	@param	flag	<code>true</code> if you want GrowlApplicationBridge to register with
- *	 Growl when next it is ready; <code>false</code> if not.
- */
-GROWL_EXPORT void Growl_SetWillRegisterWhenGrowlIsReady(Boolean flag);
-/*!	@function	Growl_WillRegisterWhenGrowlIsReady
- *	@abstract	Reports whether GrowlApplicationBridge will register with Growl
- *	 when Growl next launches.
- *	@result	<code>true</code> if GrowlApplicationBridge will register with
- *	 Growl when next it posts GROWL_IS_READY; <code>false</code> if not.
- */
-GROWL_EXPORT Boolean Growl_WillRegisterWhenGrowlIsReady(void);
-
-#pragma mark -
-
-//	@functiongroup	Obtaining registration dictionaries
-
-/*!	@function	Growl_CopyRegistrationDictionaryFromDelegate
- *	@abstract	Asks the delegate for a registration dictionary.
- *	@discussion	If no delegate is set, or if the delegate's
- *	 <code>registrationDictionary</code> member is <code>NULL</code>, this
- *	 function returns <code>NULL</code>.
- *
- *	 This function does not attempt to clean up the dictionary in any way - for
- *	 example, if it is missing the <code>GROWL_APP_NAME</code> key, the result
- *	 will be missing it too. Use
- *	 <code>Growl_CreateRegistrationDictionaryByFillingInDictionary</code> or
- *	 <code>Growl_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys</code>
- *	 to try to fill in missing keys.
- *
- *	 This function was introduced in Growl.framework 0.7.
- *	@result A registration dictionary.
- */
-GROWL_EXPORT CFDictionaryRef Growl_CopyRegistrationDictionaryFromDelegate(void);
-
-/*!	@function	Growl_CopyRegistrationDictionaryFromBundle
- *	@abstract	Looks in a bundle for a registration dictionary.
- *	@discussion	This function looks in a bundle for an auto-discoverable
- *	 registration dictionary file using <code>CFBundleCopyResourceURL</code>.
- *	 If it finds one, it loads the file using <code>CFPropertyList</code> and
- *	 returns the result.
- *
- *	 If you pass <code>NULL</code> as the bundle, the main bundle is examined.
- *
- *	 This function does not attempt to clean up the dictionary in any way - for
- *	 example, if it is missing the <code>GROWL_APP_NAME</code> key, the result
- *	 will be missing it too. Use
- *	 <code>Growl_CreateRegistrationDictionaryByFillingInDictionary:</code> or
- *	 <code>Growl_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys</code>
- *	 to try to fill in missing keys.
- *
- *	 This function was introduced in Growl.framework 0.7.
- *	@result A registration dictionary.
- */
-GROWL_EXPORT CFDictionaryRef Growl_CopyRegistrationDictionaryFromBundle(CFBundleRef bundle);
-
-/*!	@function	Growl_CreateBestRegistrationDictionary
- *	@abstract	Obtains a registration dictionary, filled out to the best of
- *	 GrowlApplicationBridge's knowledge.
- *	@discussion	This function creates a registration dictionary as best
- *	 GrowlApplicationBridge knows how.
- *
- *	 First, GrowlApplicationBridge examines the Growl delegate (if there is
- *	 one) and gets the registration dictionary from that. If no such dictionary
- *	 was obtained, GrowlApplicationBridge looks in your application's main
- *	 bundle for an auto-discoverable registration dictionary file. If that
- *	 doesn't exist either, this function returns <code>NULL</code>.
- *
- *	 Second, GrowlApplicationBridge calls
- *	 <code>Growl_CreateRegistrationDictionaryByFillingInDictionary</code> with
- *	 whatever dictionary was obtained. The result of that function is the
- *	 result of this function.
- *
- *	 GrowlApplicationBridge uses this function when you call
- *	 <code>Growl_SetDelegate</code>, or when you call
- *	 <code>Growl_RegisterWithDictionary</code> with <code>NULL</code>.
- *
- *	 This function was introduced in Growl.framework 0.7.
- *	@result	A registration dictionary.
- */
-GROWL_EXPORT CFDictionaryRef Growl_CreateBestRegistrationDictionary(void);
-
-#pragma mark -
-
-//	@functiongroup	Filling in registration dictionaries
-
-/*!	@function	Growl_CreateRegistrationDictionaryByFillingInDictionary
- *	@abstract	Tries to fill in missing keys in a registration dictionary.
- *	@param	regDict	The dictionary to fill in.
- *	@result	The dictionary with the keys filled in.
- *	@discussion	This function examines the passed-in dictionary for missing keys,
- *	 and tries to work out correct values for them. As of 0.7, it uses:
- *
- *	 Key							             Value
- *	 ---							             -----
- *	 <code>GROWL_APP_NAME</code>                 <code>CFBundleExecutableName</code>
- *	 <code>GROWL_APP_ICON</code>                 The icon of the application.
- *	 <code>GROWL_APP_LOCATION</code>             The location of the application.
- *	 <code>GROWL_NOTIFICATIONS_DEFAULT</code>    <code>GROWL_NOTIFICATIONS_ALL</code>
- *
- *	 Keys are only filled in if missing; if a key is present in the dictionary,
- *	 its value will not be changed.
- *
- *	 This function was introduced in Growl.framework 0.7.
- */
-GROWL_EXPORT CFDictionaryRef Growl_CreateRegistrationDictionaryByFillingInDictionary(CFDictionaryRef regDict);
-/*!	@function	Growl_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys
- *	@abstract	Tries to fill in missing keys in a registration dictionary.
- *	@param	regDict	The dictionary to fill in.
- *	@param	keys	The keys to fill in. If <code>NULL</code>, any missing keys are filled in.
- *	@result	The dictionary with the keys filled in.
- *	@discussion	This function examines the passed-in dictionary for missing keys,
- *	 and tries to work out correct values for them. As of 0.7, it uses:
- *
- *	 Key							             Value
- *	 ---							             -----
- *	 <code>GROWL_APP_NAME</code>                 <code>CFBundleExecutableName</code>
- *	 <code>GROWL_APP_ICON</code>                 The icon of the application.
- *	 <code>GROWL_APP_LOCATION</code>             The location of the application.
- *	 <code>GROWL_NOTIFICATIONS_DEFAULT</code>    <code>GROWL_NOTIFICATIONS_ALL</code>
- *
- *	 Only those keys that are listed in <code>keys</code> will be filled in.
- *	 Other missing keys are ignored. Also, keys are only filled in if missing;
- *	 if a key is present in the dictionary, its value will not be changed.
- *
- *	 This function was introduced in Growl.framework 0.7.
- */
-GROWL_EXPORT CFDictionaryRef Growl_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys(CFDictionaryRef regDict, CFSetRef keys);
-
-/*!	@brief	Tries to fill in missing keys in a notification dictionary.
- *	@param	notifDict	The dictionary to fill in.
- *	@return	The dictionary with the keys filled in. This will be a separate instance from \a notifDict.
- *	@discussion	This function examines the \a notifDict for missing keys, and 
- *	 tries to get them from the last known registration dictionary. As of 1.1, 
- *	 the keys that it will look for are:
- *
- *	 \li <code>GROWL_APP_NAME</code>
- *	 \li <code>GROWL_APP_ICON</code>
- *
- *	@since Growl.framework 1.1
- */
-GROWL_EXPORT CFDictionaryRef Growl_CreateNotificationDictionaryByFillingInDictionary(CFDictionaryRef notifDict);
-
-#pragma mark -
-
-//	@functiongroup	Querying Growl's status
-
-/*!	@function	Growl_IsInstalled
- *	@abstract	Determines whether the Growl prefpane and its helper app are
- *	 installed.
- *	@result	Returns true if Growl is installed, false otherwise.
- */
-GROWL_EXPORT Boolean Growl_IsInstalled(void);
-
-/*!	@function	Growl_IsRunning
- *	@abstract	Cycles through the process list to find whether GrowlHelperApp
- *	 is running.
- *	@result	Returns true if Growl is running, false otherwise.
- */
-GROWL_EXPORT Boolean Growl_IsRunning(void);
-
-#pragma mark -
-
-//	@functiongroup	Launching Growl
-
-/*!	@typedef	GrowlLaunchCallback
- *	@abstract	Callback to notify you that Growl is running.
- *	@param	context	The context pointer passed to Growl_LaunchIfInstalled.
- *	@discussion	Growl_LaunchIfInstalled calls this callback function if Growl
- *	 was already running or if it launched Growl successfully.
- */
-typedef void (*GrowlLaunchCallback)(void *context);
-
-/*!	@function	Growl_LaunchIfInstalled
- *	@abstract	Launches GrowlHelperApp if it is not already running.
- *	@param	callback	A callback function which will be called if Growl was successfully
- *	 launched or was already running. Can be <code>NULL</code>.
- *	@param	context	The context pointer to pass to the callback. Can be <code>NULL</code>.
- *	@result	Returns true if Growl was successfully launched or was already
- *	 running; returns false and does not call the callback otherwise.
- *	@discussion	Returns true and calls the callback (if the callback is not
- *	 <code>NULL</code>) if the Growl helper app began launching or was already
- *	 running. Returns false and performs no other action if Growl could not be
- *	 launched (e.g. because the Growl preference pane is not properly installed).
- *
- *	 If <code>Growl_CreateBestRegistrationDictionary</code> returns
- *	 non-<code>NULL</code>, this function will register with Growl atomically.
- *
- *	 The callback should take a single argument; this is to allow applications
- *	 to have context-relevant information passed back. It is perfectly
- *	 acceptable for context to be <code>NULL</code>. The callback itself can be
- *	 <code>NULL</code> if you don't want one.
- */
-GROWL_EXPORT Boolean Growl_LaunchIfInstalled(GrowlLaunchCallback callback, void *context);
-
-#pragma mark -
-#pragma mark Constants
-
-/*!	@defined	GROWL_PREFPANE_BUNDLE_IDENTIFIER
- *	@abstract	The CFBundleIdentifier of the Growl preference pane bundle.
- *	@discussion	GrowlApplicationBridge uses this to determine whether Growl is
- *	 currently installed, by searching for the Growl preference pane. Your
- *	 application probably does not need to use this macro itself.
- */
-#ifndef GROWL_PREFPANE_BUNDLE_IDENTIFIER
-#define GROWL_PREFPANE_BUNDLE_IDENTIFIER	CFSTR("com.growl.prefpanel")
-#endif
-
-__END_DECLS
-
-#endif /* _GROWLAPPLICATIONBRIDGE_CARBON_H_ */

Copied: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h (from rev 72222, branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h)
===================================================================
--- contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h	                        (rev 0)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1,780 @@
+//
+//  GrowlApplicationBridge-Carbon.h
+//  Growl
+//
+//  Created by Mac-arena the Bored Zo on Wed Jun 18 2004.
+//  Based on GrowlApplicationBridge.h by Evan Schoenberg.
+//  This source code is in the public domain. You may freely link it into any
+//    program.
+//
+
+#ifndef _GROWLAPPLICATIONBRIDGE_CARBON_H_
+#define _GROWLAPPLICATIONBRIDGE_CARBON_H_
+
+#include <sys/cdefs.h>
+#include <Carbon/Carbon.h>
+
+#ifndef GROWL_EXPORT
+#define GROWL_EXPORT __attribute__((visibility("default"))) DEPRECATED_ATTRIBUTE
+#endif
+
+/*!	@header GrowlApplicationBridge-Carbon.h
+ *	@abstract	Declares an API that Carbon applications can use to interact with Growl.
+ *	@discussion	GrowlApplicationBridge uses a delegate to provide information //XXX
+ *	 to Growl (such as your application's name and what notifications it may
+ *	 post) and to provide information to your application (such as that Growl
+ *	 is listening for notifications or that a notification has been clicked).
+ *
+ *	 You can set the Growldelegate with Growl_SetDelegate and find out the
+ *	 current delegate with Growl_GetDelegate. See struct Growl_Delegate for more
+ *	 information about the delegate.
+ */
+
+__BEGIN_DECLS
+
+/*!	@struct Growl_Delegate
+ *	@abstract Delegate to supply GrowlApplicationBridge with information and respond to events.
+ *	@discussion The Growl delegate provides your interface to
+ *	 GrowlApplicationBridge. When GrowlApplicationBridge needs information about
+ *	 your application, it looks for it in the delegate; when Growl or the user
+ *	 does something that you might be interested in, GrowlApplicationBridge
+ *	 looks for a callback in the delegate and calls it if present
+ *	 (meaning, if it is not <code>NULL</code>).
+ *	XXX on all of that
+ *  @field size The size of the delegate structure.
+ * 	@field applicationName The name of your application.
+ * 	@field registrationDictionary A dictionary describing your application and the notifications it can send out.
+ * 	@field applicationIconData Your application's icon.
+ * 	@field growlInstallationWindowTitle The title of the installation window.
+ * 	@field growlInstallationInformation Text to display in the installation window.
+ * 	@field growlUpdateWindowTitle The title of the update window.
+ * 	@field growlUpdateInformation Text to display in the update window.
+ * 	@field referenceCount A count of owners of the delegate.
+ * 	@field retain Called when GrowlApplicationBridge receives this delegate.
+ * 	@field release Called when GrowlApplicationBridge no longer needs this delegate.
+ * 	@field growlIsReady Called when GrowlHelperApp is listening for notifications.
+ * 	@field growlNotificationWasClicked Called when a Growl notification is clicked.
+ *  @field growlNotificationTimedOut Called when a Growl notification timed out.
+ */
+struct Growl_Delegate {
+	/*	@discussion This should be sizeof(struct Growl_Delegate).
+	 */
+	size_t size;
+
+	/*All of these attributes are optional.
+	 *Optional attributes can be NULL; required attributes that
+	 *	 are NULL cause setting the Growl delegate to fail.
+	 *XXX - move optional/required status into the discussion for each field
+	 */
+
+	/* This name is used both internally and in the Growl preferences.
+	 *
+	 *	 This should remain stable between different versions and incarnations of
+	 *	 your application.
+	 *	 For example, "SurfWriter" is a good app name, whereas "SurfWriter 2.0" and
+	 *	 "SurfWriter Lite" are not.
+	 *
+	 * This can be <code>NULL</code> if it is provided elsewhere, namely in an
+	 *	 auto-discoverable plist file in your app bundle
+	 *	 (XXX refer to more information on that) or in registrationDictionary.
+	 */
+	CFStringRef applicationName;
+
+	/*
+	 * Must contain at least these keys:
+	 *	GROWL_NOTIFICATIONS_ALL (CFArray):
+	 *		Contains the names of all notifications your application may post.
+	 *
+	 * Can also contain these keys:
+	 *	GROWL_NOTIFICATIONS_DEFAULT (CFArray):
+	 *		Names of notifications that should be enabled by default.
+	 *		If omitted, GROWL_NOTIFICATIONS_ALL will be used.
+	 *	GROWL_APP_NAME (CFString):
+	 *		Same as the applicationName member of this structure.
+	 *		If both are present, the applicationName member shall prevail.
+	 *		If this key is present, you may omit applicationName (set it to <code>NULL</code>).
+	 *	GROWL_APP_ICON (CFData):
+	 *		Same as the iconData member of this structure.
+	 *		If both are present, the iconData member shall prevail.
+	 *		If this key is present, you may omit iconData (set it to <code>NULL</code>).
+	 *
+	 * If you change the contents of this dictionary after setting the delegate,
+	 *	be sure to call Growl_Reregister.
+	 *
+	 * This can be <code>NULL</code> if you have an auto-discoverable plist file in your app
+	 *	 bundle. (XXX refer to more information on that)
+	 */
+	CFDictionaryRef registrationDictionary;
+
+	/* The data can be in any format supported by NSImage. As of
+	 *	 Mac OS X 10.3, this includes the .icns, TIFF, JPEG, GIF, PNG, PDF, and
+	 *	 PICT formats.
+	 *
+	 *	 If this is not supplied, Growl will look up your application's icon by
+	 *	 its application name.
+	 */
+	CFDataRef applicationIconData;
+
+	/* Installer display attributes
+	 *
+	 * These four attributes are used by the Growl installer, if this framework
+	 *	supports it.
+	 * For any of these being <code>NULL</code>, a localised default will be
+	 *	supplied.
+	 */
+
+	/*	If this is <code>NULL</code>, Growl will use a default,
+	 *	 localized title.
+	 *
+	 *	 Only used if you're using Growl-WithInstaller.framework. Otherwise,
+	 *	 this member is ignored.
+	 */
+	CFStringRef growlInstallationWindowTitle;
+	/*	This information may be as long or short as desired (the
+	 *	 window will be sized to fit it).  If Growl is not installed, it will
+	 *	 be displayed to the user as an explanation of what Growl is and what
+	 *	 it can do in your application.
+	 *	 It should probably note that no download is required to install.
+	 *
+	 *	 If this is <code>NULL</code>, Growl will use a default, localized
+	 *	 explanation.
+	 *
+	 *	 Only used if you're using Growl-WithInstaller.framework. Otherwise,
+	 *	 this member is ignored.
+	 */
+	CFStringRef growlInstallationInformation;
+	/*	If this is <code>NULL</code>, Growl will use a default,
+	 *	 localized title.
+	 *
+	 *	 Only used if you're using Growl-WithInstaller.framework. Otherwise,
+	 *	 this member is ignored.
+	 */
+	CFStringRef growlUpdateWindowTitle;
+	/*	This information may be as long or short as desired (the
+	 *	 window will be sized to fit it).  If an older version of Growl is
+	 *	 installed, it will be displayed to the user as an explanation that an
+	 *	 updated version of Growl is included in your application and
+	 *	 no download is required.
+	 *
+	 *	 If this is <code>NULL</code>, Growl will use a default, localized
+	 *	 explanation.
+	 *
+	 *	 Only used if you're using Growl-WithInstaller.framework. Otherwise,
+	 *	 this member is ignored.
+	 */
+	CFStringRef growlUpdateInformation;
+
+	/*	This member is provided for use by your retain and release
+	 *	 callbacks (see below).
+	 *
+	 *	 GrowlApplicationBridge never directly uses this member. Instead, it
+	 *	 calls your retain callback (if non-<code>NULL</code>) and your release
+	 *	 callback (if non-<code>NULL</code>).
+	 */
+	unsigned referenceCount;
+
+	//Functions. Currently all of these are optional (any of them can be NULL).
+
+	/*	When you call Growl_SetDelegate(newDelegate), it will call
+	 *	 oldDelegate->release(oldDelegate), and then it will call
+	 *	 newDelegate->retain(newDelegate), and the return value from retain
+	 *	 is what will be set as the delegate.
+	 *	 (This means that this member works like CFRetain and -[NSObject retain].)
+	 *	 This member is optional (it can be <code>NULL</code>).
+	 *	 For a delegate allocated with malloc, this member would be
+	 *	 <code>NULL</code>.
+	 *	@result	A delegate to which GrowlApplicationBridge holds a reference.
+	 */
+	void *(*retain)(void *);
+	/*	When you call Growl_SetDelegate(newDelegate), it will call
+	 *	 oldDelegate->release(oldDelegate), and then it will call
+	 *	 newDelegate->retain(newDelegate), and the return value from retain
+	 *	 is what will be set as the delegate.
+	 *	 (This means that this member works like CFRelease and
+	 *	  -[NSObject release].)
+	 *	 This member is optional (it can be NULL).
+	 *	 For a delegate allocated with malloc, this member might be
+	 *	 <code>free</code>(3).
+	 */
+	void (*release)(void *);
+
+	/*	Informs the delegate that Growl (specifically, the GrowlHelperApp) was
+	 *	 launched successfully (or was already running). The application can
+	 *	 take actions with the knowledge that Growl is installed and functional.
+	 */
+	void (*growlIsReady)(void);
+
+	/*	Informs the delegate that a Growl notification was clicked. It is only
+	 *	 sent for notifications sent with a non-<code>NULL</code> clickContext,
+	 *	 so if you want to receive a message when a notification is clicked,
+	 *	 clickContext must not be <code>NULL</code> when calling
+	 *	 Growl_PostNotification or
+	 *	 Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext.
+	 */
+	void (*growlNotificationWasClicked)(CFPropertyListRef clickContext);
+
+	/*	Informs the delegate that a Growl notification timed out. It is only
+	 *	 sent for notifications sent with a non-<code>NULL</code> clickContext,
+	 *	 so if you want to receive a message when a notification is clicked,
+	 *	 clickContext must not be <code>NULL</code> when calling
+	 *	 Growl_PostNotification or
+	 *	 Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext.
+	 */
+	void (*growlNotificationTimedOut)(CFPropertyListRef clickContext);
+};
+
+/*!	@struct Growl_Notification
+ *	@abstract Structure describing a Growl notification.
+ *	@discussion XXX
+ * 	@field size The size of the notification structure.
+ * 	@field name Identifies the notification.
+ * 	@field title Short synopsis of the notification.
+ *  @field description Additional text.
+ * 	@field iconData An icon for the notification.
+ * 	@field priority An indicator of the notification's importance.
+ * 	@field reserved Bits reserved for future usage.
+ * 	@field isSticky Requests that a notification stay on-screen until dismissed explicitly.
+ * 	@field clickContext An identifier to be passed to your click callback when a notification is clicked.
+ * 	@field clickCallback A callback to call when the notification is clicked.
+ */
+struct Growl_Notification {
+	/*	This should be sizeof(struct Growl_Notification).
+	 */
+ 	size_t size;
+
+	/*	The notification name distinguishes one type of
+	 *	 notification from another. The name should be human-readable, as it
+	 *	 will be displayed in the Growl preference pane.
+	 *
+	 *	 The name is used in the GROWL_NOTIFICATIONS_ALL and
+	 *	 GROWL_NOTIFICATIONS_DEFAULT arrays in the registration dictionary, and
+	 *	 in this member of the Growl_Notification structure.
+	 */
+	CFStringRef name;
+
+	/*	A notification's title describes the notification briefly.
+	 *	 It should be easy to read quickly by the user.
+	 */
+	CFStringRef title;
+
+	/*	The description supplements the title with more
+	 *	 information. It is usually longer and sometimes involves a list of
+	 *	 subjects. For example, for a 'Download complete' notification, the
+	 *	 description might have one filename per line. GrowlMail in Growl 0.6
+	 *	 uses a description of '%d new mail(s)' (formatted with the number of
+	 *	 messages).
+	 */
+	CFStringRef description;
+
+	/*	The notification icon usually indicates either what
+	 *	 happened (it may have the same icon as e.g. a toolbar item that
+	 *	 started the process that led to the notification), or what it happened
+	 *	 to (e.g. a document icon).
+	 *
+	 *	 The icon data is optional, so it can be <code>NULL</code>. In that
+	 *	 case, the application icon is used alone. Not all displays support
+	 *	 icons.
+	 *
+	 *	 The data can be in any format supported by NSImage. As of Mac OS X
+	 *	 10.3, this includes the .icns, TIFF, JPEG, GIF, PNG, PDF, and PICT form
+	 *	 ats.
+	 */
+	CFDataRef iconData;
+
+	/*	Priority is new in Growl 0.6, and is represented as a
+	 *	 signed integer from -2 to +2. 0 is Normal priority, -2 is Very Low
+	 *	 priority, and +2 is Very High priority.
+	 *
+	 *	 Not all displays support priority. If you do not wish to assign a
+	 *	 priority to your notification, assign 0.
+	 */
+	signed int priority;
+
+	/*	These bits are not used in Growl 0.6. Set them to 0.
+	 */
+	unsigned reserved: 31;
+
+	/*	When the sticky bit is clear, in most displays,
+	 *	 notifications disappear after a certain amount of time. Sticky
+	 *	 notifications, however, remain on-screen until the user dismisses them
+	 *	 explicitly, usually by clicking them.
+	 *
+	 *	 Sticky notifications were introduced in Growl 0.6. Most notifications
+	 *	 should not be sticky. Not all displays support sticky notifications,
+	 *	 and the user may choose in Growl's preference pane to force the
+	 *	 notification to be sticky or non-sticky, in which case the sticky bit
+	 *	 in the notification will be ignored.
+	 */
+	unsigned isSticky: 1;
+
+	/*	If this is not <code>NULL</code>, and your click callback
+	 *	 is not <code>NULL</code> either, this will be passed to the callback
+	 *	 when your notification is clicked by the user.
+	 *
+	 *	 Click feedback was introduced in Growl 0.6, and it is optional. Not
+	 *	 all displays support click feedback.
+	 */
+	CFPropertyListRef clickContext;
+
+	/*	If this is not <code>NULL</code>, it will be called instead
+	 *	 of the Growl delegate's click callback when clickContext is
+	 *	 non-<code>NULL</code> and the notification is clicked on by the user.
+	 *
+	 *	 Click feedback was introduced in Growl 0.6, and it is optional. Not
+	 *	 all displays support click feedback.
+	 *
+	 *	 The per-notification click callback is not yet supported as of Growl
+	 *	 0.7.
+	 */
+	void (*clickCallback)(CFPropertyListRef clickContext);
+
+	CFStringRef identifier;
+};
+
+#pragma mark -
+#pragma mark Easy initialisers
+
+/*!	@defined	InitGrowlDelegate
+ *	@abstract	Callable macro. Initializes a Growl delegate structure to defaults.
+ *	@discussion	Call with a pointer to a struct Growl_Delegate. All of the
+ *	 members of the structure will be set to 0 or <code>NULL</code>, except for
+ *	 size (which will be set to <code>sizeof(struct Growl_Delegate)</code>) and
+ *	 referenceCount (which will be set to 1).
+ */
+#define InitGrowlDelegate(delegate) \
+	do { \
+		if (delegate) { \
+			(delegate)->size = sizeof(struct Growl_Delegate); \
+			(delegate)->applicationName = NULL; \
+			(delegate)->registrationDictionary = NULL; \
+			(delegate)->applicationIconData = NULL; \
+			(delegate)->growlInstallationWindowTitle = NULL; \
+			(delegate)->growlInstallationInformation = NULL; \
+			(delegate)->growlUpdateWindowTitle = NULL; \
+			(delegate)->growlUpdateInformation = NULL; \
+			(delegate)->referenceCount = 1U; \
+			(delegate)->retain = NULL; \
+			(delegate)->release = NULL; \
+			(delegate)->growlIsReady = NULL; \
+			(delegate)->growlNotificationWasClicked = NULL; \
+			(delegate)->growlNotificationTimedOut = NULL; \
+		} \
+	} while(0)
+
+/*!	@defined	InitGrowlNotification
+ *	@abstract	Callable macro. Initializes a Growl notification structure to defaults.
+ *	@discussion	Call with a pointer to a struct Growl_Notification. All of
+ *	 the members of the structure will be set to 0 or <code>NULL</code>, except
+ *	 for size (which will be set to
+ *	<code>sizeof(struct Growl_Notification)</code>).
+ */
+#define InitGrowlNotification(notification) \
+	do { \
+		if (notification) { \
+			(notification)->size = sizeof(struct Growl_Notification); \
+			(notification)->name = NULL; \
+			(notification)->title = NULL; \
+			(notification)->description = NULL; \
+			(notification)->iconData = NULL; \
+			(notification)->priority = 0; \
+			(notification)->reserved = 0U; \
+			(notification)->isSticky = false; \
+			(notification)->clickContext = NULL; \
+			(notification)->clickCallback = NULL; \
+			(notification)->identifier = NULL; \
+		} \
+	} while(0)
+
+#pragma mark -
+#pragma mark Public API
+
+//	@functiongroup	Managing the Growl delegate
+
+/*!	@function	Growl_SetDelegate
+ *	@abstract	Replaces the current Growl delegate with a new one, or removes
+ *	 the Growl delegate.
+ *	@param	newDelegate
+ *	@result	Returns false and does nothing else if a pointer that was passed in
+ *	 is unsatisfactory (because it is non-<code>NULL</code>, but at least one
+ *	 required member of it is <code>NULL</code>). Otherwise, sets or unsets the
+ *	 delegate and returns true.
+ *	@discussion	When <code>newDelegate</code> is non-<code>NULL</code>, sets
+ *	 the delegate to <code>newDelegate</code>. When it is <code>NULL</code>,
+ *	 the current delegate will be unset, and no delegate will be in place.
+ *
+ *	 It is legal for <code>newDelegate</code> to be the current delegate;
+ *	 nothing will happen, and Growl_SetDelegate will return true. It is also
+ *	 legal for it to be <code>NULL</code>, as described above; again, it will
+ *	 return true.
+ *
+ *	 If there was a delegate in place before the call, Growl_SetDelegate will
+ *	 call the old delegate's release member if it was non-<code>NULL</code>. If
+ *	 <code>newDelegate</code> is non-<code>NULL</code>, Growl_SetDelegate will
+ *	 call <code>newDelegate->retain</code>, and set the delegate to its return
+ *	 value.
+ *
+ *	 If you are using Growl-WithInstaller.framework, and an older version of
+ *	 Growl is installed on the user's system, the user will automatically be
+ *	 prompted to update.
+ *
+ *	 GrowlApplicationBridge currently does not copy this structure, nor does it
+ *	 retain any of the CF objects in the structure (it regards the structure as
+ *	 a container that retains the objects when they are added and releases them
+ *	 when they are removed or the structure is destroyed). Also,
+ *	 GrowlApplicationBridge currently does not modify any member of the
+ *	 structure, except possibly the referenceCount by calling the retain and
+ *	 release members.
+ */
+GROWL_EXPORT Boolean Growl_SetDelegate(struct Growl_Delegate *newDelegate);
+
+/*!	@function	Growl_GetDelegate
+ *	@abstract	Returns the current Growl delegate, if any.
+ *	@result	The current Growl delegate.
+ *	@discussion	Returns the last pointer passed into Growl_SetDelegate, or
+ *	 <code>NULL</code> if no such call has been made.
+ *
+ *	 This function follows standard Core Foundation reference-counting rules.
+ *	 Because it is a Get function, not a Copy function, it will not retain the
+ *	 delegate on your behalf. You are responsible for retaining and releasing
+ *	 the delegate as needed.
+ */
+GROWL_EXPORT struct Growl_Delegate *Growl_GetDelegate(void);
+
+#pragma mark -
+
+//	@functiongroup	Posting Growl notifications
+
+/*!	@function	Growl_PostNotification
+ *	@abstract	Posts a Growl notification.
+ *	@param	notification	The notification to post.
+ *	@discussion	This is the preferred means for sending a Growl notification.
+ *	 The notification name and at least one of the title and description are
+ *	 required (all three are preferred). All other parameters may be
+ *	 <code>NULL</code> (or 0 or false as appropriate) to accept default values.
+ *
+ *	 If using the Growl-WithInstaller framework, if Growl is not installed the
+ *	 user will be prompted to install Growl.
+ *	 If the user cancels, this function will have no effect until the next
+ *	 application session, at which time when it is called the user will be
+ *	 prompted again. The user is also given the option to not be prompted again.
+ *	 If the user does choose to install Growl, the requested notification will
+ *	 be displayed once Growl is installed and running.
+ */
+GROWL_EXPORT void Growl_PostNotification(const struct Growl_Notification *notification);
+
+/*!	@function Growl_PostNotificationWithDictionary
+*	@abstract	Notifies using a userInfo dictionary suitable for passing to
+*	 CFDistributedNotificationCenter.
+*	@param	userInfo	The dictionary to notify with.
+*	@discussion	Before Growl 0.6, your application would have posted
+*	 notifications using CFDistributedNotificationCenter by creating a userInfo
+*	 dictionary with the notification data. This had the advantage of allowing
+*	 you to add other data to the dictionary for programs besides Growl that
+*	 might be listening.
+*
+*	 This function allows you to use such dictionaries without being restricted
+*	 to using CFDistributedNotificationCenter. The keys for this dictionary
+ *	 can be found in GrowlDefines.h.
+*/
+GROWL_EXPORT void Growl_PostNotificationWithDictionary(CFDictionaryRef userInfo);
+
+/*!	@function	Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext
+ *	@abstract	Posts a Growl notification using parameter values.
+ *	@param	title	The title of the notification.
+ *	@param	description	The description of the notification.
+ *	@param	notificationName	The name of the notification as listed in the
+ *	 registration dictionary.
+ *	@param	iconData	Data representing a notification icon. Can be <code>NULL</code>.
+ *	@param	priority	The priority of the notification (-2 to +2, with -2
+ *	 being Very Low and +2 being Very High).
+ *	@param	isSticky	If true, requests that this notification wait for a
+ *	 response from the user.
+ *	@param	clickContext	An object to pass to the clickCallback, if any. Can
+ *	 be <code>NULL</code>, in which case the clickCallback is not called.
+ *	@discussion	Creates a temporary Growl_Notification, fills it out with the
+ *	 supplied information, and calls Growl_PostNotification on it.
+ *	 See struct Growl_Notification and Growl_PostNotification for more
+ *	 information.
+ *
+ *	 The icon data can be in any format supported by NSImage. As of Mac OS X
+ *	 10.3, this includes the .icns, TIFF, JPEG, GIF, PNG, PDF, and PICT formats.
+ */
+GROWL_EXPORT void Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext(
+ /*inhale*/
+	CFStringRef title,
+	CFStringRef description,
+	CFStringRef notificationName,
+	CFDataRef iconData,
+	signed int priority,
+	Boolean isSticky,
+	CFPropertyListRef clickContext);
+
+#pragma mark -
+
+//	@functiongroup	Registering
+
+/*!	@function Growl_RegisterWithDictionary
+ *	@abstract	Register your application with Growl without setting a delegate.
+ *	@discussion	When you call this function with a dictionary,
+ *	 GrowlApplicationBridge registers your application using that dictionary.
+ *	 If you pass <code>NULL</code>, GrowlApplicationBridge will ask the delegate
+ *	 (if there is one) for a dictionary, and if that doesn't work, it will look
+ *	 in your application's bundle for an auto-discoverable plist.
+ *	 (XXX refer to more information on that)
+ *
+ *	 If you pass a dictionary to this function, it must include the
+ *	 <code>GROWL_APP_NAME</code> key, unless a delegate is set.
+ *
+ *	 This function is mainly an alternative to the delegate system introduced
+ *	 with Growl 0.6. Without a delegate, you cannot receive callbacks such as
+ *	 <code>growlIsReady</code> (since they are sent to the delegate). You can,
+ *	 however, set a delegate after registering without one.
+ *
+ *	 This function was introduced in Growl.framework 0.7.
+ *	@result <code>false</code> if registration failed (e.g. if Growl isn't installed).
+ */
+GROWL_EXPORT Boolean Growl_RegisterWithDictionary(CFDictionaryRef regDict);
+
+/*!	@function	Growl_Reregister
+ *	@abstract	Updates your registration with Growl.
+ *	@discussion	If your application changes the contents of the
+ *	 GROWL_NOTIFICATIONS_ALL key in the registrationDictionary member of the
+ *	 Growl delegate, or if it changes the value of that member, or if it
+ *	 changes the contents of its auto-discoverable plist, call this function
+ *	 to have Growl update its registration information for your application.
+ *
+ *	 Otherwise, this function does not normally need to be called. If you're
+ *	 using a delegate, your application will be registered when you set the
+ *	 delegate if both the delegate and its registrationDictionary member are
+ *	 non-<code>NULL</code>.
+ *
+ *	 This function is now implemented using
+ *	 <code>Growl_RegisterWithDictionary</code>.
+ */
+GROWL_EXPORT void Growl_Reregister(void);
+
+#pragma mark -
+
+/*!	@function	Growl_SetWillRegisterWhenGrowlIsReady
+ *	@abstract	Tells GrowlApplicationBridge to register with Growl when Growl
+ *	 launches (or not).
+ *	@discussion	When Growl has started listening for notifications, it posts a
+ *	 <code>GROWL_IS_READY</code> notification on the Distributed Notification
+ *	 Center. GrowlApplicationBridge listens for this notification, using it to
+ *	 perform various tasks (such as calling your delegate's
+ *	 <code>growlIsReady</code> callback, if it has one). If this function is
+ *	 called with <code>true</code>, one of those tasks will be to reregister
+ *	 with Growl (in the manner of <code>Growl_Reregister</code>).
+ *
+ *	 This attribute is automatically set back to <code>false</code>
+ *	 (the default) after every <code>GROWL_IS_READY</code> notification.
+ *	@param	flag	<code>true</code> if you want GrowlApplicationBridge to register with
+ *	 Growl when next it is ready; <code>false</code> if not.
+ */
+GROWL_EXPORT void Growl_SetWillRegisterWhenGrowlIsReady(Boolean flag);
+/*!	@function	Growl_WillRegisterWhenGrowlIsReady
+ *	@abstract	Reports whether GrowlApplicationBridge will register with Growl
+ *	 when Growl next launches.
+ *	@result	<code>true</code> if GrowlApplicationBridge will register with
+ *	 Growl when next it posts GROWL_IS_READY; <code>false</code> if not.
+ */
+GROWL_EXPORT Boolean Growl_WillRegisterWhenGrowlIsReady(void);
+
+#pragma mark -
+
+//	@functiongroup	Obtaining registration dictionaries
+
+/*!	@function	Growl_CopyRegistrationDictionaryFromDelegate
+ *	@abstract	Asks the delegate for a registration dictionary.
+ *	@discussion	If no delegate is set, or if the delegate's
+ *	 <code>registrationDictionary</code> member is <code>NULL</code>, this
+ *	 function returns <code>NULL</code>.
+ *
+ *	 This function does not attempt to clean up the dictionary in any way - for
+ *	 example, if it is missing the <code>GROWL_APP_NAME</code> key, the result
+ *	 will be missing it too. Use
+ *	 <code>Growl_CreateRegistrationDictionaryByFillingInDictionary</code> or
+ *	 <code>Growl_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys</code>
+ *	 to try to fill in missing keys.
+ *
+ *	 This function was introduced in Growl.framework 0.7.
+ *	@result A registration dictionary.
+ */
+GROWL_EXPORT CFDictionaryRef Growl_CopyRegistrationDictionaryFromDelegate(void);
+
+/*!	@function	Growl_CopyRegistrationDictionaryFromBundle
+ *	@abstract	Looks in a bundle for a registration dictionary.
+ *	@discussion	This function looks in a bundle for an auto-discoverable
+ *	 registration dictionary file using <code>CFBundleCopyResourceURL</code>.
+ *	 If it finds one, it loads the file using <code>CFPropertyList</code> and
+ *	 returns the result.
+ *
+ *	 If you pass <code>NULL</code> as the bundle, the main bundle is examined.
+ *
+ *	 This function does not attempt to clean up the dictionary in any way - for
+ *	 example, if it is missing the <code>GROWL_APP_NAME</code> key, the result
+ *	 will be missing it too. Use
+ *	 <code>Growl_CreateRegistrationDictionaryByFillingInDictionary:</code> or
+ *	 <code>Growl_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys</code>
+ *	 to try to fill in missing keys.
+ *
+ *	 This function was introduced in Growl.framework 0.7.
+ *	@result A registration dictionary.
+ */
+GROWL_EXPORT CFDictionaryRef Growl_CopyRegistrationDictionaryFromBundle(CFBundleRef bundle);
+
+/*!	@function	Growl_CreateBestRegistrationDictionary
+ *	@abstract	Obtains a registration dictionary, filled out to the best of
+ *	 GrowlApplicationBridge's knowledge.
+ *	@discussion	This function creates a registration dictionary as best
+ *	 GrowlApplicationBridge knows how.
+ *
+ *	 First, GrowlApplicationBridge examines the Growl delegate (if there is
+ *	 one) and gets the registration dictionary from that. If no such dictionary
+ *	 was obtained, GrowlApplicationBridge looks in your application's main
+ *	 bundle for an auto-discoverable registration dictionary file. If that
+ *	 doesn't exist either, this function returns <code>NULL</code>.
+ *
+ *	 Second, GrowlApplicationBridge calls
+ *	 <code>Growl_CreateRegistrationDictionaryByFillingInDictionary</code> with
+ *	 whatever dictionary was obtained. The result of that function is the
+ *	 result of this function.
+ *
+ *	 GrowlApplicationBridge uses this function when you call
+ *	 <code>Growl_SetDelegate</code>, or when you call
+ *	 <code>Growl_RegisterWithDictionary</code> with <code>NULL</code>.
+ *
+ *	 This function was introduced in Growl.framework 0.7.
+ *	@result	A registration dictionary.
+ */
+GROWL_EXPORT CFDictionaryRef Growl_CreateBestRegistrationDictionary(void);
+
+#pragma mark -
+
+//	@functiongroup	Filling in registration dictionaries
+
+/*!	@function	Growl_CreateRegistrationDictionaryByFillingInDictionary
+ *	@abstract	Tries to fill in missing keys in a registration dictionary.
+ *	@param	regDict	The dictionary to fill in.
+ *	@result	The dictionary with the keys filled in.
+ *	@discussion	This function examines the passed-in dictionary for missing keys,
+ *	 and tries to work out correct values for them. As of 0.7, it uses:
+ *
+ *	 Key							             Value
+ *	 ---							             -----
+ *	 <code>GROWL_APP_NAME</code>                 <code>CFBundleExecutableName</code>
+ *	 <code>GROWL_APP_ICON</code>                 The icon of the application.
+ *	 <code>GROWL_APP_LOCATION</code>             The location of the application.
+ *	 <code>GROWL_NOTIFICATIONS_DEFAULT</code>    <code>GROWL_NOTIFICATIONS_ALL</code>
+ *
+ *	 Keys are only filled in if missing; if a key is present in the dictionary,
+ *	 its value will not be changed.
+ *
+ *	 This function was introduced in Growl.framework 0.7.
+ */
+GROWL_EXPORT CFDictionaryRef Growl_CreateRegistrationDictionaryByFillingInDictionary(CFDictionaryRef regDict);
+/*!	@function	Growl_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys
+ *	@abstract	Tries to fill in missing keys in a registration dictionary.
+ *	@param	regDict	The dictionary to fill in.
+ *	@param	keys	The keys to fill in. If <code>NULL</code>, any missing keys are filled in.
+ *	@result	The dictionary with the keys filled in.
+ *	@discussion	This function examines the passed-in dictionary for missing keys,
+ *	 and tries to work out correct values for them. As of 0.7, it uses:
+ *
+ *	 Key							             Value
+ *	 ---							             -----
+ *	 <code>GROWL_APP_NAME</code>                 <code>CFBundleExecutableName</code>
+ *	 <code>GROWL_APP_ICON</code>                 The icon of the application.
+ *	 <code>GROWL_APP_LOCATION</code>             The location of the application.
+ *	 <code>GROWL_NOTIFICATIONS_DEFAULT</code>    <code>GROWL_NOTIFICATIONS_ALL</code>
+ *
+ *	 Only those keys that are listed in <code>keys</code> will be filled in.
+ *	 Other missing keys are ignored. Also, keys are only filled in if missing;
+ *	 if a key is present in the dictionary, its value will not be changed.
+ *
+ *	 This function was introduced in Growl.framework 0.7.
+ */
+GROWL_EXPORT CFDictionaryRef Growl_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys(CFDictionaryRef regDict, CFSetRef keys);
+
+/*!	@brief	Tries to fill in missing keys in a notification dictionary.
+ *	@param	notifDict	The dictionary to fill in.
+ *	@return	The dictionary with the keys filled in. This will be a separate instance from \a notifDict.
+ *	@discussion	This function examines the \a notifDict for missing keys, and 
+ *	 tries to get them from the last known registration dictionary. As of 1.1, 
+ *	 the keys that it will look for are:
+ *
+ *	 \li <code>GROWL_APP_NAME</code>
+ *	 \li <code>GROWL_APP_ICON</code>
+ *
+ *	@since Growl.framework 1.1
+ */
+GROWL_EXPORT CFDictionaryRef Growl_CreateNotificationDictionaryByFillingInDictionary(CFDictionaryRef notifDict);
+
+#pragma mark -
+
+//	@functiongroup	Querying Growl's status
+
+/*!	@function	Growl_IsInstalled
+ *	@abstract	Determines whether the Growl prefpane and its helper app are
+ *	 installed.
+ *	@result	Returns true if Growl is installed, false otherwise.
+ */
+GROWL_EXPORT Boolean Growl_IsInstalled(void);
+
+/*!	@function	Growl_IsRunning
+ *	@abstract	Cycles through the process list to find whether GrowlHelperApp
+ *	 is running.
+ *	@result	Returns true if Growl is running, false otherwise.
+ */
+GROWL_EXPORT Boolean Growl_IsRunning(void);
+
+#pragma mark -
+
+//	@functiongroup	Launching Growl
+
+/*!	@typedef	GrowlLaunchCallback
+ *	@abstract	Callback to notify you that Growl is running.
+ *	@param	context	The context pointer passed to Growl_LaunchIfInstalled.
+ *	@discussion	Growl_LaunchIfInstalled calls this callback function if Growl
+ *	 was already running or if it launched Growl successfully.
+ */
+typedef void (*GrowlLaunchCallback)(void *context);
+
+/*!	@function	Growl_LaunchIfInstalled
+ *	@abstract	Launches GrowlHelperApp if it is not already running.
+ *	@param	callback	A callback function which will be called if Growl was successfully
+ *	 launched or was already running. Can be <code>NULL</code>.
+ *	@param	context	The context pointer to pass to the callback. Can be <code>NULL</code>.
+ *	@result	Returns true if Growl was successfully launched or was already
+ *	 running; returns false and does not call the callback otherwise.
+ *	@discussion	Returns true and calls the callback (if the callback is not
+ *	 <code>NULL</code>) if the Growl helper app began launching or was already
+ *	 running. Returns false and performs no other action if Growl could not be
+ *	 launched (e.g. because the Growl preference pane is not properly installed).
+ *
+ *	 If <code>Growl_CreateBestRegistrationDictionary</code> returns
+ *	 non-<code>NULL</code>, this function will register with Growl atomically.
+ *
+ *	 The callback should take a single argument; this is to allow applications
+ *	 to have context-relevant information passed back. It is perfectly
+ *	 acceptable for context to be <code>NULL</code>. The callback itself can be
+ *	 <code>NULL</code> if you don't want one.
+ */
+GROWL_EXPORT Boolean Growl_LaunchIfInstalled(GrowlLaunchCallback callback, void *context);
+
+#pragma mark -
+#pragma mark Constants
+
+/*!	@defined	GROWL_PREFPANE_BUNDLE_IDENTIFIER
+ *	@abstract	The CFBundleIdentifier of the Growl preference pane bundle.
+ *	@discussion	GrowlApplicationBridge uses this to determine whether Growl is
+ *	 currently installed, by searching for the Growl preference pane. Your
+ *	 application probably does not need to use this macro itself.
+ */
+#ifndef GROWL_PREFPANE_BUNDLE_IDENTIFIER
+#define GROWL_PREFPANE_BUNDLE_IDENTIFIER	CFSTR("com.growl.prefpanel")
+#endif
+
+__END_DECLS
+
+#endif /* _GROWLAPPLICATIONBRIDGE_CARBON_H_ */

Deleted: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h
===================================================================
--- branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -1,575 +0,0 @@
-//
-//  GrowlApplicationBridge.h
-//  Growl
-//
-//  Created by Evan Schoenberg on Wed Jun 16 2004.
-//  Copyright 2004-2006 The Growl Project. All rights reserved.
-//
-
-/*!
- *	@header		GrowlApplicationBridge.h
- *	@abstract   Defines the GrowlApplicationBridge class.
- *	@discussion This header defines the GrowlApplicationBridge class as well as
- *	 the GROWL_PREFPANE_BUNDLE_IDENTIFIER constant.
- */
-
-#ifndef __GrowlApplicationBridge_h__
-#define __GrowlApplicationBridge_h__
-
-#import <Foundation/Foundation.h>
-#import <AppKit/AppKit.h>
-#import "GrowlDefines.h"
-
-//Forward declarations
- at protocol GrowlApplicationBridgeDelegate;
-
-//Internal notification when the user chooses not to install (to avoid continuing to cache notifications awaiting installation)
-#define GROWL_USER_CHOSE_NOT_TO_INSTALL_NOTIFICATION @"User chose not to install"
-
-//------------------------------------------------------------------------------
-#pragma mark -
-
-/*!
- *	@class      GrowlApplicationBridge
- *	@abstract   A class used to interface with Growl.
- *	@discussion This class provides a means to interface with Growl.
- *
- *	 Currently it provides a way to detect if Growl is installed and launch the
- *	 GrowlHelperApp if it's not already running.
- */
- at interface GrowlApplicationBridge : NSObject {
-
-}
-
-/*!
- *	@method isGrowlInstalled
- *	@abstract Detects whether Growl is installed.
- *	@discussion Determines if the Growl prefpane and its helper app are installed.
- *	@result Returns YES if Growl is installed, NO otherwise.
- */
-+ (BOOL) isGrowlInstalled;
-
-/*!
- *	@method isGrowlRunning
- *	@abstract Detects whether GrowlHelperApp is currently running.
- *	@discussion Cycles through the process list to find whether GrowlHelperApp is running and returns its findings.
- *	@result Returns YES if GrowlHelperApp is running, NO otherwise.
- */
-+ (BOOL) isGrowlRunning;
-
-#pragma mark -
-
-/*!
- *	@method setGrowlDelegate:
- *	@abstract Set the object which will be responsible for providing and receiving Growl information.
- *	@discussion This must be called before using GrowlApplicationBridge.
- *
- *	 The methods in the GrowlApplicationBridgeDelegate protocol are required
- *	 and return the basic information needed to register with Growl.
- *
- *	 The methods in the GrowlApplicationBridgeDelegate_InformalProtocol
- *	 informal protocol are individually optional.  They provide a greater
- *	 degree of interaction between the application and growl such as informing
- *	 the application when one of its Growl notifications is clicked by the user.
- *
- *	 The methods in the GrowlApplicationBridgeDelegate_Installation_InformalProtocol
- *	 informal protocol are individually optional and are only applicable when
- *	 using the Growl-WithInstaller.framework which allows for automated Growl
- *	 installation.
- *
- *	 When this method is called, data will be collected from inDelegate, Growl
- *	 will be launched if it is not already running, and the application will be
- *	 registered with Growl.
- *
- *	 If using the Growl-WithInstaller framework, if Growl is already installed
- *	 but this copy of the framework has an updated version of Growl, the user
- *	 will be prompted to update automatically.
- *
- *	@param inDelegate The delegate for the GrowlApplicationBridge. It must conform to the GrowlApplicationBridgeDelegate protocol.
- */
-+ (void) setGrowlDelegate:(NSObject<GrowlApplicationBridgeDelegate> *)inDelegate;
-
-/*!
- *	@method growlDelegate
- *	@abstract Return the object responsible for providing and receiving Growl information.
- *	@discussion See setGrowlDelegate: for details.
- *	@result The Growl delegate.
- */
-+ (NSObject<GrowlApplicationBridgeDelegate> *) growlDelegate;
-
-#pragma mark -
-
-/*!
- *	@method notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:
- *	@abstract Send a Growl notification.
- *	@discussion This is the preferred means for sending a Growl notification.
- *	 The notification name and at least one of the title and description are
- *	 required (all three are preferred).  All other parameters may be
- *	 <code>nil</code> (or 0 or NO as appropriate) to accept default values.
- *
- *	 If using the Growl-WithInstaller framework, if Growl is not installed the
- *	 user will be prompted to install Growl. If the user cancels, this method
- *	 will have no effect until the next application session, at which time when
- *	 it is called the user will be prompted again. The user is also given the
- *	 option to not be prompted again.  If the user does choose to install Growl,
- *	 the requested notification will be displayed once Growl is installed and
- *	 running.
- *
- *	@param title		The title of the notification displayed to the user.
- *	@param description	The full description of the notification displayed to the user.
- *	@param notifName	The internal name of the notification. Should be human-readable, as it will be displayed in the Growl preference pane.
- *	@param iconData		<code>NSData</code> object to show with the notification as its icon. If <code>nil</code>, the application's icon will be used instead.
- *	@param priority		The priority of the notification. The default value is 0; positive values are higher priority and negative values are lower priority. Not all Growl displays support priority.
- *	@param isSticky		If YES, the notification will remain on screen until clicked. Not all Growl displays support sticky notifications.
- *	@param clickContext	A context passed back to the Growl delegate if it implements -(void)growlNotificationWasClicked: and the notification is clicked. Not all display plugins support clicking. The clickContext must be plist-encodable (completely of <code>NSString</code>, <code>NSArray</code>, <code>NSNumber</code>, <code>NSDictionary</code>, and <code>NSData</code> types).
- */
-+ (void) notifyWithTitle:(NSString *)title
-			 description:(NSString *)description
-		notificationName:(NSString *)notifName
-				iconData:(NSData *)iconData
-				priority:(signed int)priority
-				isSticky:(BOOL)isSticky
-			clickContext:(id)clickContext;
-
-/*!
- *	@method notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:identifier:
- *	@abstract Send a Growl notification.
- *	@discussion This is the preferred means for sending a Growl notification.
- *	 The notification name and at least one of the title and description are
- *	 required (all three are preferred).  All other parameters may be
- *	 <code>nil</code> (or 0 or NO as appropriate) to accept default values.
- *
- *	 If using the Growl-WithInstaller framework, if Growl is not installed the
- *	 user will be prompted to install Growl. If the user cancels, this method
- *	 will have no effect until the next application session, at which time when
- *	 it is called the user will be prompted again. The user is also given the
- *	 option to not be prompted again.  If the user does choose to install Growl,
- *	 the requested notification will be displayed once Growl is installed and
- *	 running.
- *
- *	@param title		The title of the notification displayed to the user.
- *	@param description	The full description of the notification displayed to the user.
- *	@param notifName	The internal name of the notification. Should be human-readable, as it will be displayed in the Growl preference pane.
- *	@param iconData		<code>NSData</code> object to show with the notification as its icon. If <code>nil</code>, the application's icon will be used instead.
- *	@param priority		The priority of the notification. The default value is 0; positive values are higher priority and negative values are lower priority. Not all Growl displays support priority.
- *	@param isSticky		If YES, the notification will remain on screen until clicked. Not all Growl displays support sticky notifications.
- *	@param clickContext	A context passed back to the Growl delegate if it implements -(void)growlNotificationWasClicked: and the notification is clicked. Not all display plugins support clicking. The clickContext must be plist-encodable (completely of <code>NSString</code>, <code>NSArray</code>, <code>NSNumber</code>, <code>NSDictionary</code>, and <code>NSData</code> types).
- *	@param identifier	An identifier for this notification. Notifications with equal identifiers are coalesced.
- */
-+ (void) notifyWithTitle:(NSString *)title
-			 description:(NSString *)description
-		notificationName:(NSString *)notifName
-				iconData:(NSData *)iconData
-				priority:(signed int)priority
-				isSticky:(BOOL)isSticky
-			clickContext:(id)clickContext
-			  identifier:(NSString *)identifier;
-
-/*!	@method	notifyWithDictionary:
- *	@abstract	Notifies using a userInfo dictionary suitable for passing to
- *	 <code>NSDistributedNotificationCenter</code>.
- *	@param	userInfo	The dictionary to notify with.
- *	@discussion	Before Growl 0.6, your application would have posted
- *	 notifications using <code>NSDistributedNotificationCenter</code> by
- *	 creating a userInfo dictionary with the notification data. This had the
- *	 advantage of allowing you to add other data to the dictionary for programs
- *	 besides Growl that might be listening.
- *
- *	 This method allows you to use such dictionaries without being restricted
- *	 to using <code>NSDistributedNotificationCenter</code>. The keys for this dictionary
- *	 can be found in GrowlDefines.h.
- */
-+ (void) notifyWithDictionary:(NSDictionary *)userInfo;
-
-#pragma mark -
-
-/*!	@method	registerWithDictionary:
- *	@abstract	Register your application with Growl without setting a delegate.
- *	@discussion	When you call this method with a dictionary,
- *	 GrowlApplicationBridge registers your application using that dictionary.
- *	 If you pass <code>nil</code>, GrowlApplicationBridge will ask the delegate
- *	 (if there is one) for a dictionary, and if that doesn't work, it will look
- *	 in your application's bundle for an auto-discoverable plist.
- *	 (XXX refer to more information on that)
- *
- *	 If you pass a dictionary to this method, it must include the
- *	 <code>GROWL_APP_NAME</code> key, unless a delegate is set.
- *
- *	 This method is mainly an alternative to the delegate system introduced
- *	 with Growl 0.6. Without a delegate, you cannot receive callbacks such as
- *	 <code>-growlIsReady</code> (since they are sent to the delegate). You can,
- *	 however, set a delegate after registering without one.
- *
- *	 This method was introduced in Growl.framework 0.7.
- */
-+ (BOOL) registerWithDictionary:(NSDictionary *)regDict;
-
-/*!	@method	reregisterGrowlNotifications
- *	@abstract	Reregister the notifications for this application.
- *	@discussion	This method does not normally need to be called.  If your
- *	 application changes what notifications it is registering with Growl, call
- *	 this method to have the Growl delegate's
- *	 <code>-registrationDictionaryForGrowl</code> method called again and the
- *	 Growl registration information updated.
- *
- *	 This method is now implemented using <code>-registerWithDictionary:</code>.
- */
-+ (void) reregisterGrowlNotifications;
-
-#pragma mark -
-
-/*!	@method	setWillRegisterWhenGrowlIsReady:
- *	@abstract	Tells GrowlApplicationBridge to register with Growl when Growl
- *	 launches (or not).
- *	@discussion	When Growl has started listening for notifications, it posts a
- *	 <code>GROWL_IS_READY</code> notification on the Distributed Notification
- *	 Center. GrowlApplicationBridge listens for this notification, using it to
- *	 perform various tasks (such as calling your delegate's
- *	 <code>-growlIsReady</code> method, if it has one). If this method is
- *	 called with <code>YES</code>, one of those tasks will be to reregister
- *	 with Growl (in the manner of <code>-reregisterGrowlNotifications</code>).
- *
- *	 This attribute is automatically set back to <code>NO</code> (the default)
- *	 after every <code>GROWL_IS_READY</code> notification.
- *	@param	flag	<code>YES</code> if you want GrowlApplicationBridge to register with
- *	 Growl when next it is ready; <code>NO</code> if not.
- */
-+ (void) setWillRegisterWhenGrowlIsReady:(BOOL)flag;
-/*!	@method	willRegisterWhenGrowlIsReady
- *	@abstract	Reports whether GrowlApplicationBridge will register with Growl
- *	 when Growl next launches.
- *	@result	<code>YES</code> if GrowlApplicationBridge will register with Growl
- *	 when next it posts GROWL_IS_READY; <code>NO</code> if not.
- */
-+ (BOOL) willRegisterWhenGrowlIsReady;
-
-#pragma mark -
-
-/*!	@method	registrationDictionaryFromDelegate
- *	@abstract	Asks the delegate for a registration dictionary.
- *	@discussion	If no delegate is set, or if the delegate's
- *	 <code>-registrationDictionaryForGrowl</code> method returns
- *	 <code>nil</code>, this method returns <code>nil</code>.
- *
- *	 This method does not attempt to clean up the dictionary in any way - for
- *	 example, if it is missing the <code>GROWL_APP_NAME</code> key, the result
- *	 will be missing it too. Use <code>+[GrowlApplicationBridge
- *	 registrationDictionaryByFillingInDictionary:]</code> or
- *	 <code>+[GrowlApplicationBridge
- *	 registrationDictionaryByFillingInDictionary:restrictToKeys:]</code> to try
- *	 to fill in missing keys.
- *
- *	 This method was introduced in Growl.framework 0.7.
- *	@result A registration dictionary.
- */
-+ (NSDictionary *) registrationDictionaryFromDelegate;
-
-/*!	@method	registrationDictionaryFromBundle:
- *	@abstract	Looks in a bundle for a registration dictionary.
- *	@discussion	This method looks in a bundle for an auto-discoverable
- *	 registration dictionary file using <code>-[NSBundle
- *	 pathForResource:ofType:]</code>. If it finds one, it loads the file using
- *	 <code>+[NSDictionary dictionaryWithContentsOfFile:]</code> and returns the
- *	 result.
- *
- *	 If you pass <code>nil</code> as the bundle, the main bundle is examined.
- *
- *	 This method does not attempt to clean up the dictionary in any way - for
- *	 example, if it is missing the <code>GROWL_APP_NAME</code> key, the result
- *	 will be missing it too. Use <code>+[GrowlApplicationBridge
- *	 registrationDictionaryByFillingInDictionary:]</code> or
- *	 <code>+[GrowlApplicationBridge
- *	 registrationDictionaryByFillingInDictionary:restrictToKeys:]</code> to try
- *	 to fill in missing keys.
- *
- *	 This method was introduced in Growl.framework 0.7.
- *	@result A registration dictionary.
- */
-+ (NSDictionary *) registrationDictionaryFromBundle:(NSBundle *)bundle;
-
-/*!	@method	bestRegistrationDictionary
- *	@abstract	Obtains a registration dictionary, filled out to the best of
- *	 GrowlApplicationBridge's knowledge.
- *	@discussion	This method creates a registration dictionary as best
- *	 GrowlApplicationBridge knows how.
- *
- *	 First, GrowlApplicationBridge contacts the Growl delegate (if there is
- *	 one) and gets the registration dictionary from that. If no such dictionary
- *	 was obtained, GrowlApplicationBridge looks in your application's main
- *	 bundle for an auto-discoverable registration dictionary file. If that
- *	 doesn't exist either, this method returns <code>nil</code>.
- *
- *	 Second, GrowlApplicationBridge calls
- *	 <code>+registrationDictionaryByFillingInDictionary:</code> with whatever
- *	 dictionary was obtained. The result of that method is the result of this
- *	 method.
- *
- *	 GrowlApplicationBridge uses this method when you call
- *	 <code>+setGrowlDelegate:</code>, or when you call
- *	 <code>+registerWithDictionary:</code> with <code>nil</code>.
- *
- *	 This method was introduced in Growl.framework 0.7.
- *	@result	A registration dictionary.
- */
-+ (NSDictionary *) bestRegistrationDictionary;
-
-#pragma mark -
-
-/*!	@method	registrationDictionaryByFillingInDictionary:
- *	@abstract	Tries to fill in missing keys in a registration dictionary.
- *	@discussion	This method examines the passed-in dictionary for missing keys,
- *	 and tries to work out correct values for them. As of 0.7, it uses:
- *
- *	 Key							             Value
- *	 ---							             -----
- *	 <code>GROWL_APP_NAME</code>                 <code>CFBundleExecutableName</code>
- *	 <code>GROWL_APP_ICON</code>                 The icon of the application.
- *	 <code>GROWL_APP_LOCATION</code>             The location of the application.
- *	 <code>GROWL_NOTIFICATIONS_DEFAULT</code>    <code>GROWL_NOTIFICATIONS_ALL</code>
- *
- *	 Keys are only filled in if missing; if a key is present in the dictionary,
- *	 its value will not be changed.
- *
- *	 This method was introduced in Growl.framework 0.7.
- *	@param	regDict	The dictionary to fill in.
- *	@result	The dictionary with the keys filled in. This is an autoreleased
- *	 copy of <code>regDict</code>.
- */
-+ (NSDictionary *) registrationDictionaryByFillingInDictionary:(NSDictionary *)regDict;
-/*!	@method	registrationDictionaryByFillingInDictionary:restrictToKeys:
- *	@abstract	Tries to fill in missing keys in a registration dictionary.
- *	@discussion	This method examines the passed-in dictionary for missing keys,
- *	 and tries to work out correct values for them. As of 0.7, it uses:
- *
- *	 Key							             Value
- *	 ---							             -----
- *	 <code>GROWL_APP_NAME</code>                 <code>CFBundleExecutableName</code>
- *	 <code>GROWL_APP_ICON</code>                 The icon of the application.
- *	 <code>GROWL_APP_LOCATION</code>             The location of the application.
- *	 <code>GROWL_NOTIFICATIONS_DEFAULT</code>    <code>GROWL_NOTIFICATIONS_ALL</code>
- *
- *	 Only those keys that are listed in <code>keys</code> will be filled in.
- *	 Other missing keys are ignored. Also, keys are only filled in if missing;
- *	 if a key is present in the dictionary, its value will not be changed.
- *
- *	 This method was introduced in Growl.framework 0.7.
- *	@param	regDict	The dictionary to fill in.
- *	@param	keys	The keys to fill in. If <code>nil</code>, any missing keys are filled in.
- *	@result	The dictionary with the keys filled in. This is an autoreleased
- *	 copy of <code>regDict</code>.
- */
-+ (NSDictionary *) registrationDictionaryByFillingInDictionary:(NSDictionary *)regDict restrictToKeys:(NSSet *)keys;
-
-/*!	@brief	Tries to fill in missing keys in a notification dictionary.
- *	@param	notifDict	The dictionary to fill in.
- *	@return	The dictionary with the keys filled in. This will be a separate instance from \a notifDict.
- *	@discussion	This function examines the \a notifDict for missing keys, and 
- *	 tries to get them from the last known registration dictionary. As of 1.1, 
- *	 the keys that it will look for are:
- *
- *	 \li <code>GROWL_APP_NAME</code>
- *	 \li <code>GROWL_APP_ICON</code>
- *
- *	@since Growl.framework 1.1
- */
-+ (NSDictionary *) notificationDictionaryByFillingInDictionary:(NSDictionary *)regDict;
-
-+ (NSDictionary *) frameworkInfoDictionary;
- at end
-
-//------------------------------------------------------------------------------
-#pragma mark -
-
-/*!
- *	@protocol GrowlApplicationBridgeDelegate
- *	@abstract Required protocol for the Growl delegate.
- *	@discussion The methods in this protocol are required and are called
- *	 automatically as needed by GrowlApplicationBridge. See
- *	 <code>+[GrowlApplicationBridge setGrowlDelegate:]</code>.
- *	 See also <code>GrowlApplicationBridgeDelegate_InformalProtocol</code>.
- */
-
- at protocol GrowlApplicationBridgeDelegate
-
-// -registrationDictionaryForGrowl has moved to the informal protocol as of 0.7.
-
- at end
-
-//------------------------------------------------------------------------------
-#pragma mark -
-
-/*!
- *	@category NSObject(GrowlApplicationBridgeDelegate_InformalProtocol)
- *	@abstract Methods which may be optionally implemented by the GrowlDelegate.
- *	@discussion The methods in this informal protocol will only be called if implemented by the delegate.
- */
- at interface NSObject (GrowlApplicationBridgeDelegate_InformalProtocol)
-
-/*!
- *	@method registrationDictionaryForGrowl
- *	@abstract Return the dictionary used to register this application with Growl.
- *	@discussion The returned dictionary gives Growl the complete list of
- *	 notifications this application will ever send, and it also specifies which
- *	 notifications should be enabled by default.  Each is specified by an array
- *	 of <code>NSString</code> objects.
- *
- *	 For most applications, these two arrays can be the same (if all sent
- *	 notifications should be displayed by default).
- *
- *	 The <code>NSString</code> objects of these arrays will correspond to the
- *	 <code>notificationName:</code> parameter passed in
- *	 <code>+[GrowlApplicationBridge
- *	 notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:]</code> calls.
- *
- *	 The dictionary should have the required key object pairs:
- *	 key: GROWL_NOTIFICATIONS_ALL		object: <code>NSArray</code> of <code>NSString</code> objects
- *	 key: GROWL_NOTIFICATIONS_DEFAULT	object: <code>NSArray</code> of <code>NSString</code> objects
- *
- *   The dictionary may have the following key object pairs:
- *   key: GROWL_NOTIFICATIONS_HUMAN_READABLE_NAMES	object: <code>NSDictionary</code> of key: notification name		object: human-readable notification name
- *
- *	 You do not need to implement this method if you have an auto-discoverable
- *	 plist file in your app bundle. (XXX refer to more information on that)
- *
- *	@result The <code>NSDictionary</code> to use for registration.
- */
-- (NSDictionary *) registrationDictionaryForGrowl;
-
-/*!
- *	@method applicationNameForGrowl
- *	@abstract Return the name of this application which will be used for Growl bookkeeping.
- *	@discussion This name is used both internally and in the Growl preferences.
- *
- *	 This should remain stable between different versions and incarnations of
- *	 your application.
- *	 For example, "SurfWriter" is a good app name, whereas "SurfWriter 2.0" and
- *	 "SurfWriter Lite" are not.
- *
- *	 You do not need to implement this method if you are providing the
- *	 application name elsewhere, meaning in an auto-discoverable plist file in
- *	 your app bundle (XXX refer to more information on that) or in the result
- *	 of -registrationDictionaryForGrowl.
- *
- *	@result The name of the application using Growl.
- */
-- (NSString *) applicationNameForGrowl;
-
-/*!
- *	@method applicationIconForGrowl
- *	@abstract Return the <code>NSImage</code> to treat as the application icon.
- *	@discussion The delegate may optionally return an <code>NSImage</code>
- *	 object to use as the application icon. If this method is not implemented,
- *	 {{{-applicationIconDataForGrowl}}} is tried. If that method is not
- *	 implemented, the application's own icon is used. Neither method is
- *	 generally needed.
- *	@result The <code>NSImage</code> to treat as the application icon.
- */
-- (NSImage *) applicationIconForGrowl;
-
-/*!
- *	@method applicationIconDataForGrowl
- *	@abstract Return the <code>NSData</code> to treat as the application icon.
- *	@discussion The delegate may optionally return an <code>NSData</code>
- *	 object to use as the application icon; if this is not implemented, the
- *	 application's own icon is used.  This is not generally needed.
- *	@result The <code>NSData</code> to treat as the application icon.
- *	@deprecated In version 1.1, in favor of {{{-applicationIconForGrowl}}}.
- */
-- (NSData *) applicationIconDataForGrowl;
-
-/*!
- *	@method growlIsReady
- *	@abstract Informs the delegate that Growl has launched.
- *	@discussion Informs the delegate that Growl (specifically, the
- *	 GrowlHelperApp) was launched successfully. The application can take actions
- *   with the knowledge that Growl is installed and functional.
- */
-- (void) growlIsReady;
-
-/*!
- *	@method growlNotificationWasClicked:
- *	@abstract Informs the delegate that a Growl notification was clicked.
- *	@discussion Informs the delegate that a Growl notification was clicked.  It
- *	 is only sent for notifications sent with a non-<code>nil</code>
- *	 clickContext, so if you want to receive a message when a notification is
- *	 clicked, clickContext must not be <code>nil</code> when calling
- *	 <code>+[GrowlApplicationBridge notifyWithTitle: description:notificationName:iconData:priority:isSticky:clickContext:]</code>.
- *	@param clickContext The clickContext passed when displaying the notification originally via +[GrowlApplicationBridge notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:].
- */
-- (void) growlNotificationWasClicked:(id)clickContext;
-
-/*!
- *	@method growlNotificationTimedOut:
- *	@abstract Informs the delegate that a Growl notification timed out.
- *	@discussion Informs the delegate that a Growl notification timed out. It
- *	 is only sent for notifications sent with a non-<code>nil</code>
- *	 clickContext, so if you want to receive a message when a notification is
- *	 clicked, clickContext must not be <code>nil</code> when calling
- *	 <code>+[GrowlApplicationBridge notifyWithTitle: description:notificationName:iconData:priority:isSticky:clickContext:]</code>.
- *	@param clickContext The clickContext passed when displaying the notification originally via +[GrowlApplicationBridge notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:].
- */
-- (void) growlNotificationTimedOut:(id)clickContext;
-
- at end
-
-#pragma mark -
-/*!
- *	@category NSObject(GrowlApplicationBridgeDelegate_Installation_InformalProtocol)
- *	@abstract Methods which may be optionally implemented by the Growl delegate when used with Growl-WithInstaller.framework.
- *	@discussion The methods in this informal protocol will only be called if
- *	 implemented by the delegate.  They allow greater control of the information
- *	 presented to the user when installing or upgrading Growl from within your
- *	 application when using Growl-WithInstaller.framework.
- */
- at interface NSObject (GrowlApplicationBridgeDelegate_Installation_InformalProtocol)
-
-/*!
- *	@method growlInstallationWindowTitle
- *	@abstract Return the title of the installation window.
- *	@discussion If not implemented, Growl will use a default, localized title.
- *	@result An NSString object to use as the title.
- */
-- (NSString *)growlInstallationWindowTitle;
-
-/*!
- *	@method growlUpdateWindowTitle
- *	@abstract Return the title of the upgrade window.
- *	@discussion If not implemented, Growl will use a default, localized title.
- *	@result An NSString object to use as the title.
- */
-- (NSString *)growlUpdateWindowTitle;
-
-/*!
- *	@method growlInstallationInformation
- *	@abstract Return the information to display when installing.
- *	@discussion This information may be as long or short as desired (the window
- *	 will be sized to fit it).  It will be displayed to the user as an
- *	 explanation of what Growl is and what it can do in your application.  It
- *	 should probably note that no download is required to install.
- *
- *	 If this is not implemented, Growl will use a default, localized explanation.
- *	@result An NSAttributedString object to display.
- */
-- (NSAttributedString *)growlInstallationInformation;
-
-/*!
- *	@method growlUpdateInformation
- *	@abstract Return the information to display when upgrading.
- *	@discussion This information may be as long or short as desired (the window
- *	 will be sized to fit it).  It will be displayed to the user as an
- *	 explanation that an updated version of Growl is included in your
- *	 application and no download is required.
- *
- *	 If this is not implemented, Growl will use a default, localized explanation.
- *	@result An NSAttributedString object to display.
- */
-- (NSAttributedString *)growlUpdateInformation;
-
- at end
-
-//private
- at interface GrowlApplicationBridge (GrowlInstallationPrompt_private)
-+ (void) _userChoseNotToInstallGrowl;
- at end
-
-#endif /* __GrowlApplicationBridge_h__ */

Copied: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h (from rev 72222, branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h)
===================================================================
--- contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h	                        (rev 0)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1,575 @@
+//
+//  GrowlApplicationBridge.h
+//  Growl
+//
+//  Created by Evan Schoenberg on Wed Jun 16 2004.
+//  Copyright 2004-2006 The Growl Project. All rights reserved.
+//
+
+/*!
+ *	@header		GrowlApplicationBridge.h
+ *	@abstract   Defines the GrowlApplicationBridge class.
+ *	@discussion This header defines the GrowlApplicationBridge class as well as
+ *	 the GROWL_PREFPANE_BUNDLE_IDENTIFIER constant.
+ */
+
+#ifndef __GrowlApplicationBridge_h__
+#define __GrowlApplicationBridge_h__
+
+#import <Foundation/Foundation.h>
+#import <AppKit/AppKit.h>
+#import "GrowlDefines.h"
+
+//Forward declarations
+ at protocol GrowlApplicationBridgeDelegate;
+
+//Internal notification when the user chooses not to install (to avoid continuing to cache notifications awaiting installation)
+#define GROWL_USER_CHOSE_NOT_TO_INSTALL_NOTIFICATION @"User chose not to install"
+
+//------------------------------------------------------------------------------
+#pragma mark -
+
+/*!
+ *	@class      GrowlApplicationBridge
+ *	@abstract   A class used to interface with Growl.
+ *	@discussion This class provides a means to interface with Growl.
+ *
+ *	 Currently it provides a way to detect if Growl is installed and launch the
+ *	 GrowlHelperApp if it's not already running.
+ */
+ at interface GrowlApplicationBridge : NSObject {
+
+}
+
+/*!
+ *	@method isGrowlInstalled
+ *	@abstract Detects whether Growl is installed.
+ *	@discussion Determines if the Growl prefpane and its helper app are installed.
+ *	@result Returns YES if Growl is installed, NO otherwise.
+ */
++ (BOOL) isGrowlInstalled;
+
+/*!
+ *	@method isGrowlRunning
+ *	@abstract Detects whether GrowlHelperApp is currently running.
+ *	@discussion Cycles through the process list to find whether GrowlHelperApp is running and returns its findings.
+ *	@result Returns YES if GrowlHelperApp is running, NO otherwise.
+ */
++ (BOOL) isGrowlRunning;
+
+#pragma mark -
+
+/*!
+ *	@method setGrowlDelegate:
+ *	@abstract Set the object which will be responsible for providing and receiving Growl information.
+ *	@discussion This must be called before using GrowlApplicationBridge.
+ *
+ *	 The methods in the GrowlApplicationBridgeDelegate protocol are required
+ *	 and return the basic information needed to register with Growl.
+ *
+ *	 The methods in the GrowlApplicationBridgeDelegate_InformalProtocol
+ *	 informal protocol are individually optional.  They provide a greater
+ *	 degree of interaction between the application and growl such as informing
+ *	 the application when one of its Growl notifications is clicked by the user.
+ *
+ *	 The methods in the GrowlApplicationBridgeDelegate_Installation_InformalProtocol
+ *	 informal protocol are individually optional and are only applicable when
+ *	 using the Growl-WithInstaller.framework which allows for automated Growl
+ *	 installation.
+ *
+ *	 When this method is called, data will be collected from inDelegate, Growl
+ *	 will be launched if it is not already running, and the application will be
+ *	 registered with Growl.
+ *
+ *	 If using the Growl-WithInstaller framework, if Growl is already installed
+ *	 but this copy of the framework has an updated version of Growl, the user
+ *	 will be prompted to update automatically.
+ *
+ *	@param inDelegate The delegate for the GrowlApplicationBridge. It must conform to the GrowlApplicationBridgeDelegate protocol.
+ */
++ (void) setGrowlDelegate:(NSObject<GrowlApplicationBridgeDelegate> *)inDelegate;
+
+/*!
+ *	@method growlDelegate
+ *	@abstract Return the object responsible for providing and receiving Growl information.
+ *	@discussion See setGrowlDelegate: for details.
+ *	@result The Growl delegate.
+ */
++ (NSObject<GrowlApplicationBridgeDelegate> *) growlDelegate;
+
+#pragma mark -
+
+/*!
+ *	@method notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:
+ *	@abstract Send a Growl notification.
+ *	@discussion This is the preferred means for sending a Growl notification.
+ *	 The notification name and at least one of the title and description are
+ *	 required (all three are preferred).  All other parameters may be
+ *	 <code>nil</code> (or 0 or NO as appropriate) to accept default values.
+ *
+ *	 If using the Growl-WithInstaller framework, if Growl is not installed the
+ *	 user will be prompted to install Growl. If the user cancels, this method
+ *	 will have no effect until the next application session, at which time when
+ *	 it is called the user will be prompted again. The user is also given the
+ *	 option to not be prompted again.  If the user does choose to install Growl,
+ *	 the requested notification will be displayed once Growl is installed and
+ *	 running.
+ *
+ *	@param title		The title of the notification displayed to the user.
+ *	@param description	The full description of the notification displayed to the user.
+ *	@param notifName	The internal name of the notification. Should be human-readable, as it will be displayed in the Growl preference pane.
+ *	@param iconData		<code>NSData</code> object to show with the notification as its icon. If <code>nil</code>, the application's icon will be used instead.
+ *	@param priority		The priority of the notification. The default value is 0; positive values are higher priority and negative values are lower priority. Not all Growl displays support priority.
+ *	@param isSticky		If YES, the notification will remain on screen until clicked. Not all Growl displays support sticky notifications.
+ *	@param clickContext	A context passed back to the Growl delegate if it implements -(void)growlNotificationWasClicked: and the notification is clicked. Not all display plugins support clicking. The clickContext must be plist-encodable (completely of <code>NSString</code>, <code>NSArray</code>, <code>NSNumber</code>, <code>NSDictionary</code>, and <code>NSData</code> types).
+ */
++ (void) notifyWithTitle:(NSString *)title
+			 description:(NSString *)description
+		notificationName:(NSString *)notifName
+				iconData:(NSData *)iconData
+				priority:(signed int)priority
+				isSticky:(BOOL)isSticky
+			clickContext:(id)clickContext;
+
+/*!
+ *	@method notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:identifier:
+ *	@abstract Send a Growl notification.
+ *	@discussion This is the preferred means for sending a Growl notification.
+ *	 The notification name and at least one of the title and description are
+ *	 required (all three are preferred).  All other parameters may be
+ *	 <code>nil</code> (or 0 or NO as appropriate) to accept default values.
+ *
+ *	 If using the Growl-WithInstaller framework, if Growl is not installed the
+ *	 user will be prompted to install Growl. If the user cancels, this method
+ *	 will have no effect until the next application session, at which time when
+ *	 it is called the user will be prompted again. The user is also given the
+ *	 option to not be prompted again.  If the user does choose to install Growl,
+ *	 the requested notification will be displayed once Growl is installed and
+ *	 running.
+ *
+ *	@param title		The title of the notification displayed to the user.
+ *	@param description	The full description of the notification displayed to the user.
+ *	@param notifName	The internal name of the notification. Should be human-readable, as it will be displayed in the Growl preference pane.
+ *	@param iconData		<code>NSData</code> object to show with the notification as its icon. If <code>nil</code>, the application's icon will be used instead.
+ *	@param priority		The priority of the notification. The default value is 0; positive values are higher priority and negative values are lower priority. Not all Growl displays support priority.
+ *	@param isSticky		If YES, the notification will remain on screen until clicked. Not all Growl displays support sticky notifications.
+ *	@param clickContext	A context passed back to the Growl delegate if it implements -(void)growlNotificationWasClicked: and the notification is clicked. Not all display plugins support clicking. The clickContext must be plist-encodable (completely of <code>NSString</code>, <code>NSArray</code>, <code>NSNumber</code>, <code>NSDictionary</code>, and <code>NSData</code> types).
+ *	@param identifier	An identifier for this notification. Notifications with equal identifiers are coalesced.
+ */
++ (void) notifyWithTitle:(NSString *)title
+			 description:(NSString *)description
+		notificationName:(NSString *)notifName
+				iconData:(NSData *)iconData
+				priority:(signed int)priority
+				isSticky:(BOOL)isSticky
+			clickContext:(id)clickContext
+			  identifier:(NSString *)identifier;
+
+/*!	@method	notifyWithDictionary:
+ *	@abstract	Notifies using a userInfo dictionary suitable for passing to
+ *	 <code>NSDistributedNotificationCenter</code>.
+ *	@param	userInfo	The dictionary to notify with.
+ *	@discussion	Before Growl 0.6, your application would have posted
+ *	 notifications using <code>NSDistributedNotificationCenter</code> by
+ *	 creating a userInfo dictionary with the notification data. This had the
+ *	 advantage of allowing you to add other data to the dictionary for programs
+ *	 besides Growl that might be listening.
+ *
+ *	 This method allows you to use such dictionaries without being restricted
+ *	 to using <code>NSDistributedNotificationCenter</code>. The keys for this dictionary
+ *	 can be found in GrowlDefines.h.
+ */
++ (void) notifyWithDictionary:(NSDictionary *)userInfo;
+
+#pragma mark -
+
+/*!	@method	registerWithDictionary:
+ *	@abstract	Register your application with Growl without setting a delegate.
+ *	@discussion	When you call this method with a dictionary,
+ *	 GrowlApplicationBridge registers your application using that dictionary.
+ *	 If you pass <code>nil</code>, GrowlApplicationBridge will ask the delegate
+ *	 (if there is one) for a dictionary, and if that doesn't work, it will look
+ *	 in your application's bundle for an auto-discoverable plist.
+ *	 (XXX refer to more information on that)
+ *
+ *	 If you pass a dictionary to this method, it must include the
+ *	 <code>GROWL_APP_NAME</code> key, unless a delegate is set.
+ *
+ *	 This method is mainly an alternative to the delegate system introduced
+ *	 with Growl 0.6. Without a delegate, you cannot receive callbacks such as
+ *	 <code>-growlIsReady</code> (since they are sent to the delegate). You can,
+ *	 however, set a delegate after registering without one.
+ *
+ *	 This method was introduced in Growl.framework 0.7.
+ */
++ (BOOL) registerWithDictionary:(NSDictionary *)regDict;
+
+/*!	@method	reregisterGrowlNotifications
+ *	@abstract	Reregister the notifications for this application.
+ *	@discussion	This method does not normally need to be called.  If your
+ *	 application changes what notifications it is registering with Growl, call
+ *	 this method to have the Growl delegate's
+ *	 <code>-registrationDictionaryForGrowl</code> method called again and the
+ *	 Growl registration information updated.
+ *
+ *	 This method is now implemented using <code>-registerWithDictionary:</code>.
+ */
++ (void) reregisterGrowlNotifications;
+
+#pragma mark -
+
+/*!	@method	setWillRegisterWhenGrowlIsReady:
+ *	@abstract	Tells GrowlApplicationBridge to register with Growl when Growl
+ *	 launches (or not).
+ *	@discussion	When Growl has started listening for notifications, it posts a
+ *	 <code>GROWL_IS_READY</code> notification on the Distributed Notification
+ *	 Center. GrowlApplicationBridge listens for this notification, using it to
+ *	 perform various tasks (such as calling your delegate's
+ *	 <code>-growlIsReady</code> method, if it has one). If this method is
+ *	 called with <code>YES</code>, one of those tasks will be to reregister
+ *	 with Growl (in the manner of <code>-reregisterGrowlNotifications</code>).
+ *
+ *	 This attribute is automatically set back to <code>NO</code> (the default)
+ *	 after every <code>GROWL_IS_READY</code> notification.
+ *	@param	flag	<code>YES</code> if you want GrowlApplicationBridge to register with
+ *	 Growl when next it is ready; <code>NO</code> if not.
+ */
++ (void) setWillRegisterWhenGrowlIsReady:(BOOL)flag;
+/*!	@method	willRegisterWhenGrowlIsReady
+ *	@abstract	Reports whether GrowlApplicationBridge will register with Growl
+ *	 when Growl next launches.
+ *	@result	<code>YES</code> if GrowlApplicationBridge will register with Growl
+ *	 when next it posts GROWL_IS_READY; <code>NO</code> if not.
+ */
++ (BOOL) willRegisterWhenGrowlIsReady;
+
+#pragma mark -
+
+/*!	@method	registrationDictionaryFromDelegate
+ *	@abstract	Asks the delegate for a registration dictionary.
+ *	@discussion	If no delegate is set, or if the delegate's
+ *	 <code>-registrationDictionaryForGrowl</code> method returns
+ *	 <code>nil</code>, this method returns <code>nil</code>.
+ *
+ *	 This method does not attempt to clean up the dictionary in any way - for
+ *	 example, if it is missing the <code>GROWL_APP_NAME</code> key, the result
+ *	 will be missing it too. Use <code>+[GrowlApplicationBridge
+ *	 registrationDictionaryByFillingInDictionary:]</code> or
+ *	 <code>+[GrowlApplicationBridge
+ *	 registrationDictionaryByFillingInDictionary:restrictToKeys:]</code> to try
+ *	 to fill in missing keys.
+ *
+ *	 This method was introduced in Growl.framework 0.7.
+ *	@result A registration dictionary.
+ */
++ (NSDictionary *) registrationDictionaryFromDelegate;
+
+/*!	@method	registrationDictionaryFromBundle:
+ *	@abstract	Looks in a bundle for a registration dictionary.
+ *	@discussion	This method looks in a bundle for an auto-discoverable
+ *	 registration dictionary file using <code>-[NSBundle
+ *	 pathForResource:ofType:]</code>. If it finds one, it loads the file using
+ *	 <code>+[NSDictionary dictionaryWithContentsOfFile:]</code> and returns the
+ *	 result.
+ *
+ *	 If you pass <code>nil</code> as the bundle, the main bundle is examined.
+ *
+ *	 This method does not attempt to clean up the dictionary in any way - for
+ *	 example, if it is missing the <code>GROWL_APP_NAME</code> key, the result
+ *	 will be missing it too. Use <code>+[GrowlApplicationBridge
+ *	 registrationDictionaryByFillingInDictionary:]</code> or
+ *	 <code>+[GrowlApplicationBridge
+ *	 registrationDictionaryByFillingInDictionary:restrictToKeys:]</code> to try
+ *	 to fill in missing keys.
+ *
+ *	 This method was introduced in Growl.framework 0.7.
+ *	@result A registration dictionary.
+ */
++ (NSDictionary *) registrationDictionaryFromBundle:(NSBundle *)bundle;
+
+/*!	@method	bestRegistrationDictionary
+ *	@abstract	Obtains a registration dictionary, filled out to the best of
+ *	 GrowlApplicationBridge's knowledge.
+ *	@discussion	This method creates a registration dictionary as best
+ *	 GrowlApplicationBridge knows how.
+ *
+ *	 First, GrowlApplicationBridge contacts the Growl delegate (if there is
+ *	 one) and gets the registration dictionary from that. If no such dictionary
+ *	 was obtained, GrowlApplicationBridge looks in your application's main
+ *	 bundle for an auto-discoverable registration dictionary file. If that
+ *	 doesn't exist either, this method returns <code>nil</code>.
+ *
+ *	 Second, GrowlApplicationBridge calls
+ *	 <code>+registrationDictionaryByFillingInDictionary:</code> with whatever
+ *	 dictionary was obtained. The result of that method is the result of this
+ *	 method.
+ *
+ *	 GrowlApplicationBridge uses this method when you call
+ *	 <code>+setGrowlDelegate:</code>, or when you call
+ *	 <code>+registerWithDictionary:</code> with <code>nil</code>.
+ *
+ *	 This method was introduced in Growl.framework 0.7.
+ *	@result	A registration dictionary.
+ */
++ (NSDictionary *) bestRegistrationDictionary;
+
+#pragma mark -
+
+/*!	@method	registrationDictionaryByFillingInDictionary:
+ *	@abstract	Tries to fill in missing keys in a registration dictionary.
+ *	@discussion	This method examines the passed-in dictionary for missing keys,
+ *	 and tries to work out correct values for them. As of 0.7, it uses:
+ *
+ *	 Key							             Value
+ *	 ---							             -----
+ *	 <code>GROWL_APP_NAME</code>                 <code>CFBundleExecutableName</code>
+ *	 <code>GROWL_APP_ICON</code>                 The icon of the application.
+ *	 <code>GROWL_APP_LOCATION</code>             The location of the application.
+ *	 <code>GROWL_NOTIFICATIONS_DEFAULT</code>    <code>GROWL_NOTIFICATIONS_ALL</code>
+ *
+ *	 Keys are only filled in if missing; if a key is present in the dictionary,
+ *	 its value will not be changed.
+ *
+ *	 This method was introduced in Growl.framework 0.7.
+ *	@param	regDict	The dictionary to fill in.
+ *	@result	The dictionary with the keys filled in. This is an autoreleased
+ *	 copy of <code>regDict</code>.
+ */
++ (NSDictionary *) registrationDictionaryByFillingInDictionary:(NSDictionary *)regDict;
+/*!	@method	registrationDictionaryByFillingInDictionary:restrictToKeys:
+ *	@abstract	Tries to fill in missing keys in a registration dictionary.
+ *	@discussion	This method examines the passed-in dictionary for missing keys,
+ *	 and tries to work out correct values for them. As of 0.7, it uses:
+ *
+ *	 Key							             Value
+ *	 ---							             -----
+ *	 <code>GROWL_APP_NAME</code>                 <code>CFBundleExecutableName</code>
+ *	 <code>GROWL_APP_ICON</code>                 The icon of the application.
+ *	 <code>GROWL_APP_LOCATION</code>             The location of the application.
+ *	 <code>GROWL_NOTIFICATIONS_DEFAULT</code>    <code>GROWL_NOTIFICATIONS_ALL</code>
+ *
+ *	 Only those keys that are listed in <code>keys</code> will be filled in.
+ *	 Other missing keys are ignored. Also, keys are only filled in if missing;
+ *	 if a key is present in the dictionary, its value will not be changed.
+ *
+ *	 This method was introduced in Growl.framework 0.7.
+ *	@param	regDict	The dictionary to fill in.
+ *	@param	keys	The keys to fill in. If <code>nil</code>, any missing keys are filled in.
+ *	@result	The dictionary with the keys filled in. This is an autoreleased
+ *	 copy of <code>regDict</code>.
+ */
++ (NSDictionary *) registrationDictionaryByFillingInDictionary:(NSDictionary *)regDict restrictToKeys:(NSSet *)keys;
+
+/*!	@brief	Tries to fill in missing keys in a notification dictionary.
+ *	@param	notifDict	The dictionary to fill in.
+ *	@return	The dictionary with the keys filled in. This will be a separate instance from \a notifDict.
+ *	@discussion	This function examines the \a notifDict for missing keys, and 
+ *	 tries to get them from the last known registration dictionary. As of 1.1, 
+ *	 the keys that it will look for are:
+ *
+ *	 \li <code>GROWL_APP_NAME</code>
+ *	 \li <code>GROWL_APP_ICON</code>
+ *
+ *	@since Growl.framework 1.1
+ */
++ (NSDictionary *) notificationDictionaryByFillingInDictionary:(NSDictionary *)regDict;
+
++ (NSDictionary *) frameworkInfoDictionary;
+ at end
+
+//------------------------------------------------------------------------------
+#pragma mark -
+
+/*!
+ *	@protocol GrowlApplicationBridgeDelegate
+ *	@abstract Required protocol for the Growl delegate.
+ *	@discussion The methods in this protocol are required and are called
+ *	 automatically as needed by GrowlApplicationBridge. See
+ *	 <code>+[GrowlApplicationBridge setGrowlDelegate:]</code>.
+ *	 See also <code>GrowlApplicationBridgeDelegate_InformalProtocol</code>.
+ */
+
+ at protocol GrowlApplicationBridgeDelegate
+
+// -registrationDictionaryForGrowl has moved to the informal protocol as of 0.7.
+
+ at end
+
+//------------------------------------------------------------------------------
+#pragma mark -
+
+/*!
+ *	@category NSObject(GrowlApplicationBridgeDelegate_InformalProtocol)
+ *	@abstract Methods which may be optionally implemented by the GrowlDelegate.
+ *	@discussion The methods in this informal protocol will only be called if implemented by the delegate.
+ */
+ at interface NSObject (GrowlApplicationBridgeDelegate_InformalProtocol)
+
+/*!
+ *	@method registrationDictionaryForGrowl
+ *	@abstract Return the dictionary used to register this application with Growl.
+ *	@discussion The returned dictionary gives Growl the complete list of
+ *	 notifications this application will ever send, and it also specifies which
+ *	 notifications should be enabled by default.  Each is specified by an array
+ *	 of <code>NSString</code> objects.
+ *
+ *	 For most applications, these two arrays can be the same (if all sent
+ *	 notifications should be displayed by default).
+ *
+ *	 The <code>NSString</code> objects of these arrays will correspond to the
+ *	 <code>notificationName:</code> parameter passed in
+ *	 <code>+[GrowlApplicationBridge
+ *	 notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:]</code> calls.
+ *
+ *	 The dictionary should have the required key object pairs:
+ *	 key: GROWL_NOTIFICATIONS_ALL		object: <code>NSArray</code> of <code>NSString</code> objects
+ *	 key: GROWL_NOTIFICATIONS_DEFAULT	object: <code>NSArray</code> of <code>NSString</code> objects
+ *
+ *   The dictionary may have the following key object pairs:
+ *   key: GROWL_NOTIFICATIONS_HUMAN_READABLE_NAMES	object: <code>NSDictionary</code> of key: notification name		object: human-readable notification name
+ *
+ *	 You do not need to implement this method if you have an auto-discoverable
+ *	 plist file in your app bundle. (XXX refer to more information on that)
+ *
+ *	@result The <code>NSDictionary</code> to use for registration.
+ */
+- (NSDictionary *) registrationDictionaryForGrowl;
+
+/*!
+ *	@method applicationNameForGrowl
+ *	@abstract Return the name of this application which will be used for Growl bookkeeping.
+ *	@discussion This name is used both internally and in the Growl preferences.
+ *
+ *	 This should remain stable between different versions and incarnations of
+ *	 your application.
+ *	 For example, "SurfWriter" is a good app name, whereas "SurfWriter 2.0" and
+ *	 "SurfWriter Lite" are not.
+ *
+ *	 You do not need to implement this method if you are providing the
+ *	 application name elsewhere, meaning in an auto-discoverable plist file in
+ *	 your app bundle (XXX refer to more information on that) or in the result
+ *	 of -registrationDictionaryForGrowl.
+ *
+ *	@result The name of the application using Growl.
+ */
+- (NSString *) applicationNameForGrowl;
+
+/*!
+ *	@method applicationIconForGrowl
+ *	@abstract Return the <code>NSImage</code> to treat as the application icon.
+ *	@discussion The delegate may optionally return an <code>NSImage</code>
+ *	 object to use as the application icon. If this method is not implemented,
+ *	 {{{-applicationIconDataForGrowl}}} is tried. If that method is not
+ *	 implemented, the application's own icon is used. Neither method is
+ *	 generally needed.
+ *	@result The <code>NSImage</code> to treat as the application icon.
+ */
+- (NSImage *) applicationIconForGrowl;
+
+/*!
+ *	@method applicationIconDataForGrowl
+ *	@abstract Return the <code>NSData</code> to treat as the application icon.
+ *	@discussion The delegate may optionally return an <code>NSData</code>
+ *	 object to use as the application icon; if this is not implemented, the
+ *	 application's own icon is used.  This is not generally needed.
+ *	@result The <code>NSData</code> to treat as the application icon.
+ *	@deprecated In version 1.1, in favor of {{{-applicationIconForGrowl}}}.
+ */
+- (NSData *) applicationIconDataForGrowl;
+
+/*!
+ *	@method growlIsReady
+ *	@abstract Informs the delegate that Growl has launched.
+ *	@discussion Informs the delegate that Growl (specifically, the
+ *	 GrowlHelperApp) was launched successfully. The application can take actions
+ *   with the knowledge that Growl is installed and functional.
+ */
+- (void) growlIsReady;
+
+/*!
+ *	@method growlNotificationWasClicked:
+ *	@abstract Informs the delegate that a Growl notification was clicked.
+ *	@discussion Informs the delegate that a Growl notification was clicked.  It
+ *	 is only sent for notifications sent with a non-<code>nil</code>
+ *	 clickContext, so if you want to receive a message when a notification is
+ *	 clicked, clickContext must not be <code>nil</code> when calling
+ *	 <code>+[GrowlApplicationBridge notifyWithTitle: description:notificationName:iconData:priority:isSticky:clickContext:]</code>.
+ *	@param clickContext The clickContext passed when displaying the notification originally via +[GrowlApplicationBridge notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:].
+ */
+- (void) growlNotificationWasClicked:(id)clickContext;
+
+/*!
+ *	@method growlNotificationTimedOut:
+ *	@abstract Informs the delegate that a Growl notification timed out.
+ *	@discussion Informs the delegate that a Growl notification timed out. It
+ *	 is only sent for notifications sent with a non-<code>nil</code>
+ *	 clickContext, so if you want to receive a message when a notification is
+ *	 clicked, clickContext must not be <code>nil</code> when calling
+ *	 <code>+[GrowlApplicationBridge notifyWithTitle: description:notificationName:iconData:priority:isSticky:clickContext:]</code>.
+ *	@param clickContext The clickContext passed when displaying the notification originally via +[GrowlApplicationBridge notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:].
+ */
+- (void) growlNotificationTimedOut:(id)clickContext;
+
+ at end
+
+#pragma mark -
+/*!
+ *	@category NSObject(GrowlApplicationBridgeDelegate_Installation_InformalProtocol)
+ *	@abstract Methods which may be optionally implemented by the Growl delegate when used with Growl-WithInstaller.framework.
+ *	@discussion The methods in this informal protocol will only be called if
+ *	 implemented by the delegate.  They allow greater control of the information
+ *	 presented to the user when installing or upgrading Growl from within your
+ *	 application when using Growl-WithInstaller.framework.
+ */
+ at interface NSObject (GrowlApplicationBridgeDelegate_Installation_InformalProtocol)
+
+/*!
+ *	@method growlInstallationWindowTitle
+ *	@abstract Return the title of the installation window.
+ *	@discussion If not implemented, Growl will use a default, localized title.
+ *	@result An NSString object to use as the title.
+ */
+- (NSString *)growlInstallationWindowTitle;
+
+/*!
+ *	@method growlUpdateWindowTitle
+ *	@abstract Return the title of the upgrade window.
+ *	@discussion If not implemented, Growl will use a default, localized title.
+ *	@result An NSString object to use as the title.
+ */
+- (NSString *)growlUpdateWindowTitle;
+
+/*!
+ *	@method growlInstallationInformation
+ *	@abstract Return the information to display when installing.
+ *	@discussion This information may be as long or short as desired (the window
+ *	 will be sized to fit it).  It will be displayed to the user as an
+ *	 explanation of what Growl is and what it can do in your application.  It
+ *	 should probably note that no download is required to install.
+ *
+ *	 If this is not implemented, Growl will use a default, localized explanation.
+ *	@result An NSAttributedString object to display.
+ */
+- (NSAttributedString *)growlInstallationInformation;
+
+/*!
+ *	@method growlUpdateInformation
+ *	@abstract Return the information to display when upgrading.
+ *	@discussion This information may be as long or short as desired (the window
+ *	 will be sized to fit it).  It will be displayed to the user as an
+ *	 explanation that an updated version of Growl is included in your
+ *	 application and no download is required.
+ *
+ *	 If this is not implemented, Growl will use a default, localized explanation.
+ *	@result An NSAttributedString object to display.
+ */
+- (NSAttributedString *)growlUpdateInformation;
+
+ at end
+
+//private
+ at interface GrowlApplicationBridge (GrowlInstallationPrompt_private)
++ (void) _userChoseNotToInstallGrowl;
+ at end
+
+#endif /* __GrowlApplicationBridge_h__ */

Deleted: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlDefines.h
===================================================================
--- branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlDefines.h	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlDefines.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -1,348 +0,0 @@
-//
-//  GrowlDefines.h
-//
-
-#ifndef _GROWLDEFINES_H
-#define _GROWLDEFINES_H
-
-#ifdef __OBJC__
-#define XSTR(x) (@x)
-#define STRING_TYPE NSString *
-#else
-#define XSTR CFSTR
-#define STRING_TYPE CFStringRef
-#endif
-
-/*!	@header GrowlDefines.h
- *	@abstract   Defines all the notification keys.
- *	@discussion Defines all the keys used for registration with Growl and for
- *	 Growl notifications.
- *
- *	 Most applications should use the functions or methods of Growl.framework
- *	 instead of posting notifications such as those described here.
- *	@updated 2004-01-25
- */
-
-// UserInfo Keys for Registration
-#pragma mark UserInfo Keys for Registration
-
-/*!	@group Registration userInfo keys */
-/*	@abstract	Keys for the userInfo dictionary of a GROWL_APP_REGISTRATION distributed notification.
- *	@discussion The values of these keys describe the application and the
- *	 notifications it may post.
- *
- *	 Your application must register with Growl before it can post Growl
- *	 notifications (and have them not be ignored). However, as of Growl 0.6,
- *	 posting GROWL_APP_REGISTRATION notifications directly is no longer the
- *	 preferred way to register your application. Your application should instead
- *	 use Growl.framework's delegate system.
- *	 See +[GrowlApplicationBridge setGrowlDelegate:] or Growl_SetDelegate for
- *	 more information.
- */
-
-/*!	@defined GROWL_APP_NAME
- *	@abstract The name of your application.
- *	@discussion The name of your application. This should remain stable between
- *	 different versions and incarnations of your application.
- *	 For example, "SurfWriter" is a good app name, whereas "SurfWriter 2.0" and
- *	 "SurfWriter Lite" are not.
- */
-#define GROWL_APP_NAME					XSTR("ApplicationName")
-/*!	@defined GROWL_APP_ID
- *	@abstract The bundle identifier of your application.
- *	@discussion The bundle identifier of your application. This key should
- *   be unique for your application while there may be several applications
- *   with the same GROWL_APP_NAME.
- *   This key is optional.
- */
-#define GROWL_APP_ID					XSTR("ApplicationId")
-/*!	@defined GROWL_APP_ICON
- *	@abstract The image data for your application's icon.
- *	@discussion Image data representing your application's icon. This may be
- *	 superimposed on a notification icon as a badge, used as the notification
- *	 icon when a notification-specific icon is not supplied, or ignored
- *	 altogether, depending on the display. Must be in a format supported by
- *	 NSImage, such as TIFF, PNG, GIF, JPEG, BMP, PICT, or PDF.
- *
- *	 Optional. Not supported by all display plugins.
- */
-#define GROWL_APP_ICON					XSTR("ApplicationIcon")
-/*!	@defined GROWL_NOTIFICATIONS_DEFAULT
- *	@abstract The array of notifications to turn on by default.
- *	@discussion These are the names of the notifications that should be enabled
- *	 by default when your application registers for the first time. If your
- *	 application reregisters, Growl will look here for any new notification
- *	 names found in GROWL_NOTIFICATIONS_ALL, but ignore any others.
- */
-#define GROWL_NOTIFICATIONS_DEFAULT		XSTR("DefaultNotifications")
-/*!	@defined GROWL_NOTIFICATIONS_ALL
- *	@abstract The array of all notifications your application can send.
- *	@discussion These are the names of all of the notifications that your
- *	 application may post. See GROWL_NOTIFICATION_NAME for a discussion of good
- *	 notification names.
- */
-#define GROWL_NOTIFICATIONS_ALL			XSTR("AllNotifications")
-/*! @defined GROWL_NOTIFICATIONS_HUMAN_READABLE_DESCRIPTIONS
- *  @abstract A dictionary of human-readable names for your notifications.
- *  @discussion By default, the Growl UI will display notifications by the names given in GROWL_NOTIFICATIONS_ALL
- *  which correspond to the GROWL_NOTIFICATION_NAME. This dictionary specifies the human-readable name to display.
- *  The keys of the dictionary are GROWL_NOTIFICATION_NAME strings; the objects are the human-readable versions.
- *  For any GROWL_NOTIFICATION_NAME not specific in this dictionary, the GROWL_NOTIFICATION_NAME will be displayed.
- *
- *  This key is optional.
- */
-#define GROWL_NOTIFICATIONS_HUMAN_READABLE_NAMES		XSTR("HumanReadableNames")
-/*! @defined GROWL_NOTIFICATIONS_DESCRIPTIONS
-*  @abstract A dictionary of descriptions of _when_ each notification occurs
-*  @discussion This is an NSDictionary whose keys are GROWL_NOTIFICATION_NAME strings and whose objects are
-*  descriptions of _when_ each notification occurs, such as "You received a new mail message" or
-*  "A file finished downloading".
-*
-*  This key is optional.
-*/
-#define GROWL_NOTIFICATIONS_DESCRIPTIONS		XSTR("NotificationDescriptions")
-
-/*!	@defined	GROWL_TICKET_VERSION
- *	@abstract	The version of your registration ticket.
- *	@discussion	Include this key in a ticket plist file that you put in your
- *	 application bundle for auto-discovery. The current ticket version is 1.
- */
-#define GROWL_TICKET_VERSION			XSTR("TicketVersion")
-// UserInfo Keys for Notifications
-#pragma mark UserInfo Keys for Notifications
-
-/*!	@group Notification userInfo keys */
-/*	@abstract	Keys for the userInfo dictionary of a GROWL_NOTIFICATION distributed notification.
- *	@discussion The values of these keys describe the content of a Growl
- *	 notification.
- *
- *	 Not all of these keys are supported by all displays. Only the name, title,
- *	 and description of a notification are universal. Most of the built-in
- *	 displays do support all of these keys, and most other visual displays
- *	 probably will also. But, as of 0.6, the Log, MailMe, and Speech displays
- *	 support only textual data.
- */
-
-/*!	@defined GROWL_NOTIFICATION_NAME
- *	@abstract The name of the notification.
- *	@discussion The name of the notification. Note that if you do not define
- *  GROWL_NOTIFICATIONS_HUMAN_READABLE_NAMES when registering your ticket originally this name
- *  will the one displayed within the Growl preference pane and should be human-readable.
- */
-#define GROWL_NOTIFICATION_NAME			XSTR("NotificationName")
-/*!	@defined GROWL_NOTIFICATION_TITLE
- *	@abstract The title to display in the notification.
- *	@discussion The title of the notification. Should be very brief.
- *	 The title usually says what happened, e.g. "Download complete".
- */
-#define GROWL_NOTIFICATION_TITLE		XSTR("NotificationTitle")
-/*!	@defined GROWL_NOTIFICATION_DESCRIPTION
- *	@abstract The description to display in the notification.
- *	@discussion The description should be longer and more verbose than the title.
- *	 The description usually tells the subject of the action,
- *	 e.g. "Growl-0.6.dmg downloaded in 5.02 minutes".
- */
-#define GROWL_NOTIFICATION_DESCRIPTION  	XSTR("NotificationDescription")
-/*!	@defined GROWL_NOTIFICATION_ICON
- *	@discussion Image data for the notification icon. Must be in a format
- *	 supported by NSImage, such as TIFF, PNG, GIF, JPEG, BMP, PICT, or PDF.
- *
- *	 Optional. Not supported by all display plugins.
- */
-#define GROWL_NOTIFICATION_ICON			XSTR("NotificationIcon")
-/*!	@defined GROWL_NOTIFICATION_APP_ICON
- *	@discussion Image data for the application icon, in case GROWL_APP_ICON does
- *	 not apply for some reason. Must be in a format supported by NSImage, such
- *	 as TIFF, PNG, GIF, JPEG, BMP, PICT, or PDF.
- *
- *	 Optional. Not supported by all display plugins.
- */
-#define GROWL_NOTIFICATION_APP_ICON		XSTR("NotificationAppIcon")
-/*!	@defined GROWL_NOTIFICATION_PRIORITY
- *	@discussion The priority of the notification as an integer number from
- *	 -2 to +2 (+2 being highest).
- *
- *	 Optional. Not supported by all display plugins.
- */
-#define GROWL_NOTIFICATION_PRIORITY		XSTR("NotificationPriority")
-/*!	@defined GROWL_NOTIFICATION_STICKY
- *	@discussion A Boolean number controlling whether the notification is sticky.
- *
- *	 Optional. Not supported by all display plugins.
- */
-#define GROWL_NOTIFICATION_STICKY		XSTR("NotificationSticky")
-/*!	@defined GROWL_NOTIFICATION_CLICK_CONTEXT
- *	@abstract Identifies which notification was clicked.
- *	@discussion An identifier for the notification for clicking purposes.
- *
- *	 This will be passed back to the application when the notification is
- *	 clicked. It must be plist-encodable (a data, dictionary, array, number, or
- *	 string object), and it should be unique for each notification you post.
- *	 A good click context would be a UUID string returned by NSProcessInfo or
- *	 CFUUID.
- *
- *	 Optional. Not supported by all display plugins.
- */
-#define GROWL_NOTIFICATION_CLICK_CONTEXT			XSTR("NotificationClickContext")
-
-/*!	@defined GROWL_DISPLAY_PLUGIN
- *	@discussion The name of a display plugin which should be used for this notification.
- *    Optional. If this key is not set or the specified display plugin does not
- *    exist, the display plugin stored in the application ticket is used. This key
- *    allows applications to use different default display plugins for their
- *    notifications. The user can still override those settings in the preference
- *    pane.
- */
-#define GROWL_DISPLAY_PLUGIN				XSTR("NotificationDisplayPlugin")
-
-/*!	@defined GROWL_NOTIFICATION_IDENTIFIER
- *	@abstract An identifier for the notification for coalescing purposes.
- *   Notifications with the same identifier fall into the same class; only
- *   the last notification of a class is displayed on the screen. If a
- *   notification of the same class is currently being displayed, it is
- *   replaced by this notification.
- *
- *	 Optional. Not supported by all display plugins.
- */
-#define GROWL_NOTIFICATION_IDENTIFIER	XSTR("GrowlNotificationIdentifier")
-
-/*!	@defined GROWL_APP_PID
- *	@abstract The process identifier of the process which sends this
- *   notification. If this field is set, the application will only receive
- *   clicked and timed out notifications which originate from this process.
- *
- *	 Optional.
- */
-#define GROWL_APP_PID					XSTR("ApplicationPID")
-
-/*!	@defined GROWL_NOTIFICATION_PROGRESS
-*	@abstract If this key is set, it should contain a double value wrapped
-*     in a NSNumber which describes some sort of progress (from 0.0 to 100.0).
-*     If this is key is not set, no progress bar is shown.
-*
-*	 Optional. Not supported by all display plugins.
-*/
-#define GROWL_NOTIFICATION_PROGRESS		XSTR("NotificationProgress")
-
-// Notifications
-#pragma mark Notifications
-
-/*!	@group Notification names */
-/*	@abstract	Names of distributed notifications used by Growl.
- *	@discussion	These are notifications used by applications (directly or
- *	 indirectly) to interact with Growl, and by Growl for interaction between
- *	 its components.
- *
- *	 Most of these should no longer be used in Growl 0.6 and later, in favor of
- *	 Growl.framework's GrowlApplicationBridge APIs.
- */
-
-/*!	@defined GROWL_APP_REGISTRATION
- *	@abstract The distributed notification for registering your application.
- *	@discussion This is the name of the distributed notification that can be
- *	 used to register applications with Growl.
- *
- *	 The userInfo dictionary for this notification can contain these keys:
- *	 <ul>
- *	 	<li>GROWL_APP_NAME</li>
- *	 	<li>GROWL_APP_ICON</li>
- *	 	<li>GROWL_NOTIFICATIONS_ALL</li>
- *	 	<li>GROWL_NOTIFICATIONS_DEFAULT</li>
- *	 </ul>
- *
- *	 No longer recommended as of Growl 0.6. An alternate method of registering
- *	 is to use Growl.framework's delegate system.
- *	 See +[GrowlApplicationBridge setGrowlDelegate:] or Growl_SetDelegate for
- *	 more information.
- */
-#define GROWL_APP_REGISTRATION			XSTR("GrowlApplicationRegistrationNotification")
-/*!	@defined GROWL_APP_REGISTRATION_CONF
- *	@abstract The distributed notification for confirming registration.
- *	@discussion The name of the distributed notification sent to confirm the
- *	 registration. Used by the Growl preference pane. Your application probably
- *	 does not need to use this notification.
- */
-#define GROWL_APP_REGISTRATION_CONF		XSTR("GrowlApplicationRegistrationConfirmationNotification")
-/*!	@defined GROWL_NOTIFICATION
- *	@abstract The distributed notification for Growl notifications.
- *	@discussion This is what it all comes down to. This is the name of the
- *	 distributed notification that your application posts to actually send a
- *	 Growl notification.
- *
- *	 The userInfo dictionary for this notification can contain these keys:
- *	 <ul>
- *	 	<li>GROWL_NOTIFICATION_NAME (required)</li>
- *	 	<li>GROWL_NOTIFICATION_TITLE (required)</li>
- *	 	<li>GROWL_NOTIFICATION_DESCRIPTION (required)</li>
- *	 	<li>GROWL_NOTIFICATION_ICON</li>
- *	 	<li>GROWL_NOTIFICATION_APP_ICON</li>
- *	 	<li>GROWL_NOTIFICATION_PRIORITY</li>
- *	 	<li>GROWL_NOTIFICATION_STICKY</li>
- *	 	<li>GROWL_NOTIFICATION_CLICK_CONTEXT</li>
- *	 	<li>GROWL_APP_NAME (required)</li>
- *	 </ul>
- *
- *	 No longer recommended as of Growl 0.6. Three alternate methods of posting
- *	 notifications are +[GrowlApplicationBridge notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:],
- *	 Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext, and
- *	 Growl_PostNotification.
- */
-#define GROWL_NOTIFICATION				XSTR("GrowlNotification")
-/*!	@defined GROWL_SHUTDOWN
-*	@abstract The distributed notification name that tells Growl to shutdown.
-*	@discussion The Growl preference pane posts this notification when the
-*	 "Stop Growl" button is clicked.
-*/
-#define GROWL_SHUTDOWN					XSTR("GrowlShutdown")
-/*!	@defined GROWL_PING
- *	@abstract A distributed notification to check whether Growl is running.
- *	@discussion This is used by the Growl preference pane. If it receives a
- *	 GROWL_PONG, the preference pane takes this to mean that Growl is running.
- */
-#define GROWL_PING						XSTR("Honey, Mind Taking Out The Trash")
-/*!	@defined GROWL_PONG
- *	@abstract The distributed notification sent in reply to GROWL_PING.
- *	@discussion GrowlHelperApp posts this in reply to GROWL_PING.
- */
-#define GROWL_PONG						XSTR("What Do You Want From Me, Woman")
-/*!	@defined GROWL_IS_READY
- *	@abstract The distributed notification sent when Growl starts up.
- *	@discussion GrowlHelperApp posts this when it has begin listening on all of
- *	 its sources for new notifications. GrowlApplicationBridge (in
- *	 Growl.framework), upon receiving this notification, reregisters using the
- *	 registration dictionary supplied by its delegate.
- */
-#define GROWL_IS_READY					XSTR("Lend Me Some Sugar; I Am Your Neighbor!")
-/*!	@defined GROWL_NOTIFICATION_CLICKED
- *	@abstract The distributed notification sent when a supported notification is clicked.
- *	@discussion When a Growl notification with a click context is clicked on by
- *	 the user, Growl posts this distributed notification.
- *	 The GrowlApplicationBridge responds to this notification by calling a
- *	 callback in its delegate.
- */
-#define GROWL_NOTIFICATION_CLICKED		XSTR("GrowlClicked!")
-#define GROWL_NOTIFICATION_TIMED_OUT	XSTR("GrowlTimedOut!")
-
-/*!	@group Other symbols */
-/* Symbols which don't fit into any of the other categories. */
-
-/*!	@defined GROWL_KEY_CLICKED_CONTEXT
- *	@abstract Used internally as the key for the clickedContext passed over DNC.
- *	@discussion This key is used in GROWL_NOTIFICATION_CLICKED, and contains the
- *	 click context that was supplied in the original notification.
- */
-#define GROWL_KEY_CLICKED_CONTEXT		XSTR("ClickedContext")
-/*!	@defined GROWL_REG_DICT_EXTENSION
- *	@abstract The filename extension for registration dictionaries.
- *	@discussion The GrowlApplicationBridge in Growl.framework registers with
- *	 Growl by creating a file with the extension of .(GROWL_REG_DICT_EXTENSION)
- *	 and opening it in the GrowlHelperApp. This happens whether or not Growl is
- *	 running; if it was stopped, it quits immediately without listening for
- *	 notifications.
- */
-#define GROWL_REG_DICT_EXTENSION		XSTR("growlRegDict")
-
-
-#define GROWL_POSITION_PREFERENCE_KEY			@"GrowlSelectedPosition"
-
-#endif //ndef _GROWLDEFINES_H

Copied: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlDefines.h (from rev 72222, branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlDefines.h)
===================================================================
--- contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlDefines.h	                        (rev 0)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Headers/GrowlDefines.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1,348 @@
+//
+//  GrowlDefines.h
+//
+
+#ifndef _GROWLDEFINES_H
+#define _GROWLDEFINES_H
+
+#ifdef __OBJC__
+#define XSTR(x) (@x)
+#define STRING_TYPE NSString *
+#else
+#define XSTR CFSTR
+#define STRING_TYPE CFStringRef
+#endif
+
+/*!	@header GrowlDefines.h
+ *	@abstract   Defines all the notification keys.
+ *	@discussion Defines all the keys used for registration with Growl and for
+ *	 Growl notifications.
+ *
+ *	 Most applications should use the functions or methods of Growl.framework
+ *	 instead of posting notifications such as those described here.
+ *	@updated 2004-01-25
+ */
+
+// UserInfo Keys for Registration
+#pragma mark UserInfo Keys for Registration
+
+/*!	@group Registration userInfo keys */
+/*	@abstract	Keys for the userInfo dictionary of a GROWL_APP_REGISTRATION distributed notification.
+ *	@discussion The values of these keys describe the application and the
+ *	 notifications it may post.
+ *
+ *	 Your application must register with Growl before it can post Growl
+ *	 notifications (and have them not be ignored). However, as of Growl 0.6,
+ *	 posting GROWL_APP_REGISTRATION notifications directly is no longer the
+ *	 preferred way to register your application. Your application should instead
+ *	 use Growl.framework's delegate system.
+ *	 See +[GrowlApplicationBridge setGrowlDelegate:] or Growl_SetDelegate for
+ *	 more information.
+ */
+
+/*!	@defined GROWL_APP_NAME
+ *	@abstract The name of your application.
+ *	@discussion The name of your application. This should remain stable between
+ *	 different versions and incarnations of your application.
+ *	 For example, "SurfWriter" is a good app name, whereas "SurfWriter 2.0" and
+ *	 "SurfWriter Lite" are not.
+ */
+#define GROWL_APP_NAME					XSTR("ApplicationName")
+/*!	@defined GROWL_APP_ID
+ *	@abstract The bundle identifier of your application.
+ *	@discussion The bundle identifier of your application. This key should
+ *   be unique for your application while there may be several applications
+ *   with the same GROWL_APP_NAME.
+ *   This key is optional.
+ */
+#define GROWL_APP_ID					XSTR("ApplicationId")
+/*!	@defined GROWL_APP_ICON
+ *	@abstract The image data for your application's icon.
+ *	@discussion Image data representing your application's icon. This may be
+ *	 superimposed on a notification icon as a badge, used as the notification
+ *	 icon when a notification-specific icon is not supplied, or ignored
+ *	 altogether, depending on the display. Must be in a format supported by
+ *	 NSImage, such as TIFF, PNG, GIF, JPEG, BMP, PICT, or PDF.
+ *
+ *	 Optional. Not supported by all display plugins.
+ */
+#define GROWL_APP_ICON					XSTR("ApplicationIcon")
+/*!	@defined GROWL_NOTIFICATIONS_DEFAULT
+ *	@abstract The array of notifications to turn on by default.
+ *	@discussion These are the names of the notifications that should be enabled
+ *	 by default when your application registers for the first time. If your
+ *	 application reregisters, Growl will look here for any new notification
+ *	 names found in GROWL_NOTIFICATIONS_ALL, but ignore any others.
+ */
+#define GROWL_NOTIFICATIONS_DEFAULT		XSTR("DefaultNotifications")
+/*!	@defined GROWL_NOTIFICATIONS_ALL
+ *	@abstract The array of all notifications your application can send.
+ *	@discussion These are the names of all of the notifications that your
+ *	 application may post. See GROWL_NOTIFICATION_NAME for a discussion of good
+ *	 notification names.
+ */
+#define GROWL_NOTIFICATIONS_ALL			XSTR("AllNotifications")
+/*! @defined GROWL_NOTIFICATIONS_HUMAN_READABLE_DESCRIPTIONS
+ *  @abstract A dictionary of human-readable names for your notifications.
+ *  @discussion By default, the Growl UI will display notifications by the names given in GROWL_NOTIFICATIONS_ALL
+ *  which correspond to the GROWL_NOTIFICATION_NAME. This dictionary specifies the human-readable name to display.
+ *  The keys of the dictionary are GROWL_NOTIFICATION_NAME strings; the objects are the human-readable versions.
+ *  For any GROWL_NOTIFICATION_NAME not specific in this dictionary, the GROWL_NOTIFICATION_NAME will be displayed.
+ *
+ *  This key is optional.
+ */
+#define GROWL_NOTIFICATIONS_HUMAN_READABLE_NAMES		XSTR("HumanReadableNames")
+/*! @defined GROWL_NOTIFICATIONS_DESCRIPTIONS
+*  @abstract A dictionary of descriptions of _when_ each notification occurs
+*  @discussion This is an NSDictionary whose keys are GROWL_NOTIFICATION_NAME strings and whose objects are
+*  descriptions of _when_ each notification occurs, such as "You received a new mail message" or
+*  "A file finished downloading".
+*
+*  This key is optional.
+*/
+#define GROWL_NOTIFICATIONS_DESCRIPTIONS		XSTR("NotificationDescriptions")
+
+/*!	@defined	GROWL_TICKET_VERSION
+ *	@abstract	The version of your registration ticket.
+ *	@discussion	Include this key in a ticket plist file that you put in your
+ *	 application bundle for auto-discovery. The current ticket version is 1.
+ */
+#define GROWL_TICKET_VERSION			XSTR("TicketVersion")
+// UserInfo Keys for Notifications
+#pragma mark UserInfo Keys for Notifications
+
+/*!	@group Notification userInfo keys */
+/*	@abstract	Keys for the userInfo dictionary of a GROWL_NOTIFICATION distributed notification.
+ *	@discussion The values of these keys describe the content of a Growl
+ *	 notification.
+ *
+ *	 Not all of these keys are supported by all displays. Only the name, title,
+ *	 and description of a notification are universal. Most of the built-in
+ *	 displays do support all of these keys, and most other visual displays
+ *	 probably will also. But, as of 0.6, the Log, MailMe, and Speech displays
+ *	 support only textual data.
+ */
+
+/*!	@defined GROWL_NOTIFICATION_NAME
+ *	@abstract The name of the notification.
+ *	@discussion The name of the notification. Note that if you do not define
+ *  GROWL_NOTIFICATIONS_HUMAN_READABLE_NAMES when registering your ticket originally this name
+ *  will the one displayed within the Growl preference pane and should be human-readable.
+ */
+#define GROWL_NOTIFICATION_NAME			XSTR("NotificationName")
+/*!	@defined GROWL_NOTIFICATION_TITLE
+ *	@abstract The title to display in the notification.
+ *	@discussion The title of the notification. Should be very brief.
+ *	 The title usually says what happened, e.g. "Download complete".
+ */
+#define GROWL_NOTIFICATION_TITLE		XSTR("NotificationTitle")
+/*!	@defined GROWL_NOTIFICATION_DESCRIPTION
+ *	@abstract The description to display in the notification.
+ *	@discussion The description should be longer and more verbose than the title.
+ *	 The description usually tells the subject of the action,
+ *	 e.g. "Growl-0.6.dmg downloaded in 5.02 minutes".
+ */
+#define GROWL_NOTIFICATION_DESCRIPTION  	XSTR("NotificationDescription")
+/*!	@defined GROWL_NOTIFICATION_ICON
+ *	@discussion Image data for the notification icon. Must be in a format
+ *	 supported by NSImage, such as TIFF, PNG, GIF, JPEG, BMP, PICT, or PDF.
+ *
+ *	 Optional. Not supported by all display plugins.
+ */
+#define GROWL_NOTIFICATION_ICON			XSTR("NotificationIcon")
+/*!	@defined GROWL_NOTIFICATION_APP_ICON
+ *	@discussion Image data for the application icon, in case GROWL_APP_ICON does
+ *	 not apply for some reason. Must be in a format supported by NSImage, such
+ *	 as TIFF, PNG, GIF, JPEG, BMP, PICT, or PDF.
+ *
+ *	 Optional. Not supported by all display plugins.
+ */
+#define GROWL_NOTIFICATION_APP_ICON		XSTR("NotificationAppIcon")
+/*!	@defined GROWL_NOTIFICATION_PRIORITY
+ *	@discussion The priority of the notification as an integer number from
+ *	 -2 to +2 (+2 being highest).
+ *
+ *	 Optional. Not supported by all display plugins.
+ */
+#define GROWL_NOTIFICATION_PRIORITY		XSTR("NotificationPriority")
+/*!	@defined GROWL_NOTIFICATION_STICKY
+ *	@discussion A Boolean number controlling whether the notification is sticky.
+ *
+ *	 Optional. Not supported by all display plugins.
+ */
+#define GROWL_NOTIFICATION_STICKY		XSTR("NotificationSticky")
+/*!	@defined GROWL_NOTIFICATION_CLICK_CONTEXT
+ *	@abstract Identifies which notification was clicked.
+ *	@discussion An identifier for the notification for clicking purposes.
+ *
+ *	 This will be passed back to the application when the notification is
+ *	 clicked. It must be plist-encodable (a data, dictionary, array, number, or
+ *	 string object), and it should be unique for each notification you post.
+ *	 A good click context would be a UUID string returned by NSProcessInfo or
+ *	 CFUUID.
+ *
+ *	 Optional. Not supported by all display plugins.
+ */
+#define GROWL_NOTIFICATION_CLICK_CONTEXT			XSTR("NotificationClickContext")
+
+/*!	@defined GROWL_DISPLAY_PLUGIN
+ *	@discussion The name of a display plugin which should be used for this notification.
+ *    Optional. If this key is not set or the specified display plugin does not
+ *    exist, the display plugin stored in the application ticket is used. This key
+ *    allows applications to use different default display plugins for their
+ *    notifications. The user can still override those settings in the preference
+ *    pane.
+ */
+#define GROWL_DISPLAY_PLUGIN				XSTR("NotificationDisplayPlugin")
+
+/*!	@defined GROWL_NOTIFICATION_IDENTIFIER
+ *	@abstract An identifier for the notification for coalescing purposes.
+ *   Notifications with the same identifier fall into the same class; only
+ *   the last notification of a class is displayed on the screen. If a
+ *   notification of the same class is currently being displayed, it is
+ *   replaced by this notification.
+ *
+ *	 Optional. Not supported by all display plugins.
+ */
+#define GROWL_NOTIFICATION_IDENTIFIER	XSTR("GrowlNotificationIdentifier")
+
+/*!	@defined GROWL_APP_PID
+ *	@abstract The process identifier of the process which sends this
+ *   notification. If this field is set, the application will only receive
+ *   clicked and timed out notifications which originate from this process.
+ *
+ *	 Optional.
+ */
+#define GROWL_APP_PID					XSTR("ApplicationPID")
+
+/*!	@defined GROWL_NOTIFICATION_PROGRESS
+*	@abstract If this key is set, it should contain a double value wrapped
+*     in a NSNumber which describes some sort of progress (from 0.0 to 100.0).
+*     If this is key is not set, no progress bar is shown.
+*
+*	 Optional. Not supported by all display plugins.
+*/
+#define GROWL_NOTIFICATION_PROGRESS		XSTR("NotificationProgress")
+
+// Notifications
+#pragma mark Notifications
+
+/*!	@group Notification names */
+/*	@abstract	Names of distributed notifications used by Growl.
+ *	@discussion	These are notifications used by applications (directly or
+ *	 indirectly) to interact with Growl, and by Growl for interaction between
+ *	 its components.
+ *
+ *	 Most of these should no longer be used in Growl 0.6 and later, in favor of
+ *	 Growl.framework's GrowlApplicationBridge APIs.
+ */
+
+/*!	@defined GROWL_APP_REGISTRATION
+ *	@abstract The distributed notification for registering your application.
+ *	@discussion This is the name of the distributed notification that can be
+ *	 used to register applications with Growl.
+ *
+ *	 The userInfo dictionary for this notification can contain these keys:
+ *	 <ul>
+ *	 	<li>GROWL_APP_NAME</li>
+ *	 	<li>GROWL_APP_ICON</li>
+ *	 	<li>GROWL_NOTIFICATIONS_ALL</li>
+ *	 	<li>GROWL_NOTIFICATIONS_DEFAULT</li>
+ *	 </ul>
+ *
+ *	 No longer recommended as of Growl 0.6. An alternate method of registering
+ *	 is to use Growl.framework's delegate system.
+ *	 See +[GrowlApplicationBridge setGrowlDelegate:] or Growl_SetDelegate for
+ *	 more information.
+ */
+#define GROWL_APP_REGISTRATION			XSTR("GrowlApplicationRegistrationNotification")
+/*!	@defined GROWL_APP_REGISTRATION_CONF
+ *	@abstract The distributed notification for confirming registration.
+ *	@discussion The name of the distributed notification sent to confirm the
+ *	 registration. Used by the Growl preference pane. Your application probably
+ *	 does not need to use this notification.
+ */
+#define GROWL_APP_REGISTRATION_CONF		XSTR("GrowlApplicationRegistrationConfirmationNotification")
+/*!	@defined GROWL_NOTIFICATION
+ *	@abstract The distributed notification for Growl notifications.
+ *	@discussion This is what it all comes down to. This is the name of the
+ *	 distributed notification that your application posts to actually send a
+ *	 Growl notification.
+ *
+ *	 The userInfo dictionary for this notification can contain these keys:
+ *	 <ul>
+ *	 	<li>GROWL_NOTIFICATION_NAME (required)</li>
+ *	 	<li>GROWL_NOTIFICATION_TITLE (required)</li>
+ *	 	<li>GROWL_NOTIFICATION_DESCRIPTION (required)</li>
+ *	 	<li>GROWL_NOTIFICATION_ICON</li>
+ *	 	<li>GROWL_NOTIFICATION_APP_ICON</li>
+ *	 	<li>GROWL_NOTIFICATION_PRIORITY</li>
+ *	 	<li>GROWL_NOTIFICATION_STICKY</li>
+ *	 	<li>GROWL_NOTIFICATION_CLICK_CONTEXT</li>
+ *	 	<li>GROWL_APP_NAME (required)</li>
+ *	 </ul>
+ *
+ *	 No longer recommended as of Growl 0.6. Three alternate methods of posting
+ *	 notifications are +[GrowlApplicationBridge notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:],
+ *	 Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext, and
+ *	 Growl_PostNotification.
+ */
+#define GROWL_NOTIFICATION				XSTR("GrowlNotification")
+/*!	@defined GROWL_SHUTDOWN
+*	@abstract The distributed notification name that tells Growl to shutdown.
+*	@discussion The Growl preference pane posts this notification when the
+*	 "Stop Growl" button is clicked.
+*/
+#define GROWL_SHUTDOWN					XSTR("GrowlShutdown")
+/*!	@defined GROWL_PING
+ *	@abstract A distributed notification to check whether Growl is running.
+ *	@discussion This is used by the Growl preference pane. If it receives a
+ *	 GROWL_PONG, the preference pane takes this to mean that Growl is running.
+ */
+#define GROWL_PING						XSTR("Honey, Mind Taking Out The Trash")
+/*!	@defined GROWL_PONG
+ *	@abstract The distributed notification sent in reply to GROWL_PING.
+ *	@discussion GrowlHelperApp posts this in reply to GROWL_PING.
+ */
+#define GROWL_PONG						XSTR("What Do You Want From Me, Woman")
+/*!	@defined GROWL_IS_READY
+ *	@abstract The distributed notification sent when Growl starts up.
+ *	@discussion GrowlHelperApp posts this when it has begin listening on all of
+ *	 its sources for new notifications. GrowlApplicationBridge (in
+ *	 Growl.framework), upon receiving this notification, reregisters using the
+ *	 registration dictionary supplied by its delegate.
+ */
+#define GROWL_IS_READY					XSTR("Lend Me Some Sugar; I Am Your Neighbor!")
+/*!	@defined GROWL_NOTIFICATION_CLICKED
+ *	@abstract The distributed notification sent when a supported notification is clicked.
+ *	@discussion When a Growl notification with a click context is clicked on by
+ *	 the user, Growl posts this distributed notification.
+ *	 The GrowlApplicationBridge responds to this notification by calling a
+ *	 callback in its delegate.
+ */
+#define GROWL_NOTIFICATION_CLICKED		XSTR("GrowlClicked!")
+#define GROWL_NOTIFICATION_TIMED_OUT	XSTR("GrowlTimedOut!")
+
+/*!	@group Other symbols */
+/* Symbols which don't fit into any of the other categories. */
+
+/*!	@defined GROWL_KEY_CLICKED_CONTEXT
+ *	@abstract Used internally as the key for the clickedContext passed over DNC.
+ *	@discussion This key is used in GROWL_NOTIFICATION_CLICKED, and contains the
+ *	 click context that was supplied in the original notification.
+ */
+#define GROWL_KEY_CLICKED_CONTEXT		XSTR("ClickedContext")
+/*!	@defined GROWL_REG_DICT_EXTENSION
+ *	@abstract The filename extension for registration dictionaries.
+ *	@discussion The GrowlApplicationBridge in Growl.framework registers with
+ *	 Growl by creating a file with the extension of .(GROWL_REG_DICT_EXTENSION)
+ *	 and opening it in the GrowlHelperApp. This happens whether or not Growl is
+ *	 running; if it was stopped, it quits immediately without listening for
+ *	 notifications.
+ */
+#define GROWL_REG_DICT_EXTENSION		XSTR("growlRegDict")
+
+
+#define GROWL_POSITION_PREFERENCE_KEY			@"GrowlSelectedPosition"
+
+#endif //ndef _GROWLDEFINES_H

Deleted: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Resources/Info.plist
===================================================================
--- branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Resources/Info.plist	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Resources/Info.plist	2010-10-07 21:12:38 UTC (rev 72223)
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>Growl</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.growl.growlframework</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundlePackageType</key>
-	<string>FMWK</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.2.1</string>
-	<key>CFBundleSignature</key>
-	<string>GRRR</string>
-	<key>CFBundleVersion</key>
-	<string>1.2.1</string>
-	<key>NSPrincipalClass</key>
-	<string>GrowlApplicationBridge</string>
-</dict>
-</plist>

Copied: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Resources/Info.plist (from rev 72222, branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Resources/Info.plist)
===================================================================
--- contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Resources/Info.plist	                        (rev 0)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/A/Resources/Info.plist	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>Growl</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.growl.growlframework</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>FMWK</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.2.1</string>
+	<key>CFBundleSignature</key>
+	<string>GRRR</string>
+	<key>CFBundleVersion</key>
+	<string>1.2.1</string>
+	<key>NSPrincipalClass</key>
+	<string>GrowlApplicationBridge</string>
+</dict>
+</plist>

Deleted: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/Current
===================================================================
--- branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/Current	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/Current	2010-10-07 21:12:38 UTC (rev 72223)
@@ -1 +0,0 @@
-link A
\ No newline at end of file

Copied: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/Current (from rev 72222, branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/Current)
===================================================================
--- contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/Current	                        (rev 0)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework/Versions/Current	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1 @@
+link A
\ No newline at end of file

Deleted: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Info.plist
===================================================================
--- branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Info.plist	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Info.plist	2010-10-07 21:12:38 UTC (rev 72223)
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-	<dict>
-		<key>CFBundleDevelopmentRegion</key>
-		<string>English</string>
-		<key>CFBundleIdentifier</key>
-		<string>com.apple.xcode.dsym.com.growl.growlframework</string>
-		<key>CFBundleInfoDictionaryVersion</key>
-		<string>6.0</string>
-		<key>CFBundlePackageType</key>
-		<string>dSYM</string>
-		<key>CFBundleSignature</key>
-		<string>????</string>
-		<key>CFBundleShortVersionString</key>
-		<string>1.2.1</string>
-		<key>CFBundleVersion</key>
-		<string>1.2.1</string>
-	</dict>
-</plist>

Copied: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Info.plist (from rev 72222, branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Info.plist)
===================================================================
--- contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Info.plist	                        (rev 0)
+++ contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Info.plist	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.com.growl.growlframework</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.2.1</string>
+		<key>CFBundleVersion</key>
+		<string>1.2.1</string>
+	</dict>
+</plist>

Deleted: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Resources/DWARF/Growl
===================================================================
(Binary files differ)

Copied: contrib/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Resources/DWARF/Growl (from rev 72222, branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/Growl.framework.dSYM/Contents/Resources/DWARF/Growl)
===================================================================
(Binary files differ)

Deleted: contrib/Pallet/Growl-1.2.1-Framework/License.txt
===================================================================
--- branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/License.txt	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/Growl-1.2.1-Framework/License.txt	2010-10-07 21:12:38 UTC (rev 72223)
@@ -1,15 +0,0 @@
-Copyright (c) The Growl Project, 2004-2009
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. Neither the name of Growl nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copied: contrib/Pallet/Growl-1.2.1-Framework/License.txt (from rev 72222, branches/gsoc10-gui/Pallet/Growl-1.2.1-Framework/License.txt)
===================================================================
--- contrib/Pallet/Growl-1.2.1-Framework/License.txt	                        (rev 0)
+++ contrib/Pallet/Growl-1.2.1-Framework/License.txt	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1,15 @@
+Copyright (c) The Growl Project, 2004-2009
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of Growl nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copied: contrib/Pallet/GrowlNotifications.h (from rev 72222, branches/gsoc10-gui/Pallet/GrowlNotifications.h)
===================================================================
--- contrib/Pallet/GrowlNotifications.h	                        (rev 0)
+++ contrib/Pallet/GrowlNotifications.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1,26 @@
+/*
+ *  GrowlNotifications.h
+ *  Pallet
+ *
+ *  Created by Vasileios Georgitzikis on 19/6/10.
+ *  Copyright 2010 Tzikis. All rights reserved.
+ *
+ */
+
+/* Defining growl types*/
+
+/**/
+#define GROWL_TYPES 12
+#define GROWL_INSTALL 0
+#define GROWL_UNINSTALL 1
+#define GROWL_UPGRADE 2
+#define GROWL_SYNC 3
+#define GROWL_SELFUPDATE 4
+#define GROWL_INSTALLFAILED 5
+#define GROWL_UNINSTALLFAILED 6
+#define GROWL_UPGRADEFAILED 7
+#define GROWL_SYNCFAILED 8
+#define GROWL_SELFUPDATEFAILED 9
+
+#define GROWL_ALLOPS 10
+#define GROWL_ALLOPSFAILED 11

Modified: contrib/Pallet/MPActionLauncher.h
===================================================================
--- contrib/Pallet/MPActionLauncher.h	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/MPActionLauncher.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -15,13 +15,16 @@
 
 #import <Cocoa/Cocoa.h>
 #import <MacPorts/MacPorts.h>
+#import <Growl/Growl.h>
 
+#import "GrowlNotifications.h"
+
 /*!
  @class MPActionLauncher
  @abstract Wrapper for MacPorts Framework actions
  @discussion Contains a shared per thread MacPorts Framework wrapper
 */
- at interface MPActionLauncher : NSObject {
+ at interface MPActionLauncher : NSObject <GrowlApplicationBridgeDelegate> {
     NSArray *ports;
     NSTask *actionTool;
     NSConnection *connectionToActionTool;
@@ -58,6 +61,13 @@
 - (void)installPort:(MPPort *)port;
 
 /*!
+ @brief Installs a single port with the selected variants in another thread
+ @param portAndVariands NSArray which includes the port to install and its variants
+ */
+
+- (void)installPortWithVariants:(NSArray *)portAndVariants;
+
+/*!
  @brief Uninstalls a single port in another thread
  @param port MPPort that represents the port to install
  */
@@ -82,4 +92,6 @@
 
 - (void)cancelPortProcess;
 
+-(void) sendGrowlNotification: (int) type;
+
 @end

Modified: contrib/Pallet/MPActionLauncher.m
===================================================================
--- contrib/Pallet/MPActionLauncher.m	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/MPActionLauncher.m	2010-10-07 21:12:38 UTC (rev 72223)
@@ -8,6 +8,8 @@
 
 #import "MPActionLauncher.h"
 
+extern BOOL errorReceived;
+
 static MPActionLauncher *sharedActionLauncher = nil;
 
 #pragma mark Implementation
@@ -48,29 +50,101 @@
 }
 
 - (void)installPort:(MPPort *)port {
+	errorReceived=NO;
     NSError * error;
     NSArray *empty = [NSArray arrayWithObject: @""];
     [port installWithOptions:empty variants:empty error:&error];
+	//Check if we have received an error, send the apropriate notification, and if everything is fine
+	//send a notification to the main thread that we have completed our operation, and to advance the queue
+	if(errorReceived)
+		[self sendGrowlNotification: GROWL_INSTALLFAILED];
+	else
+	{
+		[self sendGrowlNotification: GROWL_INSTALL];
+		[[NSNotificationCenter defaultCenter] postNotificationName:@"advanceQ" object:nil userInfo:nil];
+	}
+	
 }
 
+- (void)installPortWithVariants:(NSArray *) portAndVariants {
+	errorReceived=NO;
+    NSError * error;
+    NSArray *empty = [NSArray arrayWithObject: @""];
+	//Because we get the port and the variants mixed in an array, we copy the port to a local variable,
+	//and the variants array to a local array
+	MPPort* port = [portAndVariants objectAtIndex:0];
+	NSArray *variants = [portAndVariants objectAtIndex:1];
+    [port installWithOptions:empty variants:variants error:&error];
+	//Check if we have received an error, send the apropriate notification, and if everything is fine
+	//send a notification to the main thread that we have completed our operation, and to advance the queue
+	if(errorReceived)
+		[self sendGrowlNotification: GROWL_INSTALLFAILED];
+	else
+	{
+		[self sendGrowlNotification: GROWL_INSTALL];
+		[[NSNotificationCenter defaultCenter] postNotificationName:@"advanceQ" object:nil userInfo:nil];
+	}
+	
+}
+
 - (void)uninstallPort:(MPPort *)port {
+	errorReceived=NO;
     NSError * error;
     [port uninstallWithVersion:@"" error:&error];
+	//Check if we have received an error, send the apropriate notification, and if everything is fine
+	//send a notification to the main thread that we have completed our operation, and to advance the queue
+	if(errorReceived)
+		[self sendGrowlNotification: GROWL_UNINSTALLFAILED];
+	else
+	{
+		[self sendGrowlNotification: GROWL_UNINSTALL];
+		[[NSNotificationCenter defaultCenter] postNotificationName:@"advanceQ" object:nil userInfo:nil];
+	}
 }
 
 - (void)upgradePort:(MPPort *)port {
+	errorReceived=NO;
     NSError * error;
     [port upgradeWithError:&error];
+	//Check if we have received an error, send the apropriate notification, and if everything is fine
+	//send a notification to the main thread that we have completed our operation, and to advance the queue
+	if(errorReceived)
+		[self sendGrowlNotification: GROWL_UPGRADEFAILED];
+	else
+	{
+		[self sendGrowlNotification: GROWL_UPGRADE];
+		[[NSNotificationCenter defaultCenter] postNotificationName:@"advanceQ" object:nil userInfo:nil];
+	}
 }
 
 - (void)sync {
+	errorReceived=NO;
     NSError * error;
     [[MPMacPorts sharedInstance] sync:&error];
+	//Check if we have received an error, send the apropriate notification, and if everything is fine
+	//send a notification to the main thread that we have completed our operation, and to advance the queue
+	if(errorReceived)
+		[self sendGrowlNotification: GROWL_SYNCFAILED];
+	else
+	{
+		[self sendGrowlNotification: GROWL_SYNC];
+		[[NSNotificationCenter defaultCenter] postNotificationName:@"advanceQ" object:nil userInfo:nil];
+	}
 }
 
 - (void)selfupdate {
+	errorReceived=NO;
     NSError * error;
     [[MPMacPorts sharedInstance] selfUpdate:&error];
+	//Check if we have received an error, send the apropriate notification, and if everything is fine
+	//send a notification to the main thread that we have completed our operation, and to advance the queue
+	if(errorReceived)
+		[self sendGrowlNotification: GROWL_SELFUPDATEFAILED];
+	else
+	{
+		[self sendGrowlNotification: GROWL_SELFUPDATE];
+		[[NSNotificationCenter defaultCenter] postNotificationName:@"advanceQ" object:nil userInfo:nil];
+	}
 }
 
 - (void)cancelPortProcess {
@@ -78,4 +152,69 @@
     [[MPMacPorts sharedInstance] cancelCurrentCommand];
 }
 
+//sendGrowlNotification is the method used to send our Growl notifications, via the Growl framework. It takes one argument, which is the
+//type of notification we are sending, as defined in GrowlNotifications.h It initializes the strings we will be sending to the
+//Growl Framework that comprise our notification, and finaly sends the notification
+-(void) sendGrowlNotification:(int)type
+{
+	//The notification needs a title. We initialize an array containing the titles for each type of notification
+	NSString *growlTitles[GROWL_TYPES];
+	growlTitles[GROWL_INSTALL] = [NSString stringWithString: @"Installation Completed"];
+	growlTitles[GROWL_UNINSTALL] = [NSString stringWithString: @"Uninstall Completed"];
+	growlTitles[GROWL_UPGRADE] = [NSString stringWithString: @"Upgrade Completed"];
+	growlTitles[GROWL_SYNC] = [NSString stringWithString: @"Sync Completed"];
+	growlTitles[GROWL_SELFUPDATE] = [NSString stringWithString: @"Selfupdate Completed"];
+	growlTitles[GROWL_INSTALLFAILED] = [NSString stringWithString: @"Installation Failed"];
+	growlTitles[GROWL_UNINSTALLFAILED] = [NSString stringWithString: @"Uninstall Failed"];
+	growlTitles[GROWL_UPGRADEFAILED] = [NSString stringWithString: @"Upgrade Failed"];
+	growlTitles[GROWL_SYNCFAILED] = [NSString stringWithString: @"Sync Failed"];
+	growlTitles[GROWL_SELFUPDATEFAILED] = [NSString stringWithString: @"Selfupdate Failed"];
+
+	growlTitles[GROWL_ALLOPS] = [NSString stringWithString: @"Operations Completed"];
+	growlTitles[GROWL_ALLOPSFAILED] = [NSString stringWithString: @"Operations Failed"];
+
+	//The notification also needs a description. We initialize an array containing the descriptions for each type of notification
+	NSString *growlDescriptions[GROWL_TYPES];	
+	growlDescriptions[GROWL_INSTALL] = [NSString stringWithString: @"Operation completed successfully"];
+	growlDescriptions[GROWL_UNINSTALL] = [NSString stringWithString: @"Operation completed successfully"];
+	growlDescriptions[GROWL_UPGRADE] = [NSString stringWithString: @"Operation completed successfully"];
+	growlDescriptions[GROWL_SYNC] = [NSString stringWithString: @"Operation completed successfully"];
+	growlDescriptions[GROWL_SELFUPDATE] = [NSString stringWithString: @"Operation completed successfully"];
+	growlDescriptions[GROWL_INSTALLFAILED] = [NSString stringWithString: @"Operation Failed"];
+	growlDescriptions[GROWL_UNINSTALLFAILED] = [NSString stringWithString: @"Operation Failed"];
+	growlDescriptions[GROWL_UPGRADEFAILED] = [NSString stringWithString: @"Operation Failed"];
+	growlDescriptions[GROWL_SYNCFAILED] = [NSString stringWithString: @"Operation Failed"];
+	growlDescriptions[GROWL_SELFUPDATEFAILED] = [NSString stringWithString: @"Operation Failed"];
+
+	growlDescriptions[GROWL_ALLOPS] = [NSString stringWithString: @"All Operations Completed Succesfully"];
+	growlDescriptions[GROWL_ALLOPSFAILED] = [NSString stringWithString: @"Operations Failed"];
+
+	//And the notification also needs a name, which Growl uses to identify it. We initialize an array containing
+	//these names here
+	NSString *growlNotificationNames[GROWL_TYPES];
+	growlNotificationNames[GROWL_INSTALL] = [NSString stringWithString: @"InstallCompleted"];
+	growlNotificationNames[GROWL_UNINSTALL] = [NSString stringWithString: @"UninstallCompleted"];
+	growlNotificationNames[GROWL_UPGRADE] = [NSString stringWithString: @"UpgradeCompleted"];
+	growlNotificationNames[GROWL_SYNC] = [NSString stringWithString: @"SyncCompleted"];
+	growlNotificationNames[GROWL_SELFUPDATE] = [NSString stringWithString: @"SelfupdateCompleted"];
+	growlNotificationNames[GROWL_INSTALLFAILED] = [NSString stringWithString: @"InstallFailed"];
+	growlNotificationNames[GROWL_UNINSTALLFAILED] = [NSString stringWithString: @"UninstallFailed"];
+	growlNotificationNames[GROWL_UPGRADEFAILED] = [NSString stringWithString: @"UpgradeFailed"];
+	growlNotificationNames[GROWL_SYNCFAILED] = [NSString stringWithString: @"SyncFailed"];
+	growlNotificationNames[GROWL_SELFUPDATEFAILED] = [NSString stringWithString: @"SelfupdateFailed"];
+	
+	growlNotificationNames[GROWL_ALLOPS] = [NSString stringWithString: @"OperationsCompleted"];
+	growlNotificationNames[GROWL_ALLOPSFAILED] = [NSString stringWithString: @"OperationsFailed"];
+	
+	
+	/*#################	These initializations should be moved to [init], and only call the following functions 	#################*/
+	
+	//Before we can send our messages, we need to call setGrowlDelegate once, due to a bug with the Growl Framework
+	[GrowlApplicationBridge setGrowlDelegate:(id) @""];
+	//And finaly, we send our notification, by calling notifyWithTitle with the appropriate title/description/name 
+	[GrowlApplicationBridge notifyWithTitle: growlTitles[type] description: growlDescriptions[type]\
+						   notificationName:growlNotificationNames[type] iconData:nil priority: 0\
+								   isSticky: NO clickContext:nil];
+}
+
 @end

Modified: contrib/Pallet/MPActionsController.h
===================================================================
--- contrib/Pallet/MPActionsController.h	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/MPActionsController.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -10,22 +10,65 @@
 #import "MPActionLauncher.h"
 #import "PortsTableController.h"
 #import "ActivityController.h"
+#import "MPCheckbox.h"
 
+#import "GrowlNotifications.h"
 
+extern BOOL altWasPressed;
+
 @interface MPActionsController : NSObject {
     IBOutlet NSArrayController *ports;
     IBOutlet PortsTableController *tableController;
     IBOutlet ActivityController *activityController;
     
     IBOutlet NSToolbarItem *cancel;
+	IBOutlet NSButton *startQueueButton;
+	IBOutlet NSButton *removeFromQueueButton;
+	IBOutlet NSMutableArray *queueArray;
+    IBOutlet NSArrayController *queue;
+	NSUInteger queueCounter;
+	
+	//Variants Panel
+    IBOutlet NSPanel *variantsPanel;
+	
+	//Info Panel
+	IBOutlet NSPanel *infoPanel;
+	
+	//To make our checkbox management easier, we hold our checkboxes in array 
+	MPCheckbox* checkboxes[10];
+	
+	//We set 10 checkboxes, that will hold our port variants
+	IBOutlet MPCheckbox *chckbx0;
+	IBOutlet MPCheckbox *chckbx1;
+	IBOutlet MPCheckbox *chckbx2;
+	IBOutlet MPCheckbox *chckbx3;
+	IBOutlet MPCheckbox *chckbx4;
+	IBOutlet MPCheckbox *chckbx5;
+	IBOutlet MPCheckbox *chckbx6;
+	IBOutlet MPCheckbox *chckbx7;
+	IBOutlet MPCheckbox *chckbx8;
+	IBOutlet MPCheckbox *chckbx9;	
 }
 
 - (IBAction)openPreferences:(id)sender;
 - (IBAction)install:(id)sender;
+- (IBAction)installWithVariantsChoose:(id)sender;
+- (IBAction)installWithVariantsPerform:(id)sender;
 - (IBAction)uninstall:(id)sender;
 - (IBAction)upgrade:(id)sender;
 - (IBAction)sync:(id)sender;
 - (IBAction)selfupdate:(id)sender;
 - (IBAction)cancel:(id)sender;
+- (IBAction)toggleInfoPanel: (id) sender;
 
+-(IBAction)clickCheckbox:(id)sender;
+-(void)setConflicts: (MPPort*) port;
+
+- (void)queueOperation: (NSString*) operation portName: (NSString*) name portObject: (id) port variants: (NSMutableArray*) variants;
+
+-(IBAction) startQueue:(id) sender;
+//-(IBAction) removeFromQueue:(id) sender;
+-(void)clearQueue;
+-(void)advanceQueue;
+
 @end

Modified: contrib/Pallet/MPActionsController.m
===================================================================
--- contrib/Pallet/MPActionsController.m	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/MPActionsController.m	2010-10-07 21:12:38 UTC (rev 72223)
@@ -15,44 +15,287 @@
     [NSBundle loadNibNamed:@"Preferences" owner:self];
 }
 
+//After choosing the variants, this method is called when the user clicks on the Go button
+- (IBAction)installWithVariantsPerform:(id)sender {
+	if (altWasPressed)
+	{
+		[self clearQueue];
+	}
+	[variantsPanel close];
+
+	[tableController open:nil];
+	NSLog(@"Staring Installation");
+    NSArray *selectedPorts = [ports selectedObjects];
+	id port = [selectedPorts objectAtIndex:0];		
+	//NSLog(@"Lets see %@", [checkboxes[0] title]);
+	//NSLog(@"Port variants:");
+	NSMutableString *variantsString = [NSMutableString stringWithCapacity:50];
+	[variantsString appendString:[port name]];
+	NSMutableArray *variants=[NSMutableArray arrayWithCapacity:10];
+	for(UInt i=0; i<[[port valueForKey:@"variants"] count];i++)
+	{
+		//NSLog(@"%@",[[port valueForKey:@"variants"] objectAtIndex:i]);
+		
+		//If the checkbox is checked, the variant is added on the list. If it is a default_variant, a '+' is added in the name,
+		//to comply with the mportopen arguments
+		if ([checkboxes[i] state] == NSOnState)
+		{
+			if (![checkboxes[i] isDefault])
+			{
+				[variants addObject: [[port valueForKey:@"variants"] objectAtIndex:i]];
+				[variants addObject: [NSString stringWithString:@"+"]];
+			}
+
+			[variantsString appendString:@"+"];
+			[variantsString appendString:[[port valueForKey:@"variants"] objectAtIndex:i]];			
+		}
+		else if([checkboxes[i] isDefault])
+		{
+			//If the checkbox is unchecked, we need to check if it is a default_variant, and if so, add it in the list with '-'
+			//in the name, to let macports know that we wish to not use it
+			[variants addObject: [[port valueForKey:@"variants"] objectAtIndex:i]];
+			[variants addObject: [NSString stringWithString:@"-"]];
+			[variantsString appendString:@"-"];
+			[variantsString appendString:[[port valueForKey:@"variants"] objectAtIndex:i]];			
+		}
+
+	}
+	//NSLog(@"End of Variants");
+	
+	[self queueOperation:@"install+" portName:variantsString portObject:port variants: variants];
+	NSLog(@"%@",[port name]);
+
+	if (altWasPressed)
+		[self startQueue:nil];
+}
+
+//This method is called when the user clicks install with variants
+- (IBAction)installWithVariantsChoose:(id)sender 
+{
+	NSArray *selectedPorts = [ports selectedObjects];
+	id port = [selectedPorts objectAtIndex:0];
+	
+	//Only go through the fuss if there are variants, otherwise, perform a normal install
+	if([[port valueForKey:@"variants"] count] > 0)
+	{
+		checkboxes[0]=chckbx0;
+		checkboxes[1]=chckbx1;
+		checkboxes[2]=chckbx2;
+		checkboxes[3]=chckbx3;
+		checkboxes[4]=chckbx4;
+		checkboxes[5]=chckbx5;
+		checkboxes[6]=chckbx6;
+		checkboxes[7]=chckbx7;
+		checkboxes[8]=chckbx8;
+		checkboxes[9]=chckbx9;
+		
+		//Hide all checkboxes first
+		for(UInt i=0; i< 10;i++)
+		{
+			[checkboxes[i] setAlphaValue:0];
+		}
+		//NSLog(@"Port variants:");
+		//Call checkDefaults to compute the NSMutableArray for key default_variants
+		[port checkDefaults];		
+		NSMutableArray *defaultVariants= [port objectForKey:@"default_variants"];
+		
+		NSLog(@"Default variants count: %i", [defaultVariants count]);
+		for(UInt i=0; i<[[port valueForKey:@"variants"] count];i++)
+		{
+			//If the variant is included in the default_variants, then check it. Otherwise leave it unchecked
+			//NSLog(@"%@",[[port valueForKey:@"variants"] objectAtIndex:i]);
+			if(defaultVariants != nil && [defaultVariants indexOfObject:[[port valueForKey:@"variants"] objectAtIndex:i]] != NSNotFound)
+			{
+				//NSLog(@"Default %@", [[port valueForKey:@"variants"] objectAtIndex:i]);
+				[checkboxes[i] setState:NSOnState];
+				[checkboxes[i] setIsDefault:YES];
+ 			}
+			else
+			{
+				[checkboxes[i] setState:NSOffState];
+				[checkboxes[i] setIsDefault:NO];\
+			}
+			//Show all existing variants, and set their titles
+			[checkboxes[i] setAlphaValue:1];
+			NSAttributedString *tempString = [[NSAttributedString alloc]\
+											  initWithString:[[port valueForKey:@"variants"] objectAtIndex:i]\
+		attributes: [NSDictionary dictionaryWithObject: [NSColor whiteColor] forKey: NSForegroundColorAttributeName]];
+			[checkboxes[i] setAttributedTitle:tempString];
+			 
+		}
+		//NSLog(@"End of Variants");
+		//Call setConflicts to initialize conflicting variants in the GUI
+		[self setConflicts:port];
+
+		[variantsPanel makeKeyAndOrderFront:self];
+		//[variantsPanel makeFirstResponder:[tableController mainWindow]];
+	}
+	else
+	{
+		[self install:nil];
+	}
+
+}
+
 - (IBAction)install:(id)sender {
+	if (altWasPressed)
+	{
+		[self clearQueue];
+	}	 
+	[tableController open:nil];
+	NSLog(@"Staring Installation");
     NSArray *selectedPorts = [ports selectedObjects];
     for (id port in selectedPorts) {
-        [[MPActionLauncher sharedInstance]
-            performSelectorInBackground:@selector(installPort:) withObject:port];
+		[self queueOperation:@"install" portName:[port name] portObject:port variants:0];
+		NSLog(@"%@",[port name]);
+        //[[MPActionLauncher sharedInstance]
+        //    performSelectorInBackground:@selector(installPort:) withObject:port];
     }
+	//NSLog(@"Installation Completed");
+	if (altWasPressed)
+		[self startQueue:nil];
 }
 
 - (IBAction)uninstall:(id)sender {
+	
+	if (altWasPressed)
+	{
+		[self clearQueue];
+	}	 
+	[tableController open:nil];
     NSArray *selectedPorts = [ports selectedObjects];
     for (id port in selectedPorts) {
-        [[MPActionLauncher sharedInstance]
+ 		[self queueOperation:@"uninstall" portName:[port name] portObject:port variants:0];
+		NSLog(@"%@",[port name]);
+		/*
+       [[MPActionLauncher sharedInstance]
             performSelectorInBackground:@selector(uninstallPort:) withObject:port];
+		 */
     }
+	if (altWasPressed)
+		[self startQueue:nil];
 }
 
 - (IBAction)upgrade:(id)sender {
-    NSArray *selectedPorts = [ports selectedObjects];
+	if (altWasPressed)
+	{
+		[self clearQueue];
+	}	 
+ 	[tableController open:nil];
+   NSArray *selectedPorts = [ports selectedObjects];
     for (id port in selectedPorts) {
+		[self queueOperation:@"upgrade" portName:[port name] portObject:port variants:0];
+		NSLog(@"%@",[port name]);
+		/*
         [[MPActionLauncher sharedInstance]
             performSelectorInBackground:@selector(upgradePort:) withObject:port];
+		 */
     }
+	if (altWasPressed)
+		[self startQueue:nil];
 }
 
 - (IBAction)sync:(id)sender {
+	if (altWasPressed)
+	{
+		[self clearQueue];
+	}	 
+	[tableController open:nil];
+	[self queueOperation:@"sync" portName:@"-" portObject:@"-" variants:0];
+	/*
     [[MPActionLauncher sharedInstance]
         performSelectorInBackground:@selector(sync) withObject:nil];
+	 */
+	if (altWasPressed)
+		[self startQueue:nil];
 }
 
 - (IBAction)selfupdate:(id)sender {
+	if (altWasPressed)
+	{
+		[self clearQueue];
+	}	 
+	[tableController open:nil];
+	[self queueOperation:@"selfupdate" portName:@"-" portObject:@"-" variants:0];
+	/*
     [[MPActionLauncher sharedInstance]
         performSelectorInBackground:@selector(selfupdate) withObject:nil];
+	 */
+	if (altWasPressed)
+		[self startQueue:nil];
 }
 
 - (IBAction)cancel:(id)sender {
     [[MPMacPorts sharedInstance] cancelCurrentCommand];
 }
 
+- (IBAction) toggleInfoPanel: (id) sender;
+{
+	if ([infoPanel isVisible]) {
+		[infoPanel close];
+		//[variantsPanel close];
+	} else {
+		[infoPanel makeKeyAndOrderFront:self];
+		//May need to make our MPTableView as the first responder
+		//[infoPanel makeFirstResponder:self];
+	}
+}
+
+-(IBAction)clickCheckbox:(id)sender
+{
+	
+	//Are we checking or unchecking the checkbox?
+	BOOL enableDisable;
+	if([sender state]==NSOnState)
+	{
+		enableDisable=NO;
+	}
+	else
+	{
+		enableDisable=YES;
+	}
+	
+	for(UInt j=0;j<[[sender conflictsWith] count]; j++)
+	{
+		//If we are checking the checkbox, then disable and uncheck the conflicting ones
+		//If we are unchecking the checkbox, enable the conflicting ones
+		for(UInt i=0; i<10; i++)
+		{
+			if ([[checkboxes[i] title] isEqualToString:[[sender conflictsWith] objectAtIndex:j]])
+			{
+				[checkboxes[i] setEnabled:enableDisable];
+				if (!enableDisable)
+				{
+					[checkboxes[i] setState:NSOffState];
+				}
+			}
+		}		
+	}
+	 
+}
+
+-(void)setConflicts: (MPPort *) port
+{	
+	//Initialize the conflicts NSMutableArray for the port, if it wasn't already initialized
+	[port checkConflicts];
+
+	NSArray *conflicts = [port objectForKey:@"conflicts"];
+	//For each conflict in the array, check which checkbox/variant has the same name as the conflict, and
+	//call the setConflictsWith method to add the conflicting checkbox to the conflictsWith array
+	for(UInt j=0; j< [conflicts count];j++)
+	{
+		UInt i;
+		for( i=0; i<10; i++)
+		{
+			if ([[conflicts objectAtIndex:j] objectForKey:[checkboxes[i] title]] != nil)
+			{
+				break;
+			}
+		 }
+		[checkboxes[i] setConflictsWith:[[conflicts objectAtIndex:j] objectForKey:[checkboxes[i] title]]];
+	}
+}
+
 -(BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem {
     BOOL enable = ![activityController busy];
     if ([[toolbarItem itemIdentifier] isEqual:[cancel itemIdentifier]]) {
@@ -89,4 +332,169 @@
     }
 }
 
+//This is called when clicking on the 'start queue' button, or clicking on an operation while holding the alt key
+-(void) startQueue:(id) sender
+{
+	NSLog(@"Starting Queue");
+	NSUInteger index;
+	index = [queueArray count]-1;
+	NSLog(@"Array Size is: %u", index);
+	NSUInteger i;
+	[queue setSelectionIndex: 0];
+	queueCounter=0;
+	
+	//We add ourselves as an observer in the Notification Center, and call advanceQueue whenever we receive an 'advanceQ' notification
+	[[NSNotificationCenter defaultCenter] addObserver:self
+											 selector:@selector(advanceQueue)
+												 name:@"advanceQ" object:nil];
+	//We start the operations by advancing in the queue once. When that operation is completed, it will
+	//automatically advance to the next queue by sending an advanceQ notification.
+	[self advanceQueue];
+}
+
+//This method is called to move through the queue and perform all the operations one by one. Each time this method is called,
+//we advance one spot in the queue
+-(void) advanceQueue
+{
+	NSUInteger index=queueCounter;
+	if([queueArray count]>index)
+	{
+		NSLog(@"Advancing Queue for %u", index);
+		//index = [queue selectionIndex];
+		NSLog(@"Index before: %u", index);
+
+		//We select each object from the array
+		[queue setSelectionIndex:index];
+		//We sleep the process for debugging puproses
+		//sleep(3);
+		//We then take the dictionary
+		NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithDictionary:[queueArray objectAtIndex:index]];
+		//And we print the operations
+		NSLog(@"Port %@ Operation %@",[dict objectForKey:@"port"], [dict objectForKey:@"operation"]);
+		id port= [dict objectForKey:@"object"];
+		
+		if ([[dict objectForKey:@"operation"] isEqualToString:@"install"])
+		{
+			NSLog(@"We have installation");
+			[[MPActionLauncher sharedInstance]
+			 performSelectorInBackground:@selector(installPort:) withObject:port];		
+		}
+		else if([[dict objectForKey:@"operation"] isEqualToString:@"install+"])
+		{
+			NSLog(@"We have installation with variants");
+			NSArray *variants = [dict objectForKey:@"variants"];
+			NSArray *portAndVariants = [NSArray arrayWithObjects:port, variants, nil];
+			[[MPActionLauncher sharedInstance]
+			 performSelectorInBackground:@selector(installPortWithVariants:) withObject:portAndVariants];		
+		}
+		else if([[dict objectForKey:@"operation"] isEqualToString:@"uninstall"])
+		{
+			NSLog(@"We have uninstallation");
+			[[MPActionLauncher sharedInstance]
+			 performSelectorInBackground:@selector(uninstallPort:) withObject:port];		
+		}
+		else if([[dict objectForKey:@"operation"] isEqualToString:@"upgrade"])
+		{
+			NSLog(@"We have upgrade");
+			[[MPActionLauncher sharedInstance]
+			 performSelectorInBackground:@selector(upgradePort:) withObject:port];
+		}
+		else if([[dict objectForKey:@"operation"] isEqualToString:@"selfupdate"])
+		{
+			NSLog(@"We have selfupdate");
+			[[MPActionLauncher sharedInstance]
+			 performSelectorInBackground:@selector(selfupdate) withObject:nil];		
+		}
+		else if([[dict objectForKey:@"operation"] isEqualToString:@"sync"])
+		{
+			NSLog(@"We have sync");
+			[[MPActionLauncher sharedInstance]
+			 performSelectorInBackground:@selector(sync) withObject:nil];		
+		}
+	}
+	else
+	{
+		//If we are done, we remove ourselves as an observer from the Notification Center, and we notify the user
+		[[NSNotificationCenter defaultCenter] removeObserver:self name:@"advanceQ" object:nil];
+		
+		int allops=GROWL_ALLOPS;
+		[[MPActionLauncher sharedInstance]
+		 performSelectorInBackground:@selector(sendGrowlNotification:) withObject:(id) allops];		
+		
+	}
+
+	queueCounter++;
+	
+}
+
+//This method is called when adding a new operation on the queue. Its inputs are the operation to be performed, the port name, the 
+//equivalent port object, and the variants
+-(void) queueOperation:(NSString*)operation portName:(NSString*)name portObject: (id) port variants: (NSMutableArray*) variants
+{
+	//We set the operation's icon
+	NSImage *image;
+	if ([operation isEqualToString:@"install"])
+	{
+		image = [NSImage imageNamed:@"TB_Install.icns"];
+	}
+	else if ([operation isEqualToString:@"install+"])
+	{
+		image = [NSImage imageNamed:@"TB_InstallWithVar.icns"];
+	}
+	else if ([operation isEqualToString:@"uninstall"])
+	{
+		image = [NSImage imageNamed:@"TB_Uninstall.icns"];
+	}
+	else if ([operation isEqualToString:@"upgrade"])
+	{
+		image = [NSImage imageNamed:@"TB_Upgrade.icns"];
+	}
+	else if ([operation isEqualToString:@"sync"])
+	{
+		image = [NSImage imageNamed:@"TB_Sync.icns"];
+	}
+	else if ([operation isEqualToString:@"selfupdate"])
+	{
+		image = [NSImage imageNamed:@"TB_Selfupdate.icns"];
+	}
+	
+	//If we have variants, print them out for debugging purposes
+	if(variants!=nil)
+	{
+		for(UInt i=0; i<[variants count]; i++)
+		{
+			NSLog(@"variants array at #%i: %@", i, [variants objectAtIndex:i]);
+		}
+	}
+	
+	NSLog(@"Queueing our Operation");
+	//Add the operation to the queue
+	[queue addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:operation, @"operation", name, @"port", port, @"object", image, @"image", variants, @"variants", nil]];
+}
+
+/*
+-(void) removeFromQueue:(id)sender
+{
+	UInt index = [queue selectionIndex];
+	[queue removeObject: [[queue selectedObjects] objectAtIndex:0]];
+	[queue setSelectionIndex: index];
+}
+*/
+
+//This is called when we have the alt key pressed, so that we clear the queue before adding and performing our new operation
+-(void) clearQueue
+{
+	NSIndexSet *tempIndex = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [queueArray count])];
+	[queue removeObjectsAtArrangedObjectIndexes:tempIndex];
+	
+}
+
+-(id) init
+{
+	[variantsPanel setFloatingPanel:YES];
+	
+	[super init];
+    return self;
+}
+
 @end

Copied: contrib/Pallet/MPCheckbox.h (from rev 72222, branches/gsoc10-gui/Pallet/MPCheckbox.h)
===================================================================
--- contrib/Pallet/MPCheckbox.h	                        (rev 0)
+++ contrib/Pallet/MPCheckbox.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1,24 @@
+//
+//  MPCheckbox.h
+//  Pallet
+//
+//  Created by Vasileios Georgitzikis on 21/7/10.
+//  Copyright 2010 Tzikis. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+//MPCheckbox is a custom NSButton class, that we use for our variants checkboxes.
+//Each variant is represented by a checkbox. This checkbox also stores wether it is a default variant, and a list of conflicting variants
+ at interface MPCheckbox : NSButton {
+
+	
+	BOOL isDefault;
+	
+	NSMutableArray *conflictsWith;
+}
+
+ at property (nonatomic) BOOL isDefault;
+ at property (nonatomic, retain) NSMutableArray *conflictsWith;
+
+ at end

Copied: contrib/Pallet/MPCheckbox.m (from rev 72222, branches/gsoc10-gui/Pallet/MPCheckbox.m)
===================================================================
--- contrib/Pallet/MPCheckbox.m	                        (rev 0)
+++ contrib/Pallet/MPCheckbox.m	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1,14 @@
+//
+//  MPCheckbox.m
+//  Pallet
+//
+//  Created by Vasileios Georgitzikis on 21/7/10.
+//  Copyright 2010 Tzikis. All rights reserved.
+//
+
+#import "MPCheckbox.h"
+
+
+ at implementation MPCheckbox
+ at synthesize isDefault, conflictsWith;
+ at end

Modified: contrib/Pallet/MPPortTableView.h
===================================================================
--- contrib/Pallet/MPPortTableView.h	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/MPPortTableView.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -8,9 +8,12 @@
 
 #import <Cocoa/Cocoa.h>
 
+//A variable that holds the last status of the ALT key, to use it when clicking on a button
+BOOL altWasPressed;
 
 @interface MPPortTableView : NSTableView {
     IBOutlet NSPanel *quickLookPanel;
+	
 }
 
 @end

Modified: contrib/Pallet/MPPortTableView.m
===================================================================
--- contrib/Pallet/MPPortTableView.m	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/MPPortTableView.m	2010-10-07 21:12:38 UTC (rev 72223)
@@ -13,7 +13,8 @@
 
 -(id)init {
     [quickLookPanel setFloatingPanel:YES];
-    [super init];
+    
+	[super init];
     return self;
 }
 
@@ -31,4 +32,25 @@
     }
 }
 
+//flagsChanged is called every time a flag-changing key is pressed, like alt-ctrl-cmd etc
+-(void)flagsChanged:(NSEvent *)theEvent
+{
+	//We check if Alt is pressed
+	if([theEvent modifierFlags]&NSAlternateKeyMask)
+	{
+		NSLog(@"Alt is pressed");
+		altWasPressed=YES;
+	}
+	else
+	{
+		//If not, then if it's no longer pressed, we update our value. Otherwise, it means that
+		//this has nothing to do with us, so we let the system handle the flag change
+		if(altWasPressed)
+		{
+			NSLog(@"Alt is released");
+			altWasPressed=NO;
+		}
+		else [super flagsChanged:theEvent];
+	}
+}
 @end

Copied: contrib/Pallet/MPQueueTableView.h (from rev 72222, branches/gsoc10-gui/Pallet/MPQueueTableView.h)
===================================================================
--- contrib/Pallet/MPQueueTableView.h	                        (rev 0)
+++ contrib/Pallet/MPQueueTableView.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1,18 @@
+//
+//  MPQueueTableView.h
+//  Pallet
+//
+//  Created by Vasileios Georgitzikis on 16/7/10.
+//  Copyright 2010 Tzikis. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+ at interface MPQueueTableView : NSTableView
+{
+	IBOutlet NSMutableArray *queueArray;
+    IBOutlet NSArrayController *queue;
+}
+
+ at end

Copied: contrib/Pallet/MPQueueTableView.m (from rev 72222, branches/gsoc10-gui/Pallet/MPQueueTableView.m)
===================================================================
--- contrib/Pallet/MPQueueTableView.m	                        (rev 0)
+++ contrib/Pallet/MPQueueTableView.m	2010-10-07 21:12:38 UTC (rev 72223)
@@ -0,0 +1,29 @@
+//
+//  MPQueueTableView.m
+//  Pallet
+//
+//  Created by Vasileios Georgitzikis on 16/7/10.
+//  Copyright 2010 Tzikis. All rights reserved.
+//
+
+#import "MPQueueTableView.h"
+
+
+ at implementation MPQueueTableView
+
+
+-(void)keyDown:(NSEvent *)theEvent {
+	if ([[theEvent characters] characterAtIndex:0] == NSDeleteCharacter || [[theEvent characters] characterAtIndex:0] == NSBackspaceCharacter)
+	{
+		NSLog(@"Deleting our shit");
+		NSLog(@"Selection: %i", [queue selectionIndex]);
+		if([queue selectionIndex]>=0) [queue removeObjectAtArrangedObjectIndex:[queue selectionIndex]];
+	}
+	else
+	{
+        [super keyDown:theEvent];
+	}
+
+}
+
+ at end

Modified: contrib/Pallet/Pallet.xcodeproj/project.pbxproj
===================================================================
--- contrib/Pallet/Pallet.xcodeproj/project.pbxproj	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/Pallet.xcodeproj/project.pbxproj	2010-10-07 21:12:38 UTC (rev 72223)
@@ -21,6 +21,20 @@
 /* End PBXAggregateTarget section */
 
 /* Begin PBXBuildFile section */
+		1D20FFD911F4F38000CCC4C6 /* TB_Info.icns in Resources */ = {isa = PBXBuildFile; fileRef = 1D20FFD811F4F38000CCC4C6 /* TB_Info.icns */; };
+		1D20FFDA11F4F38000CCC4C6 /* TB_Info.icns in Resources */ = {isa = PBXBuildFile; fileRef = 1D20FFD811F4F38000CCC4C6 /* TB_Info.icns */; };
+		1D24FCAB11CD32090063E2A5 /* TB_InstallWithVar.icns in Resources */ = {isa = PBXBuildFile; fileRef = 1D24FCAA11CD32090063E2A5 /* TB_InstallWithVar.icns */; };
+		1D24FCAC11CD32090063E2A5 /* TB_InstallWithVar.icns in Resources */ = {isa = PBXBuildFile; fileRef = 1D24FCAA11CD32090063E2A5 /* TB_InstallWithVar.icns */; };
+		1D4B877F11A5496B00AD9D33 /* Growl Registration Ticket.growlRegDict in Resources */ = {isa = PBXBuildFile; fileRef = 1D4B877E11A5496B00AD9D33 /* Growl Registration Ticket.growlRegDict */; };
+		1D4B878011A5498200AD9D33 /* Growl Registration Ticket.growlRegDict in Resources */ = {isa = PBXBuildFile; fileRef = 1D4B877E11A5496B00AD9D33 /* Growl Registration Ticket.growlRegDict */; };
+		1D4B87BB11A54DE000AD9D33 /* Growl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D4B87BA11A54DE000AD9D33 /* Growl.framework */; };
+		1D4B87BC11A54DE000AD9D33 /* Growl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D4B87BA11A54DE000AD9D33 /* Growl.framework */; };
+		1D4B87CE11A54FEF00AD9D33 /* Growl.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1D4B87BA11A54DE000AD9D33 /* Growl.framework */; };
+		1D4B87D411A5500100AD9D33 /* Growl.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1D4B87BA11A54DE000AD9D33 /* Growl.framework */; };
+		1D9B73F911F0F6D6006013F5 /* MPQueueTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D9B73F811F0F6D6006013F5 /* MPQueueTableView.m */; };
+		1D9B73FA11F0F6D6006013F5 /* MPQueueTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D9B73F811F0F6D6006013F5 /* MPQueueTableView.m */; };
+		1DA3219411F748330004ECB1 /* MPCheckbox.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DA3219311F748330004ECB1 /* MPCheckbox.m */; };
+		1DA3219511F748330004ECB1 /* MPCheckbox.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DA3219311F748330004ECB1 /* MPCheckbox.m */; };
 		1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; };
 		2105F5091028ACBA00A28D1A /* ActivityController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2105F5081028ACBA00A28D1A /* ActivityController.m */; };
 		21351FB30FEC67780074ACFE /* MPActionsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 21351FB20FEC67780074ACFE /* MPActionsController.m */; };
@@ -130,6 +144,26 @@
 /* End PBXContainerItemProxy section */
 
 /* Begin PBXCopyFilesBuildPhase section */
+		1D4B87CC11A54F9B00AD9D33 /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 10;
+			files = (
+				1D4B87CE11A54FEF00AD9D33 /* Growl.framework in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		1D4B87D311A54FFC00AD9D33 /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 10;
+			files = (
+				1D4B87D411A5500100AD9D33 /* Growl.framework in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		21900DD31095001700ED79CF /* Copy Bundle Frameworks */ = {
 			isa = PBXCopyFilesBuildPhase;
 			buildActionMask = 2147483647;
@@ -147,6 +181,15 @@
 		089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
 		1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
 		13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
+		1D20FFD811F4F38000CCC4C6 /* TB_Info.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = TB_Info.icns; sourceTree = "<group>"; };
+		1D24FC5F11CD1C770063E2A5 /* GrowlNotifications.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GrowlNotifications.h; sourceTree = "<group>"; };
+		1D24FCAA11CD32090063E2A5 /* TB_InstallWithVar.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = TB_InstallWithVar.icns; sourceTree = "<group>"; };
+		1D4B877E11A5496B00AD9D33 /* Growl Registration Ticket.growlRegDict */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = "Growl Registration Ticket.growlRegDict"; sourceTree = "<group>"; };
+		1D4B87BA11A54DE000AD9D33 /* Growl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Growl.framework; path = "Growl-1.2.1-Framework/Growl.framework"; sourceTree = "<group>"; };
+		1D9B73F711F0F6D6006013F5 /* MPQueueTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPQueueTableView.h; sourceTree = "<group>"; };
+		1D9B73F811F0F6D6006013F5 /* MPQueueTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPQueueTableView.m; sourceTree = "<group>"; };
+		1DA3219211F748330004ECB1 /* MPCheckbox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPCheckbox.h; sourceTree = "<group>"; };
+		1DA3219311F748330004ECB1 /* MPCheckbox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPCheckbox.m; sourceTree = "<group>"; };
 		1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = "<group>"; };
 		2105F5071028ACBA00A28D1A /* ActivityController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ActivityController.h; sourceTree = "<group>"; };
 		2105F5081028ACBA00A28D1A /* ActivityController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ActivityController.m; sourceTree = "<group>"; };
@@ -178,9 +221,9 @@
 		21FC23390FE8AB0400B1E835 /* StatePredicateTemplate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StatePredicateTemplate.h; sourceTree = "<group>"; };
 		21FC233A0FE8AB0400B1E835 /* StatePredicateTemplate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StatePredicateTemplate.m; sourceTree = "<group>"; };
 		29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
-		29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
 		29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
 		32CA4F630368D1EE00C91783 /* Pallet_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Pallet_Prefix.pch; sourceTree = "<group>"; };
+		5E5D169111AE96F500451AD7 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
 		8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		8D1107320486CEB800E47090 /* Pallet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Pallet.app; sourceTree = BUILT_PRODUCTS_DIR; };
 /* End PBXFileReference section */
@@ -192,6 +235,7 @@
 			files = (
 				21900DE01095001700ED79CF /* MacPorts.framework in Frameworks */,
 				21900DE11095001700ED79CF /* Cocoa.framework in Frameworks */,
+				1D4B87BB11A54DE000AD9D33 /* Growl.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -201,6 +245,7 @@
 			files = (
 				21900E031095030B00ED79CF /* MacPorts.framework in Frameworks */,
 				8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
+				1D4B87BC11A54DE000AD9D33 /* Growl.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -218,9 +263,9 @@
 		1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
 			isa = PBXGroup;
 			children = (
-				29B97324FDCFA39411CA2CEA /* AppKit.framework */,
 				13E42FB307B3F0F600E4EEF1 /* CoreData.framework */,
 				29B97325FDCFA39411CA2CEA /* Foundation.framework */,
+				5E5D169111AE96F500451AD7 /* AppKit.framework */,
 			);
 			name = "Other Frameworks";
 			sourceTree = "<group>";
@@ -281,6 +326,10 @@
 				21FC233A0FE8AB0400B1E835 /* StatePredicateTemplate.m */,
 				21EB8B0F100CDD37007371EE /* MPPortTableView.h */,
 				21EB8B10100CDD37007371EE /* MPPortTableView.m */,
+				1D9B73F711F0F6D6006013F5 /* MPQueueTableView.h */,
+				1D9B73F811F0F6D6006013F5 /* MPQueueTableView.m */,
+				1DA3219211F748330004ECB1 /* MPCheckbox.h */,
+				1DA3219311F748330004ECB1 /* MPCheckbox.m */,
 			);
 			name = Helpers;
 			sourceTree = "<group>";
@@ -288,6 +337,8 @@
 		29B97314FDCFA39411CA2CEA /* Pallet */ = {
 			isa = PBXGroup;
 			children = (
+				1D24FC5F11CD1C770063E2A5 /* GrowlNotifications.h */,
+				1D4B87BA11A54DE000AD9D33 /* Growl.framework */,
 				21F165400FE2C04300542AEE /* MacPorts.Framework.xcodeproj */,
 				21F166FC0FE32DF000542AEE /* Models */,
 				21F167570FE3343600542AEE /* Controllers */,
@@ -316,7 +367,9 @@
 				21E74CA610403250006843E6 /* Application.icns */,
 				2172B84E103923FF0006138C /* TB_Cancel.icns */,
 				2172B84F103923FF0006138C /* TB_Selfupdate.icns */,
+				1D20FFD811F4F38000CCC4C6 /* TB_Info.icns */,
 				21B6A38A0FEDCBD5001DF976 /* TB_Install.icns */,
+				1D24FCAA11CD32090063E2A5 /* TB_InstallWithVar.icns */,
 				21B6A38B0FEDCBD5001DF976 /* TB_Sync.icns */,
 				21B6A3930FEDE6CA001DF976 /* TB_Uninstall.icns */,
 				21B6A38D0FEDCBD5001DF976 /* TB_Upgrade.icns */,
@@ -326,6 +379,7 @@
 				089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
 				1DDD58140DA1D0A300B32029 /* MainMenu.xib */,
 				21E2ADAF1002E428003F8885 /* Preferences.xib */,
+				1D4B877E11A5496B00AD9D33 /* Growl Registration Ticket.growlRegDict */,
 			);
 			name = Resources;
 			sourceTree = "<group>";
@@ -352,6 +406,7 @@
 				21900DDF1095001700ED79CF /* Frameworks */,
 				21900DE21095001700ED79CF /* Install MacPorts 1.8 */,
 				21900DE31095001700ED79CF /* Create dmg */,
+				1D4B87CC11A54F9B00AD9D33 /* CopyFiles */,
 			);
 			buildRules = (
 			);
@@ -371,6 +426,7 @@
 				8D1107290486CEB800E47090 /* Resources */,
 				8D11072C0486CEB800E47090 /* Sources */,
 				8D11072E0486CEB800E47090 /* Frameworks */,
+				1D4B87D311A54FFC00AD9D33 /* CopyFiles */,
 			);
 			buildRules = (
 			);
@@ -389,7 +445,14 @@
 			isa = PBXProject;
 			buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Pallet" */;
 			compatibilityVersion = "Xcode 3.1";
+			developmentRegion = English;
 			hasScannedForEncodings = 1;
+			knownRegions = (
+				English,
+				Japanese,
+				French,
+				German,
+			);
 			mainGroup = 29B97314FDCFA39411CA2CEA /* Pallet */;
 			projectDirPath = "";
 			projectReferences = (
@@ -476,6 +539,9 @@
 				21900DD01095001700ED79CF /* TB_Cancel.icns in Resources */,
 				21900DD11095001700ED79CF /* TB_Selfupdate.icns in Resources */,
 				21900DD21095001700ED79CF /* Application.icns in Resources */,
+				1D4B877F11A5496B00AD9D33 /* Growl Registration Ticket.growlRegDict in Resources */,
+				1D24FCAB11CD32090063E2A5 /* TB_InstallWithVar.icns in Resources */,
+				1D20FFDA11F4F38000CCC4C6 /* TB_Info.icns in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -483,6 +549,7 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				1D4B878011A5498200AD9D33 /* Growl Registration Ticket.growlRegDict in Resources */,
 				8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
 				1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */,
 				21FC226D0FE88A2A00B1E835 /* Installed.tiff in Resources */,
@@ -495,6 +562,8 @@
 				2172B850103923FF0006138C /* TB_Cancel.icns in Resources */,
 				2172B851103923FF0006138C /* TB_Selfupdate.icns in Resources */,
 				21E74CA710403250006843E6 /* Application.icns in Resources */,
+				1D24FCAC11CD32090063E2A5 /* TB_InstallWithVar.icns in Resources */,
+				1D20FFD911F4F38000CCC4C6 /* TB_Info.icns in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -560,6 +629,8 @@
 				21900DDC1095001700ED79CF /* PreferencesController.m in Sources */,
 				21900DDD1095001700ED79CF /* MPPortTableView.m in Sources */,
 				21900DDE1095001700ED79CF /* ActivityController.m in Sources */,
+				1D9B73FA11F0F6D6006013F5 /* MPQueueTableView.m in Sources */,
+				1DA3219511F748330004ECB1 /* MPCheckbox.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -576,6 +647,8 @@
 				21E2ADB71002EAE0003F8885 /* PreferencesController.m in Sources */,
 				21EB8B11100CDD37007371EE /* MPPortTableView.m in Sources */,
 				2105F5091028ACBA00A28D1A /* ActivityController.m in Sources */,
+				1D9B73F911F0F6D6006013F5 /* MPQueueTableView.m in Sources */,
+				1DA3219411F748330004ECB1 /* MPCheckbox.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -642,7 +715,10 @@
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				COPY_PHASE_STRIP = NO;
-				FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../MacPorts_Framework/build\"";
+				FRAMEWORK_SEARCH_PATHS = (
+					"\"$(SRCROOT)/../MacPorts_Framework/build\"",
+					"\"$(SRCROOT)/Growl-1.2.1-Framework\"",
+				);
 				GCC_DYNAMIC_NO_PIC = NO;
 				GCC_ENABLE_FIX_AND_CONTINUE = YES;
 				GCC_MODEL_TUNING = G5;
@@ -661,7 +737,10 @@
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				COPY_PHASE_STRIP = NO;
-				FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../MacPorts_Framework/build\"";
+				FRAMEWORK_SEARCH_PATHS = (
+					"\"$(SRCROOT)/../MacPorts_Framework/build\"",
+					"\"$(SRCROOT)/Growl-1.2.1-Framework\"",
+				);
 				GCC_DYNAMIC_NO_PIC = NO;
 				GCC_ENABLE_FIX_AND_CONTINUE = YES;
 				GCC_MODEL_TUNING = G5;
@@ -680,7 +759,10 @@
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../MacPorts_Framework/build\"";
+				FRAMEWORK_SEARCH_PATHS = (
+					"\"$(SRCROOT)/../MacPorts_Framework/build\"",
+					"\"$(SRCROOT)/Growl-1.2.1-Framework\"",
+				);
 				GCC_ENABLE_OBJC_GC = required;
 				GCC_MODEL_TUNING = G5;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
@@ -716,6 +798,7 @@
 					"$(inherited)",
 					"\"$(SRCROOT)/../MacPorts_Framework/build\"",
 					"\"$(SRCROOT)/../MacPorts_Framework/build/Release\"",
+					"\"$(SRCROOT)/Growl-1.2.1-Framework\"",
 				);
 				GCC_DYNAMIC_NO_PIC = NO;
 				GCC_ENABLE_FIX_AND_CONTINUE = YES;
@@ -735,7 +818,10 @@
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				COPY_PHASE_STRIP = NO;
-				FRAMEWORK_SEARCH_PATHS = "$(inherited)";
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)/Growl-1.2.1-Framework\"",
+				);
 				GCC_DYNAMIC_NO_PIC = NO;
 				GCC_ENABLE_FIX_AND_CONTINUE = YES;
 				GCC_MODEL_TUNING = G5;
@@ -758,6 +844,7 @@
 					"\"$(SRCROOT)/../MacPorts_Framework/build\"",
 					"$(inherited)",
 					"\"$(SRCROOT)/../MacPorts_Framework/build/Release\"",
+					"\"$(SRCROOT)/Growl-1.2.1-Framework\"",
 				);
 				GCC_ENABLE_OBJC_GC = required;
 				GCC_MODEL_TUNING = G5;

Modified: contrib/Pallet/PortsTableController.h
===================================================================
--- contrib/Pallet/PortsTableController.h	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/PortsTableController.h	2010-10-07 21:12:38 UTC (rev 72223)
@@ -14,18 +14,24 @@
  available ports.
 */
 
+
 #import <Cocoa/Cocoa.h>
 #import "MPActionLauncher.h"
 
+//Importing doesnt work. Therefore, we include NSDrawer.h 
+#include <AppKit/NSDrawer.h>
+
 /*!
  @class PortsTableController
  @abstract Wrapper for MacPorts Framework actions
  @discussion Contains a shared per thread MacPorts Framework wrapper
  */
- at interface PortsTableController : NSObject {
+ at interface PortsTableController : NSObject  {
     IBOutlet NSTableView *portsTableView;
     IBOutlet NSPredicateEditor *predicateEditor;
     IBOutlet NSWindow *mainWindow;
+	IBOutlet NSDrawer *drawer;
+	IBOutlet NSTableView *drawerTable;
 
     // NSPredicateEditor management
     NSPredicate *predicate;
@@ -53,5 +59,12 @@
 
 - (IBAction)hidePredicateEditor:(id)sender;
 
+
+//Drawer methods
+- (IBAction)open:(id)sender;
+- (IBAction)close:(id)sender;
+- (IBAction)toggle:(id)sender;
+
+
 @end
 

Modified: contrib/Pallet/PortsTableController.m
===================================================================
--- contrib/Pallet/PortsTableController.m	2010-10-07 20:27:00 UTC (rev 72222)
+++ contrib/Pallet/PortsTableController.m	2010-10-07 21:12:38 UTC (rev 72223)
@@ -80,7 +80,6 @@
     }
     
     NSScrollView* tableScrollView = [portsTableView enclosingScrollView];
-    NSUInteger oldOutlineViewMask = [tableScrollView autoresizingMask];
     
     NSScrollView* predicateEditorScrollView = [predicateEditor enclosingScrollView];
     NSUInteger oldPredicateEditorViewMask = [predicateEditorScrollView autoresizingMask];
@@ -100,10 +99,26 @@
     [mainWindow setFrame:windowFrame display:YES animate:YES];
     
     
-    [tableScrollView setAutoresizingMask:oldOutlineViewMask];
+    [tableScrollView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
     [predicateEditorScrollView setAutoresizingMask:oldPredicateEditorViewMask];
     
     rowCount = newRowCount;
 }
 
+/****************** Drawer ******************/
+
+//These are the functions needed for our drawer. In addition to open/close, we implemented toggle as well
+- (IBAction)open:(id)sender {[drawer openOnEdge:NSMinXEdge];}
+
+- (IBAction)close:(id)sender {[drawer close];}
+
+- (IBAction)toggle:(id)sender {
+    NSDrawerState state = [drawer state];
+    if (NSDrawerOpeningState == state || NSDrawerOpenState == state) {
+        [drawer close];
+    } else {
+        [drawer openOnEdge:NSMinXEdge];
+    }
+}
+
 @end
\ No newline at end of file

Copied: contrib/Pallet/TB_Cancel-old.icns (from rev 72222, branches/gsoc10-gui/Pallet/TB_Cancel-old.icns)
===================================================================
(Binary files differ)

Modified: contrib/Pallet/TB_Cancel.icns
===================================================================
(Binary files differ)

Copied: contrib/Pallet/TB_Info.icns (from rev 72222, branches/gsoc10-gui/Pallet/TB_Info.icns)
===================================================================
(Binary files differ)

Copied: contrib/Pallet/TB_Install-old.icns (from rev 72222, branches/gsoc10-gui/Pallet/TB_Install-old.icns)
===================================================================
(Binary files differ)

Modified: contrib/Pallet/TB_Install.icns
===================================================================
(Binary files differ)

Copied: contrib/Pallet/TB_InstallWithVar.icns (from rev 72222, branches/gsoc10-gui/Pallet/TB_InstallWithVar.icns)
===================================================================
(Binary files differ)

Copied: contrib/Pallet/TB_Selfupdate-old.icns (from rev 72222, branches/gsoc10-gui/Pallet/TB_Selfupdate-old.icns)
===================================================================
(Binary files differ)

Modified: contrib/Pallet/TB_Selfupdate.icns
===================================================================
(Binary files differ)

Copied: contrib/Pallet/TB_Sync-old.icns (from rev 72222, branches/gsoc10-gui/Pallet/TB_Sync-old.icns)
===================================================================
(Binary files differ)

Modified: contrib/Pallet/TB_Sync.icns
===================================================================
(Binary files differ)

Copied: contrib/Pallet/TB_Uninstall-old.icns (from rev 72222, branches/gsoc10-gui/Pallet/TB_Uninstall-old.icns)
===================================================================
(Binary files differ)

Modified: contrib/Pallet/TB_Uninstall.icns
===================================================================
(Binary files differ)

Copied: contrib/Pallet/TB_Upgrade-old.icns (from rev 72222, branches/gsoc10-gui/Pallet/TB_Upgrade-old.icns)
===================================================================
(Binary files differ)

Modified: contrib/Pallet/TB_Upgrade.icns
===================================================================
(Binary files differ)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20101007/d2ce93a6/attachment-0001.html>


More information about the macports-changes mailing list