Index: trunk/Cocoa/Pester/Source/NJRHotKey.h
===================================================================
--- trunk/Cocoa/Pester/Source/NJRHotKey.h	(revision 131)
+++ trunk/Cocoa/Pester/Source/NJRHotKey.h	(revision 131)
@@ -0,0 +1,32 @@
+//
+//  NJRHotKey.h
+//  Pester
+//
+//  Created by Nicholas Riley on Tue Apr 01 2003.
+//  Copyright (c) 2003 Nicholas Riley. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+@interface NJRHotKey : NSObject {
+    NSString *hotKeyCharacters;
+    unsigned hotKeyModifierFlags;
+    unsigned short hotKeyCode;
+}
+
++ (NJRHotKey *)hotKeyWithCharacters:(NSString *)characters modifierFlags:(unsigned)modifierFlags keyCode:(unsigned short)keyCode;
+
+- (id)initWithCharacters:(NSString *)characters modifierFlags:(unsigned)modifierFlags keyCode:(unsigned short)keyCode;
+
+- (NSString *)characters;
+- (unsigned)modifierFlags; // Cocoa
+- (long)modifiers; // Carbon
+- (unsigned short)keyCode;
+
+- (NSDictionary *)propertyListRepresentation;
+- (id)initWithPropertyList:(NSDictionary *)dict;
+
+- (NSString *)keyGlyphs;
+
+@end
Index: trunk/Cocoa/Pester/Source/NJRHotKey.m
===================================================================
--- trunk/Cocoa/Pester/Source/NJRHotKey.m	(revision 131)
+++ trunk/Cocoa/Pester/Source/NJRHotKey.m	(revision 131)
@@ -0,0 +1,113 @@
+//
+//  NJRHotKey.m
+//  Pester
+//
+//  Created by Nicholas Riley on Tue Apr 01 2003.
+//  Copyright (c) 2003 Nicholas Riley. All rights reserved.
+//
+
+#import "NJRHotKey.h"
+#import "NSString-NJRExtensions.h"
+
+#include <Carbon/Carbon.h>
+
+// property list keys
+static NSString * const PLCharacters = @"characters"; // NSString
+static NSString * const PLModifierFlags = @"modifierFlags"; // NSNumber
+static NSString * const PLKeyCode = @"keyCode"; // NSNumber
+
+@implementation NJRHotKey
+
+#pragma mark initialize-release
+
++ (NJRHotKey *)hotKeyWithCharacters:(NSString *)characters modifierFlags:(unsigned)modifierFlags keyCode:(unsigned short)keyCode;
+{
+    return [[[self alloc] initWithCharacters: characters modifierFlags: modifierFlags keyCode: keyCode] autorelease];
+}
+
+- (id)initWithCharacters:(NSString *)characters modifierFlags:(unsigned)modifierFlags keyCode:(unsigned short)keyCode;
+{
+    if ( (self = [self init]) != nil) {
+        hotKeyCharacters = [characters retain];
+        hotKeyModifierFlags = modifierFlags;
+        hotKeyCode = keyCode;
+    }
+    return self;
+}
+
+- (void)dealloc;
+{
+    [hotKeyCharacters release];
+}
+
+#pragma mark accessing
+
+- (NSString *)characters;
+{
+    return hotKeyCharacters;
+}
+
+- (unsigned)modifierFlags;
+{
+    return hotKeyModifierFlags;
+}
+
+- (long)modifiers;
+{
+    static long modifierMap[5][2] = {
+       { NSCommandKeyMask, cmdKey },
+       { NSAlternateKeyMask, optionKey },
+       { NSControlKeyMask, controlKey },
+       { NSShiftKeyMask, shiftKey },
+       { 0, 0 }
+    };
+
+    long modifiers = 0;
+    int i;
+
+    for( i = 0 ; modifierMap[i][0] != 0 ; i++ )
+        if( hotKeyModifierFlags & modifierMap[i][0] )
+            modifiers |= modifierMap[i][1];
+
+    return modifiers;
+}
+
+- (unsigned short)keyCode;
+{
+    return hotKeyCode;
+}
+
+#pragma mark property list serialization (Pester 1.1)
+
+- (NSDictionary *)propertyListRepresentation;
+{
+    return [NSDictionary dictionaryWithObjectsAndKeys:
+        hotKeyCharacters, PLCharacters,
+        [NSNumber numberWithUnsignedInt: hotKeyModifierFlags], PLModifierFlags,
+        [NSNumber numberWithUnsignedShort: hotKeyCode], PLKeyCode,
+        nil];
+}
+
+- (id)initWithPropertyList:(NSDictionary *)dict;
+{
+    if ( (self = [self init]) != nil) {
+        NS_DURING
+            hotKeyCharacters = [[dict objectForKey: PLCharacters] retain];
+            hotKeyModifierFlags = [[dict objectForKey: PLModifierFlags] unsignedIntValue];
+            hotKeyCode = [[dict objectForKey: PLKeyCode] unsignedShortValue];
+        NS_HANDLER
+        NS_ENDHANDLER
+        if (hotKeyCharacters == nil || hotKeyCode == 0) {
+            [self release];
+            self = nil;
+        }
+    }
+    return self;
+}
+
+- (NSString *)keyGlyphs;
+{
+    return [[hotKeyCharacters keyEquivalentAttributedStringWithModifierFlags: hotKeyModifierFlags] string];
+}
+
+@end
Index: trunk/Cocoa/Pester/Source/NJRHotKeyField.h
===================================================================
--- trunk/Cocoa/Pester/Source/NJRHotKeyField.h	(revision 130)
+++ trunk/Cocoa/Pester/Source/NJRHotKeyField.h	(revision 131)
@@ -9,15 +9,14 @@
 #import <AppKit/AppKit.h>
 
+@class NJRHotKey;
 
 @interface NJRHotKeyField : NSTextField {
-    NSString *hotKeyCharacters;
-    unsigned hotKeyModifierFlags;
-    unsigned short hotKeyCode;
+    NJRHotKey *hotKey;
 }
 
+- (NJRHotKey *)hotKey;
+- (void)setHotKey:(NJRHotKey *)aKey;
+
 - (IBAction)clear:(id)sender;
-
-- (NSDictionary *)propertyListRepresentation;
-- (void)setFromPropertyList:(NSDictionary *)dict;
 
 @end
Index: trunk/Cocoa/Pester/Source/NJRHotKeyField.m
===================================================================
--- trunk/Cocoa/Pester/Source/NJRHotKeyField.m	(revision 130)
+++ trunk/Cocoa/Pester/Source/NJRHotKeyField.m	(revision 131)
@@ -9,10 +9,6 @@
 #import "NJRHotKeyField.h"
 #import "NJRHotKeyFieldCell.h"
+#import "NJRHotKey.h"
 #import "NSString-NJRExtensions.h"
-
-// property list keys
-static NSString * const PLCharacters = @"characters"; // NSString
-static NSString * const PLModifierFlags = @"modifierFlags"; // NSNumber
-static NSString * const PLKeyCode = @"keyCode"; // NSNumber
 
 static const NSRange zeroRange = {0, 0};
@@ -48,4 +44,6 @@
 }
 
+#pragma mark initialize-release
+
 - (id)initWithCoder:(NSCoder *)coder;
 {
@@ -63,4 +61,11 @@
     return self;
 }
+
+- (void)dealloc;
+{
+    [hotKey release];
+}
+
+#pragma mark interface updating
 
 // XXX still problems with command-A the first time
@@ -85,9 +90,9 @@
 - (void)showKeyEquivalentAttributedStringFinalized:(BOOL)finalized;
 {
-    if (hotKeyCharacters == nil) {
+    if ([hotKey characters] == nil) {
         [self showStatus: @"none assigned"];
         return;
     }
-    NSMutableAttributedString *equivString = [[hotKeyCharacters keyEquivalentAttributedStringWithModifierFlags: hotKeyModifierFlags] mutableCopy];
+    NSMutableAttributedString *equivString = [[[hotKey characters] keyEquivalentAttributedStringWithModifierFlags: [hotKey modifierFlags]] mutableCopy];
     [equivString addAttribute: NSParagraphStyleAttributeName
                         value: (finalized ? centerAlignStyle : leftAlignStyle)
@@ -98,12 +103,5 @@
 }
 
-- (void)clearHotKey;
-{
-    [hotKeyCharacters release];
-    hotKeyCharacters = nil;
-    hotKeyModifierFlags = 0;
-    hotKeyCode = 0;
-    [NSApp sendAction: [self action] to: [self target] from: self];
-}
+#pragma mark event handling
 
 - (void)keyUp:(NSEvent *)theEvent;
@@ -122,8 +120,5 @@
             [self showStatus: message != nil ? message : @"key is unavailable for use"];
         } else {
-            [hotKeyCharacters release];
-            hotKeyCharacters = [characters retain];
-            hotKeyModifierFlags = modifierFlags;
-            hotKeyCode = [theEvent keyCode];
+            [self setHotKey: [NJRHotKey hotKeyWithCharacters: characters modifierFlags: modifierFlags keyCode: [theEvent keyCode]]];
             [NSApp sendAction: [self action] to: [self target] from: self];
             [self showKeyEquivalentAttributedStringFinalized: ([theEvent modifierFlags] & capturedModifierMask) == 0];
@@ -150,32 +145,28 @@
 }
 
+#pragma mark acccessing
+
+- (NJRHotKey *)hotKey;
+{
+    return hotKey;
+}
+
+- (void)setHotKey:(NJRHotKey *)aKey;
+{
+    if (aKey != hotKey) {
+        [hotKey release];
+        hotKey = [aKey retain];
+        [self showKeyEquivalentAttributedStringFinalized: ([[NSApp currentEvent] modifierFlags] & capturedModifierMask) == 0];
+    }
+}
+
+#pragma mark actions
+
 - (IBAction)clear:(id)sender;
 {
-    [self clearHotKey];
+    [self setHotKey: nil];
+    [NSApp sendAction: [self action] to: [self target] from: self];
     [self showKeyEquivalentAttributedStringFinalized: YES];
 }
 
-#pragma mark property list serialization (Pester 1.1)
-
-- (NSDictionary *)propertyListRepresentation;
-{
-    return [NSDictionary dictionaryWithObjectsAndKeys:
-        hotKeyCharacters, PLCharacters,
-        [NSNumber numberWithUnsignedInt: hotKeyModifierFlags], PLModifierFlags,
-        [NSNumber numberWithUnsignedShort: hotKeyCode], PLKeyCode,
-        nil];
-}
-
-- (void)setFromPropertyList:(NSDictionary *)dict;
-{
-    NS_DURING
-        hotKeyCharacters = [[dict objectForKey: PLCharacters] retain];
-        hotKeyModifierFlags = [[dict objectForKey: PLModifierFlags] unsignedIntValue];
-        hotKeyCode = [[dict objectForKey: PLKeyCode] unsignedShortValue];
-        [self showKeyEquivalentAttributedStringFinalized: ([[NSApp currentEvent] modifierFlags] & capturedModifierMask) == 0];
-    NS_HANDLER
-        [self clear: nil];
-    NS_ENDHANDLER
-}
-
 @end
Index: trunk/Cocoa/Pester/Source/NJRHotKeyManager.h
===================================================================
--- trunk/Cocoa/Pester/Source/NJRHotKeyManager.h	(revision 131)
+++ trunk/Cocoa/Pester/Source/NJRHotKeyManager.h	(revision 131)
@@ -0,0 +1,30 @@
+//
+//  NJRHotKeyManager.h
+//  Pester
+//
+//  Created by Nicholas Riley on Tue Apr 01 2003.
+//  Copyright (c) 2003 Nicholas Riley. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@class NJRHotKey;
+
+@interface NJRHotKeyManager : NSObject {
+    BOOL shortcutsEnabled;
+    NSMutableDictionary *shortcuts;
+}
+
++ (NJRHotKeyManager *)sharedManager;
+
+- (BOOL)addShortcutWithIdentifier:(NSString *)identifier hotKey:(NJRHotKey *)hotKey target:(id)target action:(SEL)action;
+- (void)removeShortcutWithIdentifier:(NSString *)identifier;
+
+- (NSArray *)shortcutIdentifiers;
+- (NJRHotKey *)hotKeyForShortcutWithIdentifier:(NSString *)identifier;
+
+- (void)setShortcutsEnabled:(BOOL)enabled;
+- (BOOL)shortcutsEnabled;
+
+
+@end
Index: trunk/Cocoa/Pester/Source/NJRHotKeyManager.m
===================================================================
--- trunk/Cocoa/Pester/Source/NJRHotKeyManager.m	(revision 131)
+++ trunk/Cocoa/Pester/Source/NJRHotKeyManager.m	(revision 131)
@@ -0,0 +1,260 @@
+//
+//  NJRHotKeyManager.m
+//  Pester
+//
+//  Created by Nicholas Riley on Tue Apr 01 2003.
+//  Copyright (c) 2003 Nicholas Riley. All rights reserved.
+//
+
+// based on HotKeyCenter, by Quentin Carnicelli
+// renamed, reorganized, cleaned up, pre-10.2 support removed
+
+#import "NJRHotKeyManager.h"
+#import "NJRHotKey.h"
+#import <Carbon/Carbon.h>
+
+const OSType kHotKeyManagerSignature = 'NHKM';
+
+@interface _NJRHotKeyShortcut : NSObject {
+    @public
+    BOOL isRegistered;
+    EventHotKeyRef hotKeyRef;
+    NJRHotKey *hotKey;
+    id target;
+    SEL action;
+}
+@end
+
+@implementation _NJRHotKeyShortcut
+
+- (void)dealloc;
+{
+    [hotKey release];
+    [target release];
+}
+
+@end
+
+pascal OSErr keyEventHandler(EventHandlerCallRef inHandlerRef, EventRef inEvent, void *refCon);
+
+@interface NJRHotKeyManager (Private)
+- (OSStatus)_handleHotKeyEvent:(EventRef)inEvent;
+- (BOOL)_registerHotKeyIfNeeded:(_NJRHotKeyShortcut *)shortcut;
+- (void)_unregisterHotKeyIfNeeded:(_NJRHotKeyShortcut *)shortcut;
+- (void)_hotKeyDown:(_NJRHotKeyShortcut *)hotKey;
+- (void)_hotKeyUp:(_NJRHotKeyShortcut *)hotKey;
+- (void)_hotKeyDownWithRef:(EventHotKeyRef)ref;
+- (void)_hotKeyUpWithRef:(EventHotKeyRef)ref;
+- (_NJRHotKeyShortcut *)_findShortcutWithRef:(EventHotKeyRef)ref;
+@end
+
+@implementation NJRHotKeyManager
+
++ (NJRHotKeyManager *)sharedManager;
+{
+    static NJRHotKeyManager *manager = nil;
+
+    if (manager == nil) {
+        manager = [[self alloc] init];
+
+        EventTypeSpec eventSpec[2] = {
+           { kEventClassKeyboard, kEventHotKeyPressed },
+           { kEventClassKeyboard, kEventHotKeyReleased }
+        };
+
+        InstallEventHandler(GetEventDispatcherTarget(),
+                            NewEventHandlerUPP((EventHandlerProcPtr) keyEventHandler),
+                            2, eventSpec, nil, nil);
+    }
+    return manager;
+}
+
+- (id)init;
+{
+    if ( (self = [super init]) != nil) {
+        shortcutsEnabled = YES;
+        shortcuts = [[NSMutableDictionary alloc] init];
+    }
+
+    return self;
+}
+
+- (void)dealloc;
+{
+    [shortcuts release];
+    [super dealloc];
+}
+
+#pragma mark -
+
+- (BOOL)addShortcutWithIdentifier:(NSString *)identifier hotKey:(NJRHotKey *)hotKey target:(id)target action:(SEL)action;
+{
+    NSParameterAssert(identifier != nil);
+    NSParameterAssert(hotKey != nil);
+    NSParameterAssert(target != nil);
+    NSParameterAssert(action != nil);
+
+    if ([shortcuts objectForKey: identifier] != nil)
+        [self removeShortcutWithIdentifier: identifier];
+
+    _NJRHotKeyShortcut *newShortcut = [[_NJRHotKeyShortcut alloc] init];
+    newShortcut->isRegistered = NO;
+    newShortcut->hotKeyRef = nil;
+    newShortcut->hotKey = [hotKey retain];
+    newShortcut->target = [target retain];
+    newShortcut->action = action;
+
+    [shortcuts setObject: newShortcut forKey: identifier];
+    [newShortcut release];
+    
+    return [self _registerHotKeyIfNeeded: newShortcut];
+}
+
+- (void)removeShortcutWithIdentifier:(NSString *)identifier;
+{
+    _NJRHotKeyShortcut *hotKey = [shortcuts objectForKey: identifier];
+
+    if (hotKey == nil) return;
+    [self _unregisterHotKeyIfNeeded: hotKey];
+    [shortcuts removeObjectForKey: identifier];
+}
+
+- (NSArray *)shortcutIdentifiers;
+{
+    return [shortcuts allKeys];
+}
+
+- (NJRHotKey *)hotKeyForShortcutWithIdentifier:(NSString *)identifier;
+{
+    _NJRHotKeyShortcut *hotKey = [shortcuts objectForKey: identifier];
+
+    return (hotKey == nil ? nil : [[hotKey->hotKey retain] autorelease]);
+}
+
+- (void)setShortcutsEnabled:(BOOL)enabled;
+{
+    NSEnumerator *enumerator = [shortcuts objectEnumerator];
+    _NJRHotKeyShortcut *hotKey;
+
+    while ( (hotKey = [enumerator nextObject]) != nil) {
+        if (enabled)
+            [self _registerHotKeyIfNeeded: hotKey];
+        else
+            [self _unregisterHotKeyIfNeeded: hotKey];
+    }
+    shortcutsEnabled = enabled;
+}
+
+- (BOOL)shortcutsEnabled;
+{
+    return shortcutsEnabled;
+}
+
+#pragma mark -
+
+- (OSStatus)_handleHotKeyEvent:(EventRef)inEvent;
+{
+    OSStatus err;
+    EventHotKeyID hotKeyID;
+    _NJRHotKeyShortcut *shortcut;
+
+    NSAssert(GetEventClass(inEvent) == kEventClassKeyboard, @"Unhandled event class");
+
+    if ( (err = GetEventParameter(inEvent, kEventParamDirectObject, typeEventHotKeyID, nil,
+                                  sizeof(EventHotKeyID), nil, &hotKeyID)) != noErr)
+        return err;
+
+    NSAssert(hotKeyID.signature == kHotKeyManagerSignature, @"Unknown hot key");
+
+    shortcut = (_NJRHotKeyShortcut *)hotKeyID.id;
+    NSAssert(shortcut != nil, @"Got bad hot key");
+
+    switch (GetEventKind(inEvent)) {
+        case kEventHotKeyPressed:
+            [self _hotKeyDown: shortcut];
+            break;
+        case kEventHotKeyReleased:
+            [self _hotKeyUp: shortcut];
+            break;
+        default:
+            break;
+    }
+
+    return noErr;
+}
+
+#pragma mark -
+
+- (BOOL)_registerHotKeyIfNeeded:(_NJRHotKeyShortcut *)shortcut;
+{
+    NJRHotKey *hotKey;
+
+    NSParameterAssert(shortcut != nil);
+
+    hotKey = shortcut->hotKey;
+
+    if (shortcutsEnabled && !(shortcut->isRegistered)) {
+        EventHotKeyID keyID;
+        OSStatus err;
+
+        keyID.signature = kHotKeyManagerSignature;
+        keyID.id = (unsigned long)shortcut;
+        if ( (err = RegisterEventHotKey([hotKey keyCode], [hotKey modifiers], keyID, GetEventDispatcherTarget(), 0, &shortcut->hotKeyRef)) != noErr)
+            return NO;
+
+        shortcut->isRegistered = YES;
+    }
+
+    return YES;
+}
+
+- (void)_unregisterHotKeyIfNeeded:(_NJRHotKeyShortcut *)shortcut;
+{
+    NSParameterAssert(shortcut != nil);
+ 
+    if (shortcut->isRegistered && shortcut->hotKeyRef != nil)
+        UnregisterEventHotKey(shortcut->hotKeyRef);
+}
+
+- (void)_hotKeyDown:(_NJRHotKeyShortcut *)hotKey;
+{
+    id target = hotKey->target;
+    SEL action = hotKey->action;
+
+    [target performSelector: action withObject: self];
+}
+
+- (void)_hotKeyUp:(_NJRHotKeyShortcut *)hotKey;
+{
+}
+
+- (void)_hotKeyDownWithRef:(EventHotKeyRef)ref;
+{
+    _NJRHotKeyShortcut *hotKey = [self _findShortcutWithRef: ref];
+
+    if (hotKey != nil)
+        [self _hotKeyDown: hotKey];
+}
+
+- (void)_hotKeyUpWithRef:(EventHotKeyRef)ref;
+{
+}
+
+- (_NJRHotKeyShortcut *)_findShortcutWithRef:(EventHotKeyRef)ref;
+{
+    NSEnumerator *enumerator = [shortcuts objectEnumerator];
+    _NJRHotKeyShortcut *hotKey;
+
+    while ( (hotKey = [enumerator nextObject]) != nil) {
+        if (hotKey->hotKeyRef == ref)
+            return hotKey;
+    }
+    return nil;
+}
+
+@end
+
+pascal OSErr keyEventHandler(EventHandlerCallRef inHandlerRef, EventRef inEvent, void *refCon)
+{
+    return [[NJRHotKeyManager sharedManager] _handleHotKeyEvent: inEvent];
+}
Index: trunk/Cocoa/Pester/Source/PSApplication.m
===================================================================
--- trunk/Cocoa/Pester/Source/PSApplication.m	(revision 130)
+++ trunk/Cocoa/Pester/Source/PSApplication.m	(revision 131)
@@ -16,4 +16,7 @@
 #import "PSAlarms.h"
 #import "PSTimer.h"
+#import "NJRHotKey.h"
+
+#import <Carbon/Carbon.h>
 
 @implementation PSApplication
@@ -27,6 +30,9 @@
     [PSAlarms setUp];
     [self setDelegate: self];
+    [PSPreferencesController readPreferences];
     [super finishLaunching];
 }
+
+#pragma mark actions
 
 - (IBAction)showHelp:(id)sender;
@@ -55,6 +61,4 @@
 }
 
-#pragma mark preferences
-
 - (IBAction)orderFrontPreferencesPanel:(id)sender;
 {
@@ -64,4 +68,6 @@
     [preferencesController showWindow: self];
 }
+
+#pragma mark update timer
 
 - (void)_resetUpdateTimer;
@@ -108,6 +114,5 @@
         textOrigin = NSMakePoint(imageSize.width / 2 - textSize.width / 2,
                                  imageSize.height / 2 - textSize.height / 2);
-        frameRect = NSInsetRect(NSMakeRect(textOrigin.x, textOrigin.y, textSize.width, textSize.height),
-                                -4, -2);
+        frameRect = NSInsetRect(NSMakeRect(textOrigin.x, textOrigin.y, textSize.width, textSize.height), -4, -2);
         
         [tile lockFocus];
Index: trunk/Cocoa/Pester/Source/PSPreferencesController.h
===================================================================
--- trunk/Cocoa/Pester/Source/PSPreferencesController.h	(revision 130)
+++ trunk/Cocoa/Pester/Source/PSPreferencesController.h	(revision 131)
@@ -19,4 +19,6 @@
 }
 
++ (void)readPreferences;
+
 - (IBAction)hotKeySet:(NJRHotKeyField *)sender;
 
Index: trunk/Cocoa/Pester/Source/PSPreferencesController.m
===================================================================
--- trunk/Cocoa/Pester/Source/PSPreferencesController.m	(revision 130)
+++ trunk/Cocoa/Pester/Source/PSPreferencesController.m	(revision 131)
@@ -8,7 +8,37 @@
 
 #import "PSPreferencesController.h"
+#import "PSApplication.h"
 #import "NJRHotKeyField.h"
+#import "NJRHotKey.h"
+#import "NJRHotKeyManager.h"
+
+// NSUserDefaults key
+static NSString * const PSSetAlarmHotKey = @"Pester set alarm system-wide keyboard shortcut";
+
+// NJRHotKeyManager shortcut identifier
+static NSString * const PSSetAlarmHotKeyShortcut = @"PSSetAlarmHotKeyShortcut";
 
 @implementation PSPreferencesController
+
++ (void)readPreferences;
+{
+    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+    NJRHotKeyManager *hotKeyManager = [NJRHotKeyManager sharedManager];
+    NJRHotKey *hotKey = [[[NJRHotKey alloc] initWithPropertyList: [defaults dictionaryForKey: PSSetAlarmHotKey]] autorelease];
+
+    if (hotKey == nil) {
+        [hotKeyManager removeShortcutWithIdentifier: PSSetAlarmHotKeyShortcut];
+    } else {
+        if (![hotKeyManager addShortcutWithIdentifier: PSSetAlarmHotKeyShortcut
+                                               hotKey: hotKey
+                                               target: NSApp
+                                               action: @selector(orderFrontSetAlarmPanel:)]) {
+            NSRunAlertPanel(NSLocalizedString(@"Can't reserve alarm key equivalent", "Hot key set failure"),
+                            NSLocalizedString(@"Pester was unable to reserve the key equivalent %@. Please select another in Pester's Preferences, or click Clear to remove it.", "Hot key set failure"), nil, nil, nil, [hotKey keyGlyphs]);
+            [defaults removeObjectForKey: PSSetAlarmHotKey];
+            [(PSApplication *)NSApp performSelector: @selector(orderFrontPreferencesPanel:) withObject: self afterDelay: 0.1];
+        }
+    }
+}
 
 #pragma mark interface updating
@@ -24,5 +54,7 @@
 {
     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
-    [setAlarmHotKey setFromPropertyList: [defaults dictionaryForKey: @"Pester set alarm system-wide keyboard shortcut"]];
+    NJRHotKey *hotKey = [[NJRHotKey alloc] initWithPropertyList: [defaults dictionaryForKey: PSSetAlarmHotKey]];
+    [setAlarmHotKey setHotKey: hotKey];
+    [hotKey release];
 }
 
@@ -30,6 +62,7 @@
 {
     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
-    [defaults setObject: [setAlarmHotKey propertyListRepresentation] forKey: @"Pester set alarm system-wide keyboard shortcut"];
+    [defaults setObject: [[setAlarmHotKey hotKey] propertyListRepresentation] forKey: @"Pester set alarm system-wide keyboard shortcut"];
     [defaults synchronize];
+    [[self class] readPreferences];
 }
 
@@ -38,5 +71,5 @@
 - (id)init {
     if ( (self = [super initWithWindowNibName: @"Preferences"]) != nil) {
-        [self window]; // connect outlets
+        [[self window] center]; // connect outlets
         [self readFromPrefs];
         [self update];
Index: trunk/Cocoa/Pester/Source/Pester.pbproj/nicholas.pbxuser
===================================================================
--- trunk/Cocoa/Pester/Source/Pester.pbproj/nicholas.pbxuser	(revision 130)
+++ trunk/Cocoa/Pester/Source/Pester.pbproj/nicholas.pbxuser	(revision 131)
@@ -16,5 +16,6 @@
 			E120D6610418B08700050002,
 			E14DEC86043898AC00050002,
-			E14DEC88043898B700050002,
+			E145384A043A31D500050002,
+			E145384C043A31D900050002,
 		);
 		executables = (
@@ -22,387 +23,5 @@
 		);
 		perUserDictionary = {
-			PBXPerProjectTemplateStateSaveDate = 70906457;
-			"PBXTemplateGeometry-F5314676015831810DCA290F" = {
-				ContentSize = "{685, 434}";
-				LeftSlideOut = {
-					Collapsed = NO;
-					Frame = "{{0, 23}, {685, 411}}";
-					Split0 = {
-						ActiveTab = 2;
-						ActiveTabName = PBXBuildResultsModule;
-						Collapsed = NO;
-						Frame = "{{0, 0}, {685, 411}}";
-						Split0 = {
-							Frame = "{{0, 301}, {685, 110}}";
-						};
-						SplitCount = 1;
-						Tab0 = {
-							Frame = "{{0, 0}, {952, 321}}";
-						};
-						Tab1 = {
-							Debugger = {
-								Collapsed = NO;
-								Frame = "{{0, 0}, {781, 452}}";
-								Split0 = {
-									Frame = "{{0, 24}, {781, 428}}";
-									Split0 = {
-										Frame = "{{0, 0}, {383, 428}}";
-									};
-									Split1 = {
-										DebugVariablesTableConfiguration = (
-											Name,
-											123,
-											Value,
-											85,
-											Summary,
-											155.123,
-										);
-										Frame = "{{392, 0}, {389, 428}}";
-									};
-									SplitCount = 2;
-								};
-								SplitCount = 1;
-								Tab0 = {
-									Frame = "{{0, 0}, {100, 50}}";
-								};
-								Tab1 = {
-									Frame = "{{0, 0}, {100, 50}}";
-								};
-								TabCount = 2;
-								TabsVisible = YES;
-							};
-							Frame = "{{0, 0}, {781, 452}}";
-							LauncherConfigVersion = 7;
-						};
-						Tab2 = {
-							Frame = "{{0, 0}, {685, 215}}";
-							LauncherConfigVersion = 3;
-							Runner = {
-								Frame = "{{0, 0}, {685, 215}}";
-							};
-						};
-						Tab3 = {
-							BuildMessageFrame = "{{0, 0}, {687, 262}}";
-							BuildTranscriptFrame = "{{0, 271}, {687, 2}}";
-							BuildTranscriptFrameExpanded = YES;
-							Frame = "{{0, 0}, {685, 295}}";
-						};
-						Tab4 = {
-							Frame = "{{0, 0}, {612, 295}}";
-						};
-						TabCount = 5;
-						TabsVisible = NO;
-					};
-					SplitCount = 1;
-					Tab0 = {
-						Frame = "{{0, 0}, {300, 533}}";
-						GroupTreeTableConfiguration = (
-							TargetStatusColumn,
-							18,
-							MainColumn,
-							267,
-						);
-					};
-					Tab1 = {
-						ClassesFrame = "{{0, 0}, {280, 398}}";
-						ClassesTreeTableConfiguration = (
-							PBXBookColumnIdentifier,
-							20,
-							PBXClassColumnIdentifier,
-							237,
-						);
-						Frame = "{{0, 0}, {278, 659}}";
-						MembersFrame = "{{0, 407}, {280, 252}}";
-						MembersTreeTableConfiguration = (
-							PBXBookColumnIdentifier,
-							20,
-							PBXMethodColumnIdentifier,
-							236,
-						);
-					};
-					Tab2 = {
-						Frame = "{{0, 0}, {200, 100}}";
-					};
-					Tab3 = {
-						Frame = "{{0, 0}, {200, 100}}";
-						TargetTableConfiguration = (
-							ActiveObject,
-							16,
-							ObjectNames,
-							202.296,
-						);
-					};
-					Tab4 = {
-						BreakpointsTreeTableConfiguration = (
-							breakpointColumn,
-							197,
-							enabledColumn,
-							31,
-						);
-						Frame = "{{0, 0}, {250, 100}}";
-					};
-					TabCount = 5;
-					TabsVisible = NO;
-				};
-				NavBarShownByDefault = YES;
-				StatusViewVisible = YES;
-				Template = F5314676015831810DCA290F;
-				ToolbarVisible = YES;
-				WindowLocation = "{7, 336}";
-			};
-			"PBXTemplateGeometry-F5534CB2020F3F8A0DCA290F" = {
-				ContentSize = "{594, 303}";
-				LeftSlideOut = {
-					Collapsed = NO;
-					Frame = "{{0, 23}, {594, 280}}";
-					Split0 = {
-						ActiveTab = 1;
-						ActiveTabName = PBXRunSessionModule;
-						Collapsed = YES;
-						Frame = "{{0, 0}, {594, 280}}";
-						Split0 = {
-							Frame = "{{1e+06, 1e+06}, {594, 0}}";
-						};
-						SplitCount = 1;
-						Tab0 = {
-							Frame = "{{0, 0}, {804, 321}}";
-						};
-						Tab1 = {
-							Debugger = {
-								Collapsed = NO;
-								Frame = "{{0, 0}, {594, 274}}";
-								Split0 = {
-									Frame = "{{0, 24}, {594, 250}}";
-									Split0 = {
-										Frame = "{{0, 0}, {290, 250}}";
-									};
-									Split1 = {
-										DebugVariablesTableConfiguration = (
-											Name,
-											123,
-											Value,
-											85,
-											Summary,
-											62.123,
-										);
-										Frame = "{{299, 0}, {295, 250}}";
-									};
-									SplitCount = 2;
-								};
-								SplitCount = 1;
-								Tab0 = {
-									Frame = "{{0, 0}, {100, 50}}";
-								};
-								Tab1 = {
-									Frame = "{{0, 0}, {100, 50}}";
-								};
-								TabCount = 2;
-								TabsVisible = YES;
-							};
-							Frame = "{{0, 0}, {594, 274}}";
-							LauncherConfigVersion = 7;
-						};
-						Tab2 = {
-							Frame = "{{0, 0}, {594, 274}}";
-							LauncherConfigVersion = 3;
-							Runner = {
-								Frame = "{{0, 0}, {594, 274}}";
-							};
-						};
-						Tab3 = {
-							BuildMessageFrame = "{{0, 0}, {614, 262}}";
-							BuildTranscriptFrame = "{{0, 271}, {614, 2}}";
-							BuildTranscriptFrameExpanded = YES;
-							Frame = "{{0, 0}, {612, 295}}";
-						};
-						Tab4 = {
-							Frame = "{{0, 0}, {612, 295}}";
-						};
-						TabCount = 5;
-						TabsVisible = NO;
-					};
-					SplitCount = 1;
-					Tab0 = {
-						Frame = "{{0, 0}, {300, 533}}";
-						GroupTreeTableConfiguration = (
-							TargetStatusColumn,
-							18,
-							MainColumn,
-							267,
-						);
-					};
-					Tab1 = {
-						ClassesFrame = "{{0, 0}, {280, 398}}";
-						ClassesTreeTableConfiguration = (
-							PBXBookColumnIdentifier,
-							20,
-							PBXClassColumnIdentifier,
-							237,
-						);
-						Frame = "{{0, 0}, {278, 659}}";
-						MembersFrame = "{{0, 407}, {280, 252}}";
-						MembersTreeTableConfiguration = (
-							PBXBookColumnIdentifier,
-							20,
-							PBXMethodColumnIdentifier,
-							236,
-						);
-					};
-					Tab2 = {
-						Frame = "{{0, 0}, {200, 100}}";
-					};
-					Tab3 = {
-						Frame = "{{0, 0}, {200, 386}}";
-						TargetTableConfiguration = (
-							ActiveObject,
-							16,
-							ObjectNames,
-							202.296,
-						);
-					};
-					Tab4 = {
-						BreakpointsTreeTableConfiguration = (
-							breakpointColumn,
-							197,
-							enabledColumn,
-							31,
-						);
-						Frame = "{{0, 0}, {250, 386}}";
-					};
-					TabCount = 5;
-					TabsVisible = NO;
-				};
-				NavBarShownByDefault = YES;
-				StatusViewVisible = YES;
-				Template = F5534CB2020F3F8A0DCA290F;
-				ToolbarVisible = YES;
-				WindowLocation = "{489, 356}";
-			};
-			"PBXTemplateGeometry-F5CA7ECB015C094F0DCA290F" = {
-				ContentSize = "{668, 621}";
-				LeftSlideOut = {
-					Collapsed = NO;
-					Frame = "{{0, 0}, {668, 621}}";
-					Split0 = {
-						Collapsed = NO;
-						Frame = "{{0, 0}, {668, 621}}";
-						Split0 = {
-							Frame = "{{0, 0}, {668, 621}}";
-						};
-						SplitCount = 1;
-						Tab0 = {
-							Frame = "{{0, 0}, {484, 208}}";
-						};
-						Tab1 = {
-							Debugger = {
-								Collapsed = NO;
-								Frame = "{{0, 0}, {664, 208}}";
-								Split0 = {
-									Frame = "{{0, 24}, {664, 184}}";
-									Split0 = {
-										Frame = "{{0, 0}, {325, 184}}";
-									};
-									Split1 = {
-										DebugVariablesTableConfiguration = (
-											Name,
-											123,
-											Value,
-											85,
-											Summary,
-											96.123,
-										);
-										Frame = "{{334, 0}, {330, 184}}";
-									};
-									SplitCount = 2;
-								};
-								SplitCount = 1;
-								Tab0 = {
-									Frame = "{{0, 0}, {100, 50}}";
-								};
-								Tab1 = {
-									Frame = "{{0, 0}, {100, 50}}";
-								};
-								TabCount = 2;
-								TabsVisible = YES;
-							};
-							Frame = "{{0, 0}, {664, 208}}";
-							LauncherConfigVersion = 7;
-						};
-						Tab2 = {
-							Frame = "{{0, 0}, {664, 50}}";
-							LauncherConfigVersion = 3;
-							Runner = {
-								Frame = "{{0, 0}, {664, 50}}";
-							};
-						};
-						Tab3 = {
-							BuildMessageFrame = "{{0, 0}, {614, 262}}";
-							BuildTranscriptFrame = "{{0, 271}, {614, 2}}";
-							BuildTranscriptFrameExpanded = YES;
-							Frame = "{{0, 0}, {612, 295}}";
-						};
-						Tab4 = {
-							Frame = "{{0, 0}, {612, 295}}";
-						};
-						TabCount = 5;
-						TabsVisible = NO;
-					};
-					SplitCount = 1;
-					Tab0 = {
-						Frame = "{{0, 0}, {313, 531}}";
-						GroupTreeTableConfiguration = (
-							TargetStatusColumn,
-							18,
-							MainColumn,
-							280,
-						);
-					};
-					Tab1 = {
-						ClassesFrame = "{{0, 0}, {280, 398}}";
-						ClassesTreeTableConfiguration = (
-							PBXBookColumnIdentifier,
-							20,
-							PBXClassColumnIdentifier,
-							237,
-						);
-						Frame = "{{0, 0}, {278, 659}}";
-						MembersFrame = "{{0, 407}, {280, 252}}";
-						MembersTreeTableConfiguration = (
-							PBXBookColumnIdentifier,
-							20,
-							PBXMethodColumnIdentifier,
-							236,
-						);
-					};
-					Tab2 = {
-						Frame = "{{0, 0}, {200, 100}}";
-					};
-					Tab3 = {
-						Frame = "{{0, 0}, {200, 557}}";
-						TargetTableConfiguration = (
-							ActiveObject,
-							16,
-							ObjectNames,
-							202.296,
-						);
-					};
-					Tab4 = {
-						BreakpointsTreeTableConfiguration = (
-							breakpointColumn,
-							197,
-							enabledColumn,
-							31,
-						);
-						Frame = "{{0, 0}, {250, 100}}";
-					};
-					TabCount = 5;
-					TabsVisible = NO;
-				};
-				NavBarShownByDefault = YES;
-				StatusViewVisible = NO;
-				Template = F5CA7ECB015C094F0DCA290F;
-				ToolbarVisible = NO;
-				WindowLocation = "{121, 76}";
-			};
+			PBXPerProjectTemplateStateSaveDate = 70924914;
 			PBXWorkspaceContents = (
 				{
@@ -411,5 +30,5 @@
 							Split0 = {
 								NavContent0 = {
-									bookmark = E111DEF40439DD3700050002;
+									bookmark = E14538A6043A38D800050002;
 									history = (
 										E1F99AC20436806400050002,
@@ -418,11 +37,8 @@
 										E16959490437D96B00050002,
 										E169594A0437D96B00050002,
-										E169594E0437D96B00050002,
-										E16959510437D96B00050002,
 										E16959520437D96B00050002,
 										E16959530437D96B00050002,
 										E169595A0437D96B00050002,
 										E169595B0437D96B00050002,
-										E169595C0437D96B00050002,
 										E169595D0437D96B00050002,
 										E169595E0437D96B00050002,
@@ -446,7 +62,5 @@
 										E14DEC9A0438CDE100050002,
 										E14DEC9B0438CDE100050002,
-										E14DEC9C0438CDE100050002,
 										E14DEC9D0438CDE100050002,
-										E14DEC9E0438CDE100050002,
 										E14DEC9F0438CDE100050002,
 										E14DECA00438CDE100050002,
@@ -455,19 +69,44 @@
 										E14DECA30438CDE100050002,
 										E14DECA40438CDE100050002,
-										E14DECA50438CDE100050002,
 										E14DECA60438CDE100050002,
 										E14DECA80438CDE100050002,
 										E14DECAA0438CDE100050002,
-										E14DECAB0438CDE100050002,
-										E14DECAC0438CDE100050002,
 										E1D90AC60439655B00050002,
-										E1D90AC70439655B00050002,
-										E1D90AC80439655B00050002,
 										E111DEF00439DD3700050002,
 										E111DEF10439DD3700050002,
-										E111DEF20439DD3700050002,
+										E1137340043A0DCD00050002,
+										E1137341043A0DCD00050002,
+										E1137342043A0DCD00050002,
+										E1137343043A0DCD00050002,
+										E1137345043A0DCD00050002,
+										E1137347043A0DCD00050002,
+										E1137348043A0DCD00050002,
+										E1137349043A0DCD00050002,
+										E113734C043A0DCD00050002,
+										E113734E043A0DCD00050002,
+										E1137351043A0DCD00050002,
+										E1137352043A0DCD00050002,
+										E145384F043A38D800050002,
+										E1453850043A38D800050002,
+										E1453851043A38D800050002,
+										E1453852043A38D800050002,
+										E1453853043A38D800050002,
+										E1453854043A38D800050002,
+										E1453855043A38D800050002,
+										E1453856043A38D800050002,
+										E1453857043A38D800050002,
+										E1453858043A38D800050002,
+										E1453859043A38D800050002,
+										E145385A043A38D800050002,
+										E145385B043A38D800050002,
+										E145385C043A38D800050002,
+										E145385D043A38D800050002,
+										E145385E043A38D800050002,
+										E145385F043A38D800050002,
+										E1453860043A38D800050002,
+										E1453861043A38D800050002,
 									);
 									nextStack = (
-										E111DEF30439DD3700050002,
+										E14538A5043A38D800050002,
 									);
 									prevStack = (
@@ -554,9 +193,190 @@
 										E14DECD90438CDE100050002,
 										E1D90ACA0439655B00050002,
+										E1137354043A0DCD00050002,
+										E1137355043A0DCD00050002,
+										E1137356043A0DCD00050002,
+										E1137357043A0DCD00050002,
+										E1137358043A0DCD00050002,
+										E1137359043A0DCD00050002,
+										E113735A043A0DCD00050002,
+										E113735B043A0DCD00050002,
+										E113735C043A0DCD00050002,
+										E113735D043A0DCD00050002,
+										E113735E043A0DCD00050002,
+										E113735F043A0DCD00050002,
+										E1137360043A0DCD00050002,
+										E1137361043A0DCD00050002,
+										E1137362043A0DCD00050002,
+										E1137363043A0DCD00050002,
+										E1137364043A0DCD00050002,
+										E1137365043A0DCD00050002,
+										E1137366043A0DCD00050002,
+										E1137367043A0DCD00050002,
+										E1137368043A0DCD00050002,
+										E1137369043A0DCD00050002,
+										E113736A043A0DCD00050002,
+										E113736B043A0DCD00050002,
+										E113736C043A0DCD00050002,
+										E113736D043A0DCD00050002,
+										E113736E043A0DCD00050002,
+										E113736F043A0DCD00050002,
+										E1137370043A0DCD00050002,
+										E1137371043A0DCD00050002,
+										E1137372043A0DCD00050002,
+										E1137373043A0DCD00050002,
+										E1137374043A0DCD00050002,
+										E1137375043A0DCD00050002,
+										E1137376043A0DCD00050002,
+										E1137377043A0DCD00050002,
+										E1137378043A0DCD00050002,
+										E1137379043A0DCD00050002,
+										E113737A043A0DCD00050002,
+										E113737B043A0DCD00050002,
+										E113737C043A0DCD00050002,
+										E113737D043A0DCD00050002,
+										E113737E043A0DCD00050002,
+										E113737F043A0DCD00050002,
+										E1137380043A0DCD00050002,
+										E1137381043A0DCD00050002,
+										E1137382043A0DCD00050002,
+										E1137383043A0DCD00050002,
+										E1137384043A0DCD00050002,
+										E1137385043A0DCD00050002,
+										E1137386043A0DCD00050002,
+										E1137387043A0DCD00050002,
+										E1137388043A0DCD00050002,
+										E1137389043A0DCD00050002,
+										E113738A043A0DCD00050002,
+										E113738B043A0DCD00050002,
+										E113738C043A0DCD00050002,
+										E113738D043A0DCD00050002,
+										E113738E043A0DCD00050002,
+										E113738F043A0DCD00050002,
+										E1137390043A0DCD00050002,
+										E1137391043A0DCD00050002,
+										E1137392043A0DCD00050002,
+										E1137393043A0DCD00050002,
+										E1137394043A0DCD00050002,
+										E1137395043A0DCD00050002,
+										E1137396043A0DCD00050002,
+										E1137397043A0DCD00050002,
+										E1137398043A0DCD00050002,
+										E1137399043A0DCD00050002,
+										E113739A043A0DCD00050002,
+										E113739B043A0DCD00050002,
+										E113739C043A0DCD00050002,
+										E113739D043A0DCD00050002,
+										E113739E043A0DCD00050002,
+										E113739F043A0DCD00050002,
+										E11373A0043A0DCD00050002,
+										E11373A1043A0DCD00050002,
+										E11373A2043A0DCD00050002,
+										E11373A3043A0DCD00050002,
+										E11373A4043A0DCD00050002,
+										E11373A5043A0DCD00050002,
+										E11373A6043A0DCD00050002,
+										E11373A7043A0DCD00050002,
+										E11373A8043A0DCD00050002,
+										E11373A9043A0DCD00050002,
+										E11373AA043A0DCD00050002,
+										E11373AB043A0DCD00050002,
+										E11373AC043A0DCD00050002,
+										E11373AD043A0DCD00050002,
+										E11373AE043A0DCD00050002,
+										E11373AF043A0DCD00050002,
+										E11373B0043A0DCD00050002,
+										E11373B1043A0DCD00050002,
+										E11373B2043A0DCD00050002,
+										E11373B3043A0DCD00050002,
+										E11373B4043A0DCD00050002,
+										E11373B5043A0DCD00050002,
+										E11373B6043A0DCD00050002,
+										E11373B7043A0DCD00050002,
+										E11373B8043A0DCD00050002,
+										E11373B9043A0DCD00050002,
+										E11373BA043A0DCD00050002,
+										E11373BB043A0DCD00050002,
+										E11373BC043A0DCD00050002,
+										E11373BD043A0DCD00050002,
+										E11373BE043A0DCD00050002,
+										E11373BF043A0DCD00050002,
+										E11373C0043A0DCD00050002,
+										E11373C1043A0DCD00050002,
+										E11373C2043A0DCD00050002,
+										E11373C3043A0DCD00050002,
+										E11373C4043A0DCD00050002,
+										E11373C5043A0DCD00050002,
+										E1453862043A38D800050002,
+										E1453863043A38D800050002,
+										E1453864043A38D800050002,
+										E1453865043A38D800050002,
+										E1453866043A38D800050002,
+										E1453867043A38D800050002,
+										E1453868043A38D800050002,
+										E1453869043A38D800050002,
+										E145386A043A38D800050002,
+										E145386B043A38D800050002,
+										E145386C043A38D800050002,
+										E145386D043A38D800050002,
+										E145386E043A38D800050002,
+										E145386F043A38D800050002,
+										E1453870043A38D800050002,
+										E1453871043A38D800050002,
+										E1453872043A38D800050002,
+										E1453873043A38D800050002,
+										E1453874043A38D800050002,
+										E1453875043A38D800050002,
+										E1453876043A38D800050002,
+										E1453877043A38D800050002,
+										E1453878043A38D800050002,
+										E1453879043A38D800050002,
+										E145387A043A38D800050002,
+										E145387B043A38D800050002,
+										E145387C043A38D800050002,
+										E145387D043A38D800050002,
+										E145387E043A38D800050002,
+										E145387F043A38D800050002,
+										E1453880043A38D800050002,
+										E1453881043A38D800050002,
+										E1453882043A38D800050002,
+										E1453883043A38D800050002,
+										E1453884043A38D800050002,
+										E1453885043A38D800050002,
+										E1453886043A38D800050002,
+										E1453887043A38D800050002,
+										E1453888043A38D800050002,
+										E1453889043A38D800050002,
+										E145388A043A38D800050002,
+										E145388B043A38D800050002,
+										E145388C043A38D800050002,
+										E145388D043A38D800050002,
+										E145388E043A38D800050002,
+										E145388F043A38D800050002,
+										E1453890043A38D800050002,
+										E1453891043A38D800050002,
+										E1453892043A38D800050002,
+										E1453893043A38D800050002,
+										E1453894043A38D800050002,
+										E1453895043A38D800050002,
+										E1453896043A38D800050002,
+										E1453897043A38D800050002,
+										E1453898043A38D800050002,
+										E1453899043A38D800050002,
+										E145389A043A38D800050002,
+										E145389B043A38D800050002,
+										E145389C043A38D800050002,
+										E145389D043A38D800050002,
+										E145389E043A38D800050002,
+										E145389F043A38D800050002,
+										E14538A0043A38D800050002,
+										E14538A1043A38D800050002,
+										E14538A2043A38D800050002,
+										E14538A3043A38D800050002,
+										E14538A4043A38D800050002,
 									);
 								};
 								NavCount = 1;
 								NavGeometry0 = {
-									Frame = "{{0, 0}, {706, 597}}";
+									Frame = "{{0, 0}, {644, 669}}";
 									NavBarVisible = YES;
 								};
@@ -629,12 +449,12 @@
 							Split0 = {
 								NavContent0 = {
-									bookmark = E111DEF50439DD3700050002;
+									bookmark = E14538A8043A38D800050002;
 									history = (
-										E1D90ACD0439655B00050002,
+										E14538A7043A38D800050002,
 									);
 								};
 								NavCount = 1;
 								NavGeometry0 = {
-									Frame = "{{0, 0}, {668, 621}}";
+									Frame = "{{0, 0}, {749, 321}}";
 									NavBarVisible = YES;
 								};
@@ -705,15 +525,15 @@
 			PBXWorkspaceGeometries = (
 				{
-					ContentSize = "{947, 620}";
+					ContentSize = "{945, 692}";
 					LeftSlideOut = {
-						ActiveTab = 2;
-						ActiveTabName = PBXBookmarksModule;
+						ActiveTab = 0;
+						ActiveTabName = PBXGroupTreeModule;
 						Collapsed = NO;
-						Frame = "{{0, 23}, {947, 597}}";
+						Frame = "{{0, 23}, {945, 669}}";
 						Split0 = {
 							Collapsed = NO;
-							Frame = "{{241, 0}, {706, 597}}";
+							Frame = "{{301, 0}, {644, 669}}";
 							Split0 = {
-								Frame = "{{0, 0}, {706, 597}}";
+								Frame = "{{0, 0}, {644, 669}}";
 							};
 							SplitCount = 1;
@@ -777,10 +597,10 @@
 						SplitCount = 1;
 						Tab0 = {
-							Frame = "{{0, 0}, {259, 597}}";
+							Frame = "{{0, 0}, {277, 669}}";
 							GroupTreeTableConfiguration = (
 								TargetStatusColumn,
 								18,
 								MainColumn,
-								226,
+								244,
 							);
 						};
@@ -830,5 +650,5 @@
 					Template = 64ABBB4501FA494900185B06;
 					ToolbarVisible = YES;
-					WindowLocation = "{18, 150}";
+					WindowLocation = "{18, 78}";
 				},
 				{
@@ -843,5 +663,5 @@
 							Frame = "{{0, 0}, {594, 280}}";
 							Split0 = {
-								Frame = "{{1e+06, 1e+06}, {594, 0}}";
+								Frame = "{{1e+06, 1e+06}, {594, 27}}";
 							};
 							SplitCount = 1;
@@ -958,29 +778,31 @@
 					Template = F5534CB2020F3F8A0DCA290F;
 					ToolbarVisible = YES;
-					WindowLocation = "{489, 356}";
+					WindowLocation = "{373, 54}";
 				},
 				{
-					ContentSize = "{668, 621}";
+					ContentSize = "{773, 558}";
 					LeftSlideOut = {
 						Collapsed = NO;
-						Frame = "{{0, 0}, {668, 621}}";
+						Frame = "{{0, 23}, {773, 535}}";
 						Split0 = {
+							ActiveTab = 0;
+							ActiveTabName = PBXDebugSessionModule;
 							Collapsed = NO;
-							Frame = "{{0, 0}, {668, 621}}";
+							Frame = "{{24, 0}, {749, 535}}";
 							Split0 = {
-								Frame = "{{0, 0}, {668, 621}}";
+								Frame = "{{0, 214}, {749, 321}}";
 							};
 							SplitCount = 1;
 							Tab0 = {
-								Frame = "{{0, 0}, {484, 208}}";
+								Frame = "{{0, 0}, {749, 267}}";
 							};
 							Tab1 = {
 								Debugger = {
 									Collapsed = NO;
-									Frame = "{{0, 0}, {664, 208}}";
+									Frame = "{{0, 0}, {749, 208}}";
 									Split0 = {
-										Frame = "{{0, 24}, {664, 184}}";
+										Frame = "{{0, 24}, {749, 184}}";
 										Split0 = {
-											Frame = "{{0, 0}, {325, 184}}";
+											Frame = "{{0, 0}, {367, 184}}";
 										};
 										Split1 = {
@@ -991,7 +813,7 @@
 												85,
 												Summary,
-												96.123,
+												139.123,
 											);
-											Frame = "{{334, 0}, {330, 184}}";
+											Frame = "{{376, 0}, {373, 184}}";
 										};
 										SplitCount = 2;
@@ -1007,5 +829,5 @@
 									TabsVisible = YES;
 								};
-								Frame = "{{0, 0}, {664, 208}}";
+								Frame = "{{0, 0}, {749, 208}}";
 								LauncherConfigVersion = 7;
 							};
@@ -1078,11 +900,11 @@
 						};
 						TabCount = 5;
-						TabsVisible = NO;
+						TabsVisible = YES;
 					};
 					NavBarShownByDefault = YES;
-					StatusViewVisible = NO;
-					Template = F5CA7ECB015C094F0DCA290F;
-					ToolbarVisible = NO;
-					WindowLocation = "{121, 76}";
+					StatusViewVisible = YES;
+					Template = F5CA7ECC015C09990DCA290F;
+					ToolbarVisible = YES;
+					WindowLocation = "{13, 212}";
 				},
 				{
@@ -1212,16 +1034,228 @@
 					Template = F5314676015831810DCA290F;
 					ToolbarVisible = YES;
-					WindowLocation = "{7, 336}";
+					WindowLocation = "{102, 35}";
 				},
 			);
-			PBXWorkspaceStateSaveDate = 70906457;
+			PBXWorkspaceStateSaveDate = 70924914;
 		};
 		perUserProjectItems = {
 			E111DEF00439DD3700050002 = E111DEF00439DD3700050002;
 			E111DEF10439DD3700050002 = E111DEF10439DD3700050002;
-			E111DEF20439DD3700050002 = E111DEF20439DD3700050002;
-			E111DEF30439DD3700050002 = E111DEF30439DD3700050002;
-			E111DEF40439DD3700050002 = E111DEF40439DD3700050002;
-			E111DEF50439DD3700050002 = E111DEF50439DD3700050002;
+			E1137340043A0DCD00050002 = E1137340043A0DCD00050002;
+			E1137341043A0DCD00050002 = E1137341043A0DCD00050002;
+			E1137342043A0DCD00050002 = E1137342043A0DCD00050002;
+			E1137343043A0DCD00050002 = E1137343043A0DCD00050002;
+			E1137345043A0DCD00050002 = E1137345043A0DCD00050002;
+			E1137347043A0DCD00050002 = E1137347043A0DCD00050002;
+			E1137348043A0DCD00050002 = E1137348043A0DCD00050002;
+			E1137349043A0DCD00050002 = E1137349043A0DCD00050002;
+			E113734C043A0DCD00050002 = E113734C043A0DCD00050002;
+			E113734E043A0DCD00050002 = E113734E043A0DCD00050002;
+			E1137351043A0DCD00050002 = E1137351043A0DCD00050002;
+			E1137352043A0DCD00050002 = E1137352043A0DCD00050002;
+			E1137354043A0DCD00050002 = E1137354043A0DCD00050002;
+			E1137355043A0DCD00050002 = E1137355043A0DCD00050002;
+			E1137356043A0DCD00050002 = E1137356043A0DCD00050002;
+			E1137357043A0DCD00050002 = E1137357043A0DCD00050002;
+			E1137358043A0DCD00050002 = E1137358043A0DCD00050002;
+			E1137359043A0DCD00050002 = E1137359043A0DCD00050002;
+			E113735A043A0DCD00050002 = E113735A043A0DCD00050002;
+			E113735B043A0DCD00050002 = E113735B043A0DCD00050002;
+			E113735C043A0DCD00050002 = E113735C043A0DCD00050002;
+			E113735D043A0DCD00050002 = E113735D043A0DCD00050002;
+			E113735E043A0DCD00050002 = E113735E043A0DCD00050002;
+			E113735F043A0DCD00050002 = E113735F043A0DCD00050002;
+			E1137360043A0DCD00050002 = E1137360043A0DCD00050002;
+			E1137361043A0DCD00050002 = E1137361043A0DCD00050002;
+			E1137362043A0DCD00050002 = E1137362043A0DCD00050002;
+			E1137363043A0DCD00050002 = E1137363043A0DCD00050002;
+			E1137364043A0DCD00050002 = E1137364043A0DCD00050002;
+			E1137365043A0DCD00050002 = E1137365043A0DCD00050002;
+			E1137366043A0DCD00050002 = E1137366043A0DCD00050002;
+			E1137367043A0DCD00050002 = E1137367043A0DCD00050002;
+			E1137368043A0DCD00050002 = E1137368043A0DCD00050002;
+			E1137369043A0DCD00050002 = E1137369043A0DCD00050002;
+			E113736A043A0DCD00050002 = E113736A043A0DCD00050002;
+			E113736B043A0DCD00050002 = E113736B043A0DCD00050002;
+			E113736C043A0DCD00050002 = E113736C043A0DCD00050002;
+			E113736D043A0DCD00050002 = E113736D043A0DCD00050002;
+			E113736E043A0DCD00050002 = E113736E043A0DCD00050002;
+			E113736F043A0DCD00050002 = E113736F043A0DCD00050002;
+			E1137370043A0DCD00050002 = E1137370043A0DCD00050002;
+			E1137371043A0DCD00050002 = E1137371043A0DCD00050002;
+			E1137372043A0DCD00050002 = E1137372043A0DCD00050002;
+			E1137373043A0DCD00050002 = E1137373043A0DCD00050002;
+			E1137374043A0DCD00050002 = E1137374043A0DCD00050002;
+			E1137375043A0DCD00050002 = E1137375043A0DCD00050002;
+			E1137376043A0DCD00050002 = E1137376043A0DCD00050002;
+			E1137377043A0DCD00050002 = E1137377043A0DCD00050002;
+			E1137378043A0DCD00050002 = E1137378043A0DCD00050002;
+			E1137379043A0DCD00050002 = E1137379043A0DCD00050002;
+			E113737A043A0DCD00050002 = E113737A043A0DCD00050002;
+			E113737B043A0DCD00050002 = E113737B043A0DCD00050002;
+			E113737C043A0DCD00050002 = E113737C043A0DCD00050002;
+			E113737D043A0DCD00050002 = E113737D043A0DCD00050002;
+			E113737E043A0DCD00050002 = E113737E043A0DCD00050002;
+			E113737F043A0DCD00050002 = E113737F043A0DCD00050002;
+			E1137380043A0DCD00050002 = E1137380043A0DCD00050002;
+			E1137381043A0DCD00050002 = E1137381043A0DCD00050002;
+			E1137382043A0DCD00050002 = E1137382043A0DCD00050002;
+			E1137383043A0DCD00050002 = E1137383043A0DCD00050002;
+			E1137384043A0DCD00050002 = E1137384043A0DCD00050002;
+			E1137385043A0DCD00050002 = E1137385043A0DCD00050002;
+			E1137386043A0DCD00050002 = E1137386043A0DCD00050002;
+			E1137387043A0DCD00050002 = E1137387043A0DCD00050002;
+			E1137388043A0DCD00050002 = E1137388043A0DCD00050002;
+			E1137389043A0DCD00050002 = E1137389043A0DCD00050002;
+			E113738A043A0DCD00050002 = E113738A043A0DCD00050002;
+			E113738B043A0DCD00050002 = E113738B043A0DCD00050002;
+			E113738C043A0DCD00050002 = E113738C043A0DCD00050002;
+			E113738D043A0DCD00050002 = E113738D043A0DCD00050002;
+			E113738E043A0DCD00050002 = E113738E043A0DCD00050002;
+			E113738F043A0DCD00050002 = E113738F043A0DCD00050002;
+			E1137390043A0DCD00050002 = E1137390043A0DCD00050002;
+			E1137391043A0DCD00050002 = E1137391043A0DCD00050002;
+			E1137392043A0DCD00050002 = E1137392043A0DCD00050002;
+			E1137393043A0DCD00050002 = E1137393043A0DCD00050002;
+			E1137394043A0DCD00050002 = E1137394043A0DCD00050002;
+			E1137395043A0DCD00050002 = E1137395043A0DCD00050002;
+			E1137396043A0DCD00050002 = E1137396043A0DCD00050002;
+			E1137397043A0DCD00050002 = E1137397043A0DCD00050002;
+			E1137398043A0DCD00050002 = E1137398043A0DCD00050002;
+			E1137399043A0DCD00050002 = E1137399043A0DCD00050002;
+			E113739A043A0DCD00050002 = E113739A043A0DCD00050002;
+			E113739B043A0DCD00050002 = E113739B043A0DCD00050002;
+			E113739C043A0DCD00050002 = E113739C043A0DCD00050002;
+			E113739D043A0DCD00050002 = E113739D043A0DCD00050002;
+			E113739E043A0DCD00050002 = E113739E043A0DCD00050002;
+			E113739F043A0DCD00050002 = E113739F043A0DCD00050002;
+			E11373A0043A0DCD00050002 = E11373A0043A0DCD00050002;
+			E11373A1043A0DCD00050002 = E11373A1043A0DCD00050002;
+			E11373A2043A0DCD00050002 = E11373A2043A0DCD00050002;
+			E11373A3043A0DCD00050002 = E11373A3043A0DCD00050002;
+			E11373A4043A0DCD00050002 = E11373A4043A0DCD00050002;
+			E11373A5043A0DCD00050002 = E11373A5043A0DCD00050002;
+			E11373A6043A0DCD00050002 = E11373A6043A0DCD00050002;
+			E11373A7043A0DCD00050002 = E11373A7043A0DCD00050002;
+			E11373A8043A0DCD00050002 = E11373A8043A0DCD00050002;
+			E11373A9043A0DCD00050002 = E11373A9043A0DCD00050002;
+			E11373AA043A0DCD00050002 = E11373AA043A0DCD00050002;
+			E11373AB043A0DCD00050002 = E11373AB043A0DCD00050002;
+			E11373AC043A0DCD00050002 = E11373AC043A0DCD00050002;
+			E11373AD043A0DCD00050002 = E11373AD043A0DCD00050002;
+			E11373AE043A0DCD00050002 = E11373AE043A0DCD00050002;
+			E11373AF043A0DCD00050002 = E11373AF043A0DCD00050002;
+			E11373B0043A0DCD00050002 = E11373B0043A0DCD00050002;
+			E11373B1043A0DCD00050002 = E11373B1043A0DCD00050002;
+			E11373B2043A0DCD00050002 = E11373B2043A0DCD00050002;
+			E11373B3043A0DCD00050002 = E11373B3043A0DCD00050002;
+			E11373B4043A0DCD00050002 = E11373B4043A0DCD00050002;
+			E11373B5043A0DCD00050002 = E11373B5043A0DCD00050002;
+			E11373B6043A0DCD00050002 = E11373B6043A0DCD00050002;
+			E11373B7043A0DCD00050002 = E11373B7043A0DCD00050002;
+			E11373B8043A0DCD00050002 = E11373B8043A0DCD00050002;
+			E11373B9043A0DCD00050002 = E11373B9043A0DCD00050002;
+			E11373BA043A0DCD00050002 = E11373BA043A0DCD00050002;
+			E11373BB043A0DCD00050002 = E11373BB043A0DCD00050002;
+			E11373BC043A0DCD00050002 = E11373BC043A0DCD00050002;
+			E11373BD043A0DCD00050002 = E11373BD043A0DCD00050002;
+			E11373BE043A0DCD00050002 = E11373BE043A0DCD00050002;
+			E11373BF043A0DCD00050002 = E11373BF043A0DCD00050002;
+			E11373C0043A0DCD00050002 = E11373C0043A0DCD00050002;
+			E11373C1043A0DCD00050002 = E11373C1043A0DCD00050002;
+			E11373C2043A0DCD00050002 = E11373C2043A0DCD00050002;
+			E11373C3043A0DCD00050002 = E11373C3043A0DCD00050002;
+			E11373C4043A0DCD00050002 = E11373C4043A0DCD00050002;
+			E11373C5043A0DCD00050002 = E11373C5043A0DCD00050002;
+			E145384F043A38D800050002 = E145384F043A38D800050002;
+			E1453850043A38D800050002 = E1453850043A38D800050002;
+			E1453851043A38D800050002 = E1453851043A38D800050002;
+			E1453852043A38D800050002 = E1453852043A38D800050002;
+			E1453853043A38D800050002 = E1453853043A38D800050002;
+			E1453854043A38D800050002 = E1453854043A38D800050002;
+			E1453855043A38D800050002 = E1453855043A38D800050002;
+			E1453856043A38D800050002 = E1453856043A38D800050002;
+			E1453857043A38D800050002 = E1453857043A38D800050002;
+			E1453858043A38D800050002 = E1453858043A38D800050002;
+			E1453859043A38D800050002 = E1453859043A38D800050002;
+			E145385A043A38D800050002 = E145385A043A38D800050002;
+			E145385B043A38D800050002 = E145385B043A38D800050002;
+			E145385C043A38D800050002 = E145385C043A38D800050002;
+			E145385D043A38D800050002 = E145385D043A38D800050002;
+			E145385E043A38D800050002 = E145385E043A38D800050002;
+			E145385F043A38D800050002 = E145385F043A38D800050002;
+			E1453860043A38D800050002 = E1453860043A38D800050002;
+			E1453861043A38D800050002 = E1453861043A38D800050002;
+			E1453862043A38D800050002 = E1453862043A38D800050002;
+			E1453863043A38D800050002 = E1453863043A38D800050002;
+			E1453864043A38D800050002 = E1453864043A38D800050002;
+			E1453865043A38D800050002 = E1453865043A38D800050002;
+			E1453866043A38D800050002 = E1453866043A38D800050002;
+			E1453867043A38D800050002 = E1453867043A38D800050002;
+			E1453868043A38D800050002 = E1453868043A38D800050002;
+			E1453869043A38D800050002 = E1453869043A38D800050002;
+			E145386A043A38D800050002 = E145386A043A38D800050002;
+			E145386B043A38D800050002 = E145386B043A38D800050002;
+			E145386C043A38D800050002 = E145386C043A38D800050002;
+			E145386D043A38D800050002 = E145386D043A38D800050002;
+			E145386E043A38D800050002 = E145386E043A38D800050002;
+			E145386F043A38D800050002 = E145386F043A38D800050002;
+			E1453870043A38D800050002 = E1453870043A38D800050002;
+			E1453871043A38D800050002 = E1453871043A38D800050002;
+			E1453872043A38D800050002 = E1453872043A38D800050002;
+			E1453873043A38D800050002 = E1453873043A38D800050002;
+			E1453874043A38D800050002 = E1453874043A38D800050002;
+			E1453875043A38D800050002 = E1453875043A38D800050002;
+			E1453876043A38D800050002 = E1453876043A38D800050002;
+			E1453877043A38D800050002 = E1453877043A38D800050002;
+			E1453878043A38D800050002 = E1453878043A38D800050002;
+			E1453879043A38D800050002 = E1453879043A38D800050002;
+			E145387A043A38D800050002 = E145387A043A38D800050002;
+			E145387B043A38D800050002 = E145387B043A38D800050002;
+			E145387C043A38D800050002 = E145387C043A38D800050002;
+			E145387D043A38D800050002 = E145387D043A38D800050002;
+			E145387E043A38D800050002 = E145387E043A38D800050002;
+			E145387F043A38D800050002 = E145387F043A38D800050002;
+			E1453880043A38D800050002 = E1453880043A38D800050002;
+			E1453881043A38D800050002 = E1453881043A38D800050002;
+			E1453882043A38D800050002 = E1453882043A38D800050002;
+			E1453883043A38D800050002 = E1453883043A38D800050002;
+			E1453884043A38D800050002 = E1453884043A38D800050002;
+			E1453885043A38D800050002 = E1453885043A38D800050002;
+			E1453886043A38D800050002 = E1453886043A38D800050002;
+			E1453887043A38D800050002 = E1453887043A38D800050002;
+			E1453888043A38D800050002 = E1453888043A38D800050002;
+			E1453889043A38D800050002 = E1453889043A38D800050002;
+			E145388A043A38D800050002 = E145388A043A38D800050002;
+			E145388B043A38D800050002 = E145388B043A38D800050002;
+			E145388C043A38D800050002 = E145388C043A38D800050002;
+			E145388D043A38D800050002 = E145388D043A38D800050002;
+			E145388E043A38D800050002 = E145388E043A38D800050002;
+			E145388F043A38D800050002 = E145388F043A38D800050002;
+			E1453890043A38D800050002 = E1453890043A38D800050002;
+			E1453891043A38D800050002 = E1453891043A38D800050002;
+			E1453892043A38D800050002 = E1453892043A38D800050002;
+			E1453893043A38D800050002 = E1453893043A38D800050002;
+			E1453894043A38D800050002 = E1453894043A38D800050002;
+			E1453895043A38D800050002 = E1453895043A38D800050002;
+			E1453896043A38D800050002 = E1453896043A38D800050002;
+			E1453897043A38D800050002 = E1453897043A38D800050002;
+			E1453898043A38D800050002 = E1453898043A38D800050002;
+			E1453899043A38D800050002 = E1453899043A38D800050002;
+			E145389A043A38D800050002 = E145389A043A38D800050002;
+			E145389B043A38D800050002 = E145389B043A38D800050002;
+			E145389C043A38D800050002 = E145389C043A38D800050002;
+			E145389D043A38D800050002 = E145389D043A38D800050002;
+			E145389E043A38D800050002 = E145389E043A38D800050002;
+			E145389F043A38D800050002 = E145389F043A38D800050002;
+			E14538A0043A38D800050002 = E14538A0043A38D800050002;
+			E14538A1043A38D800050002 = E14538A1043A38D800050002;
+			E14538A2043A38D800050002 = E14538A2043A38D800050002;
+			E14538A3043A38D800050002 = E14538A3043A38D800050002;
+			E14538A4043A38D800050002 = E14538A4043A38D800050002;
+			E14538A5043A38D800050002 = E14538A5043A38D800050002;
+			E14538A6043A38D800050002 = E14538A6043A38D800050002;
+			E14538A7043A38D800050002 = E14538A7043A38D800050002;
+			E14538A8043A38D800050002 = E14538A8043A38D800050002;
 			E14DEC8E0438CDE100050002 = E14DEC8E0438CDE100050002;
 			E14DEC8F0438CDE100050002 = E14DEC8F0438CDE100050002;
@@ -1238,7 +1272,5 @@
 			E14DEC9A0438CDE100050002 = E14DEC9A0438CDE100050002;
 			E14DEC9B0438CDE100050002 = E14DEC9B0438CDE100050002;
-			E14DEC9C0438CDE100050002 = E14DEC9C0438CDE100050002;
 			E14DEC9D0438CDE100050002 = E14DEC9D0438CDE100050002;
-			E14DEC9E0438CDE100050002 = E14DEC9E0438CDE100050002;
 			E14DEC9F0438CDE100050002 = E14DEC9F0438CDE100050002;
 			E14DECA00438CDE100050002 = E14DECA00438CDE100050002;
@@ -1247,10 +1279,7 @@
 			E14DECA30438CDE100050002 = E14DECA30438CDE100050002;
 			E14DECA40438CDE100050002 = E14DECA40438CDE100050002;
-			E14DECA50438CDE100050002 = E14DECA50438CDE100050002;
 			E14DECA60438CDE100050002 = E14DECA60438CDE100050002;
 			E14DECA80438CDE100050002 = E14DECA80438CDE100050002;
 			E14DECAA0438CDE100050002 = E14DECAA0438CDE100050002;
-			E14DECAB0438CDE100050002 = E14DECAB0438CDE100050002;
-			E14DECAC0438CDE100050002 = E14DECAC0438CDE100050002;
 			E14DECAF0438CDE100050002 = E14DECAF0438CDE100050002;
 			E14DECB00438CDE100050002 = E14DECB00438CDE100050002;
@@ -1298,11 +1327,8 @@
 			E16959490437D96B00050002 = E16959490437D96B00050002;
 			E169594A0437D96B00050002 = E169594A0437D96B00050002;
-			E169594E0437D96B00050002 = E169594E0437D96B00050002;
-			E16959510437D96B00050002 = E16959510437D96B00050002;
 			E16959520437D96B00050002 = E16959520437D96B00050002;
 			E16959530437D96B00050002 = E16959530437D96B00050002;
 			E169595A0437D96B00050002 = E169595A0437D96B00050002;
 			E169595B0437D96B00050002 = E169595B0437D96B00050002;
-			E169595C0437D96B00050002 = E169595C0437D96B00050002;
 			E169595D0437D96B00050002 = E169595D0437D96B00050002;
 			E169595E0437D96B00050002 = E169595E0437D96B00050002;
@@ -1344,8 +1370,5 @@
 			E16959890437D96B00050002 = E16959890437D96B00050002;
 			E1D90AC60439655B00050002 = E1D90AC60439655B00050002;
-			E1D90AC70439655B00050002 = E1D90AC70439655B00050002;
-			E1D90AC80439655B00050002 = E1D90AC80439655B00050002;
 			E1D90ACA0439655B00050002 = E1D90ACA0439655B00050002;
-			E1D90ACD0439655B00050002 = E1D90ACD0439655B00050002;
 			E1F99AC20436806400050002 = E1F99AC20436806400050002;
 			E1F99AC30436806400050002 = E1F99AC30436806400050002;
@@ -1391,50 +1414,4 @@
 		vrLoc = 1056;
 	};
-	E111DEF20439DD3700050002 = {
-		fRef = E1F993C20436280200050002;
-		isa = PBXTextBookmark;
-		name = "NJRHotKeyField.m: 66";
-		rLen = 11;
-		rLoc = 2216;
-		rType = 0;
-		vrLen = 1327;
-		vrLoc = 1435;
-	};
-	E111DEF30439DD3700050002 = {
-		fRef = E111DEF60439DD3700050002;
-		isa = PBXTextBookmark;
-		name = "NSText.h: 57";
-		rLen = 7;
-		rLoc = 1563;
-		rType = 0;
-		vrLen = 1301;
-		vrLoc = 1056;
-	};
-	E111DEF40439DD3700050002 = {
-		fRef = E1F993C20436280200050002;
-		isa = PBXTextBookmark;
-		name = "NJRHotKeyField.m: 66";
-		rLen = 6;
-		rLoc = 2216;
-		rType = 0;
-		vrLen = 1327;
-		vrLoc = 1435;
-	};
-	E111DEF50439DD3700050002 = {
-		fRef = E1F0B14F03ADBE3800AEFBE0;
-		isa = PBXTextBookmark;
-		name = "NSString-NJRExtensions.m: 82";
-		rLen = 0;
-		rLoc = 3147;
-		rType = 0;
-		vrLen = 2221;
-		vrLoc = 2909;
-	};
-	E111DEF60439DD3700050002 = {
-		isa = PBXFileReference;
-		name = NSText.h;
-		path = /System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSText.h;
-		refType = 0;
-	};
 	E111DEF70439DD3700050002 = {
 		isa = PBXFileReference;
@@ -1449,7 +1426,444 @@
 		refType = 0;
 	};
-	E113730C0439F6E500050002 = {
+	E11373180439FE6A00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 27";
+		rLen = 0;
+		rLoc = 1782;
+		rType = 0;
+		vrLen = 1001;
+		vrLoc = 30;
+	};
+	E1137340043A0DCD00050002 = {
+		fRef = E11373C8043A0DCD00050002;
+		isa = PBXTextBookmark;
+		name = "NSTextField.h: 37";
+		rLen = 0;
+		rLoc = 942;
+		rType = 0;
+		vrLen = 1283;
+		vrLoc = 295;
+	};
+	E1137341043A0DCD00050002 = {
+		fRef = E11373C9043A0DCD00050002;
+		isa = PBXTextBookmark;
+		name = "NSApplication.h: 174";
+		rLen = 68;
+		rLoc = 6101;
+		rType = 0;
+		vrLen = 1695;
+		vrLoc = 4867;
+	};
+	E1137342043A0DCD00050002 = {
+		fRef = E11373CA043A0DCD00050002;
+		glyphRangeLength = 1209;
+		glyphRangeLocation = 44945;
+		isa = PBXDocBookmark;
+		name = "NSApplication.html: tryToPerform...";
+	};
+	E1137343043A0DCD00050002 = {
+		fRef = F59E47A8036AAA6D016B311C;
+		isa = PBXTextBookmark;
+		name = "PSAlert.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 823;
+		vrLoc = 0;
+	};
+	E1137345043A0DCD00050002 = {
+		fRef = E11373CB043A0DCD00050002;
+		isa = PBXTextBookmark;
+		name = "NSCharacterSet.h: 29";
+		rLen = 23;
+		rLoc = 882;
+		rType = 0;
+		vrLen = 1418;
+		vrLoc = 0;
+	};
+	E1137347043A0DCD00050002 = {
+		fRef = F59F6CB40354E7DA01AEEDB1;
+		isa = PBXTextBookmark;
+		name = "PSAlarm.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1337;
+		vrLoc = 0;
+	};
+	E1137348043A0DCD00050002 = {
+		fRef = F59F6CB50354E7DA01AEEDB1;
+		isa = PBXTextBookmark;
+		name = "PSAlarm.m: 480";
+		rLen = 40;
+		rLoc = 16278;
+		rType = 0;
+		vrLen = 1597;
+		vrLoc = 16591;
+	};
+	E1137349043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 22";
+		rLen = 0;
+		rLoc = 358;
+		rType = 0;
+		vrLen = 581;
+		vrLoc = 0;
+	};
+	E113734C043A0DCD00050002 = {
+		fRef = E11373CF043A0DCD00050002;
+		isa = PBXTextBookmark;
+		name = "NSEvent.h: 68";
+		rLen = 28;
+		rLoc = 2033;
+		rType = 0;
+		vrLen = 1503;
+		vrLoc = 558;
+	};
+	E113734E043A0DCD00050002 = {
 		fRef = E1F993C60436310F00050002;
 		isa = PBXTextBookmark;
+		name = "PSPreferencesController.h: hotKeySet:";
+		rLen = 15;
+		rLoc = 486;
+		rType = 0;
+		vrLen = 558;
+		vrLoc = 0;
+	};
+	E1137351043A0DCD00050002 = {
+		fRef = E11373CC043A0DCD00050002;
+		isa = PBXTextBookmark;
+		name = "CarbonEvents.h: 4967";
+		rLen = 55;
+		rLoc = 192334;
+		rType = 0;
+		vrLen = 1556;
+		vrLoc = 191621;
+	};
+	E1137352043A0DCD00050002 = {
+		fRef = E11373CD043A0DCD00050002;
+		isa = PBXTextBookmark;
+		name = "CarbonEventsCore.h: 1781";
+		rLen = 105;
+		rLoc = 60609;
+		rType = 0;
+		vrLen = 1252;
+		vrLoc = 59924;
+	};
+	E1137354043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 122";
+		rLen = 0;
+		rLoc = 4239;
+		rType = 0;
+		vrLen = 1431;
+		vrLoc = 3199;
+	};
+	E1137355043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: clear:";
+		rLen = 0;
+		rLoc = 327;
+		rType = 0;
+		vrLen = 576;
+		vrLoc = 0;
+	};
+	E1137356043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 154";
+		rLen = 0;
+		rLoc = 5435;
+		rType = 0;
+		vrLen = 1348;
+		vrLoc = 3749;
+	};
+	E1137357043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 17";
+		rLen = 0;
+		rLoc = 326;
+		rType = 0;
+		vrLen = 576;
+		vrLoc = 0;
+	};
+	E1137358043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 178";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 737;
+		vrLoc = 4698;
+	};
+	E1137359043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 17";
+		rLen = 0;
+		rLoc = 326;
+		rType = 0;
+		vrLen = 576;
+		vrLoc = 0;
+	};
+	E113735A043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 178";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 737;
+		vrLoc = 4698;
+	};
+	E113735B043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 17";
+		rLen = 0;
+		rLoc = 326;
+		rType = 0;
+		vrLen = 576;
+		vrLoc = 0;
+	};
+	E113735C043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 157";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 737;
+		vrLoc = 4698;
+	};
+	E113735D043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 17";
+		rLen = 0;
+		rLoc = 326;
+		rType = 0;
+		vrLen = 576;
+		vrLoc = 0;
+	};
+	E113735E043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 157";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 737;
+		vrLoc = 4698;
+	};
+	E113735F043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 17";
+		rLen = 0;
+		rLoc = 326;
+		rType = 0;
+		vrLen = 576;
+		vrLoc = 0;
+	};
+	E1137360043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 158";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 840;
+		vrLoc = 4595;
+	};
+	E1137361043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 13";
+		rLen = 0;
+		rLoc = 263;
+		rType = 0;
+		vrLen = 576;
+		vrLoc = 0;
+	};
+	E1137362043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 159";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 840;
+		vrLoc = 4595;
+	};
+	E1137363043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 14";
+		rLen = 0;
+		rLoc = 263;
+		rType = 0;
+		vrLen = 576;
+		vrLoc = 0;
+	};
+	E1137364043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 160";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 840;
+		vrLoc = 4595;
+	};
+	E1137365043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 15";
+		rLen = 0;
+		rLoc = 263;
+		rType = 0;
+		vrLen = 576;
+		vrLoc = 0;
+	};
+	E1137366043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 160";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 840;
+		vrLoc = 4595;
+	};
+	E1137367043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 15";
+		rLen = 0;
+		rLoc = 263;
+		rType = 0;
+		vrLen = 576;
+		vrLoc = 0;
+	};
+	E1137368043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 160";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 840;
+		vrLoc = 4595;
+	};
+	E1137369043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 13";
+		rLen = 0;
+		rLoc = 263;
+		rType = 0;
+		vrLen = 576;
+		vrLoc = 0;
+	};
+	E113736A043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 163";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 840;
+		vrLoc = 4595;
+	};
+	E113736B043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 21";
+		rLen = 0;
+		rLoc = 358;
+		rType = 0;
+		vrLen = 623;
+		vrLoc = 0;
+	};
+	E113736C043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 163";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 840;
+		vrLoc = 4595;
+	};
+	E113736D043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 20";
+		rLen = 0;
+		rLoc = 358;
+		rType = 0;
+		vrLen = 627;
+		vrLoc = 0;
+	};
+	E113736E043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 155";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 840;
+		vrLoc = 4595;
+	};
+	E113736F043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 21";
+		rLen = 0;
+		rLoc = 358;
+		rType = 0;
+		vrLen = 673;
+		vrLoc = 0;
+	};
+	E1137370043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 172";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 619;
+		vrLoc = 4816;
+	};
+	E1137371043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: setFromPropertyList:";
+		rLen = 0;
+		rLoc = 358;
+		rType = 0;
+		vrLen = 673;
+		vrLoc = 0;
+	};
+	E1137372043A0DCD00050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: 25";
+		rLen = 0;
+		rLoc = 2264;
+		rType = 0;
+		vrLen = 848;
+		vrLoc = 0;
+	};
+	E1137373043A0DCD00050002 = {
+		fRef = E1F993C60436310F00050002;
+		isa = PBXTextBookmark;
 		name = "PSPreferencesController.h: __BIG_ENDIAN__";
 		rLen = 0;
@@ -1459,13 +1873,865 @@
 		vrLoc = 0;
 	};
-	E113730D0439F6E500050002 = {
+	E1137374043A0DCD00050002 = {
 		fRef = E1F993C70436310F00050002;
 		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: ";
+		rLen = 0;
+		rLoc = 4105;
+		rType = 0;
+		vrLen = 1673;
+		vrLoc = 904;
+	};
+	E1137375043A0DCD00050002 = {
+		fRef = E1F993C60436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.h: __BIG_ENDIAN__";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 483;
+		vrLoc = 0;
+	};
+	E1137376043A0DCD00050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: ";
+		rLen = 0;
+		rLoc = 4105;
+		rType = 0;
+		vrLen = 1678;
+		vrLoc = 904;
+	};
+	E1137377043A0DCD00050002 = {
+		fRef = E1F993C60436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.h: __BIG_ENDIAN__";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 483;
+		vrLoc = 0;
+	};
+	E1137378043A0DCD00050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
 		name = "PSPreferencesController.m: 74";
 		rLen = 0;
-		rLoc = 2518;
-		rType = 0;
-		vrLen = 1480;
+		rLoc = 4207;
+		rType = 0;
+		vrLen = 1488;
 		vrLoc = 2169;
+	};
+	E1137379043A0DCD00050002 = {
+		fRef = E1F993C60436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.h: 14";
+		rLen = 14;
+		rLoc = 283;
+		rType = 0;
+		vrLen = 483;
+		vrLoc = 0;
+	};
+	E113737A043A0DCD00050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: hotKeySet:";
+		rLen = 48;
+		rLoc = 4131;
+		rType = 0;
+		vrLen = 1428;
+		vrLoc = 2248;
+	};
+	E113737B043A0DCD00050002 = {
+		fRef = E1F993C60436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.h: 24";
+		rLen = 0;
+		rLoc = 558;
+		rType = 0;
+		vrLen = 532;
+		vrLoc = 0;
+	};
+	E113737C043A0DCD00050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: defaults";
+		rLen = 0;
+		rLoc = 2079;
+		rType = 0;
+		vrLen = 1168;
+		vrLoc = 47;
+	};
+	E113737D043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 226;
+		vrLoc = 0;
+	};
+	E113737E043A0DCD00050002 = {
+		fRef = E14DEC830438969400050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyFieldCell.m: selectWithFrame:inView:editor:delegate:start:length:";
+		rLen = 0;
+		rLoc = 408;
+		rType = 0;
+		vrLen = 591;
+		vrLoc = 0;
+	};
+	E113737F043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 157";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 1348;
+		vrLoc = 3970;
+	};
+	E1137380043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 37";
+		rLen = 0;
+		rLoc = 2821;
+		rType = 0;
+		vrLen = 1054;
+		vrLoc = 0;
+	};
+	E1137381043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 157";
+		rLen = 0;
+		rLoc = 5429;
+		rType = 0;
+		vrLen = 1348;
+		vrLoc = 3970;
+	};
+	E1137382043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 12";
+		rLen = 0;
+		rLoc = 197;
+		rType = 0;
+		vrLen = 617;
+		vrLoc = 0;
+	};
+	E1137383043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 37";
+		rLen = 0;
+		rLoc = 2821;
+		rType = 0;
+		vrLen = 1054;
+		vrLoc = 0;
+	};
+	E1137384043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: 16";
+		rLen = 0;
+		rLoc = 314;
+		rType = 0;
+		vrLen = 322;
+		vrLoc = 0;
+	};
+	E1137385043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 137";
+		rLen = 0;
+		rLoc = 4485;
+		rType = 0;
+		vrLen = 1505;
+		vrLoc = 210;
+	};
+	E1137386043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 12";
+		rLen = 0;
+		rLoc = 197;
+		rType = 0;
+		vrLen = 617;
+		vrLoc = 0;
+	};
+	E1137387043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: _setUp";
+		rLen = 0;
+		rLoc = 1263;
+		rType = 0;
+		vrLen = 1037;
+		vrLoc = 903;
+	};
+	E1137388043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: clear:";
+		rLen = 0;
+		rLoc = 326;
+		rType = 0;
+		vrLen = 641;
+		vrLoc = 0;
+	};
+	E1137389043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: ";
+		rLen = 0;
+		rLoc = 1263;
+		rType = 0;
+		vrLen = 1037;
+		vrLoc = 903;
+	};
+	E113738A043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 22";
+		rLen = 0;
+		rLoc = 358;
+		rType = 0;
+		vrLen = 581;
+		vrLoc = 0;
+	};
+	E113738B043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: 19";
+		rLen = 49;
+		rLoc = 733;
+		rType = 0;
+		vrLen = 418;
+		vrLoc = 0;
+	};
+	E113738C043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 13";
+		rLen = 0;
+		rLoc = 1782;
+		rType = 0;
+		vrLen = 1147;
+		vrLoc = 0;
+	};
+	E113738D043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: 13";
+		rLen = 97;
+		rLoc = 217;
+		rType = 0;
+		vrLen = 418;
+		vrLoc = 0;
+	};
+	E113738E043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 22";
+		rLen = 0;
+		rLoc = 1782;
+		rType = 0;
+		vrLen = 1023;
+		vrLoc = 146;
+	};
+	E113738F043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: 19";
+		rLen = 0;
+		rLoc = 686;
+		rType = 0;
+		vrLen = 538;
+		vrLoc = 0;
+	};
+	E1137390043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 23";
+		rLen = 0;
+		rLoc = 1782;
+		rType = 0;
+		vrLen = 1023;
+		vrLoc = 146;
+	};
+	E1137391043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: 19";
+		rLen = 0;
+		rLoc = 686;
+		rType = 0;
+		vrLen = 538;
+		vrLoc = 0;
+	};
+	E1137392043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 27";
+		rLen = 0;
+		rLoc = 1782;
+		rType = 0;
+		vrLen = 951;
+		vrLoc = 146;
+	};
+	E1137393043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: 19";
+		rLen = 0;
+		rLoc = 686;
+		rType = 0;
+		vrLen = 538;
+		vrLoc = 0;
+	};
+	E1137394043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 27";
+		rLen = 0;
+		rLoc = 1782;
+		rType = 0;
+		vrLen = 951;
+		vrLoc = 146;
+	};
+	E1137395043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: 19";
+		rLen = 0;
+		rLoc = 686;
+		rType = 0;
+		vrLen = 538;
+		vrLoc = 0;
+	};
+	E1137396043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 27";
+		rLen = 0;
+		rLoc = 1782;
+		rType = 0;
+		vrLen = 951;
+		vrLoc = 146;
+	};
+	E1137397043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: 19";
+		rLen = 0;
+		rLoc = 686;
+		rType = 0;
+		vrLen = 538;
+		vrLoc = 0;
+	};
+	E1137398043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 27";
+		rLen = 0;
+		rLoc = 1782;
+		rType = 0;
+		vrLen = 951;
+		vrLoc = 146;
+	};
+	E1137399043A0DCD00050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: ";
+		rLen = 0;
+		rLoc = 4207;
+		rType = 0;
+		vrLen = 1437;
+		vrLoc = 2129;
+	};
+	E113739A043A0DCD00050002 = {
+		fRef = E1F993C60436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 532;
+		vrLoc = 0;
+	};
+	E113739B043A0DCD00050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: hotKeySet:";
+		rLen = 0;
+		rLoc = 4155;
+		rType = 0;
+		vrLen = 1049;
+		vrLoc = 0;
+	};
+	E113739C043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: propertyListRepresentation";
+		rLen = 13;
+		rLoc = 4595;
+		rType = 0;
+		vrLen = 1463;
+		vrLoc = 0;
+	};
+	E113739D043A0DCD00050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: ";
+		rLen = 0;
+		rLoc = 4207;
+		rType = 0;
+		vrLen = 1437;
+		vrLoc = 2129;
+	};
+	E113739E043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 19";
+		rLen = 0;
+		rLoc = 1782;
+		rType = 0;
+		vrLen = 973;
+		vrLoc = 0;
+	};
+	E113739F043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 51";
+		rLen = 0;
+		rLoc = 1263;
+		rType = 0;
+		vrLen = 1116;
+		vrLoc = 934;
+	};
+	E11373A0043A0DCD00050002 = {
+		fRef = E1F993C10436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.h: 22";
+		rLen = 0;
+		rLoc = 358;
+		rType = 0;
+		vrLen = 581;
+		vrLoc = 0;
+	};
+	E11373A1043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 107";
+		rLen = 38;
+		rLoc = 2681;
+		rType = 0;
+		vrLen = 1623;
+		vrLoc = 2340;
+	};
+	E11373A2043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 19";
+		rLen = 0;
+		rLoc = 1782;
+		rType = 0;
+		vrLen = 948;
+		vrLoc = 30;
+	};
+	E11373A3043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: 19";
+		rLen = 0;
+		rLoc = 686;
+		rType = 0;
+		vrLen = 538;
+		vrLoc = 0;
+	};
+	E11373A4043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 14";
+		rLen = 26;
+		rLoc = 1155;
+		rType = 0;
+		vrLen = 765;
+		vrLoc = 30;
+	};
+	E11373A5043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: initWithPropertyList:";
+		rLen = 0;
+		rLoc = 686;
+		rType = 0;
+		vrLen = 565;
+		vrLoc = 0;
+	};
+	E11373A6043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 19";
+		rLen = 27;
+		rLoc = 1215;
+		rType = 0;
+		vrLen = 765;
+		vrLoc = 30;
+	};
+	E11373A7043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: 22";
+		rLen = 0;
+		rLoc = 686;
+		rType = 0;
+		vrLen = 592;
+		vrLoc = 0;
+	};
+	E11373A8043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 24";
+		rLen = 27;
+		rLoc = 1727;
+		rType = 0;
+		vrLen = 765;
+		vrLoc = 30;
+	};
+	E11373A9043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: 23";
+		rLen = 0;
+		rLoc = 686;
+		rType = 0;
+		vrLen = 619;
+		vrLoc = 0;
+	};
+	E11373AA043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 31";
+		rLen = 0;
+		rLoc = 1153;
+		rType = 0;
+		vrLen = 706;
+		vrLoc = 146;
+	};
+	E11373AB043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 135";
+		rLen = 0;
+		rLoc = 4060;
+		rType = 0;
+		vrLen = 1590;
+		vrLoc = 3746;
+	};
+	E11373AC043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 16";
+		rLen = 130;
+		rLoc = 514;
+		rType = 0;
+		vrLen = 900;
+		vrLoc = 30;
+	};
+	E11373AD043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: 19";
+		rLen = 0;
+		rLoc = 447;
+		rType = 0;
+		vrLen = 748;
+		vrLoc = 0;
+	};
+	E11373AE043A0DCD00050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: 121";
+		rLen = 0;
+		rLoc = 4030;
+		rType = 0;
+		vrLen = 1615;
+		vrLoc = 2939;
+	};
+	E11373AF043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 57";
+		rLen = 0;
+		rLoc = 1782;
+		rType = 0;
+		vrLen = 1068;
+		vrLoc = 0;
+	};
+	E11373B0043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: hotKeyWithCharacters:modifierFlags:keyCode:";
+		rLen = 0;
+		rLoc = 331;
+		rType = 0;
+		vrLen = 750;
+		vrLoc = 0;
+	};
+	E11373B1043A0DCD00050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: 35";
+		rLen = 0;
+		rLoc = 2411;
+		rType = 0;
+		vrLen = 1519;
+		vrLoc = 320;
+	};
+	E11373B2043A0DCD00050002 = {
+		fRef = F560E2F10357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.m: timeRemaining";
+		rLen = 0;
+		rLoc = 1976;
+		rType = 0;
+		vrLen = 1215;
+		vrLoc = 1478;
+	};
+	E11373B3043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 57";
+		rLen = 0;
+		rLoc = 1782;
+		rType = 0;
+		vrLen = 1068;
+		vrLoc = 0;
+	};
+	E11373B4043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: keyCode";
+		rLen = 0;
+		rLoc = 658;
+		rType = 0;
+		vrLen = 769;
+		vrLoc = 0;
+	};
+	E11373B5043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 57";
+		rLen = 0;
+		rLoc = 1782;
+		rType = 0;
+		vrLen = 1068;
+		vrLoc = 0;
+	};
+	E11373B6043A0DCD00050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: keyCode";
+		rLen = 0;
+		rLoc = 658;
+		rType = 0;
+		vrLen = 788;
+		vrLoc = 0;
+	};
+	E11373B7043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: propertyListRepresentation";
+		rLen = 14;
+		rLoc = 1467;
+		rType = 0;
+		vrLen = 732;
+		vrLoc = 1065;
+	};
+	E11373B8043A0DCD00050002 = {
+		fRef = F560E2F10357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.m: 95";
+		rLen = 0;
+		rLoc = 1976;
+		rType = 0;
+		vrLen = 1282;
+		vrLoc = 1964;
+	};
+	E11373B9043A0DCD00050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 68";
+		rLen = 0;
+		rLoc = 1634;
+		rType = 0;
+		vrLen = 959;
+		vrLoc = 1176;
+	};
+	E11373BA043A0DCD00050002 = {
+		fRef = F560E2F10357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.m: setOrderFrontSetAlarmPanelHotKey:";
+		rLen = 0;
+		rLoc = 1976;
+		rType = 0;
+		vrLen = 1282;
+		vrLoc = 1964;
+	};
+	E11373BB043A0DCD00050002 = {
+		fRef = F560E2F20357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.h: orderFrontAlarmsPanel:";
+		rLen = 0;
+		rLoc = 592;
+		rType = 0;
+		vrLen = 823;
+		vrLoc = 0;
+	};
+	E11373BC043A0DCD00050002 = {
+		fRef = F560E2F10357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.m: __GNUC__";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1164;
+		vrLoc = 177;
+	};
+	E11373BD043A0DCD00050002 = {
+		fRef = E1F993C60436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 532;
+		vrLoc = 0;
+	};
+	E11373BE043A0DCD00050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: 23";
+		rLen = 0;
+		rLoc = 1994;
+		rType = 0;
+		vrLen = 1037;
+		vrLoc = 0;
+	};
+	E11373BF043A0DCD00050002 = {
+		fRef = E1F993C60436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.h: hotKeySet:";
+		rLen = 25;
+		rLoc = 478;
+		rType = 0;
+		vrLen = 558;
+		vrLoc = 0;
+	};
+	E11373C0043A0DCD00050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: 16";
+		rLen = 25;
+		rLoc = 581;
+		rType = 0;
+		vrLen = 1005;
+		vrLoc = 0;
+	};
+	E11373C1043A0DCD00050002 = {
+		fRef = E1F993C60436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.h: hotKeySet:";
+		rLen = 15;
+		rLoc = 486;
+		rType = 0;
+		vrLen = 558;
+		vrLoc = 0;
+	};
+	E11373C2043A0DCD00050002 = {
+		fRef = F560E2F10357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.m: 29";
+		rLen = 0;
+		rLoc = 944;
+		rType = 0;
+		vrLen = 1205;
+		vrLoc = 177;
+	};
+	E11373C3043A0DCD00050002 = {
+		fRef = F560E2F20357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.h: 16";
+		rLen = 0;
+		rLoc = 300;
+		rType = 0;
+		vrLen = 841;
+		vrLoc = 0;
+	};
+	E11373C4043A0DCD00050002 = {
+		fRef = F560E2F10357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.m: 29";
+		rLen = 0;
+		rLoc = 944;
+		rType = 0;
+		vrLen = 1162;
+		vrLoc = 0;
+	};
+	E11373C5043A0DCD00050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: 37";
+		rLen = 0;
+		rLoc = 2243;
+		rType = 0;
+		vrLen = 1194;
+		vrLoc = 250;
+	};
+	E11373C8043A0DCD00050002 = {
+		isa = PBXFileReference;
+		name = NSTextField.h;
+		path = /System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSTextField.h;
+		refType = 0;
+	};
+	E11373C9043A0DCD00050002 = {
+		isa = PBXFileReference;
+		name = NSApplication.h;
+		path = /System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSApplication.h;
+		refType = 0;
+	};
+	E11373CA043A0DCD00050002 = {
+		isa = PBXFileReference;
+		name = NSApplication.html;
+		path = /System/Library/Frameworks/AppKit.framework/Versions/C/Resources/English.lproj/Documentation/Reference/ObjC_classic/Classes/NSApplication.html;
+		refType = 0;
+	};
+	E11373CB043A0DCD00050002 = {
+		isa = PBXFileReference;
+		name = NSCharacterSet.h;
+		path = /System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSCharacterSet.h;
+		refType = 0;
+	};
+	E11373CC043A0DCD00050002 = {
+		isa = PBXFileReference;
+		name = CarbonEvents.h;
+		path = /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/CarbonEvents.h;
+		refType = 0;
+	};
+	E11373CD043A0DCD00050002 = {
+		isa = PBXFileReference;
+		name = CarbonEventsCore.h;
+		path = /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/CarbonEventsCore.h;
+		refType = 0;
+	};
+	E11373CF043A0DCD00050002 = {
+		isa = PBXFileReference;
+		name = NSEvent.h;
+		path = /System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSEvent.h;
+		refType = 0;
 	};
 	E120D65F0418AE0E00050002 = {
@@ -1486,10 +2752,953 @@
 			E1F99AAB0436379900050002,
 			E1F99AAD043637C200050002,
-			E1F99AAE04363A8C00050002,
-			E113730C0439F6E500050002,
-			E113730D0439F6E500050002,
+			E11373180439FE6A00050002,
 		);
 		isa = PBXBookmarkGroup;
 		name = Root;
+	};
+	E145384A043A31D500050002 = {
+		fileReference = E145383F043A1DB200050002;
+		isa = PBXFileBreakpoint;
+		lineNumber = 192;
+		state = 1;
+	};
+	E145384C043A31D900050002 = {
+		fileReference = E145383F043A1DB200050002;
+		isa = PBXFileBreakpoint;
+		lineNumber = 157;
+		state = 1;
+	};
+	E145384F043A38D800050002 = {
+		fRef = E14538AE043A38D800050002;
+		isa = PBXTextBookmark;
+		name = "NSTableColumn.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1521;
+		vrLoc = 206;
+	};
+	E1453850043A38D800050002 = {
+		fRef = E14538AB043A38D800050002;
+		isa = PBXTextBookmark;
+		name = "NSNotification.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1220;
+		vrLoc = 20;
+	};
+	E1453851043A38D800050002 = {
+		fRef = E14538AC043A38D800050002;
+		isa = PBXTextBookmark;
+		name = "NSFileManager.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1712;
+		vrLoc = 0;
+	};
+	E1453852043A38D800050002 = {
+		fRef = E14538AD043A38D800050002;
+		isa = PBXTextBookmark;
+		name = "NSDictionary.h: 15";
+		rLen = 29;
+		rLoc = 344;
+		rType = 0;
+		vrLen = 1539;
+		vrLoc = 1194;
+	};
+	E1453853043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: removeShortcutWithIdentifier:";
+		rLen = 28;
+		rLoc = 483;
+		rType = 0;
+		vrLen = 719;
+		vrLoc = 0;
+	};
+	E1453854043A38D800050002 = {
+		fRef = F560E2F20357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.h: setOrderFrontSetAlarmPanelHotKey:";
+		rLen = 0;
+		rLoc = 592;
+		rType = 0;
+		vrLen = 778;
+		vrLoc = 0;
+	};
+	E1453855043A38D800050002 = {
+		fRef = E1A18CAC03B4344C00000028;
+		isa = PBXTextBookmark;
+		name = "PSAlerts.m: 35";
+		rLen = 0;
+		rLoc = 755;
+		rType = 0;
+		vrLen = 941;
+		vrLoc = 0;
+	};
+	E1453856043A38D800050002 = {
+		fRef = E14DEC830438969400050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyFieldCell.m: selectWithFrame:inView:editor:delegate:start:length:";
+		rLen = 0;
+		rLoc = 408;
+		rType = 0;
+		vrLen = 591;
+		vrLoc = 0;
+	};
+	E1453857043A38D800050002 = {
+		fRef = E14538A9043A38D800050002;
+		isa = PBXTextBookmark;
+		name = "NSPanel.h: 16";
+		rLen = 147;
+		rLoc = 310;
+		rType = 0;
+		vrLen = 2111;
+		vrLoc = 0;
+	};
+	E1453858043A38D800050002 = {
+		fRef = E1F0B14F03ADBE3800AEFBE0;
+		isa = PBXTextBookmark;
+		name = "NSString-NJRExtensions.m: keyEquivalentAttributedStringWithModifierFlags:";
+		rLen = 46;
+		rLoc = 3762;
+		rType = 0;
+		vrLen = 2247;
+		vrLoc = 2195;
+	};
+	E1453859043A38D800050002 = {
+		fRef = E11373140439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.h: modifiers";
+		rLen = 0;
+		rLoc = 658;
+		rType = 0;
+		vrLen = 814;
+		vrLoc = 0;
+	};
+	E145385A043A38D800050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: equivString";
+		rLen = 70;
+		rLoc = 2853;
+		rType = 0;
+		vrLen = 1756;
+		vrLoc = 1792;
+	};
+	E145385B043A38D800050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 11";
+		rLen = 0;
+		rLoc = 204;
+		rType = 0;
+		vrLen = 1129;
+		vrLoc = 147;
+	};
+	E145385C043A38D800050002 = {
+		fRef = E130B9AD03B7C59700000028;
+		isa = PBXTextBookmark;
+		name = "PSPowerManager.m: __GNUC__";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1651;
+		vrLoc = 0;
+	};
+	E145385D043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 88";
+		rLen = 0;
+		rLoc = 2060;
+		rType = 0;
+		vrLen = 1221;
+		vrLoc = 26;
+	};
+	E145385E043A38D800050002 = {
+		fRef = F560E2F10357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.m: 33";
+		rLen = 0;
+		rLoc = 1073;
+		rType = 0;
+		vrLen = 1327;
+		vrLoc = 150;
+	};
+	E145385F043A38D800050002 = {
+		fRef = E14538AA043A38D800050002;
+		isa = PBXTextBookmark;
+		name = "NSBundle.h: 79";
+		rLen = 119;
+		rLoc = 2629;
+		rType = 0;
+		vrLen = 2033;
+		vrLoc = 1399;
+	};
+	E1453860043A38D800050002 = {
+		fRef = E10E71F4040C335800050002;
+		isa = PBXTextBookmark;
+		name = "English: 117";
+		rLen = 0;
+		rLoc = 6393;
+		rType = 0;
+		vrLen = 2167;
+		vrLoc = 4227;
+	};
+	E1453861043A38D800050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: 37";
+		rLen = 17;
+		rLoc = 1431;
+		rType = 0;
+		vrLen = 1767;
+		vrLoc = 197;
+	};
+	E1453862043A38D800050002 = {
+		fRef = F560E2F10357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.m: 29";
+		rLen = 0;
+		rLoc = 723;
+		rType = 0;
+		vrLen = 1711;
+		vrLoc = 2951;
+	};
+	E1453863043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 25";
+		rLen = 0;
+		rLoc = 643;
+		rType = 0;
+		vrLen = 650;
+		vrLoc = 0;
+	};
+	E1453864043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 10";
+		rLen = 0;
+		rLoc = 315;
+		rType = 0;
+		vrLen = 1097;
+		vrLoc = 0;
+	};
+	E1453865043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 20";
+		rLen = 0;
+		rLoc = 428;
+		rType = 0;
+		vrLen = 669;
+		vrLoc = 0;
+	};
+	E1453866043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 15";
+		rLen = 0;
+		rLoc = 445;
+		rType = 0;
+		vrLen = 1137;
+		vrLoc = 0;
+	};
+	E1453867043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 20";
+		rLen = 0;
+		rLoc = 428;
+		rType = 0;
+		vrLen = 669;
+		vrLoc = 0;
+	};
+	E1453868043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 30";
+		rLen = 13;
+		rLoc = 1304;
+		rType = 0;
+		vrLen = 994;
+		vrLoc = 322;
+	};
+	E1453869043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 18";
+		rLen = 0;
+		rLoc = 350;
+		rType = 0;
+		vrLen = 670;
+		vrLoc = 0;
+	};
+	E145386A043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 30";
+		rLen = 0;
+		rLoc = 1303;
+		rType = 0;
+		vrLen = 1011;
+		vrLoc = 322;
+	};
+	E145386B043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 18";
+		rLen = 0;
+		rLoc = 350;
+		rType = 0;
+		vrLen = 686;
+		vrLoc = 0;
+	};
+	E145386C043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 55";
+		rLen = 0;
+		rLoc = 1971;
+		rType = 0;
+		vrLen = 1000;
+		vrLoc = 231;
+	};
+	E145386D043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 15";
+		rLen = 0;
+		rLoc = 310;
+		rType = 0;
+		vrLen = 686;
+		vrLoc = 0;
+	};
+	E145386E043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 59";
+		rLen = 0;
+		rLoc = 2008;
+		rType = 0;
+		vrLen = 1108;
+		vrLoc = 613;
+	};
+	E145386F043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 20";
+		rLen = 122;
+		rLoc = 353;
+		rType = 0;
+		vrLen = 686;
+		vrLoc = 0;
+	};
+	E1453870043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 15";
+		rLen = 18;
+		rLoc = 402;
+		rType = 0;
+		vrLen = 1124;
+		vrLoc = 886;
+	};
+	E1453871043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 15";
+		rLen = 0;
+		rLoc = 301;
+		rType = 0;
+		vrLen = 686;
+		vrLoc = 0;
+	};
+	E1453872043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 101";
+		rLen = 0;
+		rLoc = 3048;
+		rType = 0;
+		vrLen = 1172;
+		vrLoc = 1302;
+	};
+	E1453873043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 23";
+		rLen = 19;
+		rLoc = 550;
+		rType = 0;
+		vrLen = 692;
+		vrLoc = 0;
+	};
+	E1453874043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 107";
+		rLen = 0;
+		rLoc = 3178;
+		rType = 0;
+		vrLen = 1119;
+		vrLoc = 1743;
+	};
+	E1453875043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 24";
+		rLen = 71;
+		rLoc = 571;
+		rType = 0;
+		vrLen = 692;
+		vrLoc = 0;
+	};
+	E1453876043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 121";
+		rLen = 0;
+		rLoc = 3543;
+		rType = 0;
+		vrLen = 979;
+		vrLoc = 2155;
+	};
+	E1453877043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 24";
+		rLen = 71;
+		rLoc = 571;
+		rType = 0;
+		vrLen = 692;
+		vrLoc = 0;
+	};
+	E1453878043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 121";
+		rLen = 0;
+		rLoc = 3543;
+		rType = 0;
+		vrLen = 979;
+		vrLoc = 2155;
+	};
+	E1453879043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 26";
+		rLen = 19;
+		rLoc = 651;
+		rType = 0;
+		vrLen = 692;
+		vrLoc = 0;
+	};
+	E145387A043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 121";
+		rLen = 0;
+		rLoc = 3543;
+		rType = 0;
+		vrLen = 979;
+		vrLoc = 2155;
+	};
+	E145387B043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 26";
+		rLen = 19;
+		rLoc = 651;
+		rType = 0;
+		vrLen = 692;
+		vrLoc = 0;
+	};
+	E145387C043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 119";
+		rLen = 0;
+		rLoc = 3472;
+		rType = 0;
+		vrLen = 980;
+		vrLoc = 2155;
+	};
+	E145387D043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 14";
+		rLen = 16;
+		rLoc = 258;
+		rType = 0;
+		vrLen = 692;
+		vrLoc = 0;
+	};
+	E145387E043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 119";
+		rLen = 0;
+		rLoc = 3472;
+		rType = 0;
+		vrLen = 980;
+		vrLoc = 2155;
+	};
+	E145387F043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 14";
+		rLen = 16;
+		rLoc = 258;
+		rType = 0;
+		vrLen = 695;
+		vrLoc = 0;
+	};
+	E1453880043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 139";
+		rLen = 0;
+		rLoc = 3890;
+		rType = 0;
+		vrLen = 1055;
+		vrLoc = 2158;
+	};
+	E1453881043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 26";
+		rLen = 19;
+		rLoc = 651;
+		rType = 0;
+		vrLen = 715;
+		vrLoc = 0;
+	};
+	E1453882043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 119";
+		rLen = 0;
+		rLoc = 3465;
+		rType = 0;
+		vrLen = 1030;
+		vrLoc = 2158;
+	};
+	E1453883043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 27";
+		rLen = 16;
+		rLoc = 694;
+		rType = 0;
+		vrLen = 715;
+		vrLoc = 0;
+	};
+	E1453884043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 130";
+		rLen = 7;
+		rLoc = 3803;
+		rType = 0;
+		vrLen = 1052;
+		vrLoc = 2158;
+	};
+	E1453885043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: 26";
+		rLen = 19;
+		rLoc = 651;
+		rType = 0;
+		vrLen = 719;
+		vrLoc = 0;
+	};
+	E1453886043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 88";
+		rLen = 57;
+		rLoc = 2410;
+		rType = 0;
+		vrLen = 1156;
+		vrLoc = 1474;
+	};
+	E1453887043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: setShortcutsEnabled:";
+		rLen = 19;
+		rLoc = 651;
+		rType = 0;
+		vrLen = 719;
+		vrLoc = 0;
+	};
+	E1453888043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 88";
+		rLen = 57;
+		rLoc = 2410;
+		rType = 0;
+		vrLen = 1156;
+		vrLoc = 1474;
+	};
+	E1453889043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: removeShortcutWithIdentifier:";
+		rLen = 28;
+		rLoc = 483;
+		rType = 0;
+		vrLen = 719;
+		vrLoc = 0;
+	};
+	E145388A043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 63";
+		rLen = 0;
+		rLoc = 1868;
+		rType = 0;
+		vrLen = 1068;
+		vrLoc = 799;
+	};
+	E145388B043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: shortcutsEnabled";
+		rLen = 16;
+		rLoc = 694;
+		rType = 0;
+		vrLen = 719;
+		vrLoc = 0;
+	};
+	E145388C043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 88";
+		rLen = 57;
+		rLoc = 2410;
+		rType = 0;
+		vrLen = 1172;
+		vrLoc = 1483;
+	};
+	E145388D043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: removeShortcutWithIdentifier:";
+		rLen = 28;
+		rLoc = 483;
+		rType = 0;
+		vrLen = 719;
+		vrLoc = 0;
+	};
+	E145388E043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 253";
+		rLen = 0;
+		rLoc = 6379;
+		rType = 0;
+		vrLen = 1231;
+		vrLoc = 555;
+	};
+	E145388F043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: removeShortcutWithIdentifier:";
+		rLen = 28;
+		rLoc = 483;
+		rType = 0;
+		vrLen = 719;
+		vrLoc = 0;
+	};
+	E1453890043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 261";
+		rLen = 75;
+		rLoc = 6502;
+		rType = 0;
+		vrLen = 1065;
+		vrLoc = 5471;
+	};
+	E1453891043A38D800050002 = {
+		fRef = E145383E043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.h: removeShortcutWithIdentifier:";
+		rLen = 28;
+		rLoc = 483;
+		rType = 0;
+		vrLen = 719;
+		vrLoc = 0;
+	};
+	E1453892043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: keyEventHandler";
+		rLen = 0;
+		rLoc = 6501;
+		rType = 0;
+		vrLen = 1056;
+		vrLoc = 5522;
+	};
+	E1453893043A38D800050002 = {
+		fRef = F560E2F20357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.h: setOrderFrontSetAlarmPanelHotKey:";
+		rLen = 0;
+		rLoc = 592;
+		rType = 0;
+		vrLen = 778;
+		vrLoc = 0;
+	};
+	E1453894043A38D800050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: 14";
+		rLen = 0;
+		rLoc = 367;
+		rType = 0;
+		vrLen = 1290;
+		vrLoc = 0;
+	};
+	E1453895043A38D800050002 = {
+		fRef = E1A18CAC03B4344C00000028;
+		isa = PBXTextBookmark;
+		name = "PSAlerts.m: 35";
+		rLen = 0;
+		rLoc = 755;
+		rType = 0;
+		vrLen = 941;
+		vrLoc = 0;
+	};
+	E1453896043A38D800050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: 32";
+		rLen = 25;
+		rLoc = 1024;
+		rType = 0;
+		vrLen = 1427;
+		vrLoc = 0;
+	};
+	E1453897043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 95";
+		rLen = 0;
+		rLoc = 2294;
+		rType = 0;
+		vrLen = 1215;
+		vrLoc = 1834;
+	};
+	E1453898043A38D800050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: 35";
+		rLen = 0;
+		rLoc = 1838;
+		rType = 0;
+		vrLen = 1429;
+		vrLoc = 44;
+	};
+	E1453899043A38D800050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 70";
+		rLen = 0;
+		rLoc = 1722;
+		rType = 0;
+		vrLen = 964;
+		vrLoc = 1060;
+	};
+	E145389A043A38D800050002 = {
+		fRef = E14DEC830438969400050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyFieldCell.m: selectWithFrame:inView:editor:delegate:start:length:";
+		rLen = 0;
+		rLoc = 408;
+		rType = 0;
+		vrLen = 591;
+		vrLoc = 0;
+	};
+	E145389B043A38D800050002 = {
+		fRef = E1F993C20436280200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyField.m: equivString";
+		rLen = 70;
+		rLoc = 2853;
+		rType = 0;
+		vrLen = 1756;
+		vrLoc = 1792;
+	};
+	E145389C043A38D800050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: 37";
+		rLen = 0;
+		rLoc = 1498;
+		rType = 0;
+		vrLen = 1677;
+		vrLoc = 33;
+	};
+	E145389D043A38D800050002 = {
+		fRef = E11373150439FCC700050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKey.m: 11";
+		rLen = 0;
+		rLoc = 204;
+		rType = 0;
+		vrLen = 1129;
+		vrLoc = 147;
+	};
+	E145389E043A38D800050002 = {
+		fRef = E130B9AD03B7C59700000028;
+		isa = PBXTextBookmark;
+		name = "PSPowerManager.m: __GNUC__";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1651;
+		vrLoc = 0;
+	};
+	E145389F043A38D800050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: 36";
+		rLen = 0;
+		rLoc = 1322;
+		rType = 0;
+		vrLen = 1680;
+		vrLoc = 0;
+	};
+	E14538A0043A38D800050002 = {
+		fRef = E10E71F4040C335800050002;
+		isa = PBXTextBookmark;
+		name = "English: 115";
+		rLen = 0;
+		rLoc = 6394;
+		rType = 0;
+		vrLen = 1940;
+		vrLoc = 4107;
+	};
+	E14538A1043A38D800050002 = {
+		fRef = F560E2F10357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.m: 196";
+		rLen = 91;
+		rLoc = 7565;
+		rType = 0;
+		vrLen = 2590;
+		vrLoc = 6717;
+	};
+	E14538A2043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 88";
+		rLen = 0;
+		rLoc = 2060;
+		rType = 0;
+		vrLen = 1221;
+		vrLoc = 26;
+	};
+	E14538A3043A38D800050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: 37";
+		rLen = 0;
+		rLoc = 1499;
+		rType = 0;
+		vrLen = 1730;
+		vrLoc = 0;
+	};
+	E14538A4043A38D800050002 = {
+		fRef = F560E2F10357506401A4E466;
+		isa = PBXTextBookmark;
+		name = "PSApplication.m: 33";
+		rLen = 0;
+		rLoc = 1073;
+		rType = 0;
+		vrLen = 1327;
+		vrLoc = 150;
+	};
+	E14538A5043A38D800050002 = {
+		fRef = E10E71F4040C335800050002;
+		isa = PBXTextBookmark;
+		name = "English: 117";
+		rLen = 0;
+		rLoc = 6393;
+		rType = 0;
+		vrLen = 2167;
+		vrLoc = 4227;
+	};
+	E14538A6043A38D800050002 = {
+		fRef = E1F993C70436310F00050002;
+		isa = PBXTextBookmark;
+		name = "PSPreferencesController.m: 32";
+		rLen = 0;
+		rLoc = 1009;
+		rType = 0;
+		vrLen = 1804;
+		vrLoc = 161;
+	};
+	E14538A7043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		rLen = 0;
+		rLoc = 160;
+		rType = 1;
+	};
+	E14538A8043A38D800050002 = {
+		fRef = E145383F043A1DB200050002;
+		isa = PBXTextBookmark;
+		name = "NJRHotKeyManager.m: 161";
+		rLen = 0;
+		rLoc = 4024;
+		rType = 0;
+		vrLen = 692;
+		vrLoc = 3872;
+	};
+	E14538A9043A38D800050002 = {
+		isa = PBXFileReference;
+		name = NSPanel.h;
+		path = /System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSPanel.h;
+		refType = 0;
+	};
+	E14538AA043A38D800050002 = {
+		isa = PBXFileReference;
+		name = NSBundle.h;
+		path = /System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSBundle.h;
+		refType = 0;
+	};
+	E14538AB043A38D800050002 = {
+		isa = PBXFileReference;
+		name = NSNotification.h;
+		path = /System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSNotification.h;
+		refType = 0;
+	};
+	E14538AC043A38D800050002 = {
+		isa = PBXFileReference;
+		name = NSFileManager.h;
+		path = /System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSFileManager.h;
+		refType = 0;
+	};
+	E14538AD043A38D800050002 = {
+		isa = PBXFileReference;
+		name = NSDictionary.h;
+		path = /System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSDictionary.h;
+		refType = 0;
+	};
+	E14538AE043A38D800050002 = {
+		isa = PBXFileReference;
+		name = NSTableColumn.h;
+		path = /System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSTableColumn.h;
+		refType = 0;
 	};
 	E14DEC86043898AC00050002 = {
@@ -1497,10 +3706,4 @@
 		state = 1;
 		symbolName = "-[NSTextView setSelectable:]";
-	};
-	E14DEC88043898B700050002 = {
-		fileReference = E14DEC830438969400050002;
-		isa = PBXFileBreakpoint;
-		lineNumber = 21;
-		state = 1;
 	};
 	E14DEC8E0438CDE100050002 = {
@@ -1632,14 +3835,4 @@
 		vrLoc = 86;
 	};
-	E14DEC9C0438CDE100050002 = {
-		fRef = E14DECEF0438CDE100050002;
-		isa = PBXTextBookmark;
-		name = "NSTextField.h: 11";
-		rLen = 9;
-		rLoc = 198;
-		rType = 0;
-		vrLen = 1187;
-		vrLoc = 107;
-	};
 	E14DEC9D0438CDE100050002 = {
 		fRef = E14DECF50438CDE100050002;
@@ -1651,14 +3844,4 @@
 		vrLen = 1473;
 		vrLoc = 7775;
-	};
-	E14DEC9E0438CDE100050002 = {
-		fRef = E1F993C10436280200050002;
-		isa = PBXTextBookmark;
-		name = "NJRHotKeyField.h: 13";
-		rLen = 0;
-		rLoc = 222;
-		rType = 0;
-		vrLen = 358;
-		vrLoc = 0;
 	};
 	E14DEC9F0438CDE100050002 = {
@@ -1713,14 +3896,4 @@
 		vrLoc = 0;
 	};
-	E14DECA50438CDE100050002 = {
-		fRef = E14DEC830438969400050002;
-		isa = PBXTextBookmark;
-		name = "NJRHotKeyFieldCell.m: selectWithFrame:inView:editor:delegate:start:length:";
-		rLen = 0;
-		rLoc = 408;
-		rType = 0;
-		vrLen = 591;
-		vrLoc = 0;
-	};
 	E14DECA60438CDE100050002 = {
 		fRef = E14DECEA0438CDE100050002;
@@ -1753,30 +3926,10 @@
 		vrLoc = 1507;
 	};
-	E14DECAB0438CDE100050002 = {
-		fRef = F560E2F20357506401A4E466;
-		isa = PBXTextBookmark;
-		name = "PSApplication.h: 19";
-		rLen = 0;
-		rLoc = 474;
-		rType = 0;
-		vrLen = 760;
-		vrLoc = 0;
-	};
-	E14DECAC0438CDE100050002 = {
-		fRef = F560E2F10357506401A4E466;
-		isa = PBXTextBookmark;
-		name = "PSApplication.m: 62";
-		rLen = 0;
-		rLoc = 1794;
-		rType = 0;
-		vrLen = 1219;
-		vrLoc = 1265;
-	};
 	E14DECAF0438CDE100050002 = {
 		fRef = E1F993C10436280200050002;
 		isa = PBXTextBookmark;
 		name = "NJRHotKeyField.h: 13";
-		rLen = 16;
-		rLoc = 236;
+		rLen = 0;
+		rLoc = 263;
 		rType = 0;
 		vrLen = 327;
@@ -1788,5 +3941,5 @@
 		name = "NJRHotKeyField.m: 71";
 		rLen = 0;
-		rLoc = 3568;
+		rLoc = 3314;
 		rType = 0;
 		vrLen = 1156;
@@ -1797,6 +3950,6 @@
 		isa = PBXTextBookmark;
 		name = "NJRHotKeyField.h: 13";
-		rLen = 16;
-		rLoc = 236;
+		rLen = 0;
+		rLoc = 263;
 		rType = 0;
 		vrLen = 327;
@@ -1808,5 +3961,5 @@
 		name = "NJRHotKeyField.m: 72";
 		rLen = 0;
-		rLoc = 3568;
+		rLoc = 3314;
 		rType = 0;
 		vrLen = 1246;
@@ -1817,6 +3970,6 @@
 		isa = PBXTextBookmark;
 		name = "NJRHotKeyField.h: 13";
-		rLen = 16;
-		rLoc = 236;
+		rLen = 0;
+		rLoc = 263;
 		rType = 0;
 		vrLen = 327;
@@ -1828,5 +3981,5 @@
 		name = "NJRHotKeyField.m: 72";
 		rLen = 0;
-		rLoc = 3568;
+		rLoc = 3314;
 		rType = 0;
 		vrLen = 1246;
@@ -1837,6 +3990,6 @@
 		isa = PBXTextBookmark;
 		name = "NJRHotKeyField.h: 14";
-		rLen = 19;
-		rLoc = 267;
+		rLen = 0;
+		rLoc = 263;
 		rType = 0;
 		vrLen = 327;
@@ -1848,5 +4001,5 @@
 		name = "NJRHotKeyField.m: 68";
 		rLen = 0;
-		rLoc = 3568;
+		rLoc = 3314;
 		rType = 0;
 		vrLen = 1383;
@@ -1858,5 +4011,5 @@
 		name = "NJRHotKeyField.h: clear:";
 		rLen = 0;
-		rLoc = 319;
+		rLoc = 263;
 		rType = 0;
 		vrLen = 358;
@@ -1867,6 +4020,6 @@
 		isa = PBXTextBookmark;
 		name = "NJRHotKeyField.m: 68";
-		rLen = 17;
-		rLoc = 2918;
+		rLen = 20;
+		rLoc = 2832;
 		rType = 0;
 		vrLen = 1357;
@@ -1877,6 +4030,6 @@
 		isa = PBXTextBookmark;
 		name = "NJRHotKeyField.h: 13";
-		rLen = 16;
-		rLoc = 236;
+		rLen = 0;
+		rLoc = 263;
 		rType = 0;
 		vrLen = 358;
@@ -1888,5 +4041,5 @@
 		name = "NJRHotKeyField.m: 68";
 		rLen = 0;
-		rLoc = 3004;
+		rLoc = 2924;
 		rType = 0;
 		vrLen = 1363;
@@ -1897,6 +4050,6 @@
 		isa = PBXTextBookmark;
 		name = "NJRHotKeyField.h: 14";
-		rLen = 19;
-		rLoc = 267;
+		rLen = 0;
+		rLoc = 263;
 		rType = 0;
 		vrLen = 358;
@@ -1908,5 +4061,5 @@
 		name = "NJRHotKeyField.m: editor";
 		rLen = 0;
-		rLoc = 1915;
+		rLoc = 1826;
 		rType = 0;
 		vrLen = 1333;
@@ -1918,5 +4071,5 @@
 		name = "NJRHotKeyField.h: 14";
 		rLen = 0;
-		rLoc = 226;
+		rLoc = 263;
 		rType = 0;
 		vrLen = 358;
@@ -1928,5 +4081,5 @@
 		name = "NJRHotKeyField.m: 57";
 		rLen = 0;
-		rLoc = 1915;
+		rLoc = 1826;
 		rType = 0;
 		vrLen = 1525;
@@ -1938,5 +4091,5 @@
 		name = "NJRHotKeyField.h: 14";
 		rLen = 0;
-		rLoc = 226;
+		rLoc = 263;
 		rType = 0;
 		vrLen = 358;
@@ -1948,5 +4101,5 @@
 		name = "NJRHotKeyField.m: 146";
 		rLen = 0;
-		rLoc = 5250;
+		rLoc = 5367;
 		rType = 0;
 		vrLen = 859;
@@ -1957,6 +4110,6 @@
 		isa = PBXTextBookmark;
 		name = "NJRHotKeyField.h: 16";
-		rLen = 10;
-		rLoc = 307;
+		rLen = 0;
+		rLoc = 263;
 		rType = 0;
 		vrLen = 358;
@@ -1968,5 +4121,5 @@
 		name = "NJRHotKeyField.m: 147";
 		rLen = 0;
-		rLoc = 5250;
+		rLoc = 5367;
 		rType = 0;
 		vrLen = 859;
@@ -1977,6 +4130,6 @@
 		isa = PBXTextBookmark;
 		name = "NJRHotKeyField.h: 16";
-		rLen = 10;
-		rLoc = 307;
+		rLen = 0;
+		rLoc = 263;
 		rType = 0;
 		vrLen = 358;
@@ -1988,5 +4141,5 @@
 		name = "NJRHotKeyField.m: textShouldBeginEditing:";
 		rLen = 0;
-		rLoc = 1915;
+		rLoc = 1826;
 		rType = 0;
 		vrLen = 1105;
@@ -1998,5 +4151,5 @@
 		name = "NJRHotKeyField.h: 13";
 		rLen = 0;
-		rLoc = 222;
+		rLoc = 263;
 		rType = 0;
 		vrLen = 358;
@@ -2048,5 +4201,5 @@
 		name = "NJRHotKeyField.m: 71";
 		rLen = 0;
-		rLoc = 2437;
+		rLoc = 2348;
 		rType = 0;
 		vrLen = 1589;
@@ -2068,5 +4221,5 @@
 		name = "NJRHotKeyField.m: 55";
 		rLen = 0;
-		rLoc = 1914;
+		rLoc = 1825;
 		rType = 0;
 		vrLen = 1228;
@@ -2108,5 +4261,5 @@
 		name = "NJRHotKeyField.m: 65";
 		rLen = 0;
-		rLoc = 2342;
+		rLoc = 2253;
 		rType = 0;
 		vrLen = 1458;
@@ -2128,5 +4281,5 @@
 		name = "NJRHotKeyField.m: keyUp:";
 		rLen = 0;
-		rLoc = 3568;
+		rLoc = 3314;
 		rType = 0;
 		vrLen = 1210;
@@ -2168,5 +4321,5 @@
 		name = "PSApplication.m: 34";
 		rLen = 19;
-		rLoc = 1049;
+		rLoc = 1167;
 		rType = 0;
 		vrLen = 1212;
@@ -2178,5 +4331,5 @@
 		name = "PSApplication.h: 19";
 		rLen = 0;
-		rLoc = 474;
+		rLoc = 492;
 		rType = 0;
 		vrLen = 760;
@@ -2188,5 +4341,5 @@
 		name = "PSApplication.m: 62";
 		rLen = 0;
-		rLoc = 1794;
+		rLoc = 1886;
 		rType = 0;
 		vrLen = 1219;
@@ -2291,10 +4444,4 @@
 		name = NSTextFieldCell.h;
 		path = /System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSTextFieldCell.h;
-		refType = 0;
-	};
-	E14DECEF0438CDE100050002 = {
-		isa = PBXFileReference;
-		name = NSTextField.h;
-		path = /System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSTextField.h;
 		refType = 0;
 	};
@@ -2352,24 +4499,4 @@
 		vrLoc = 0;
 	};
-	E169594E0437D96B00050002 = {
-		fRef = E1F993C70436310F00050002;
-		isa = PBXTextBookmark;
-		name = "PSPreferencesController.m: 18";
-		rLen = 0;
-		rLoc = 298;
-		rType = 0;
-		vrLen = 822;
-		vrLoc = 3;
-	};
-	E16959510437D96B00050002 = {
-		fRef = E130B9AD03B7C59700000028;
-		isa = PBXTextBookmark;
-		name = "PSPowerManager.m: __GNUC__";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 1485;
-		vrLoc = 0;
-	};
 	E16959520437D96B00050002 = {
 		fRef = E169599A0437D96B00050002;
@@ -2411,14 +4538,4 @@
 		vrLen = 1779;
 		vrLoc = 430;
-	};
-	E169595C0437D96B00050002 = {
-		fRef = E16959970437D96B00050002;
-		isa = PBXTextBookmark;
-		name = "NSDictionary.h: 50";
-		rLen = 22;
-		rLoc = 1813;
-		rType = 0;
-		vrLen = 1777;
-		vrLoc = 522;
 	};
 	E169595D0437D96B00050002 = {
@@ -2504,5 +4621,5 @@
 		name = "NJRHotKeyField.m: 43";
 		rLen = 0;
-		rLoc = 4682;
+		rLoc = 4375;
 		rType = 0;
 		vrLen = 1479;
@@ -2524,5 +4641,5 @@
 		name = "NJRHotKeyField.m: 29";
 		rLen = 0;
-		rLoc = 957;
+		rLoc = 758;
 		rType = 0;
 		vrLen = 1148;
@@ -2544,5 +4661,5 @@
 		name = "PSPreferencesController.m: 18";
 		rLen = 0;
-		rLoc = 298;
+		rLoc = 1880;
 		rType = 0;
 		vrLen = 822;
@@ -2554,5 +4671,5 @@
 		name = "NJRHotKeyField.m: keyUp:";
 		rLen = 0;
-		rLoc = 3568;
+		rLoc = 3314;
 		rType = 0;
 		vrLen = 1148;
@@ -2574,5 +4691,5 @@
 		name = "NJRHotKeyField.m: 73";
 		rLen = 0;
-		rLoc = 4918;
+		rLoc = 4611;
 		rType = 0;
 		vrLen = 1220;
@@ -2614,5 +4731,5 @@
 		name = "NJRHotKeyField.m: 15";
 		rLen = 0;
-		rLoc = 934;
+		rLoc = 736;
 		rType = 0;
 		vrLen = 1377;
@@ -2714,5 +4831,5 @@
 		name = "NJRHotKeyField.m: 11";
 		rLen = 0;
-		rLoc = 902;
+		rLoc = 703;
 		rType = 0;
 		vrLen = 991;
@@ -2734,5 +4851,5 @@
 		name = "NJRHotKeyField.m: 87";
 		rLen = 0;
-		rLoc = 5143;
+		rLoc = 4836;
 		rType = 0;
 		vrLen = 1262;
@@ -2794,5 +4911,5 @@
 		name = "NJRHotKeyField.m: modifierFlags";
 		rLen = 22;
-		rLoc = 4867;
+		rLoc = 4560;
 		rType = 0;
 		vrLen = 1379;
@@ -2847,10 +4964,4 @@
 		refType = 0;
 	};
-	E16959970437D96B00050002 = {
-		isa = PBXFileReference;
-		name = NSDictionary.h;
-		path = /System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSDictionary.h;
-		refType = 0;
-	};
 	E16959980437D96B00050002 = {
 		isa = PBXFileReference;
@@ -2898,24 +5009,4 @@
 		vrLoc = 0;
 	};
-	E1D90AC70439655B00050002 = {
-		fRef = E1D90ACE0439655B00050002;
-		isa = PBXTextBookmark;
-		name = "NSEvent.h: 69";
-		rLen = 0;
-		rLoc = 2081;
-		rType = 0;
-		vrLen = 1346;
-		vrLoc = 1232;
-	};
-	E1D90AC80439655B00050002 = {
-		fRef = E1F0B14F03ADBE3800AEFBE0;
-		isa = PBXTextBookmark;
-		name = "NSString-NJRExtensions.m: underlined";
-		rLen = 0;
-		rLoc = 682;
-		rType = 0;
-		vrLen = 1237;
-		vrLoc = 0;
-	};
 	E1D90ACA0439655B00050002 = {
 		fRef = E1F0B14E03ADBE3800AEFBE0;
@@ -2928,20 +5019,4 @@
 		vrLoc = 0;
 	};
-	E1D90ACD0439655B00050002 = {
-		fRef = E1F0B14F03ADBE3800AEFBE0;
-		isa = PBXTextBookmark;
-		name = "NSString-NJRExtensions.m: keyEquivalentString";
-		rLen = 0;
-		rLoc = 1550;
-		rType = 0;
-		vrLen = 2174;
-		vrLoc = 2987;
-	};
-	E1D90ACE0439655B00050002 = {
-		isa = PBXFileReference;
-		name = NSEvent.h;
-		path = /System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSEvent.h;
-		refType = 0;
-	};
 	E1F99AAA0436379100050002 = {
 		fRef = E1F993C70436310F00050002;
@@ -2949,5 +5024,5 @@
 		name = "PSPreferencesController.m: 25";
 		rLen = 0;
-		rLoc = 630;
+		rLoc = 2265;
 		rType = 0;
 		vrLen = 756;
@@ -2959,5 +5034,5 @@
 		name = "NJRHotKeyField.m: 15";
 		rLen = 0;
-		rLoc = 3568;
+		rLoc = 3314;
 		rType = 0;
 		vrLen = 517;
@@ -2973,14 +5048,4 @@
 		vrLen = 1295;
 		vrLoc = 0;
-	};
-	E1F99AAE04363A8C00050002 = {
-		fRef = E1F993C20436280200050002;
-		isa = PBXTextBookmark;
-		name = "NJRHotKeyField.m: modifierFlags";
-		rLen = 13;
-		rLoc = 4902;
-		rType = 0;
-		vrLen = 1176;
-		vrLoc = 152;
 	};
 	E1F99AC20436806400050002 = {
@@ -3019,5 +5084,5 @@
 		name = "NJRHotKeyField.m: 38";
 		rLen = 0;
-		rLoc = 5051;
+		rLoc = 4744;
 		rType = 0;
 		vrLen = 1375;
@@ -3069,5 +5134,5 @@
 		name = "NJRHotKeyField.m: 38";
 		rLen = 0;
-		rLoc = 5051;
+		rLoc = 4744;
 		rType = 0;
 		vrLen = 1405;
@@ -3079,5 +5144,5 @@
 		name = "NJRHotKeyField.m: 58";
 		rLen = 0;
-		rLoc = 5051;
+		rLoc = 4744;
 		rType = 0;
 		vrLen = 1509;
Index: trunk/Cocoa/Pester/Source/Pester.pbproj/project.pbxproj
===================================================================
--- trunk/Cocoa/Pester/Source/Pester.pbproj/project.pbxproj	(revision 130)
+++ trunk/Cocoa/Pester/Source/Pester.pbproj/project.pbxproj	(revision 131)
@@ -360,4 +360,6 @@
 				E169592B0437A4A400050002,
 				E14DEC840438969400050002,
+				E11373160439FCC700050002,
+				E1453840043A1DB200050002,
 			);
 			isa = PBXHeadersBuildPhase;
@@ -449,4 +451,6 @@
 				E169592C0437A4A400050002,
 				E14DEC850438969400050002,
+				E11373170439FCC700050002,
+				E1453841043A1DB200050002,
 			);
 			isa = PBXSourcesBuildPhase;
@@ -579,4 +583,28 @@
 			};
 		};
+		E11373140439FCC700050002 = {
+			fileEncoding = 4;
+			isa = PBXFileReference;
+			path = NJRHotKey.h;
+			refType = 4;
+		};
+		E11373150439FCC700050002 = {
+			fileEncoding = 4;
+			isa = PBXFileReference;
+			path = NJRHotKey.m;
+			refType = 4;
+		};
+		E11373160439FCC700050002 = {
+			fileRef = E11373140439FCC700050002;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		E11373170439FCC700050002 = {
+			fileRef = E11373150439FCC700050002;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
 		E11C0975041F1BBD00050002 = {
 			buildActionMask = 2147483647;
@@ -666,4 +694,28 @@
 		E13919E503B9E4E100000028 = {
 			fileRef = E13919E303B9E4E100000028;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		E145383E043A1DB200050002 = {
+			fileEncoding = 4;
+			isa = PBXFileReference;
+			path = NJRHotKeyManager.h;
+			refType = 4;
+		};
+		E145383F043A1DB200050002 = {
+			fileEncoding = 4;
+			isa = PBXFileReference;
+			path = NJRHotKeyManager.m;
+			refType = 4;
+		};
+		E1453840043A1DB200050002 = {
+			fileRef = E145383E043A1DB200050002;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		E1453841043A1DB200050002 = {
+			fileRef = E145383F043A1DB200050002;
 			isa = PBXBuildFile;
 			settings = {
@@ -1613,4 +1665,6 @@
 				E17F2F3203FDF2F000050002,
 				E17F2F3303FDF2F000050002,
+				E1F993C60436310F00050002,
+				E1F993C70436310F00050002,
 				E1DEF10203FF816300050002,
 				E1DEF10303FF816300050002,
@@ -1619,6 +1673,4 @@
 				F5F198D1036BE57401EB0372,
 				F5F198D0036BE57401EB0372,
-				E1F993C60436310F00050002,
-				E1F993C70436310F00050002,
 			);
 			isa = PBXGroup;
@@ -1654,4 +1706,8 @@
 				F59DC6FC0354188F01AEEDB1,
 				F59DC6FD0354188F01AEEDB1,
+				E11373140439FCC700050002,
+				E11373150439FCC700050002,
+				E145383E043A1DB200050002,
+				E145383F043A1DB200050002,
 			);
 			isa = PBXGroup;
