OSDN Git Service

The first working revision. master
authorIchi Kanaya <kanaya@Ichi-Kanayas-iMac.local>
Thu, 21 Apr 2011 09:39:26 +0000 (18:39 +0900)
committerIchi Kanaya <kanaya@Ichi-Kanayas-iMac.local>
Thu, 21 Apr 2011 09:39:26 +0000 (18:39 +0900)
Dirac.xcodeproj/project.pbxproj
Dirac/DiracDoc.h
Dirac/DiracDoc.m
Dirac/DiracDocController.h [new file with mode: 0644]
Dirac/DiracDocController.m [new file with mode: 0644]
Dirac/DiracStatusXMLParser.h [new file with mode: 0644]
Dirac/DiracStatusXMLParser.m [new file with mode: 0644]
Dirac/DiracURLLoader.h [new file with mode: 0644]
Dirac/DiracURLLoader.m [new file with mode: 0644]
Dirac/en.lproj/DiracDoc.xib

index 1c624cb..ff65cf5 100644 (file)
@@ -14,6 +14,9 @@
                BF0D766F135FC3140031FDDD /* DiracDoc.m in Sources */ = {isa = PBXBuildFile; fileRef = BF0D766E135FC3140031FDDD /* DiracDoc.m */; };
                BF0D7672135FC3140031FDDD /* DiracDoc.xib in Resources */ = {isa = PBXBuildFile; fileRef = BF0D7670135FC3140031FDDD /* DiracDoc.xib */; };
                BF0D7675135FC3150031FDDD /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = BF0D7673135FC3150031FDDD /* MainMenu.xib */; };
+               BF0D767D135FC4B30031FDDD /* DiracDocController.m in Sources */ = {isa = PBXBuildFile; fileRef = BF0D767C135FC4B30031FDDD /* DiracDocController.m */; };
+               BF0D7680135FD0D00031FDDD /* DiracURLLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = BF0D767F135FD0D00031FDDD /* DiracURLLoader.m */; };
+               BF0D7683135FD4E10031FDDD /* DiracStatusXMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = BF0D7682135FD4E10031FDDD /* DiracStatusXMLParser.m */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
                BF0D765E135FC3140031FDDD /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
                BF0D765F135FC3140031FDDD /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
                BF0D7660135FC3140031FDDD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
-               BF0D7663135FC3140031FDDD /* Dirac-Info.plist */ = {isa = PBXFileReference; path = "Dirac-Info.plist"; sourceTree = "<group>"; };
+               BF0D7663135FC3140031FDDD /* Dirac-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Dirac-Info.plist"; sourceTree = "<group>"; };
                BF0D7665135FC3140031FDDD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-               BF0D7667135FC3140031FDDD /* Dirac-Prefix.pch */ = {isa = PBXFileReference; path = "Dirac-Prefix.pch"; sourceTree = "<group>"; };
+               BF0D7667135FC3140031FDDD /* Dirac-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Dirac-Prefix.pch"; sourceTree = "<group>"; };
                BF0D7668135FC3140031FDDD /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
                BF0D766B135FC3140031FDDD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
-               BF0D766D135FC3140031FDDD /* DiracDoc.h */ = {isa = PBXFileReference; path = DiracDoc.h; sourceTree = "<group>"; };
+               BF0D766D135FC3140031FDDD /* DiracDoc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DiracDoc.h; sourceTree = "<group>"; };
                BF0D766E135FC3140031FDDD /* DiracDoc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DiracDoc.m; sourceTree = "<group>"; };
                BF0D7671135FC3140031FDDD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/DiracDoc.xib; sourceTree = "<group>"; };
                BF0D7674135FC3150031FDDD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
+               BF0D767B135FC4B30031FDDD /* DiracDocController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiracDocController.h; sourceTree = "<group>"; };
+               BF0D767C135FC4B30031FDDD /* DiracDocController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DiracDocController.m; sourceTree = "<group>"; };
+               BF0D767E135FD0D00031FDDD /* DiracURLLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiracURLLoader.h; sourceTree = "<group>"; };
+               BF0D767F135FD0D00031FDDD /* DiracURLLoader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DiracURLLoader.m; sourceTree = "<group>"; };
+               BF0D7681135FD4E10031FDDD /* DiracStatusXMLParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiracStatusXMLParser.h; sourceTree = "<group>"; };
+               BF0D7682135FD4E10031FDDD /* DiracStatusXMLParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DiracStatusXMLParser.m; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
                        children = (
                                BF0D766D135FC3140031FDDD /* DiracDoc.h */,
                                BF0D766E135FC3140031FDDD /* DiracDoc.m */,
+                               BF0D767B135FC4B30031FDDD /* DiracDocController.h */,
+                               BF0D767C135FC4B30031FDDD /* DiracDocController.m */,
+                               BF0D767E135FD0D00031FDDD /* DiracURLLoader.h */,
+                               BF0D767F135FD0D00031FDDD /* DiracURLLoader.m */,
+                               BF0D7681135FD4E10031FDDD /* DiracStatusXMLParser.h */,
+                               BF0D7682135FD4E10031FDDD /* DiracStatusXMLParser.m */,
                                BF0D7670135FC3140031FDDD /* DiracDoc.xib */,
                                BF0D7673135FC3150031FDDD /* MainMenu.xib */,
                                BF0D7662135FC3140031FDDD /* Supporting Files */,
                        files = (
                                BF0D7669135FC3140031FDDD /* main.m in Sources */,
                                BF0D766F135FC3140031FDDD /* DiracDoc.m in Sources */,
+                               BF0D767D135FC4B30031FDDD /* DiracDocController.m in Sources */,
+                               BF0D7680135FD0D00031FDDD /* DiracURLLoader.m in Sources */,
+                               BF0D7683135FD4E10031FDDD /* DiracStatusXMLParser.m in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
index 45b3547..ee6c0b2 100644 (file)
@@ -7,9 +7,16 @@
 //
 
 #import <Cocoa/Cocoa.h>
+#import "DiracDocController.h"
 
-@interface DiracDoc : NSDocument {
+@interface DiracDoc: NSDocument {
+    DiracDocController *controller;
+    NSString *userName;
 @private
 }
 
+@property (retain, nonatomic) NSString *userName;
+
+- (void)registerMeAsAController: (id)sender;
+
 @end
index 368b850..2534f12 100644 (file)
 
 @implementation DiracDoc
 
-- (id)init
-{
+static NSString *defaultUserName = @"twitter";
+
+@synthesize userName;
+
+- (id)init {
     self = [super init];
     if (self) {
         // Add your subclass-specific initialization here.
         // If an error occurs here, send a [self release] message and return nil.
+        userName = defaultUserName;
     }
     return self;
 }
 
-- (NSString *)windowNibName
-{
+- (NSString *)windowNibName {
     // Override returning the nib file name of the document
     // If you need to use a subclass of NSWindowController or if your document supports multiple NSWindowControllers, you should remove this method and override -makeWindowControllers instead.
     return @"DiracDoc";
 }
 
-- (void)windowControllerDidLoadNib:(NSWindowController *)aController
-{
-    [super windowControllerDidLoadNib:aController];
+- (void)windowControllerDidLoadNib: (NSWindowController *)aController {
+    [super windowControllerDidLoadNib: aController];
     // Add any code here that needs to be executed once the windowController has loaded the document's window.
+    [controller load];
 }
 
-- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError {
+- (void)registerMeAsAController: (id)sender {
+    controller = sender;
+    // NSLog(@"controller registered.");
+}
+
+
+- (NSData *)dataOfType: (NSString *)typeName error: (NSError **)outError {
     /*
      Insert code here to write your document to data of the specified type. If outError != NULL, ensure that you create and set an appropriate error when returning nil.
     You can also choose to override -fileWrapperOfType:error:, -writeToURL:ofType:error:, or -writeToURL:ofType:forSaveOperation:originalContentsURL:error: instead.
     */
+    /*
     if (outError) {
-        *outError = [NSError errorWithDomain:NSOSStatusErrorDomain code:unimpErr userInfo:NULL];
+        *outError = [NSError errorWithDomain: NSOSStatusErrorDomain code: unimpErr userInfo: NULL];
     }
     return nil;
+    */
+    return [userName dataUsingEncoding: NSUTF8StringEncoding];
 }
 
-- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError {
+- (BOOL)readFromData: (NSData *)data ofType: (NSString *)typeName error: (NSError **)outError {
     /*
     Insert code here to read your document from the given data of the specified type. If outError != NULL, ensure that you create and set an appropriate error when returning NO.
     You can also choose to override -readFromFileWrapper:ofType:error: or -readFromURL:ofType:error: instead.
     */
+    userName = [[NSString alloc] initWithUTF8String: (const char *)[data bytes]];
+    // controller.currentUserName = userName;
+    /*
     if (outError) {
-        *outError = [NSError errorWithDomain:NSOSStatusErrorDomain code:unimpErr userInfo:NULL];
+        *outError = [NSError errorWithDomain: NSOSStatusErrorDomain code: unimpErr userInfo: NULL];
     }
+    */
     return YES;
 }
 
diff --git a/Dirac/DiracDocController.h b/Dirac/DiracDocController.h
new file mode 100644 (file)
index 0000000..0f8fcc5
--- /dev/null
@@ -0,0 +1,29 @@
+//
+//  DiracDocController.h
+//  Dirac
+//
+//  Created by Ichi Kanaya on 11/04/21.
+//  Copyright 2011 大阪大学. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface DiracDocController: NSObject {
+    IBOutlet NSDocument *doc;
+    IBOutlet NSWindow *window;
+    IBOutlet NSLevelIndicator *levelIndicator;
+    IBOutlet NSTextField *userNameTextField;
+    IBOutlet NSProgressIndicator *progressIndicator;
+    NSArray *statuses;
+    NSTimer *timer;
+@private
+}
+
+@property (retain, nonatomic) NSArray *statuses;
+
+- (IBAction)reload: (id)sender;
+- (void)load;
+- (void)loadTimeLineByUserName: (NSString *)userName;
+
+
+@end
diff --git a/Dirac/DiracDocController.m b/Dirac/DiracDocController.m
new file mode 100644 (file)
index 0000000..43d7b48
--- /dev/null
@@ -0,0 +1,112 @@
+//
+//  DiracDocController.m
+//  Dirac
+//
+//  Created by Ichi Kanaya on 11/04/21.
+//  Copyright 2011 大阪大学. All rights reserved.
+//
+
+#import <math.h>
+#import "DiracDocController.h"
+#import "DiracDoc.h"
+#import "DiracURLLoader.h"
+#import "DiracStatusXMLParser.h"
+
+#define WINDOW_SIZE (24 * 3600)
+
+@implementation DiracDocController
+
+@synthesize statuses;
+
+- (id)init {
+    self = [super init];
+    if (self) {
+        // Initialization code here.
+    }
+    return self;
+}
+
+- (void)dealloc {
+    [super dealloc];
+}
+
+- (void)awakeFromNib {
+    DiracDoc *_doc = (DiracDoc *)doc;
+    [_doc registerMeAsAController: self];
+    timer = [NSTimer scheduledTimerWithTimeInterval: 30 * 60
+                                             target: self
+                                           selector: @selector(timer_fire:)
+                                           userInfo: nil
+                                            repeats: YES];
+    [progressIndicator setUsesThreadedAnimation: YES];
+}
+
+- (void)timer_fire: (NSTimer *)timer {
+    [self reload: self];
+}
+
+- (IBAction)reload: (id)sender {
+    NSString *userName = [userNameTextField stringValue];
+    if (userName) {
+        DiracDoc *_doc = (DiracDoc *)doc;
+        _doc.userName = userName;
+        [self load];
+    }
+}
+
+- (void)load {
+    NSString *userName = ((DiracDoc *)doc).userName;
+    [userNameTextField setStringValue: userName];
+    [window setTitle: userName];
+    [self loadTimeLineByUserName: userName];
+}
+
+- (void)loadTimeLineByUserName: (NSString *)userName {
+    static NSString *urlFormat = @"http://twitter.com/status/user_timeline/%@.xml";
+    NSString *url = [NSString stringWithFormat: urlFormat, userName];
+    
+    [progressIndicator startAnimation: self];
+    DiracURLLoader *loder = [[[DiracURLLoader alloc] init] autorelease];
+    [[NSNotificationCenter defaultCenter] addObserver: self                         
+                                             selector: @selector(loadTimeLineDidEnd:)
+                                                 name: @"connectionDidFinishNotification"
+                                               object: loder];
+    [[NSNotificationCenter defaultCenter] addObserver: self
+                                             selector: @selector(loadTimeLineFailed:)
+                                                 name: @"connectionDidFailWithError"
+                                               object: loder];
+    
+    // [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
+    
+    [loder loadFromUrl: url method: @"GET"];
+}
+
+- (void) loadTimeLineDidEnd: (NSNotification *)notification {
+    DiracURLLoader *loder = (DiracURLLoader *)[notification object];
+    NSData *xmlData = loder.data;
+    DiracStatusXMLParser *parser = [[[DiracStatusXMLParser alloc] init] autorelease];
+    self.statuses = [parser parseStatuses: xmlData];
+    int count = 0;
+    NSTimeInterval biggest_time_interval = -1;
+    for (NSDictionary *status in statuses) {
+        NSDate *created_date = [NSDate dateWithNaturalLanguageString: [status objectForKey: @"created_at"]];
+        NSTimeInterval interval = [created_date timeIntervalSinceNow];
+        if (interval > -WINDOW_SIZE) {
+            ++count;
+            if (interval < biggest_time_interval) {
+                biggest_time_interval = interval;
+            }
+        }
+    }
+    float divider = (-biggest_time_interval < WINDOW_SIZE) ? -biggest_time_interval : WINDOW_SIZE;
+    float diracCount = (float)count / divider * 3600;
+    [levelIndicator setFloatValue: diracCount * 1000];
+    [progressIndicator stopAnimation: self];
+    NSLog(@"%@ is twittering at a speed of %f[dirac].", ((DiracDoc *)doc).userName, diracCount);
+}
+
+- (void) loadTimeLineFailed: (NSNotification *)notification {
+    // do something
+}
+
+@end
diff --git a/Dirac/DiracStatusXMLParser.h b/Dirac/DiracStatusXMLParser.h
new file mode 100644 (file)
index 0000000..277d883
--- /dev/null
@@ -0,0 +1,25 @@
+//
+//  DiracStatusXMLParser.h
+//  Dirac
+//
+//  Created by Ichi Kanaya on 11/04/21.
+//  Copyright 2011 大阪大学. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface DiracStatusXMLParser: NSObject <NSXMLParserDelegate> {
+    NSMutableString *currentXpath;
+    NSMutableArray *statuses;
+    NSMutableDictionary *currentStatus;
+    NSMutableString *textNodeCharacters;
+}
+
+@property (retain, nonatomic) NSMutableString *currentXpath;
+@property (retain, nonatomic) NSMutableArray *statuses;
+@property (retain, nonatomic) NSMutableDictionary *currentStatus;
+@property (retain, nonatomic) NSMutableString *textNodeCharacters;
+
+- (NSArray *)parseStatuses: (NSData *)xmlData;
+
+@end
diff --git a/Dirac/DiracStatusXMLParser.m b/Dirac/DiracStatusXMLParser.m
new file mode 100644 (file)
index 0000000..e0550d1
--- /dev/null
@@ -0,0 +1,86 @@
+//
+//  DiracStatusXMLParser.m
+//  Dirac
+//
+//  Created by Ichi Kanaya on 11/04/21.
+//  Copyright 2011 大阪大学. All rights reserved.
+//
+
+#import "DiracStatusXMLParser.h"
+
+@implementation DiracStatusXMLParser
+
+@synthesize currentXpath;
+@synthesize statuses;
+@synthesize currentStatus;
+@synthesize textNodeCharacters;
+
+- (id)init {
+    self = [super init];
+    if (self) {
+        // Initialization code here.
+    }
+    return self;
+}
+
+- (void) dealloc {
+    [currentXpath release];
+    [statuses release];
+    [currentStatus release];
+    [textNodeCharacters release];
+    [super dealloc];
+}
+
+- (void)parserDidStartDocument: (NSXMLParser *)parser {
+    self.currentXpath = [[[NSMutableString alloc]init] autorelease];
+    self.statuses = [[[NSMutableArray alloc] init] autorelease];
+}
+
+- (void)parser: (NSXMLParser *)parser didStartElement: (NSString *)elementName namespaceURI: (NSString *)namespaceURI qualifiedName:(NSString *)qName attributes: (NSDictionary *)attributeDict {
+    [self.currentXpath appendString: elementName];
+    [self.currentXpath appendString: @"/"];
+    
+    self.textNodeCharacters = [[[NSMutableString alloc] init] autorelease];
+    
+    if ([self.currentXpath isEqualToString: @"statuses/status/"]) {
+        self.currentStatus = [[[NSMutableDictionary alloc] init] autorelease];
+    }
+}
+
+- (void)parser: (NSXMLParser *)parser didEndElement: (NSString *)elementName namespaceURI: (NSString *)namespaceURI qualifiedName: (NSString *)qName {
+    NSString *textData = [self.textNodeCharacters stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
+    
+    if ([self.currentXpath isEqualToString: @"statuses/status/"]) {
+        [self.statuses addObject: self.currentStatus];
+        self.currentStatus = nil;
+        
+    }
+    else if ([self.currentXpath isEqualToString: @"statuses/status/created_at/"]) {
+        [self.currentStatus setValue: textData forKey: @"created_at"];
+    }
+    else if ([self.currentXpath isEqualToString: @"statuses/status/text/"]) {
+        [self.currentStatus setValue: textData forKey: @"text"];
+        
+    }
+    else if ([self.currentXpath isEqualToString: @"statuses/status/user/name/"]) {
+        [self.currentStatus setValue: textData forKey: @"name"];
+    }
+    
+    unsigned long delLength = [elementName length] + 1;
+    unsigned long delIndex = [self.currentXpath length] - delLength;
+    
+    [self.currentXpath deleteCharactersInRange: NSMakeRange(delIndex, delLength)];
+}
+
+- (void) parser:(NSXMLParser *)parser foundCharacters: (NSString *)string {
+    [self.textNodeCharacters appendString:string];
+}
+
+- (NSArray *)parseStatuses: (NSData *)xmlData {
+    NSXMLParser *parser = [[[NSXMLParser alloc] initWithData:xmlData] autorelease];
+    [parser setDelegate: self];
+    [parser parse];
+    return self.statuses;
+}
+
+@end
diff --git a/Dirac/DiracURLLoader.h b/Dirac/DiracURLLoader.h
new file mode 100644 (file)
index 0000000..8d7e46b
--- /dev/null
@@ -0,0 +1,21 @@
+//
+//  DiracURLLoader.h
+//  Dirac
+//
+//  Created by Ichi Kanaya on 11/04/21.
+//  Copyright 2011 大阪大学. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface DiracURLLoader: NSObject {
+    NSURLConnection *connection;
+    NSMutableData   *data;
+}
+
+@property(retain, nonatomic) NSURLConnection *connection;
+@property(retain, nonatomic) NSMutableData *data;
+
+- (void)loadFromUrl: (NSString *)url method: (NSString *) method;
+
+@end
diff --git a/Dirac/DiracURLLoader.m b/Dirac/DiracURLLoader.m
new file mode 100644 (file)
index 0000000..1708948
--- /dev/null
@@ -0,0 +1,57 @@
+//
+//  DiracURLLoader.m
+//  Dirac
+//
+//  Created by Ichi Kanaya on 11/04/21.
+//  Copyright 2011 大阪大学. All rights reserved.
+//
+
+#import "DiracURLLoader.h"
+
+
+@implementation DiracURLLoader
+
+@synthesize connection;
+@synthesize data;
+
+- (id)init {
+    self = [super init];
+    if (self) {
+        // Initialization code here.
+    }    
+    return self;
+}
+
+- (void)dealloc {
+    [connection release];
+    [data release];
+    [super dealloc];
+}
+
+- (void)connection: (NSURLConnection *)connection didReceiveResponse: (NSURLResponse *)response {
+    self.data = [NSMutableData data];
+}
+
+- (void)connection: (NSURLConnection *)connection didReceiveData: (NSData *)receiveData {
+    [self.data appendData:receiveData];
+}
+
+- (void)connectionDidFinishLoading: (NSURLConnection *)connection {
+    [[NSNotificationCenter defaultCenter] postNotificationName: @"connectionDidFinishNotification" 
+                                                        object: self];
+}
+
+- (void)connection: (NSURLConnection *)connection didFailWithError: (NSError *)error {
+    [[NSNotificationCenter defaultCenter] postNotificationName: @"connectionDidFailWithError" 
+                                                        object: self];
+}
+
+- (void)loadFromUrl: (NSString *)url method: (NSString *) method {
+    NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL: [NSURL URLWithString: url]];
+    [req setHTTPMethod: method];
+    self.connection = [NSURLConnection connectionWithRequest: req delegate: self];
+}
+
+
+
+@end
index 7b15919..fa09932 100644 (file)
@@ -1,34 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.06">
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
        <data>
                <int key="IBDocument.SystemTarget">1060</int>
-               <string key="IBDocument.SystemVersion">10A261</string>
-               <string key="IBDocument.InterfaceBuilderVersion">710</string>
-               <string key="IBDocument.AppKitVersion">1005.2</string>
-               <string key="IBDocument.HIToolboxVersion">409.00</string>
+               <string key="IBDocument.SystemVersion">10J869</string>
+               <string key="IBDocument.InterfaceBuilderVersion">1305</string>
+               <string key="IBDocument.AppKitVersion">1038.35</string>
+               <string key="IBDocument.HIToolboxVersion">461.00</string>
                <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
                        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                       <string key="NS.object.0">710</string>
+                       <string key="NS.object.0">1305</string>
                </object>
-               <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
-                       <bool key="EncodedWithXMLCoder">YES</bool>
-                       <integer value="5"/>
-               </object>
-               <object class="NSArray" key="IBDocument.PluginDependencies">
-                       <bool key="EncodedWithXMLCoder">YES</bool>
+               <array key="IBDocument.IntegratedClassDependencies">
+                       <string>NSTextField</string>
+                       <string>NSView</string>
+                       <string>NSWindowTemplate</string>
+                       <string>NSCustomObject</string>
+                       <string>NSProgressIndicator</string>
+                       <string>NSLevelIndicatorCell</string>
+                       <string>NSButtonCell</string>
+                       <string>NSLevelIndicator</string>
+                       <string>NSButton</string>
+                       <string>NSTextFieldCell</string>
+               </array>
+               <array key="IBDocument.PluginDependencies">
                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-               </object>
-               <object class="NSMutableDictionary" key="IBDocument.Metadata">
-                       <bool key="EncodedWithXMLCoder">YES</bool>
-                       <object class="NSArray" key="dict.sortedKeys" id="0">
-                               <bool key="EncodedWithXMLCoder">YES</bool>
-                       </object>
-                       <object class="NSMutableArray" key="dict.values">
-                               <bool key="EncodedWithXMLCoder">YES</bool>
-                       </object>
-               </object>
-               <object class="NSMutableArray" key="IBDocument.RootObjects" id="580458321">
-                       <bool key="EncodedWithXMLCoder">YES</bool>
+               </array>
+               <dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
+               <array class="NSMutableArray" key="IBDocument.RootObjects" id="580458321">
                        <object class="NSCustomObject" id="512844837">
                                <string key="NSClassName">DiracDoc</string>
                        </object>
                                <string key="NSClassName">FirstResponder</string>
                        </object>
                        <object class="NSWindowTemplate" id="275939982">
-                               <int key="NSWindowStyleMask">15</int>
+                               <int key="NSWindowStyleMask">263</int>
                                <int key="NSWindowBacking">2</int>
-                               <string key="NSWindowRect">{{133, 235}, {507, 413}}</string>
-                               <int key="NSWTFlags">1886912512</int>
+                               <string key="NSWindowRect">{{133, 235}, {507, 93}}</string>
+                               <int key="NSWTFlags">1886913536</int>
                                <string key="NSWindowTitle">Window</string>
                                <string key="NSWindowClass">NSWindow</string>
                                <string key="NSViewClass">View</string>
-                               <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
-                               <string key="NSWindowContentMinSize">{94, 86}</string>
+                               <string key="NSWindowContentMinSize">{507, 62}</string>
                                <object class="NSView" key="NSWindowView" id="568628114">
                                        <reference key="NSNextResponder"/>
                                        <int key="NSvFlags">256</int>
-                                       <object class="NSMutableArray" key="NSSubviews">
-                                               <bool key="EncodedWithXMLCoder">YES</bool>
-                                               <object class="NSTextField" id="433022199">
+                                       <array class="NSMutableArray" key="NSSubviews">
+                                               <object class="NSTextField" id="1039554402">
                                                        <reference key="NSNextResponder" ref="568628114"/>
-                                                       <int key="NSvFlags">256</int>
-                                                       <string key="NSFrame">{{119, 195}, {269, 22}}</string>
+                                                       <int key="NSvFlags">266</int>
+                                                       <string key="NSFrame">{{20, 20}, {281, 22}}</string>
                                                        <reference key="NSSuperview" ref="568628114"/>
+                                                       <reference key="NSNextKeyView" ref="859349326"/>
                                                        <bool key="NSEnabled">YES</bool>
-                                                       <object class="NSTextFieldCell" key="NSCell" id="566561048">
-                                                               <int key="NSCellFlags">67239424</int>
-                                                               <int key="NSCellFlags2">138412032</int>
-                                                               <string key="NSContents">Your document contents here</string>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="219430947">
+                                                               <int key="NSCellFlags">-1804468671</int>
+                                                               <int key="NSCellFlags2">272630784</int>
+                                                               <string key="NSContents"/>
                                                                <object class="NSFont" key="NSSupport">
                                                                        <string key="NSName">LucidaGrande</string>
-                                                                       <double key="NSSize">18</double>
-                                                                       <int key="NSfFlags">16</int>
+                                                                       <double key="NSSize">13</double>
+                                                                       <int key="NSfFlags">1044</int>
                                                                </object>
-                                                               <reference key="NSControlView" ref="433022199"/>
+                                                               <string key="NSPlaceholderString">kanaya</string>
+                                                               <reference key="NSControlView" ref="1039554402"/>
+                                                               <bool key="NSDrawsBackground">YES</bool>
                                                                <object class="NSColor" key="NSBackgroundColor">
                                                                        <int key="NSColorSpace">6</int>
                                                                        <string key="NSCatalogName">System</string>
-                                                                       <string key="NSColorName">controlColor</string>
+                                                                       <string key="NSColorName">textBackgroundColor</string>
                                                                        <object class="NSColor" key="NSColor">
                                                                                <int key="NSColorSpace">3</int>
-                                                                               <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes>
+                                                                               <bytes key="NSWhite">MQA</bytes>
                                                                        </object>
                                                                </object>
                                                                <object class="NSColor" key="NSTextColor">
                                                                        <int key="NSColorSpace">6</int>
                                                                        <string key="NSCatalogName">System</string>
-                                                                       <string key="NSColorName">controlTextColor</string>
+                                                                       <string key="NSColorName">textColor</string>
                                                                        <object class="NSColor" key="NSColor">
                                                                                <int key="NSColorSpace">3</int>
                                                                                <bytes key="NSWhite">MAA</bytes>
                                                                </object>
                                                        </object>
                                                </object>
-                                       </object>
-                                       <string key="NSFrameSize">{507, 413}</string>
+                                               <object class="NSLevelIndicator" id="805794593">
+                                                       <reference key="NSNextResponder" ref="568628114"/>
+                                                       <int key="NSvFlags">266</int>
+                                                       <string key="NSFrame">{{20, 50}, {467, 23}}</string>
+                                                       <reference key="NSSuperview" ref="568628114"/>
+                                                       <reference key="NSNextKeyView" ref="1039554402"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSLevelIndicatorCell" key="NSCell" id="545038016">
+                                                               <int key="NSCellFlags">130560</int>
+                                                               <int key="NSCellFlags2">0</int>
+                                                               <reference key="NSControlView" ref="805794593"/>
+                                                               <double key="NSMaxValue">3000</double>
+                                                               <double key="NSWarningValue">2000</double>
+                                                               <double key="NSCriticalValue">3000</double>
+                                                               <int key="NSNumberOfTickMarks">31</int>
+                                                               <int key="NSNumberOfMajorTickMarks">4</int>
+                                                               <int key="NSIndicatorStyle">1</int>
+                                                       </object>
+                                               </object>
+                                               <object class="NSProgressIndicator" id="859349326">
+                                                       <reference key="NSNextResponder" ref="568628114"/>
+                                                       <int key="NSvFlags">5388</int>
+                                                       <object class="NSPSMatrix" key="NSDrawMatrix"/>
+                                                       <string key="NSFrame">{{309, 23}, {16, 16}}</string>
+                                                       <reference key="NSSuperview" ref="568628114"/>
+                                                       <reference key="NSNextKeyView" ref="482570557"/>
+                                                       <int key="NSpiFlags">28938</int>
+                                                       <double key="NSMaxValue">100</double>
+                                               </object>
+                                               <object class="NSButton" id="482570557">
+                                                       <reference key="NSNextResponder" ref="568628114"/>
+                                                       <int key="NSvFlags">268</int>
+                                                       <string key="NSFrame">{{333, 22}, {154, 17}}</string>
+                                                       <reference key="NSSuperview" ref="568628114"/>
+                                                       <reference key="NSNextKeyView"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSButtonCell" key="NSCell" id="1009929181">
+                                                               <int key="NSCellFlags">-2080244224</int>
+                                                               <int key="NSCellFlags2">134348800</int>
+                                                               <string key="NSContents">Reload</string>
+                                                               <object class="NSFont" key="NSSupport">
+                                                                       <string key="NSName">LucidaGrande</string>
+                                                                       <double key="NSSize">11</double>
+                                                                       <int key="NSfFlags">3100</int>
+                                                               </object>
+                                                               <reference key="NSControlView" ref="482570557"/>
+                                                               <int key="NSButtonFlags">-2038152961</int>
+                                                               <int key="NSButtonFlags2">164</int>
+                                                               <string key="NSAlternateContents"/>
+                                                               <string key="NSKeyEquivalent"/>
+                                                               <int key="NSPeriodicDelay">400</int>
+                                                               <int key="NSPeriodicInterval">75</int>
+                                                       </object>
+                                               </object>
+                                       </array>
+                                       <string key="NSFrame">{{7, 11}, {507, 93}}</string>
                                        <reference key="NSSuperview"/>
+                                       <reference key="NSNextKeyView" ref="805794593"/>
                                </object>
-                               <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
-                               <string key="NSMinSize">{94, 108}</string>
-                               <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+                               <string key="NSScreenRect">{{0, 0}, {2560, 1418}}</string>
+                               <string key="NSMinSize">{507, 84}</string>
+                               <string key="NSMaxSize">{1e+13, 1e+13}</string>
+                       </object>
+                       <object class="NSCustomObject" id="795723766">
+                               <string key="NSClassName">DiracDocController</string>
                        </object>
                        <object class="NSCustomObject" id="796877042">
                                <string key="NSClassName">NSApplication</string>
                        </object>
-               </object>
+               </array>
                <object class="IBObjectContainer" key="IBDocument.Objects">
-                       <object class="NSMutableArray" key="connectionRecords">
-                               <bool key="EncodedWithXMLCoder">YES</bool>
+                       <array class="NSMutableArray" key="connectionRecords">
                                <object class="IBConnectionRecord">
                                        <object class="IBOutletConnection" key="connection">
                                                <string key="label">delegate</string>
                                        </object>
                                        <int key="connectionID">18</int>
                                </object>
-                       </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">levelIndicator</string>
+                                               <reference key="source" ref="795723766"/>
+                                               <reference key="destination" ref="805794593"/>
+                                       </object>
+                                       <int key="connectionID">100028</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">userNameTextField</string>
+                                               <reference key="source" ref="795723766"/>
+                                               <reference key="destination" ref="1039554402"/>
+                                       </object>
+                                       <int key="connectionID">100034</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">reload:</string>
+                                               <reference key="source" ref="795723766"/>
+                                               <reference key="destination" ref="482570557"/>
+                                       </object>
+                                       <int key="connectionID">100044</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">progressIndicator</string>
+                                               <reference key="source" ref="795723766"/>
+                                               <reference key="destination" ref="859349326"/>
+                                       </object>
+                                       <int key="connectionID">100045</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">window</string>
+                                               <reference key="source" ref="795723766"/>
+                                               <reference key="destination" ref="275939982"/>
+                                       </object>
+                                       <int key="connectionID">100046</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">reload:</string>
+                                               <reference key="source" ref="795723766"/>
+                                               <reference key="destination" ref="1039554402"/>
+                                       </object>
+                                       <int key="connectionID">100047</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">doc</string>
+                                               <reference key="source" ref="795723766"/>
+                                               <reference key="destination" ref="512844837"/>
+                                       </object>
+                                       <int key="connectionID">100048</int>
+                               </object>
+                       </array>
                        <object class="IBMutableOrderedSet" key="objectRecords">
-                               <object class="NSArray" key="orderedObjects">
-                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               <array key="orderedObjects">
                                        <object class="IBObjectRecord">
                                                <int key="objectID">0</int>
-                                               <reference key="object" ref="0"/>
+                                               <array key="object" id="0"/>
                                                <reference key="children" ref="580458321"/>
                                                <nil key="parent"/>
                                        </object>
                                                <int key="objectID">-2</int>
                                                <reference key="object" ref="512844837"/>
                                                <reference key="parent" ref="0"/>
-                                               <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
+                                               <string key="objectName">File's Owner</string>
                                        </object>
                                        <object class="IBObjectRecord">
                                                <int key="objectID">-1</int>
                                        <object class="IBObjectRecord">
                                                <int key="objectID">5</int>
                                                <reference key="object" ref="275939982"/>
-                                               <object class="NSMutableArray" key="children">
-                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <array class="NSMutableArray" key="children">
                                                        <reference ref="568628114"/>
-                                               </object>
+                                               </array>
                                                <reference key="parent" ref="0"/>
                                                <string key="objectName">Window</string>
                                        </object>
                                        <object class="IBObjectRecord">
                                                <int key="objectID">6</int>
                                                <reference key="object" ref="568628114"/>
-                                               <object class="NSMutableArray" key="children">
-                                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                                                       <reference ref="433022199"/>
-                                               </object>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="805794593"/>
+                                                       <reference ref="1039554402"/>
+                                                       <reference ref="859349326"/>
+                                                       <reference ref="482570557"/>
+                                               </array>
                                                <reference key="parent" ref="275939982"/>
                                        </object>
                                        <object class="IBObjectRecord">
-                                               <int key="objectID">20</int>
-                                               <reference key="object" ref="433022199"/>
-                                               <object class="NSMutableArray" key="children">
-                                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                                                       <reference ref="566561048"/>
-                                               </object>
+                                               <int key="objectID">-3</int>
+                                               <reference key="object" ref="796877042"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">Application</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">100021</int>
+                                               <reference key="object" ref="1039554402"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="219430947"/>
+                                               </array>
                                                <reference key="parent" ref="568628114"/>
                                        </object>
                                        <object class="IBObjectRecord">
-                                               <int key="objectID">100020</int>
-                                               <reference key="object" ref="566561048"/>
-                                               <reference key="parent" ref="433022199"/>
+                                               <int key="objectID">100022</int>
+                                               <reference key="object" ref="219430947"/>
+                                               <reference key="parent" ref="1039554402"/>
                                        </object>
                                        <object class="IBObjectRecord">
-                                               <int key="objectID">-3</int>
-                                               <reference key="object" ref="796877042"/>
+                                               <int key="objectID">100023</int>
+                                               <reference key="object" ref="805794593"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="545038016"/>
+                                               </array>
+                                               <reference key="parent" ref="568628114"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">100024</int>
+                                               <reference key="object" ref="545038016"/>
+                                               <reference key="parent" ref="805794593"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">100027</int>
+                                               <reference key="object" ref="795723766"/>
                                                <reference key="parent" ref="0"/>
-                                               <string key="objectName">Application</string>
                                        </object>
-                               </object>
-                       </object>
-                       <object class="NSMutableDictionary" key="flattenedProperties">
-                               <bool key="EncodedWithXMLCoder">YES</bool>
-                               <object class="NSArray" key="dict.sortedKeys">
-                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                                       <string>100020.IBPluginDependency</string>
-                                       <string>20.IBPluginDependency</string>
-                                       <string>20.ImportedFromIB2</string>
-                                       <string>5.IBEditorWindowLastContentRect</string>
-                                       <string>5.IBPluginDependency</string>
-                                       <string>5.IBWindowTemplateEditedContentRect</string>
-                                       <string>5.ImportedFromIB2</string>
-                                       <string>5.editorWindowContentRectSynchronizationRect</string>
-                                       <string>5.windowTemplate.hasMinSize</string>
-                                       <string>5.windowTemplate.minSize</string>
-                                       <string>6.IBPluginDependency</string>
-                                       <string>6.ImportedFromIB2</string>
-                               </object>
-                               <object class="NSMutableArray" key="dict.values">
-                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-                                       <integer value="1"/>
-                                       <string>{{133, 170}, {507, 413}}</string>
-                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-                                       <string>{{133, 170}, {507, 413}}</string>
-                                       <integer value="1"/>
-                                       <string>{{201, 387}, {507, 413}}</string>
-                                       <integer value="1"/>
-                                       <string>{94, 86}</string>
-                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-                                       <integer value="1"/>
-                               </object>
-                       </object>
-                       <object class="NSMutableDictionary" key="unlocalizedProperties">
-                               <bool key="EncodedWithXMLCoder">YES</bool>
-                               <reference key="dict.sortedKeys" ref="0"/>
-                               <object class="NSMutableArray" key="dict.values">
-                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                               </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">100037</int>
+                                               <reference key="object" ref="859349326"/>
+                                               <reference key="parent" ref="568628114"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">100042</int>
+                                               <reference key="object" ref="482570557"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="1009929181"/>
+                                               </array>
+                                               <reference key="parent" ref="568628114"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">100043</int>
+                                               <reference key="object" ref="1009929181"/>
+                                               <reference key="parent" ref="482570557"/>
+                                       </object>
+                               </array>
                        </object>
+                       <dictionary class="NSMutableDictionary" key="flattenedProperties">
+                               <string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <string key="100021.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <string key="100022.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <string key="100023.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <string key="100024.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <string key="100027.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <string key="100037.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <string key="100042.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <string key="100043.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <string key="5.IBEditorWindowLastContentRect">{{133, 170}, {507, 413}}</string>
+                               <string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <string key="5.IBWindowTemplateEditedContentRect">{{133, 170}, {507, 413}}</string>
+                               <integer value="1" key="5.ImportedFromIB2"/>
+                               <string key="5.editorWindowContentRectSynchronizationRect">{{201, 387}, {507, 413}}</string>
+                               <string key="6.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <integer value="1" key="6.ImportedFromIB2"/>
+                       </dictionary>
+                       <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
                        <nil key="activeLocalization"/>
-                       <object class="NSMutableDictionary" key="localizations">
-                               <bool key="EncodedWithXMLCoder">YES</bool>
-                               <reference key="dict.sortedKeys" ref="0"/>
-                               <object class="NSMutableArray" key="dict.values">
-                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                               </object>
-                       </object>
+                       <dictionary class="NSMutableDictionary" key="localizations"/>
                        <nil key="sourceID"/>
-                       <int key="maxID">100020</int>
-               </object>
-               <object class="IBClassDescriber" key="IBDocument.Classes">
-                       <object class="NSMutableArray" key="referencedPartialClassDescriptions">
-                               <bool key="EncodedWithXMLCoder">YES</bool>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">DiracDoc</string>
-                                       <string key="superclassName">NSDocument</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBProjectSource</string>
-                                               <string key="minorKey">DiracDoc.h</string>
-                                       </object>
-                               </object>
-                       </object>
+                       <int key="maxID">100048</int>
                </object>
+               <object class="IBClassDescriber" key="IBDocument.Classes"/>
                <int key="IBDocument.localizationMode">0</int>
+               <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
+               <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+                       <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
+                       <real value="4000" key="NS.object.0"/>
+               </object>
                <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-               <string key="IBDocument.LastKnownRelativeProjectPath">../CocoaDocApp.xcodeproj</string>
                <int key="IBDocument.defaultPropertyAccessControl">3</int>
        </data>
 </archive>