<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>CrashReporter.h</filename>
    </added>
    <added>
      <filename>CrashReporter.m</filename>
    </added>
    <added>
      <filename>English.lproj/CrashReporterWindow.xib</filename>
    </added>
    <added>
      <filename>Markdown.pl</filename>
    </added>
    <added>
      <filename>PTKeyCodes.plist</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Headers</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Resources</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Sparkle</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Headers/SUAppcast.h</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Headers/SUAppcastItem.h</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Headers/SUUpdater.h</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Headers/Sparkle.h</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/Info.plist</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/License.txt</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/SUStatus.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/SUStatus.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/fr.lproj/fr.lproj</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/fr_CA.lproj</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/relaunch</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/classes.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/info.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/A/Sparkle</filename>
    </added>
    <added>
      <filename>Sparkle.framework/Versions/Current</filename>
    </added>
    <added>
      <filename>release_notes</filename>
    </added>
    <added>
      <filename>sparkle_dsa_pub.pem</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
 &lt;archive type=&quot;com.apple.InterfaceBuilder3.Cocoa.XIB&quot; version=&quot;7.10&quot;&gt;
 	&lt;data&gt;
-		&lt;int key=&quot;IBDocument.SystemTarget&quot;&gt;1050&lt;/int&gt;
+		&lt;int key=&quot;IBDocument.SystemTarget&quot;&gt;1060&lt;/int&gt;
 		&lt;string key=&quot;IBDocument.SystemVersion&quot;&gt;10B504&lt;/string&gt;
 		&lt;string key=&quot;IBDocument.InterfaceBuilderVersion&quot;&gt;732&lt;/string&gt;
 		&lt;string key=&quot;IBDocument.AppKitVersion&quot;&gt;1038.2&lt;/string&gt;
@@ -57,7 +57,7 @@
 			&lt;object class=&quot;NSWindowTemplate&quot; id=&quot;448742277&quot;&gt;
 				&lt;int key=&quot;NSWindowStyleMask&quot;&gt;7&lt;/int&gt;
 				&lt;int key=&quot;NSWindowBacking&quot;&gt;2&lt;/int&gt;
-				&lt;string key=&quot;NSWindowRect&quot;&gt;{{235, 442}, {409, 117}}&lt;/string&gt;
+				&lt;string key=&quot;NSWindowRect&quot;&gt;{{235, 453}, {457, 106}}&lt;/string&gt;
 				&lt;int key=&quot;NSWTFlags&quot;&gt;1685588992&lt;/int&gt;
 				&lt;string key=&quot;NSWindowTitle&quot;&gt;QuickCursor Preferences&lt;/string&gt;
 				&lt;string key=&quot;NSWindowClass&quot;&gt;NSWindow&lt;/string&gt;
@@ -71,7 +71,7 @@
 						&lt;object class=&quot;SRRecorderControl&quot; id=&quot;705553932&quot;&gt;
 							&lt;reference key=&quot;NSNextResponder&quot; ref=&quot;248881203&quot;/&gt;
 							&lt;int key=&quot;NSvFlags&quot;&gt;298&lt;/int&gt;
-							&lt;string key=&quot;NSFrame&quot;&gt;{{242, 20}, {147, 22}}&lt;/string&gt;
+							&lt;string key=&quot;NSFrame&quot;&gt;{{290, 20}, {147, 22}}&lt;/string&gt;
 							&lt;reference key=&quot;NSSuperview&quot; ref=&quot;248881203&quot;/&gt;
 							&lt;bool key=&quot;NSEnabled&quot;&gt;YES&lt;/bool&gt;
 							&lt;object class=&quot;SRRecorderCell&quot; key=&quot;NSCell&quot; id=&quot;939170979&quot;&gt;
@@ -92,7 +92,7 @@
 						&lt;object class=&quot;NSPopUpButton&quot; id=&quot;1039590887&quot;&gt;
 							&lt;reference key=&quot;NSNextResponder&quot; ref=&quot;248881203&quot;/&gt;
 							&lt;int key=&quot;NSvFlags&quot;&gt;268&lt;/int&gt;
-							&lt;string key=&quot;NSFrame&quot;&gt;{{132, 48}, {171, 26}}&lt;/string&gt;
+							&lt;string key=&quot;NSFrame&quot;&gt;{{132, 18}, {153, 26}}&lt;/string&gt;
 							&lt;reference key=&quot;NSSuperview&quot; ref=&quot;248881203&quot;/&gt;
 							&lt;bool key=&quot;NSEnabled&quot;&gt;YES&lt;/bool&gt;
 							&lt;object class=&quot;NSPopUpButtonCell&quot; key=&quot;NSCell&quot; id=&quot;250213868&quot;&gt;
@@ -129,16 +129,16 @@
 						&lt;object class=&quot;NSTextField&quot; id=&quot;521699642&quot;&gt;
 							&lt;reference key=&quot;NSNextResponder&quot; ref=&quot;248881203&quot;/&gt;
 							&lt;int key=&quot;NSvFlags&quot;&gt;268&lt;/int&gt;
-							&lt;string key=&quot;NSFrame&quot;&gt;{{17, 54}, {112, 17}}&lt;/string&gt;
+							&lt;string key=&quot;NSFrame&quot;&gt;{{17, 24}, {112, 17}}&lt;/string&gt;
 							&lt;reference key=&quot;NSSuperview&quot; ref=&quot;248881203&quot;/&gt;
 							&lt;bool key=&quot;NSEnabled&quot;&gt;YES&lt;/bool&gt;
 							&lt;object class=&quot;NSTextFieldCell&quot; key=&quot;NSCell&quot; id=&quot;146579460&quot;&gt;
 								&lt;int key=&quot;NSCellFlags&quot;&gt;68288064&lt;/int&gt;
 								&lt;int key=&quot;NSCellFlags2&quot;&gt;71304192&lt;/int&gt;
-								&lt;string key=&quot;NSContents&quot;&gt;Application:&lt;/string&gt;
+								&lt;string key=&quot;NSContents&quot;&gt;Shortcuts:&lt;/string&gt;
 								&lt;reference key=&quot;NSSupport&quot; ref=&quot;752916645&quot;/&gt;
 								&lt;reference key=&quot;NSControlView&quot; ref=&quot;521699642&quot;/&gt;
-								&lt;object class=&quot;NSColor&quot; key=&quot;NSBackgroundColor&quot; id=&quot;639340554&quot;&gt;
+								&lt;object class=&quot;NSColor&quot; key=&quot;NSBackgroundColor&quot;&gt;
 									&lt;int key=&quot;NSColorSpace&quot;&gt;6&lt;/int&gt;
 									&lt;string key=&quot;NSCatalogName&quot;&gt;System&lt;/string&gt;
 									&lt;string key=&quot;NSColorName&quot;&gt;controlColor&lt;/string&gt;
@@ -147,7 +147,7 @@
 										&lt;bytes key=&quot;NSWhite&quot;&gt;MC42NjY2NjY2NjY3AA&lt;/bytes&gt;
 									&lt;/object&gt;
 								&lt;/object&gt;
-								&lt;object class=&quot;NSColor&quot; key=&quot;NSTextColor&quot; id=&quot;682718997&quot;&gt;
+								&lt;object class=&quot;NSColor&quot; key=&quot;NSTextColor&quot;&gt;
 									&lt;int key=&quot;NSColorSpace&quot;&gt;6&lt;/int&gt;
 									&lt;string key=&quot;NSCatalogName&quot;&gt;System&lt;/string&gt;
 									&lt;string key=&quot;NSColorName&quot;&gt;controlTextColor&lt;/string&gt;
@@ -158,57 +158,25 @@
 								&lt;/object&gt;
 							&lt;/object&gt;
 						&lt;/object&gt;
-						&lt;object class=&quot;NSTextField&quot; id=&quot;307607523&quot;&gt;
-							&lt;reference key=&quot;NSNextResponder&quot; ref=&quot;248881203&quot;/&gt;
-							&lt;int key=&quot;NSvFlags&quot;&gt;268&lt;/int&gt;
-							&lt;string key=&quot;NSFrame&quot;&gt;{{132, 24}, {105, 17}}&lt;/string&gt;
-							&lt;reference key=&quot;NSSuperview&quot; ref=&quot;248881203&quot;/&gt;
-							&lt;bool key=&quot;NSEnabled&quot;&gt;YES&lt;/bool&gt;
-							&lt;object class=&quot;NSTextFieldCell&quot; key=&quot;NSCell&quot; id=&quot;523427844&quot;&gt;
-								&lt;int key=&quot;NSCellFlags&quot;&gt;68288064&lt;/int&gt;
-								&lt;int key=&quot;NSCellFlags2&quot;&gt;71304192&lt;/int&gt;
-								&lt;string key=&quot;NSContents&quot;&gt;Edit in shortcut:&lt;/string&gt;
-								&lt;reference key=&quot;NSSupport&quot; ref=&quot;752916645&quot;/&gt;
-								&lt;reference key=&quot;NSControlView&quot; ref=&quot;307607523&quot;/&gt;
-								&lt;reference key=&quot;NSBackgroundColor&quot; ref=&quot;639340554&quot;/&gt;
-								&lt;reference key=&quot;NSTextColor&quot; ref=&quot;682718997&quot;/&gt;
-							&lt;/object&gt;
-						&lt;/object&gt;
-						&lt;object class=&quot;NSTextField&quot; id=&quot;764613516&quot;&gt;
-							&lt;reference key=&quot;NSNextResponder&quot; ref=&quot;248881203&quot;/&gt;
-							&lt;int key=&quot;NSvFlags&quot;&gt;268&lt;/int&gt;
-							&lt;string key=&quot;NSFrame&quot;&gt;{{17, 80}, {112, 17}}&lt;/string&gt;
-							&lt;reference key=&quot;NSSuperview&quot; ref=&quot;248881203&quot;/&gt;
-							&lt;bool key=&quot;NSEnabled&quot;&gt;YES&lt;/bool&gt;
-							&lt;object class=&quot;NSTextFieldCell&quot; key=&quot;NSCell&quot; id=&quot;201484908&quot;&gt;
-								&lt;int key=&quot;NSCellFlags&quot;&gt;68288064&lt;/int&gt;
-								&lt;int key=&quot;NSCellFlags2&quot;&gt;71304192&lt;/int&gt;
-								&lt;string key=&quot;NSContents&quot;&gt;On Login:&lt;/string&gt;
-								&lt;reference key=&quot;NSSupport&quot; ref=&quot;752916645&quot;/&gt;
-								&lt;reference key=&quot;NSControlView&quot; ref=&quot;764613516&quot;/&gt;
-								&lt;reference key=&quot;NSBackgroundColor&quot; ref=&quot;639340554&quot;/&gt;
-								&lt;reference key=&quot;NSTextColor&quot; ref=&quot;682718997&quot;/&gt;
-							&lt;/object&gt;
-						&lt;/object&gt;
 						&lt;object class=&quot;NSButton&quot; id=&quot;940179569&quot;&gt;
 							&lt;reference key=&quot;NSNextResponder&quot; ref=&quot;248881203&quot;/&gt;
 							&lt;int key=&quot;NSvFlags&quot;&gt;268&lt;/int&gt;
-							&lt;string key=&quot;NSFrame&quot;&gt;{{133, 79}, {190, 18}}&lt;/string&gt;
+							&lt;string key=&quot;NSFrame&quot;&gt;{{133, 68}, {306, 18}}&lt;/string&gt;
 							&lt;reference key=&quot;NSSuperview&quot; ref=&quot;248881203&quot;/&gt;
 							&lt;bool key=&quot;NSEnabled&quot;&gt;YES&lt;/bool&gt;
 							&lt;object class=&quot;NSButtonCell&quot; key=&quot;NSCell&quot; id=&quot;40342116&quot;&gt;
 								&lt;int key=&quot;NSCellFlags&quot;&gt;-2080244224&lt;/int&gt;
 								&lt;int key=&quot;NSCellFlags2&quot;&gt;0&lt;/int&gt;
-								&lt;string key=&quot;NSContents&quot;&gt;Start QuickCursor&lt;/string&gt;
+								&lt;string key=&quot;NSContents&quot;&gt;Start on login&lt;/string&gt;
 								&lt;reference key=&quot;NSSupport&quot; ref=&quot;752916645&quot;/&gt;
 								&lt;reference key=&quot;NSControlView&quot; ref=&quot;940179569&quot;/&gt;
 								&lt;int key=&quot;NSButtonFlags&quot;&gt;1211912703&lt;/int&gt;
 								&lt;int key=&quot;NSButtonFlags2&quot;&gt;2&lt;/int&gt;
-								&lt;object class=&quot;NSCustomResource&quot; key=&quot;NSNormalImage&quot;&gt;
+								&lt;object class=&quot;NSCustomResource&quot; key=&quot;NSNormalImage&quot; id=&quot;371842225&quot;&gt;
 									&lt;string key=&quot;NSClassName&quot;&gt;NSImage&lt;/string&gt;
 									&lt;string key=&quot;NSResourceName&quot;&gt;NSSwitch&lt;/string&gt;
 								&lt;/object&gt;
-								&lt;object class=&quot;NSButtonImageSource&quot; key=&quot;NSAlternateImage&quot;&gt;
+								&lt;object class=&quot;NSButtonImageSource&quot; key=&quot;NSAlternateImage&quot; id=&quot;945704191&quot;&gt;
 									&lt;string key=&quot;NSImageName&quot;&gt;NSSwitch&lt;/string&gt;
 								&lt;/object&gt;
 								&lt;string key=&quot;NSAlternateContents&quot;/&gt;
@@ -217,8 +185,30 @@
 								&lt;int key=&quot;NSPeriodicInterval&quot;&gt;25&lt;/int&gt;
 							&lt;/object&gt;
 						&lt;/object&gt;
+						&lt;object class=&quot;NSButton&quot; id=&quot;717588714&quot;&gt;
+							&lt;reference key=&quot;NSNextResponder&quot; ref=&quot;248881203&quot;/&gt;
+							&lt;int key=&quot;NSvFlags&quot;&gt;268&lt;/int&gt;
+							&lt;string key=&quot;NSFrame&quot;&gt;{{133, 48}, {306, 18}}&lt;/string&gt;
+							&lt;reference key=&quot;NSSuperview&quot; ref=&quot;248881203&quot;/&gt;
+							&lt;bool key=&quot;NSEnabled&quot;&gt;YES&lt;/bool&gt;
+							&lt;object class=&quot;NSButtonCell&quot; key=&quot;NSCell&quot; id=&quot;618729808&quot;&gt;
+								&lt;int key=&quot;NSCellFlags&quot;&gt;-2080244224&lt;/int&gt;
+								&lt;int key=&quot;NSCellFlags2&quot;&gt;0&lt;/int&gt;
+								&lt;string key=&quot;NSContents&quot;&gt;Automatically checks for updates&lt;/string&gt;
+								&lt;reference key=&quot;NSSupport&quot; ref=&quot;752916645&quot;/&gt;
+								&lt;reference key=&quot;NSControlView&quot; ref=&quot;717588714&quot;/&gt;
+								&lt;int key=&quot;NSButtonFlags&quot;&gt;1211912703&lt;/int&gt;
+								&lt;int key=&quot;NSButtonFlags2&quot;&gt;2&lt;/int&gt;
+								&lt;reference key=&quot;NSNormalImage&quot; ref=&quot;371842225&quot;/&gt;
+								&lt;reference key=&quot;NSAlternateImage&quot; ref=&quot;945704191&quot;/&gt;
+								&lt;string key=&quot;NSAlternateContents&quot;/&gt;
+								&lt;string key=&quot;NSKeyEquivalent&quot;/&gt;
+								&lt;int key=&quot;NSPeriodicDelay&quot;&gt;200&lt;/int&gt;
+								&lt;int key=&quot;NSPeriodicInterval&quot;&gt;25&lt;/int&gt;
+							&lt;/object&gt;
+						&lt;/object&gt;
 					&lt;/object&gt;
-					&lt;string key=&quot;NSFrameSize&quot;&gt;{409, 117}&lt;/string&gt;
+					&lt;string key=&quot;NSFrameSize&quot;&gt;{457, 106}&lt;/string&gt;
 					&lt;reference key=&quot;NSSuperview&quot;/&gt;
 				&lt;/object&gt;
 				&lt;string key=&quot;NSScreenRect&quot;&gt;{{0, 0}, {1920, 1178}}&lt;/string&gt;
@@ -226,6 +216,12 @@
 				&lt;string key=&quot;NSFrameAutosaveName&quot;&gt;QuickCursorPreferences&lt;/string&gt;
 			&lt;/object&gt;
 			&lt;object class=&quot;NSUserDefaultsController&quot; id=&quot;192827805&quot;&gt;
+				&lt;bool key=&quot;NSAppliesImmediately&quot;&gt;YES&lt;/bool&gt;
+			&lt;/object&gt;
+			&lt;object class=&quot;NSCustomObject&quot; id=&quot;182790889&quot;&gt;
+				&lt;string key=&quot;NSClassName&quot;&gt;SUUpdater&lt;/string&gt;
+			&lt;/object&gt;
+			&lt;object class=&quot;NSUserDefaultsController&quot; id=&quot;313902647&quot;&gt;
 				&lt;bool key=&quot;NSSharedInstance&quot;&gt;YES&lt;/bool&gt;
 			&lt;/object&gt;
 		&lt;/object&gt;
@@ -282,19 +278,43 @@
 				&lt;/object&gt;
 				&lt;object class=&quot;IBConnectionRecord&quot;&gt;
 					&lt;object class=&quot;IBBindingConnection&quot; key=&quot;connection&quot;&gt;
-						&lt;string key=&quot;label&quot;&gt;value: loginOnStartup&lt;/string&gt;
+						&lt;string key=&quot;label&quot;&gt;value: automaticallyChecksForUpdates&lt;/string&gt;
+						&lt;reference key=&quot;source&quot; ref=&quot;717588714&quot;/&gt;
+						&lt;reference key=&quot;destination&quot; ref=&quot;182790889&quot;/&gt;
+						&lt;object class=&quot;NSNibBindingConnector&quot; key=&quot;connector&quot;&gt;
+							&lt;reference key=&quot;NSSource&quot; ref=&quot;717588714&quot;/&gt;
+							&lt;reference key=&quot;NSDestination&quot; ref=&quot;182790889&quot;/&gt;
+							&lt;string key=&quot;NSLabel&quot;&gt;value: automaticallyChecksForUpdates&lt;/string&gt;
+							&lt;string key=&quot;NSBinding&quot;&gt;value&lt;/string&gt;
+							&lt;string key=&quot;NSKeyPath&quot;&gt;automaticallyChecksForUpdates&lt;/string&gt;
+							&lt;int key=&quot;NSNibBindingConnectorVersion&quot;&gt;2&lt;/int&gt;
+						&lt;/object&gt;
+					&lt;/object&gt;
+					&lt;int key=&quot;connectionID&quot;&gt;575&lt;/int&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBConnectionRecord&quot;&gt;
+					&lt;object class=&quot;IBOutletConnection&quot; key=&quot;connection&quot;&gt;
+						&lt;string key=&quot;label&quot;&gt;openAtLogin&lt;/string&gt;
+						&lt;reference key=&quot;source&quot; ref=&quot;976324537&quot;/&gt;
+						&lt;reference key=&quot;destination&quot; ref=&quot;940179569&quot;/&gt;
+					&lt;/object&gt;
+					&lt;int key=&quot;connectionID&quot;&gt;581&lt;/int&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBConnectionRecord&quot;&gt;
+					&lt;object class=&quot;IBBindingConnection&quot; key=&quot;connection&quot;&gt;
+						&lt;string key=&quot;label&quot;&gt;value: enableLoginItem&lt;/string&gt;
 						&lt;reference key=&quot;source&quot; ref=&quot;940179569&quot;/&gt;
 						&lt;reference key=&quot;destination&quot; ref=&quot;976324537&quot;/&gt;
 						&lt;object class=&quot;NSNibBindingConnector&quot; key=&quot;connector&quot;&gt;
 							&lt;reference key=&quot;NSSource&quot; ref=&quot;940179569&quot;/&gt;
 							&lt;reference key=&quot;NSDestination&quot; ref=&quot;976324537&quot;/&gt;
-							&lt;string key=&quot;NSLabel&quot;&gt;value: loginOnStartup&lt;/string&gt;
+							&lt;string key=&quot;NSLabel&quot;&gt;value: enableLoginItem&lt;/string&gt;
 							&lt;string key=&quot;NSBinding&quot;&gt;value&lt;/string&gt;
-							&lt;string key=&quot;NSKeyPath&quot;&gt;loginOnStartup&lt;/string&gt;
+							&lt;string key=&quot;NSKeyPath&quot;&gt;enableLoginItem&lt;/string&gt;
 							&lt;int key=&quot;NSNibBindingConnectorVersion&quot;&gt;2&lt;/int&gt;
 						&lt;/object&gt;
 					&lt;/object&gt;
-					&lt;int key=&quot;connectionID&quot;&gt;567&lt;/int&gt;
+					&lt;int key=&quot;connectionID&quot;&gt;584&lt;/int&gt;
 				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;object class=&quot;IBMutableOrderedSet&quot; key=&quot;objectRecords&quot;&gt;
@@ -348,12 +368,11 @@
 						&lt;reference key=&quot;object&quot; ref=&quot;248881203&quot;/&gt;
 						&lt;object class=&quot;NSMutableArray&quot; key=&quot;children&quot;&gt;
 							&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
+							&lt;reference ref=&quot;940179569&quot;/&gt;
+							&lt;reference ref=&quot;717588714&quot;/&gt;
 							&lt;reference ref=&quot;1039590887&quot;/&gt;
 							&lt;reference ref=&quot;521699642&quot;/&gt;
-							&lt;reference ref=&quot;764613516&quot;/&gt;
-							&lt;reference ref=&quot;940179569&quot;/&gt;
 							&lt;reference ref=&quot;705553932&quot;/&gt;
-							&lt;reference ref=&quot;307607523&quot;/&gt;
 						&lt;/object&gt;
 						&lt;reference key=&quot;parent&quot; ref=&quot;448742277&quot;/&gt;
 					&lt;/object&gt;
@@ -412,20 +431,6 @@
 						&lt;reference key=&quot;parent&quot; ref=&quot;521699642&quot;/&gt;
 					&lt;/object&gt;
 					&lt;object class=&quot;IBObjectRecord&quot;&gt;
-						&lt;int key=&quot;objectID&quot;&gt;549&lt;/int&gt;
-						&lt;reference key=&quot;object&quot; ref=&quot;307607523&quot;/&gt;
-						&lt;object class=&quot;NSMutableArray&quot; key=&quot;children&quot;&gt;
-							&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
-							&lt;reference ref=&quot;523427844&quot;/&gt;
-						&lt;/object&gt;
-						&lt;reference key=&quot;parent&quot; ref=&quot;248881203&quot;/&gt;
-					&lt;/object&gt;
-					&lt;object class=&quot;IBObjectRecord&quot;&gt;
-						&lt;int key=&quot;objectID&quot;&gt;550&lt;/int&gt;
-						&lt;reference key=&quot;object&quot; ref=&quot;523427844&quot;/&gt;
-						&lt;reference key=&quot;parent&quot; ref=&quot;307607523&quot;/&gt;
-					&lt;/object&gt;
-					&lt;object class=&quot;IBObjectRecord&quot;&gt;
 						&lt;int key=&quot;objectID&quot;&gt;552&lt;/int&gt;
 						&lt;reference key=&quot;object&quot; ref=&quot;940179569&quot;/&gt;
 						&lt;object class=&quot;NSMutableArray&quot; key=&quot;children&quot;&gt;
@@ -440,22 +445,33 @@
 						&lt;reference key=&quot;parent&quot; ref=&quot;940179569&quot;/&gt;
 					&lt;/object&gt;
 					&lt;object class=&quot;IBObjectRecord&quot;&gt;
-						&lt;int key=&quot;objectID&quot;&gt;554&lt;/int&gt;
-						&lt;reference key=&quot;object&quot; ref=&quot;764613516&quot;/&gt;
+						&lt;int key=&quot;objectID&quot;&gt;560&lt;/int&gt;
+						&lt;reference key=&quot;object&quot; ref=&quot;192827805&quot;/&gt;
+						&lt;reference key=&quot;parent&quot; ref=&quot;0&quot;/&gt;
+					&lt;/object&gt;
+					&lt;object class=&quot;IBObjectRecord&quot;&gt;
+						&lt;int key=&quot;objectID&quot;&gt;568&lt;/int&gt;
+						&lt;reference key=&quot;object&quot; ref=&quot;182790889&quot;/&gt;
+						&lt;reference key=&quot;parent&quot; ref=&quot;0&quot;/&gt;
+						&lt;string key=&quot;objectName&quot;&gt;SUUpdater&lt;/string&gt;
+					&lt;/object&gt;
+					&lt;object class=&quot;IBObjectRecord&quot;&gt;
+						&lt;int key=&quot;objectID&quot;&gt;569&lt;/int&gt;
+						&lt;reference key=&quot;object&quot; ref=&quot;717588714&quot;/&gt;
 						&lt;object class=&quot;NSMutableArray&quot; key=&quot;children&quot;&gt;
 							&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
-							&lt;reference ref=&quot;201484908&quot;/&gt;
+							&lt;reference ref=&quot;618729808&quot;/&gt;
 						&lt;/object&gt;
 						&lt;reference key=&quot;parent&quot; ref=&quot;248881203&quot;/&gt;
 					&lt;/object&gt;
 					&lt;object class=&quot;IBObjectRecord&quot;&gt;
-						&lt;int key=&quot;objectID&quot;&gt;555&lt;/int&gt;
-						&lt;reference key=&quot;object&quot; ref=&quot;201484908&quot;/&gt;
-						&lt;reference key=&quot;parent&quot; ref=&quot;764613516&quot;/&gt;
+						&lt;int key=&quot;objectID&quot;&gt;570&lt;/int&gt;
+						&lt;reference key=&quot;object&quot; ref=&quot;618729808&quot;/&gt;
+						&lt;reference key=&quot;parent&quot; ref=&quot;717588714&quot;/&gt;
 					&lt;/object&gt;
 					&lt;object class=&quot;IBObjectRecord&quot;&gt;
-						&lt;int key=&quot;objectID&quot;&gt;560&lt;/int&gt;
-						&lt;reference key=&quot;object&quot; ref=&quot;192827805&quot;/&gt;
+						&lt;int key=&quot;objectID&quot;&gt;578&lt;/int&gt;
+						&lt;reference key=&quot;object&quot; ref=&quot;313902647&quot;/&gt;
 						&lt;reference key=&quot;parent&quot; ref=&quot;0&quot;/&gt;
 					&lt;/object&gt;
 				&lt;/object&gt;
@@ -477,19 +493,18 @@
 					&lt;string&gt;542.IBPluginDependency&lt;/string&gt;
 					&lt;string&gt;547.IBPluginDependency&lt;/string&gt;
 					&lt;string&gt;548.IBPluginDependency&lt;/string&gt;
-					&lt;string&gt;549.IBPluginDependency&lt;/string&gt;
-					&lt;string&gt;550.IBPluginDependency&lt;/string&gt;
 					&lt;string&gt;552.IBPluginDependency&lt;/string&gt;
 					&lt;string&gt;553.IBPluginDependency&lt;/string&gt;
-					&lt;string&gt;554.IBPluginDependency&lt;/string&gt;
-					&lt;string&gt;555.IBPluginDependency&lt;/string&gt;
+					&lt;string&gt;568.IBPluginDependency&lt;/string&gt;
+					&lt;string&gt;569.IBPluginDependency&lt;/string&gt;
+					&lt;string&gt;570.IBPluginDependency&lt;/string&gt;
 				&lt;/object&gt;
 				&lt;object class=&quot;NSMutableArray&quot; key=&quot;dict.values&quot;&gt;
 					&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
-					&lt;string&gt;{{541, 742}, {409, 117}}&lt;/string&gt;
+					&lt;string&gt;{{616, 916}, {457, 106}}&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
-					&lt;string&gt;{{541, 742}, {409, 117}}&lt;/string&gt;
+					&lt;string&gt;{{616, 916}, {457, 106}}&lt;/string&gt;
 					&lt;boolean value=&quot;NO&quot;/&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
 					&lt;string&gt;net.wafflesoftware.ShortcutRecorder.IB.Leopard&lt;/string&gt;
@@ -504,7 +519,6 @@
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
-					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
 				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;unlocalizedProperties&quot;&gt;
@@ -523,7 +537,7 @@
 				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;nil key=&quot;sourceID&quot;/&gt;
-			&lt;int key=&quot;maxID&quot;&gt;567&lt;/int&gt;
+			&lt;int key=&quot;maxID&quot;&gt;584&lt;/int&gt;
 		&lt;/object&gt;
 		&lt;object class=&quot;IBClassDescriber&quot; key=&quot;IBDocument.Classes&quot;&gt;
 			&lt;object class=&quot;NSMutableArray&quot; key=&quot;referencedPartialClassDescriptions&quot;&gt;
@@ -560,12 +574,14 @@
 						&lt;object class=&quot;NSArray&quot; key=&quot;dict.sortedKeys&quot;&gt;
 							&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 							&lt;string&gt;editInPopUpButton&lt;/string&gt;
+							&lt;string&gt;openAtLogin&lt;/string&gt;
 							&lt;string&gt;preferencesWindow&lt;/string&gt;
 							&lt;string&gt;shortcutRecorder&lt;/string&gt;
 						&lt;/object&gt;
 						&lt;object class=&quot;NSMutableArray&quot; key=&quot;dict.values&quot;&gt;
 							&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 							&lt;string&gt;NSPopUpButton&lt;/string&gt;
+							&lt;string&gt;NSButton&lt;/string&gt;
 							&lt;string&gt;NSWindow&lt;/string&gt;
 							&lt;string&gt;SRRecorderControl&lt;/string&gt;
 						&lt;/object&gt;
@@ -584,6 +600,36 @@
 					&lt;/object&gt;
 				&lt;/object&gt;
 			&lt;/object&gt;
+			&lt;object class=&quot;NSMutableArray&quot; key=&quot;referencedPartialClassDescriptionsV3.1+&quot;&gt;
+				&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
+				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
+					&lt;string key=&quot;className&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
+						&lt;string key=&quot;majorKey&quot;&gt;IBDocumentRelativeSource&lt;/string&gt;
+						&lt;string key=&quot;minorKey&quot;&gt;../Sparkle.framework/Headers/SUAppcast.h&lt;/string&gt;
+					&lt;/object&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
+					&lt;string key=&quot;className&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot; id=&quot;1042638667&quot;&gt;
+						&lt;string key=&quot;majorKey&quot;&gt;IBDocumentRelativeSource&lt;/string&gt;
+						&lt;string key=&quot;minorKey&quot;&gt;../Sparkle.framework/Headers/SUUpdater.h&lt;/string&gt;
+					&lt;/object&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
+					&lt;string key=&quot;className&quot;&gt;SUUpdater&lt;/string&gt;
+					&lt;string key=&quot;superclassName&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;actions&quot;&gt;
+						&lt;string key=&quot;NS.key.0&quot;&gt;checkForUpdates:&lt;/string&gt;
+						&lt;string key=&quot;NS.object.0&quot;&gt;id&lt;/string&gt;
+					&lt;/object&gt;
+					&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;outlets&quot;&gt;
+						&lt;string key=&quot;NS.key.0&quot;&gt;delegate&lt;/string&gt;
+						&lt;string key=&quot;NS.object.0&quot;&gt;id&lt;/string&gt;
+					&lt;/object&gt;
+					&lt;reference key=&quot;sourceIdentifier&quot; ref=&quot;1042638667&quot;/&gt;
+				&lt;/object&gt;
+			&lt;/object&gt;
 			&lt;object class=&quot;NSMutableArray&quot; key=&quot;referencedPartialClassDescriptionsV3.2+&quot;&gt;
 				&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
@@ -951,6 +997,20 @@
 					&lt;/object&gt;
 				&lt;/object&gt;
 				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
+					&lt;string key=&quot;className&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
+						&lt;string key=&quot;majorKey&quot;&gt;IBFrameworkSource&lt;/string&gt;
+						&lt;string key=&quot;minorKey&quot;&gt;Sparkle.framework/Headers/SUAppcast.h&lt;/string&gt;
+					&lt;/object&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
+					&lt;string key=&quot;className&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot; id=&quot;665441947&quot;&gt;
+						&lt;string key=&quot;majorKey&quot;&gt;IBFrameworkSource&lt;/string&gt;
+						&lt;string key=&quot;minorKey&quot;&gt;Sparkle.framework/Headers/SUUpdater.h&lt;/string&gt;
+					&lt;/object&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
 					&lt;string key=&quot;className&quot;&gt;NSPopUpButton&lt;/string&gt;
 					&lt;string key=&quot;superclassName&quot;&gt;NSButton&lt;/string&gt;
 					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
@@ -1053,12 +1113,25 @@
 						&lt;string key=&quot;minorKey&quot;&gt;AppKit.framework/Headers/NSWindowScripting.h&lt;/string&gt;
 					&lt;/object&gt;
 				&lt;/object&gt;
+				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
+					&lt;string key=&quot;className&quot;&gt;SUUpdater&lt;/string&gt;
+					&lt;string key=&quot;superclassName&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;actions&quot;&gt;
+						&lt;string key=&quot;NS.key.0&quot;&gt;checkForUpdates:&lt;/string&gt;
+						&lt;string key=&quot;NS.object.0&quot;&gt;id&lt;/string&gt;
+					&lt;/object&gt;
+					&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;outlets&quot;&gt;
+						&lt;string key=&quot;NS.key.0&quot;&gt;delegate&lt;/string&gt;
+						&lt;string key=&quot;NS.object.0&quot;&gt;id&lt;/string&gt;
+					&lt;/object&gt;
+					&lt;reference key=&quot;sourceIdentifier&quot; ref=&quot;665441947&quot;/&gt;
+				&lt;/object&gt;
 			&lt;/object&gt;
 		&lt;/object&gt;
 		&lt;int key=&quot;IBDocument.localizationMode&quot;&gt;0&lt;/int&gt;
 		&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;IBDocument.PluginDeclaredDependencyDefaults&quot;&gt;
 			&lt;string key=&quot;NS.key.0&quot;&gt;com.apple.InterfaceBuilder.CocoaPlugin.macosx&lt;/string&gt;
-			&lt;integer value=&quot;1050&quot; key=&quot;NS.object.0&quot;/&gt;
+			&lt;integer value=&quot;1060&quot; key=&quot;NS.object.0&quot;/&gt;
 		&lt;/object&gt;
 		&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;IBDocument.PluginDeclaredDevelopmentDependencies&quot;&gt;
 			&lt;string key=&quot;NS.key.0&quot;&gt;com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3&lt;/string&gt;</diff>
      <filename>English.lproj/MainMenu.xib</filename>
    </modified>
    <modified>
      <diff>@@ -99,7 +99,7 @@ static ODBEditor	*_sharedODBEditor;
 }
 
 - (void)abortEditingFile:(NSString *)path {
-	 #warning REVIEW if we created a temporary file for this session should we try to delete it and/or close it in the editor?
+	 //#warning REVIEW if we created a temporary file for this session should we try to delete it and/or close it in the editor?
 
 	if (nil == [_filesBeingEdited objectForKey: path])
 		NSLog(@&quot;ODBEditor: No active editing session for \&quot;%@\&quot;&quot;, path);
@@ -108,7 +108,7 @@ static ODBEditor	*_sharedODBEditor;
 }
 
 - (void)abortAllEditingSessionsForClient:(id)client {
-	 #warning REVIEW if we created a temporary file for this session should we try to delete it and/or close it in the editor?
+	 //#warning REVIEW if we created a temporary file for this session should we try to delete it and/or close it in the editor?
 
 	BOOL found = NO;
 	NSEnumerator *enumerator = [_filesBeingEdited objectEnumerator];</diff>
      <filename>ODBEditor.m</filename>
    </modified>
    <modified>
      <diff>@@ -7,6 +7,7 @@
 //
 
 #import &lt;Cocoa/Cocoa.h&gt;
+#import &lt;Sparkle/Sparkle.h&gt;
 #import &lt;ShortcutRecorder/ShortcutRecorder.h&gt;
 
 
@@ -16,15 +17,16 @@
 	IBOutlet NSWindow *preferencesWindow;
 	IBOutlet NSPopUpButton *editInPopUpButton;
 	IBOutlet SRRecorderControl *shortcutRecorder;
+	IBOutlet NSButton *openAtLogin;
 	
 	NSStatusItem *quickCursorStatusItem;
 	NSMutableSet *quickCursorSessionQCUIElements;
 	NSMutableArray *registeredHotKeys;
 }
 
-#pragma mark Actions
+@property(assign) BOOL enableLoginItem;
 
-@property (assign) BOOL loginOnStartup;
+#pragma mark Actions
 
 - (IBAction)showAbout:(id)sender;	
 - (IBAction)showPreferences:(id)sender;</diff>
      <filename>QCAppDelegate.h</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,8 @@
 #import &quot;PTHotKey.h&quot;
 #import &quot;QCUIElement.h&quot;
 #import &quot;ODBEditor.h&quot;
-#import &quot;BBAppSessionLoginState.h&quot;
+#import &quot;CrashReporter.h&quot;
+
 
 @implementation QCAppDelegate
 
@@ -84,22 +85,19 @@
 - (BOOL)validateMenuItem:(NSMenuItem *)anItem {
 	if ([anItem action] == @selector(beginQuickCursorEdit:)) {
 		id keyComboPlist = [[NSUserDefaults standardUserDefaults] objectForKey:[anItem representedObject]];
-		BOOL clear = NO;
+		BOOL clear = YES;
 		
 		if (keyComboPlist) {
 			PTKeyCombo *keyComboObject = [[[PTKeyCombo alloc] initWithPlistRepresentation:keyComboPlist] autorelease];
-			//NSString *keyEquivalent = SRStringForKeyCode([keyComboObject keyCode]);
-			NSString *keyEquivalent = SRCharacterForKeyCodeAndCarbonFlags([keyComboObject keyCode], [keyComboObject modifiers]);
-			
-			if (keyEquivalent) {
-				[anItem setKeyEquivalent:[keyEquivalent lowercaseString]];
-				[anItem setKeyEquivalentModifierMask:[shortcutRecorder carbonToCocoaFlags:[keyComboObject modifiers]]];
-			} else {
-				clear = YES;
+			if ([keyComboObject keyCode] != -1) {
+				NSString *keyEquivalent = SRCharacterForKeyCodeAndCarbonFlags([keyComboObject keyCode], [keyComboObject modifiers]);
+				
+				if (keyEquivalent != nil) {
+					[anItem setKeyEquivalent:[keyEquivalent lowercaseString]];
+					[anItem setKeyEquivalentModifierMask:[shortcutRecorder carbonToCocoaFlags:[keyComboObject modifiers]]];
+					clear = NO;
+				}			
 			}
-			
-		} else {
-			clear = YES;
 		}
 		
 		if (clear) {
@@ -110,15 +108,9 @@
 	return YES;
 }
 
-- (BOOL)loginOnStartup {
-	return [[BBAppSessionLoginState sharedController] isAppInSessionLoginList];	
-}
-
-- (void)setLoginOnStartup:(BOOL)aBool {
-	[[BBAppSessionLoginState sharedController] setIsAppInSessionLoginList:aBool];	
-}
-
 - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
+	[[CrashReporter sharedInstance] check:nil];
+	
 	quickCursorSessionQCUIElements = [[NSMutableSet alloc] init];
 	registeredHotKeys = [[NSMutableArray alloc] init];
 
@@ -166,10 +158,14 @@
 	NSMenuItem *preferencesMenuItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString(@&quot;Preferences...&quot;, nil) action:@selector(showPreferences:) keyEquivalent:@&quot;&quot;] autorelease];
 	[preferencesMenuItem setTarget:self];
 	[quickCursorMenu addItem:preferencesMenuItem];
+
+	NSMenuItem *checkForUpdatesMenuItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString(@&quot;Check For Updates...&quot;, nil) action:@selector(checkForUpdates:) keyEquivalent:@&quot;&quot;] autorelease];
+	[checkForUpdatesMenuItem setTarget:self];
+	[quickCursorMenu addItem:checkForUpdatesMenuItem];
 	
-	NSMenuItem *helpMenuItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString(@&quot;QuickCursor Help&quot;, nil) action:@selector(showPreferences:) keyEquivalent:@&quot;&quot;] autorelease];
-	[helpMenuItem setTarget:self];
-	[quickCursorMenu addItem:helpMenuItem];
+//	NSMenuItem *helpMenuItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString(@&quot;QuickCursor Help&quot;, nil) action:@selector(showPreferences:) keyEquivalent:@&quot;&quot;] autorelease];
+//	[helpMenuItem setTarget:self];
+//	[quickCursorMenu addItem:helpMenuItem];
 
 	[quickCursorMenu addItem:[NSMenuItem separatorItem]];
 
@@ -183,6 +179,59 @@
 
 #pragma mark Actions
 
+- (BOOL)enableLoginItem {
+	NSString *bundleName = [[[NSBundle mainBundle] bundlePath] lastPathComponent];
+	LSSharedFileListRef loginItems = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL);
+	BOOL result = NO;
+	
+	// 1. Remove everything.
+	CFURLRef thePath;
+	UInt32 seedValue;
+	NSArray  *loginItemsArray = (NSArray *)LSSharedFileListCopySnapshot(loginItems, &amp;seedValue);
+	for (id item in loginItemsArray) {		
+		LSSharedFileListItemRef itemRef = (LSSharedFileListItemRef)item;
+		if (LSSharedFileListItemResolve(itemRef, 0, (CFURLRef*) &amp;thePath, NULL) == noErr) {
+			if ([[(NSURL *)thePath path] hasSuffix:bundleName])
+				result = YES;
+		}
+	}	
+	[loginItemsArray release];
+	
+	CFRelease(loginItems);	
+	
+	return result;
+}
+
+- (void)setEnableLoginItem:(BOOL)aBOOL {
+	NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
+	CFURLRef bundlePathURL = (CFURLRef)[NSURL fileURLWithPath:bundlePath];
+	NSString *bundleName = [bundlePath lastPathComponent];
+	LSSharedFileListRef loginItems = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL);
+
+	// 1. Remove everything.
+	CFURLRef thePath;
+	UInt32 seedValue;
+	NSArray  *loginItemsArray = (NSArray *)LSSharedFileListCopySnapshot(loginItems, &amp;seedValue);
+	for (id item in loginItemsArray) {		
+		LSSharedFileListItemRef itemRef = (LSSharedFileListItemRef)item;
+		if (LSSharedFileListItemResolve(itemRef, 0, (CFURLRef*) &amp;thePath, NULL) == noErr) {
+			if ([[(NSURL *)thePath path] hasSuffix:bundleName])
+				LSSharedFileListItemRemove(loginItems, itemRef); // Deleting the item
+		}
+	}	
+	[loginItemsArray release];
+	
+	// 2. Add back if needed.
+	if (aBOOL) {
+		LSSharedFileListItemRef item = LSSharedFileListInsertItemURL(loginItems, kLSSharedFileListItemLast, NULL, NULL, bundlePathURL, NULL, NULL);		
+		if (item) {
+			CFRelease(item);
+		}
+	}
+	
+	CFRelease(loginItems);
+}
+
 - (IBAction)showAbout:(id)sender {
 	[NSApp activateIgnoringOtherApps:YES];
 	[NSApp orderFrontStandardAboutPanel:sender];
@@ -210,6 +259,10 @@
 	[preferencesWindow makeKeyAndOrderFront:sender];
 }
 
+- (IBAction)checkForUpdates:(id)sender {
+	[[SUUpdater sharedUpdater] checkForUpdates:sender];
+}
+
 - (IBAction)editInPopUpButtonClicked:(id)sender {
 	id clicked = [[editInPopUpButton selectedItem] representedObject];
 	if (clicked) {</diff>
      <filename>QCAppDelegate.m</filename>
    </modified>
    <modified>
      <diff>@@ -27,7 +27,11 @@
 	&lt;key&gt;CFBundleVersion&lt;/key&gt;
 	&lt;string&gt;13&lt;/string&gt;
 	&lt;key&gt;SUFeedURL&lt;/key&gt;
-	&lt;string&gt;http://hogbaysoftware.com/products/quickcursor/releases.rss&lt;/string&gt;
+	&lt;string&gt;https://hogbaysoftware.appspot.com/products/quickcursor/releases.rss&lt;/string&gt;
+	&lt;key&gt;SUPublicDSAKeyFile&lt;/key&gt;
+	&lt;string&gt;sparkle_dsa_pub.pem&lt;/string&gt;
+	&lt;key&gt;CrashReporterPostToURL&lt;/key&gt;
+	&lt;string&gt;http://www.hogbaysoftware.com/products/quickcursor/report_crash&lt;/string&gt;
 	&lt;key&gt;NSMainNibFile&lt;/key&gt;
 	&lt;string&gt;MainMenu&lt;/string&gt;
 	&lt;key&gt;NSPrincipalClass&lt;/key&gt;</diff>
      <filename>QuickCursor-Info.plist</filename>
    </modified>
    <modified>
      <diff>@@ -9,8 +9,12 @@
 /* Begin PBXBuildFile section */
 		256AC3DA0F4B6AC300CF3369 /* QCAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* QCAppDelegate.m */; };
 		8818B680106BFBE7007661DF /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8818B67E106BFBE7007661DF /* MainMenu.xib */; };
+		88864D37107A3305001CFB7E /* sparkle_dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = 88864D36107A3305001CFB7E /* sparkle_dsa_pub.pem */; };
+		88864DFC107A376C001CFB7E /* PTKeyCodes.plist in Resources */ = {isa = PBXBuildFile; fileRef = 88864DFB107A376C001CFB7E /* PTKeyCodes.plist */; };
+		88864E3A107A3C41001CFB7E /* CrashReporter.m in Sources */ = {isa = PBXBuildFile; fileRef = 88864E39107A3C41001CFB7E /* CrashReporter.m */; };
+		88864E7D107A3D27001CFB7E /* CrashReporterWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88864E7B107A3D27001CFB7E /* CrashReporterWindow.xib */; };
+		888CB5B510763D2A0093C30E /* Sparkle.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 88E71F5010763A9A0080DE7E /* Sparkle.framework */; };
 		88AAF90C105014A500DFD8E5 /* StatusItemIcon.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 88AAF90B105014A500DFD8E5 /* StatusItemIcon.pdf */; };
-		88AAFA4D10503BEC00DFD8E5 /* BBAppSessionLoginState.m in Sources */ = {isa = PBXBuildFile; fileRef = 88AAFA4C10503BEC00DFD8E5 /* BBAppSessionLoginState.m */; };
 		88B27D9E104D8EDF00806BAE /* NSAppleEventDescriptor-Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B27D95104D8EDE00806BAE /* NSAppleEventDescriptor-Extensions.m */; };
 		88B27D9F104D8EDF00806BAE /* ODBEditor.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B27D97104D8EDE00806BAE /* ODBEditor.m */; };
 		88B27DA1104D8EDF00806BAE /* QCUIElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B27D9B104D8EDF00806BAE /* QCUIElement.m */; };
@@ -23,6 +27,7 @@
 		88B28067104DA48500806BAE /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88B28066104DA48500806BAE /* Carbon.framework */; };
 		88B2806C104DA49000806BAE /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88B2806B104DA49000806BAE /* CoreServices.framework */; };
 		88B281D3104DC8AB00806BAE /* ShortcutRecorder.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88B28019104DA2B200806BAE /* ShortcutRecorder.framework */; };
+		88E71F5110763A9A0080DE7E /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88E71F5010763A9A0080DE7E /* Sparkle.framework */; };
 		8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
 		8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
 		8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
@@ -80,6 +85,7 @@
 			dstPath = &quot;&quot;;
 			dstSubfolderSpec = 10;
 			files = (
+				888CB5B510763D2A0093C30E /* Sparkle.framework in Copy Frameworks */,
 				88B2801E104DA2BD00806BAE /* ShortcutRecorder.framework in Copy Frameworks */,
 			);
 			name = &quot;Copy Frameworks&quot;;
@@ -98,9 +104,14 @@
 		29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = &quot;&lt;absolute&gt;&quot;; };
 		29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = &quot;&lt;absolute&gt;&quot;; };
 		8818B67F106BFBE7007661DF /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = &quot;&lt;group&gt;&quot;; };
+		88864D36107A3305001CFB7E /* sparkle_dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = sparkle_dsa_pub.pem; sourceTree = &quot;&lt;group&gt;&quot;; };
+		88864DFB107A376C001CFB7E /* PTKeyCodes.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = PTKeyCodes.plist; sourceTree = &quot;&lt;group&gt;&quot;; };
+		88864E38107A3C41001CFB7E /* CrashReporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CrashReporter.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		88864E39107A3C41001CFB7E /* CrashReporter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CrashReporter.m; sourceTree = &quot;&lt;group&gt;&quot;; };
+		88864E7C107A3D27001CFB7E /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/CrashReporterWindow.xib; sourceTree = &quot;&lt;group&gt;&quot;; };
+		888CB656107645A00093C30E /* release_notes */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = release_notes; sourceTree = &quot;&lt;group&gt;&quot;; };
+		888CB658107645B90093C30E /* Markdown.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = Markdown.pl; sourceTree = &quot;&lt;group&gt;&quot;; };
 		88AAF90B105014A500DFD8E5 /* StatusItemIcon.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = StatusItemIcon.pdf; sourceTree = &quot;&lt;group&gt;&quot;; };
-		88AAFA4B10503BEC00DFD8E5 /* BBAppSessionLoginState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BBAppSessionLoginState.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-		88AAFA4C10503BEC00DFD8E5 /* BBAppSessionLoginState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BBAppSessionLoginState.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		88B27D94104D8EDE00806BAE /* NSAppleEventDescriptor-Extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = &quot;NSAppleEventDescriptor-Extensions.h&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
 		88B27D95104D8EDE00806BAE /* NSAppleEventDescriptor-Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = &quot;NSAppleEventDescriptor-Extensions.m&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
 		88B27D96104D8EDE00806BAE /* ODBEditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ODBEditor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
@@ -120,6 +131,7 @@
 		88B2805F104DA44900806BAE /* PTKeyCombo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PTKeyCombo.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		88B28066104DA48500806BAE /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
 		88B2806B104DA49000806BAE /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = System/Library/Frameworks/CoreServices.framework; sourceTree = SDKROOT; };
+		88E71F5010763A9A0080DE7E /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = &quot;&lt;group&gt;&quot;; };
 		8D1107310486CEB800E47090 /* QuickCursor-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = &quot;QuickCursor-Info.plist&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
 		8D1107320486CEB800E47090 /* QuickCursor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = QuickCursor.app; sourceTree = BUILT_PRODUCTS_DIR; };
 /* End PBXFileReference section */
@@ -133,6 +145,7 @@
 				8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
 				88B28067104DA48500806BAE /* Carbon.framework in Frameworks */,
 				88B2806C104DA49000806BAE /* CoreServices.framework in Frameworks */,
+				88E71F5110763A9A0080DE7E /* Sparkle.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -144,15 +157,12 @@
 			children = (
 				256AC3D80F4B6AC300CF3369 /* QCAppDelegate.h */,
 				256AC3D90F4B6AC300CF3369 /* QCAppDelegate.m */,
-				88B27D96104D8EDE00806BAE /* ODBEditor.h */,
-				88B27D97104D8EDE00806BAE /* ODBEditor.m */,
-				88B27D98104D8EDE00806BAE /* ODBEditorSuite.h */,
 				88B27D9A104D8EDF00806BAE /* QCUIElement.h */,
 				88B27D9B104D8EDF00806BAE /* QCUIElement.m */,
-				88AAFA4A10503BDC00DFD8E5 /* BBAppSessionLoginState */,
+				88864E38107A3C41001CFB7E /* CrashReporter.h */,
+				88864E39107A3C41001CFB7E /* CrashReporter.m */,
+				888CB822107648110093C30E /* ODBEditor */,
 				88B28057104DA43C00806BAE /* HotKey */,
-				88B27D94104D8EDE00806BAE /* NSAppleEventDescriptor-Extensions.h */,
-				88B27D95104D8EDE00806BAE /* NSAppleEventDescriptor-Extensions.m */,
 			);
 			name = Classes;
 			sourceTree = &quot;&lt;group&gt;&quot;;
@@ -192,8 +202,6 @@
 				29B97317FDCFA39411CA2CEA /* Resources */,
 				29B97323FDCFA39411CA2CEA /* Frameworks */,
 				19C28FACFE9D520D11CA2CBB /* Products */,
-				88B28066104DA48500806BAE /* Carbon.framework */,
-				88B2806B104DA49000806BAE /* CoreServices.framework */,
 			);
 			name = QuickCursor;
 			sourceTree = &quot;&lt;group&gt;&quot;;
@@ -201,6 +209,7 @@
 		29B97315FDCFA39411CA2CEA /* Other Sources */ = {
 			isa = PBXGroup;
 			children = (
+				888CB655107645920093C30E /* Build Support */,
 				256AC3F00F4B6AF500CF3369 /* QuickCursor_Prefix.pch */,
 				29B97316FDCFA39411CA2CEA /* main.m */,
 			);
@@ -210,9 +219,11 @@
 		29B97317FDCFA39411CA2CEA /* Resources */ = {
 			isa = PBXGroup;
 			children = (
+				88864E7B107A3D27001CFB7E /* CrashReporterWindow.xib */,
 				88AAF90B105014A500DFD8E5 /* StatusItemIcon.pdf */,
 				88B27E46104D95A000806BAE /* QuickCursor.icns */,
 				8D1107310486CEB800E47090 /* QuickCursor-Info.plist */,
+				88864D36107A3305001CFB7E /* sparkle_dsa_pub.pem */,
 				8818B67E106BFBE7007661DF /* MainMenu.xib */,
 				089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
 			);
@@ -222,19 +233,34 @@
 		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
+				88E71F5010763A9A0080DE7E /* Sparkle.framework */,
+				88B28066104DA48500806BAE /* Carbon.framework */,
+				88B2806B104DA49000806BAE /* CoreServices.framework */,
 				1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
 				1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
 			);
 			name = Frameworks;
 			sourceTree = &quot;&lt;group&gt;&quot;;
 		};
-		88AAFA4A10503BDC00DFD8E5 /* BBAppSessionLoginState */ = {
+		888CB655107645920093C30E /* Build Support */ = {
+			isa = PBXGroup;
+			children = (
+				888CB658107645B90093C30E /* Markdown.pl */,
+				888CB656107645A00093C30E /* release_notes */,
+			);
+			name = &quot;Build Support&quot;;
+			sourceTree = &quot;&lt;group&gt;&quot;;
+		};
+		888CB822107648110093C30E /* ODBEditor */ = {
 			isa = PBXGroup;
 			children = (
-				88AAFA4B10503BEC00DFD8E5 /* BBAppSessionLoginState.h */,
-				88AAFA4C10503BEC00DFD8E5 /* BBAppSessionLoginState.m */,
+				88B27D98104D8EDE00806BAE /* ODBEditorSuite.h */,
+				88B27D96104D8EDE00806BAE /* ODBEditor.h */,
+				88B27D97104D8EDE00806BAE /* ODBEditor.m */,
+				88B27D94104D8EDE00806BAE /* NSAppleEventDescriptor-Extensions.h */,
+				88B27D95104D8EDE00806BAE /* NSAppleEventDescriptor-Extensions.m */,
 			);
-			name = BBAppSessionLoginState;
+			name = ODBEditor;
 			sourceTree = &quot;&lt;group&gt;&quot;;
 		};
 		88B2800F104DA2B200806BAE /* Products */ = {
@@ -258,6 +284,7 @@
 				88B2805D104DA44900806BAE /* PTKeyCodeTranslator.m */,
 				88B2805E104DA44900806BAE /* PTKeyCombo.h */,
 				88B2805F104DA44900806BAE /* PTKeyCombo.m */,
+				88864DFB107A376C001CFB7E /* PTKeyCodes.plist */,
 			);
 			name = HotKey;
 			sourceTree = &quot;&lt;group&gt;&quot;;
@@ -344,6 +371,9 @@
 				88B27E47104D95A000806BAE /* QuickCursor.icns in Resources */,
 				88AAF90C105014A500DFD8E5 /* StatusItemIcon.pdf in Resources */,
 				8818B680106BFBE7007661DF /* MainMenu.xib in Resources */,
+				88864D37107A3305001CFB7E /* sparkle_dsa_pub.pem in Resources */,
+				88864DFC107A376C001CFB7E /* PTKeyCodes.plist in Resources */,
+				88864E7D107A3D27001CFB7E /* CrashReporterWindow.xib in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -362,7 +392,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = &quot;if [ $CONFIGURATION != 'Release' ]; then\n\texit\nfi\n\n### Version Constants\n\nVERSION=$(defaults read \&quot;$BUILT_PRODUCTS_DIR/$PROJECT_NAME.app/Contents/Info\&quot; CFBundleVersion)\nSHORT_VERSION_STRING=$(defaults read \&quot;$BUILT_PRODUCTS_DIR/$PROJECT_NAME.app/Contents/Info\&quot; CFBundleShortVersionString)\n\n### Build DMG\n\nDMG_DIR=\&quot;$TEMP_FILES_DIR/disk\&quot;\nDMG_PATH=\&quot;$BUILT_PRODUCTS_DIR/$PROJECT_NAME-$SHORT_VERSION_STRING.dmg\&quot;\n\nrm -rf \&quot;$DMG_DIR\&quot;\nmkdir \&quot;$DMG_DIR\&quot;\ncp -R \&quot;$BUILT_PRODUCTS_DIR/$PROJECT_NAME.app\&quot; \&quot;$DMG_DIR\&quot;\nrm -f \&quot;$DMG_PATH\&quot;\nhdiutil create -srcfolder \&quot;$DMG_DIR\&quot; -volname \&quot;$PROJECT_NAME-$SHORT_VERSION_STRING\&quot; \&quot;$DMG_PATH\&quot;\nhdiutil internet-enable -yes \&quot;$DMG_PATH\&quot;\nrm -rf \&quot;$DMG_DIR\&quot;\n\n### Generate Sparkle Appcast Item\n\nDOWNLOAD_URL=\&quot;http://$PROJECT_NAME.s3.amazonaws.com/$PROJECT_NAME-$SHORT_VERSION_STRING.dmg\&quot;\nSIZE=$(stat -f %z \&quot;$DMG_PATH\&quot;)\nPUBDATE=$(date +\&quot;%a, %d %b %G %T %z\&quot;)\nSIGNATURE=$(openssl dgst -sha1 -binary &lt; \&quot;$DMG_PATH\&quot; | openssl dgst -dss1 -sign \&quot;sparkle_dsa_priv.pem\&quot; | openssl enc -base64)\nRELEASE_NOTES=$(./Markdown.pl release_notes)\n\ncat &lt;&lt;EOF\n\t\t&lt;item&gt;\n\t\t\t&lt;title&gt;Version $SHORT_VERSION_STRING ($VERSION)&lt;/title&gt;\n\t\t\t&lt;pubDate&gt;$PUBDATE&lt;/pubDate&gt;\n\t\t\t&lt;description&gt;&lt;![CDATA[$RELEASE_NOTES]]&gt;&lt;/description&gt;\n\t\t\t&lt;enclosure\n\t\t\t\turl=\&quot;$DOWNLOAD_URL\&quot;\n\t\t\t\ttype=\&quot;application/x-apple-diskimage\&quot;\n\t\t\t\tlength=\&quot;$SIZE\&quot;\n\t\t\t\tsparkle:version=\&quot;$VERSION\&quot;\n\t\t\t\tsparkle:shortVersionString=\&quot;$SHORT_VERSION_STRING\&quot;\n\t\t\t\tsparkle:minimumSystemVersion=\&quot;10.5\&quot;\n\t\t\t\tsparkle:dsaSignature=\&quot;$SIGNATURE\&quot;\n\t\t\t/&gt;\n\t\t&lt;/item&gt;\nEOF\n\nexit 0&quot;;
+			shellScript = &quot;if [ $CONFIGURATION != 'Release' ]; then\n\texit\nfi\n\n### Version Constants\n\nVERSION=$(defaults read \&quot;$BUILT_PRODUCTS_DIR/$PROJECT_NAME.app/Contents/Info\&quot; CFBundleVersion)\nSHORT_VERSION_STRING=$(defaults read \&quot;$BUILT_PRODUCTS_DIR/$PROJECT_NAME.app/Contents/Info\&quot; CFBundleShortVersionString)\n\n### Build DMG\n\nDMG_DIR=\&quot;$TEMP_FILES_DIR/disk\&quot;\nDMG_PATH=\&quot;$BUILT_PRODUCTS_DIR/$PROJECT_NAME-$SHORT_VERSION_STRING.dmg\&quot;\n\nrm -rf \&quot;$DMG_DIR\&quot;\nmkdir \&quot;$DMG_DIR\&quot;\ncp -R \&quot;$BUILT_PRODUCTS_DIR/$PROJECT_NAME.app\&quot; \&quot;$DMG_DIR\&quot;\nrm -f \&quot;$DMG_PATH\&quot;\nhdiutil create -srcfolder \&quot;$DMG_DIR\&quot; -volname \&quot;$PROJECT_NAME-$SHORT_VERSION_STRING\&quot; \&quot;$DMG_PATH\&quot;\nhdiutil internet-enable -yes \&quot;$DMG_PATH\&quot;\nrm -rf \&quot;$DMG_DIR\&quot;\n\n### Generate Sparkle Appcast Item\n\nDOWNLOAD_URL=\&quot;https://$PROJECT_NAME.s3.amazonaws.com/$PROJECT_NAME-$SHORT_VERSION_STRING.dmg\&quot;\nSIZE=$(stat -f %z \&quot;$DMG_PATH\&quot;)\nPUBDATE=$(date +\&quot;%a, %d %b %G %T %z\&quot;)\nSIGNATURE=$(openssl dgst -sha1 -binary &lt; \&quot;$DMG_PATH\&quot; | openssl dgst -dss1 -sign \&quot;../sparkle_dsa_priv.pem\&quot; | openssl enc -base64)\nRELEASE_NOTES=$(./Markdown.pl release_notes)\n\ncat &lt;&lt;EOF\n\t\t&lt;item&gt;\n\t\t\t&lt;title&gt;Version $SHORT_VERSION_STRING ($VERSION)&lt;/title&gt;\n\t\t\t&lt;pubDate&gt;$PUBDATE&lt;/pubDate&gt;\n\t\t\t&lt;description&gt;&lt;![CDATA[$RELEASE_NOTES]]&gt;&lt;/description&gt;\n\t\t\t&lt;enclosure\n\t\t\t\turl=\&quot;$DOWNLOAD_URL\&quot;\n\t\t\t\ttype=\&quot;application/x-apple-diskimage\&quot;\n\t\t\t\tlength=\&quot;$SIZE\&quot;\n\t\t\t\tsparkle:version=\&quot;$VERSION\&quot;\n\t\t\t\tsparkle:shortVersionString=\&quot;$SHORT_VERSION_STRING\&quot;\n\t\t\t\tsparkle:minimumSystemVersion=\&quot;10.5\&quot;\n\t\t\t\tsparkle:dsaSignature=\&quot;$SIGNATURE\&quot;\n\t\t\t/&gt;\n\t\t&lt;/item&gt;\nEOF\n\nexit 0&quot;;
 		};
 /* End PBXShellScriptBuildPhase section */
 
@@ -380,7 +410,7 @@
 				88B28061104DA44900806BAE /* PTHotKeyCenter.m in Sources */,
 				88B28062104DA44900806BAE /* PTKeyCodeTranslator.m in Sources */,
 				88B28063104DA44900806BAE /* PTKeyCombo.m in Sources */,
-				88AAFA4D10503BEC00DFD8E5 /* BBAppSessionLoginState.m in Sources */,
+				88864E3A107A3C41001CFB7E /* CrashReporter.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -421,6 +451,14 @@
 			name = MainMenu.xib;
 			sourceTree = &quot;&lt;group&gt;&quot;;
 		};
+		88864E7B107A3D27001CFB7E /* CrashReporterWindow.xib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				88864E7C107A3D27001CFB7E /* English */,
+			);
+			name = CrashReporterWindow.xib;
+			sourceTree = &quot;&lt;group&gt;&quot;;
+		};
 /* End PBXVariantGroup section */
 
 /* Begin XCBuildConfiguration section */
@@ -429,6 +467,10 @@
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				COPY_PHASE_STRIP = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					&quot;$(inherited)&quot;,
+					&quot;\&quot;$(SRCROOT)\&quot;&quot;,
+				);
 				GCC_DYNAMIC_NO_PIC = NO;
 				GCC_ENABLE_FIX_AND_CONTINUE = YES;
 				GCC_MODEL_TUNING = G5;
@@ -446,6 +488,10 @@
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				DEBUG_INFORMATION_FORMAT = &quot;dwarf-with-dsym&quot;;
+				FRAMEWORK_SEARCH_PATHS = (
+					&quot;$(inherited)&quot;,
+					&quot;\&quot;$(SRCROOT)\&quot;&quot;,
+				);
 				GCC_MODEL_TUNING = G5;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PREFIX_HEADER = QuickCursor_Prefix.pch;</diff>
      <filename>QuickCursor.xcodeproj/project.pbxproj</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>BBAppSessionLoginState.h</filename>
    </removed>
    <removed>
      <filename>BBAppSessionLoginState.m</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>1717c87300f3b867768a85336be4c9bc6942670b</id>
    </parent>
  </parents>
  <author>
    <name>Jesse Grosjean</name>
    <email>jesse@hogbaysoftware.com</email>
  </author>
  <url>http://github.com/jessegrosjean/quickcursor/commit/1f9f130bd33228ed20d0f096de47629f9d130d4d</url>
  <id>1f9f130bd33228ed20d0f096de47629f9d130d4d</id>
  <committed-date>2009-10-05T08:10:50-07:00</committed-date>
  <authored-date>2009-10-05T08:10:50-07:00</authored-date>
  <message>added software update, crash reporting, fixed some bugs</message>
  <tree>23c4634042b0771f363e7cee7a26ec9dc8f9689e</tree>
  <committer>
    <name>Jesse Grosjean</name>
    <email>jesse@hogbaysoftware.com</email>
  </committer>
</commit>
